[solved] 4.6.0 keeps using an old SDL build on my computer

Need help running G/Q/ZDoom/ECWolf/Zandronum/3DGE? Did your computer break? Ask here.

Moderator: GZDoom Developers

[solved] 4.6.0 keeps using an old SDL build on my computer

Postby Matt » Sat May 22, 2021 3:36 pm

[edited thread title, previously "4.6.0 doesn't work on my computer", "4.6.0 won't work with the SDL found in Buster stable", originally "Can't compile 4.6.0 and can't figure out what to install"]


Stops at
Code: Select allExpand view
'SDL_vulkan.h' file not found


I have no idea what dependency I'm missing. I'm assuming the wiki is not up to date.
Last edited by Matt on Sun May 23, 2021 10:37 am, edited 3 times in total.
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: Can't compile 4.6.0 and can't figure out what to install

Postby Rachael » Sat May 22, 2021 3:44 pm

You will need a newer version of SDL. And yes, the wiki is really out of date.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Can't compile 4.6.0 and can't figure out what to install

Postby Matt » Sat May 22, 2021 3:50 pm

Thanks!

::switches to "Testing"::
Code: Select allExpand view
Need to get 2,401 MB of archives.
After this operation, 999 MB of additional disk space will be used.
Do you want to continue? [Y/n] n

......I'll download the blob.
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: Can't compile 4.6.0 and can't figure out what to install

Postby Matt » Sat May 22, 2021 5:52 pm

Downloaded, installed, attempted to run, and got:
Code: Select allExpand view
/opt/gzdoom/gzdoom: symbol lookup error: /opt/gzdoom/gzdoom: undefined symbol: SDL_GetWindowBordersSize

I'm guessing this is going to require that I update SDL one way or another?
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: Can't compile 4.6.0 and can't figure out what to install

Postby Rachael » Sat May 22, 2021 8:08 pm

Well - you might be able to self-compile a version without Vulkan support.

When inside your build folder try running cmake -DHAVE_VULKAN=0 and then see if you have any luck building that with your current SDL version.

If that doesn't work then unfortunately yes you may have to update your SDL version.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Can't compile 4.6.0 and can't figure out what to install

Postby Matt » Sat May 22, 2021 8:35 pm

Thanks, I'll give it a try...

Code: Select allExpand view
/home/m/doom/gzdoom-g4.6.0/src/common/platform/posix/sdl/sdlglvideo.cpp:118:43: error:
      use of undeclared identifier 'SDL_WINDOW_VULKAN'
        static const uint32_t VulkanWindowFlag = SDL_WINDOW_VULKAN;
                                                 ^
