mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 17:57:35 +00:00
Ports: Build shared libraries with -Wl,-soname
Without a SONAME gcc will put the whole library path into executables which link against these libraries: $ readelf -d Root/usr/local/games/openttd Dynamic section at offset 0xf0747c contains 32 entries: Tag Type Name/Value 0x00000001 (NEEDED) [libgcc_s.so] 0x00000001 (NEEDED) [/serenity/Build/i686/Root/usr/local/lib/libpng.so] 0x00000001 (NEEDED) [/serenity/Build/i686/Root/usr/local/lib/libz.so] 0x00000001 (NEEDED) [/serenity/Build/i686/Root/usr/local/lib/liblzma.so] 0x00000001 (NEEDED) [libSDL2-2.0.so.1] 0x00000001 (NEEDED) [libicui18n.so.69] 0x00000001 (NEEDED) [libicuuc.so.69] 0x00000001 (NEEDED) [libicudata.so.69] 0x00000001 (NEEDED) [libpthread.so] 0x00000001 (NEEDED) [libm.so] 0x00000001 (NEEDED) [libc.so] This causes the executable to fail because the dynamic linker tries to find the library in the incorrect path.
This commit is contained in:
parent
e6953d14d8
commit
5b69e8d2c6
12 changed files with 15 additions and 15 deletions
|
@ -10,5 +10,5 @@ configopts="--with-sdl-prefix=${SERENITY_INSTALL_ROOT}/usr/local"
|
|||
|
||||
install() {
|
||||
run make install DESTDIR=${SERENITY_INSTALL_ROOT} $installopts
|
||||
run ${CC} -shared -o ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_gfx.so -Wl,--whole-archive ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_gfx.a -Wl,--no-whole-archive
|
||||
run ${CC} -shared -o ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_gfx.so -Wl,-soname,libSDL2_gfx.so -Wl,--whole-archive ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_gfx.a -Wl,--no-whole-archive
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue