We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 5078 - Added dependency to GLESv1_CM when building an Android app with SDL 2.0.12
Summary: Added dependency to GLESv1_CM when building an Android app with SDL 2.0.12
Status: NEW
Alias: None
Product: SDL
Classification: Unclassified
Component: build (show other bugs)
Version: 2.0.12
Hardware: x86 Other
: P2 normal
Assignee: Sam Lantinga
QA Contact: Sam Lantinga
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-06 04:38 UTC by Steve Robinson
Modified: 2020-04-06 04:38 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Robinson 2020-04-06 04:38:56 UTC
When I build the 'rectangles' example with SDL 2.0.12 on Android, I get these linker errors:

/Users/steve/.conan/data/sdl2/2.0.12/_/_/package/6bbc56a2453084194cb241ec14c2844595288616/lib/libSDL2.a(SDL_render_gles.c.o): In function `GLES_CreateRenderer':
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x240): undefined reference to `glBlendEquationOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x244): undefined reference to `glBlendEquationSeparateOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x24c): undefined reference to `glBlendEquationOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x250): undefined reference to `glBlendEquationSeparateOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x254): undefined reference to `glBlendFuncSeparateOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x25c): undefined reference to `glBlendFuncSeparateOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x26c): undefined reference to `glColor4f'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x274): undefined reference to `glColor4f'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x280): undefined reference to `glDisableClientState'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x288): undefined reference to `glDrawTexfOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x290): undefined reference to `glEnableClientState'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x29c): undefined reference to `glGenFramebuffersOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2a4): undefined reference to `glDisableClientState'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2ac): undefined reference to `glDrawTexfOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2b4): undefined reference to `glEnableClientState'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2bc): undefined reference to `glGenFramebuffersOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2d8): undefined reference to `glLoadIdentity'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2e0): undefined reference to `glLoadIdentity'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2ec): undefined reference to `glMatrixMode'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2f0): undefined reference to `glMatrixMode'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x2f8): undefined reference to `glOrthof'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x304): undefined reference to `glOrthof'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x328): undefined reference to `glTexCoordPointer'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x330): undefined reference to `glTexCoordPointer'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x33c): undefined reference to `glTexEnvf'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x340): undefined reference to `glTexEnvf'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x37c): undefined reference to `glVertexPointer'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x380): undefined reference to `glVertexPointer'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x394): undefined reference to `glBindFramebufferOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x398): undefined reference to `glBindFramebufferOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3a0): undefined reference to `glFramebufferTexture2DOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3a4): undefined reference to `glFramebufferTexture2DOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3ac): undefined reference to `glCheckFramebufferStatusOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3b0): undefined reference to `glCheckFramebufferStatusOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3b8): undefined reference to `glPushMatrix'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3bc): undefined reference to `glPushMatrix'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3c4): undefined reference to `glTranslatef'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3c8): undefined reference to `glTranslatef'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3d0): undefined reference to `glRotatef'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3d4): undefined reference to `glRotatef'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3dc): undefined reference to `glPopMatrix'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3e0): undefined reference to `glPopMatrix'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3e8): undefined reference to `glDeleteFramebuffersOES'
SDL_render_gles.c:(.text.GLES_CreateRenderer+0x3ec): undefined reference to `glDeleteFramebuffersOES'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

The linker error is fixed by linking with GLESv1_CM, in addition to GLESv2. This is surprising since SDL 2.0.8 was only dependent on GLESv2.

I'm building ARM64 arch with Android NDK 21 using CMake 3.17.0 to generate a Ninja project and Gradle 6.3 to build the java stuff and make the APK.