/home/m/doom/gzdoom-g4.6.0/src/common/platform/posix/sdl/sdlglvideo.cpp:724:4: error:
      use of undeclared identifier 'SDL_GetWindowBordersSize'
                        SDL_GetWindowBordersSize(Priv::window, &top, &le...
                        ^
2 errors generated.
make[2]: *** [src/CMakeFiles/zdoom.dir/build.make:201: src/CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:811: src/CMakeFiles/zdoom.dir/all] Error 2
make: *** [Makefile:130: all] Error 2


The first definitely looks Vulkan-specific so I'm not sure why it's there now? But I guess that SDL_GetWindowBordersSize is one of those things that's in the new SDL.

If only I could update just that without it getting me to completely overhaul or uninstall a huge amount of other stuff...
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: 4.6.0 won't work with the SDL found in Buster stable

Postby Blzut3 » Sat May 22, 2021 8:43 pm

SDL2 in buster definitely has SDL_vulkan.h. The official deb is compiled against Ubuntu 18.04 which is using an older version of SDL2, 2.0.8 vs 2.0.9, just fine.
Blzut3
Pronounced: B-l-zut
 
 
 
Joined: 24 Nov 2004
Github ID: Blzut3
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
Graphics Processor: ATI/AMD with Vulkan Support

Re: 4.6.0 doesn't work on my computer

Postby Matt » Sat May 22, 2021 10:35 pm

Then nothing is working and I have no idea why.

I've even resorted to Google to look up
Code: Select allExpand view
undefined symbol: SDL_GetWindowBordersSize
and literally the only result is this thread...


I've found /usr/include/SDL2/SDL_vulkan.h while searching my entire system on Seamonkey. No idea why it can't be found by the compiler. I'm guessing this file would contain whatever the blob is complaining about with that hapax legomenon error message, in which case no idea why it can't be found by GZDoom either.


And trying to add the full path for SDL_vulkan.h to sdlglvideo.cpp just gives me this unspeakable mess:
Spoiler:
Looking at this more closely it seems to be finding two files that do the same thing?


For what it's worth, I have not seen anything else break running anything else that looks like it involves SDL, so it's probably not a corrupt installation but something related to paths GZDoom is using to search for the SDL Vulkan header. I have no idea how to configure that stuff.
Last edited by Matt on Sun May 23, 2021 12:29 am, edited 1 time in total.
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: 4.6.0 doesn't work on my computer

Postby Graf Zahl » Sun May 23, 2021 12:24 am

You seem to have SDL headers in both /usr/include and /usr/local/include and obviously they are from different SDL versions if one is incomplete.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: 4.6.0 doesn't work on my computer

Postby _mental_ » Sun May 23, 2021 12:26 am

Missing SDL_GetWindowBordersSize() declaration has not nothing to do with Vulkan support. It means that SDL2 version is older than 2.0.5. Please post output of the following command
Code: Select allExpand view
apt search libsdl2-dev
_mental_
 
 
 
Joined: 07 Aug 2011

Re: 4.6.0 doesn't work on my computer

Postby Matt » Sun May 23, 2021 12:29 am

_mental_ wrote:Please post output of the following command
Code: Select allExpand view
apt search libsdl2-dev

Code: Select allExpand view
Sorting... Done
Full Text Search... Done
libsdl2-dev/stable,stable,now 2.0.9+dfsg1-1 amd64 [installed]
  Simple DirectMedia Layer development files
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: 4.6.0 doesn't work on my computer

Postby _mental_ » Sun May 23, 2021 12:34 am

Apparently, another installation of SDL2 was picked by CMake somehow. Please run the following command instead of just make, and post command line that triggered compilation error.
Code: Select allExpand view
make VERBOSE=1
_mental_
 
 
 
Joined: 07 Aug 2011

Re: 4.6.0 doesn't work on my computer

Postby Matt » Sun May 23, 2021 12:37 am

Graf Zahl wrote:You seem to have SDL headers in both /usr/include and /usr/local/include and obviously they are from different SDL versions if one is incomplete.

Turns out the one in /usr/local/include has a last modified date of 2015. :shock:

Moving it out of /usr/local/include into somewhere nonsensical (my home folder) did not fix it. wait.......

Here's the error with VERBOSE=1:
Spoiler:
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: 4.6.0 doesn't work on my computer

Postby Matt » Sun May 23, 2021 12:54 am

By deleting that old SDL2 folder I manage to get to 100% on the compiling but it ends like this:
Code: Select allExpand view
/usr/bin/ld: CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o: in function `I_GetVulkanDrawableSize(int*, int*)':
sdlglvideo.cpp:(.text+0x304): undefined reference to `SDL_Vulkan_GetDrawableSize'
/usr/bin/ld: CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o: in function `I_GetVulkanPlatformExtensions(unsigned int*, char const**)':
sdlglvideo.cpp:(.text+0x325): undefined reference to `SDL_Vulkan_GetInstanceExtensions'
/usr/bin/ld: CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o: in function `I_CreateVulkanSurface(VkInstance_T*, VkSurfaceKHR_T**)':
sdlglvideo.cpp:(.text+0x355): undefined reference to `SDL_Vulkan_CreateSurface'
/usr/bin/ld: CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o: in function `SystemBaseFrameBuffer::GetClientWidth()':
sdlglvideo.cpp:(.text+0xacf): undefined reference to `SDL_Vulkan_GetDrawableSize'
/usr/bin/ld: CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o: in function `SystemBaseFrameBuffer::GetClientHeight()':
sdlglvideo.cpp:(.text+0xb3f): undefined reference to `SDL_Vulkan_GetDrawableSize'
/usr/bin/ld: CMakeFiles/zdoom.dir/common/platform/posix/sdl/sdlglvideo.cpp.o: in function `ProcessSDLWindowEvent(SDL_WindowEvent const&)':
sdlglvideo.cpp:(.text+0x10dc): undefined reference to `SDL_GetWindowBordersSize'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/CMakeFiles/zdoom.dir/build.make:7066: gzdoom] Error 1
make[1]: *** [CMakeFiles/Makefile2:1040: src/CMakeFiles/zdoom.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
Verbose:
Spoiler:


And trying to run the install from the repository gives me
Code: Select allExpand view
/opt/gzdoom/gzdoom: symbol lookup error: /opt/gzdoom/gzdoom: undefined symbol: SDL_GetWindowBordersSize
User avatar
Matt
Putting the XD into *xdeath since 2007
 
Joined: 04 Jan 2004
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia

Re: 4.6.0 doesn't work on my computer

Postby Graf Zahl » Sun May 23, 2021 1:26 am

You obviously also have an old SDL binary lurking around.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Next

Return to Technical Issues

Who is online

Users browsing this forum: No registered users and 2 guests