Dgame RC #1

Namespace via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Apr 2 02:38:03 PDT 2015


On Thursday, 2 April 2015 at 07:56:19 UTC, Mike Parker wrote:
> On 4/2/2015 11:36 AM, Craig Dillabaugh wrote:
>
>> derelict.util.exception.SymbolLoadException at ../../../.dub/packages/derelict-util-1.9.1/source/derelict/util/exception.d(35):
>> Failed to load symbol SDL_HasAVX from shared library libSDL2.so
>
> This error message is telling you two things. First, SDL is 
> installed on your system and the loader found it just fine. 
> Second, the loader was unable to find the SDL_HasAVX function 
> in libSDL2.so.
>
> SDL_HasAVX was added to the API in SDL 2.0.2, so you have an 
> older version installed on your system and DGame is attempting 
> to load a more recent version. Derelict will load either SDL 
> 2.0.2 or 2.0.3. The latter is the latest release, but there are 
> no API differences between them.
>
> From your end, the solution is to install the latest version of 
> SDL2. Another solution is for DGame to take advantage of the 
> SharedLibVersion feature of Derelict to set a minimum 
> acceptable version of SDL. For example, if DGame doesn't use 
> any API features added to SDL since 2.0.0, then this will allow 
> any version of SDL2 to load:
>
> DerelictSDL2.load(SharedLibVersion(2,0,0));
>
> Bye bye SymbolLoadException. Then again, loading the older 
> versions makes it possible for DGame to be affected by SDL bugs 
> that have since been fixed, so I make no judgement on whether 
> or not it's worth it.

Dgame is based on SDL 2.0.3 (as described in the installation 
tutorial), but tries to "wrap" any function call which is 
introduced after SDL 2.0.0:
----
static if (SDL_VERSION_ATLEAST(2, 0, 2))
----
so that Dgame should be usable with any SDL2.x version.

I will investigate which function is calling SDL_HasAVX.



More information about the Digitalmars-d-announce mailing list