Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cmake: sdl2-config.cmake unsafe for cross-compilation #1568

Closed
RomainNaour opened this issue May 5, 2020 · 1 comment
Closed

Cmake: sdl2-config.cmake unsafe for cross-compilation #1568

RomainNaour opened this issue May 5, 2020 · 1 comment

Comments

@RomainNaour
Copy link

System Information

  • Ogre Version: v1.12.6
  • Operating System / Platform: Buildroot
  • RenderSystem: OpenGL GLX

Detailled description

Since [1] replacing FindSDL2.cmake by sdl2-config.cmake, the SDL2 headers from the host and the target are mixed while cross-compiling. /usr/include/SDL2 is hardcoded in sdl2-config.cmake.

sdl2-config.cmake doesn't give the same result as sdl2-config while cross-compiling:
staging/usr/bin/sdl2-config --cflags
staging/usr/include/SDL2 ...

sdl2-config.cmake
/usr/include/SDL2

This is an SDL2 upstream bug [2], but for now sdl2-config or pkg-config must be used.

[1] 6de6f9b
[2] https://bugzilla.libsdl.org/show_bug.cgi?id=4597

Ogre.log

None, Build issue.

@paroj
Copy link
Member

paroj commented May 5, 2020

as stated in [2] this is rather an issue with your target system. If you build SDL2 using cmake, a proper sdl2-config.cmake is generated that resolves the include path relative to itself.

@paroj paroj closed this as completed May 5, 2020
buildroot-auto-update pushed a commit to buildroot/buildroot that referenced this issue Jun 24, 2020
We are using autotools build system for sdl2, so the sdl2-config.cmake
include path are not resolved like for sdl2-config script [1].
Remove sdl2-config.cmake file and avoid unsafe include path if this
file is used by a cmake based package.

This trigger an issue with ogre 1.12.6 package that replaced
FindSDL2.cmake by sdl2-config.cmake [2].

Thanks to Pavel Rojtberg for the help [3].

[1] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[2] OGRECave/ogre@6de6f9b
[3] OGRECave/ogre#1568

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
kraj pushed a commit to kraj/buildroot that referenced this issue Jul 16, 2020
We are using autotools build system for sdl2, so the sdl2-config.cmake
include path are not resolved like for sdl2-config script [1].
Remove sdl2-config.cmake file and avoid unsafe include path if this
file is used by a cmake based package.

This trigger an issue with ogre 1.12.6 package that replaced
FindSDL2.cmake by sdl2-config.cmake [2].

Thanks to Pavel Rojtberg for the help [3].

[1] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[2] OGRECave/ogre@6de6f9b
[3] OGRECave/ogre#1568

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit d592618)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
kraj pushed a commit to kraj/buildroot that referenced this issue Jul 16, 2020
We are using autotools build system for sdl2, so the sdl2-config.cmake
include path are not resolved like for sdl2-config script [1].
Remove sdl2-config.cmake file and avoid unsafe include path if this
file is used by a cmake based package.

This trigger an issue with ogre 1.12.6 package that replaced
FindSDL2.cmake by sdl2-config.cmake [2].

Thanks to Pavel Rojtberg for the help [3].

[1] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[2] OGRECave/ogre@6de6f9b
[3] OGRECave/ogre#1568

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit d592618)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
jezze pushed a commit to jezze/buildroot that referenced this issue Aug 7, 2020
We are using autotools build system for sdl2, so the sdl2-config.cmake
include path are not resolved like for sdl2-config script [1].
Remove sdl2-config.cmake file and avoid unsafe include path if this
file is used by a cmake based package.

This trigger an issue with ogre 1.12.6 package that replaced
FindSDL2.cmake by sdl2-config.cmake [2].

Thanks to Pavel Rojtberg for the help [3].

[1] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[2] OGRECave/ogre@6de6f9b
[3] OGRECave/ogre#1568

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
celaxodon pushed a commit to celaxodon/buildroot that referenced this issue Oct 1, 2020
We are using autotools build system for sdl2, so the sdl2-config.cmake
include path are not resolved like for sdl2-config script [1].
Remove sdl2-config.cmake file and avoid unsafe include path if this
file is used by a cmake based package.

This trigger an issue with ogre 1.12.6 package that replaced
FindSDL2.cmake by sdl2-config.cmake [2].

Thanks to Pavel Rojtberg for the help [3].

[1] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[2] OGRECave/ogre@6de6f9b
[3] OGRECave/ogre#1568

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
awanga pushed a commit to awanga/alt-f-next that referenced this issue Oct 7, 2020
We are using autotools build system for sdl2, so the sdl2-config.cmake
include path are not resolved like for sdl2-config script [1].
Remove sdl2-config.cmake file and avoid unsafe include path if this
file is used by a cmake based package.

This trigger an issue with ogre 1.12.6 package that replaced
FindSDL2.cmake by sdl2-config.cmake [2].

Thanks to Pavel Rojtberg for the help [3].

[1] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[2] OGRECave/ogre@6de6f9b
[3] OGRECave/ogre#1568

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
RomainNaour added a commit to RomainNaour/buildroot that referenced this issue Dec 7, 2020
Remove upstream patch [1].

tinyxml has been replaced by pugixml [2].

Switch to git download method since github release without
the complete source code in the tarball [3].

Update indentation of hash file (two spaces).

The sdl2-config.cmake generated by sdl2 package is broken for
cross-compilation since it add /usr/include/SDL2 in CFLAGS.

Such flags are unsafe for cross-compilation since it mixes
headers for the host and target.

sdl2-config.cmake must be removed from staging since
we are using autotools build system to build sdl2 package
[4][5].

ogre 1.12.7 only include <sys/sysctl.h> for iOS in order to
build with glibc >= 2.32 [6].

[1] OGRECave/ogre@de4d5c9
[2] OGRECave/ogre@3381033
[3] OGRECave/ogre#1332 (comment)
[4] https://bugzilla.libsdl.org/show_bug.cgi?id=4597
[5] OGRECave/ogre#1568
[6] OGRECave/ogre@8ec086e

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants