HaikuArchives / EXRTranslator

Haiku EXR translator
MIT License
0 stars 0 forks source link

SONAME is wrong #2

Open Begasus opened 2 weeks ago

Begasus commented 2 weeks ago

When using TYPE = APP in the Makefile the addon works fine but produces a wrong SONAME when checking with readelf:

0x000000000000000e (SONAME) Library soname: [_APP_]

When using TYPE = SHARED it produces correct SONAME but the addon doesn't work

0x000000000000000e (SONAME) Library soname: [EXRTranslator] bash: ./EXRTranslator: cannot execute binary file: Not an executable

Begasus commented 2 weeks ago

For reference (64bit R1B4): Original one:

/system/add-ons/Translators> readelf -d EXRTranslator 

Dynamic section at offset 0xc6e0 contains 35 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libbe.so]
 0x0000000000000001 (NEEDED)             Shared library: [libtranslation.so]
 0x0000000000000001 (NEEDED)             Shared library: [libtextencoding.so]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libIlmImf-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libIlmImfUtil-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libHalf-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libIex-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libIexMath-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libIlmThread-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libImath-2_4.so.24]
 0x0000000000000001 (NEEDED)             Shared library: [libroot.so]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x000000000000000e (SONAME)             Library soname: [EXRTranslator]
 0x000000000000000c (INIT)               0x6740
 0x000000000000000d (FINI)               0xa0f1
 0x0000000000000019 (INIT_ARRAY)         0x20c000
 0x000000000000001b (INIT_ARRAYSZ)       16 (bytes)
 0x0000000000000004 (HASH)               0x120
 0x0000000000000005 (STRTAB)             0x24a8
 0x0000000000000006 (SYMTAB)             0x9c0
 0x000000000000000a (STRSZ)              8169 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0x20c9d0
 0x0000000000000002 (PLTRELSZ)           2808 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x5c48
 0x0000000000000007 (RELA)               0x4760
 0x0000000000000008 (RELASZ)             5352 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x46d0
 0x000000006fffffff (VERNEEDNUM)         3
 0x000000006ffffff0 (VERSYM)             0x4492
 0x000000006ffffff9 (RELACOUNT)          35
 0x0000000000000000 (NULL)               0x0

Produced one with haikuporter:

/system/add-ons/Translators> readelf -d EXRTranslator 

Dynamic section at offset 0xd6c0 contains 31 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libbe.so]
 0x0000000000000001 (NEEDED)             Shared library: [libIex-3_2.so.31]
 0x0000000000000001 (NEEDED)             Shared library: [libIlmThread-3_2.so.31]
 0x0000000000000001 (NEEDED)             Shared library: [libImath-3_1.so.29]
 0x0000000000000001 (NEEDED)             Shared library: [libOpenEXR-3_2.so.31]
 0x0000000000000001 (NEEDED)             Shared library: [libOpenEXRUtil-3_2.so.31]
 0x0000000000000001 (NEEDED)             Shared library: [libtranslation.so]
 0x0000000000000001 (NEEDED)             Shared library: [libtextencoding.so]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libroot.so]
 0x000000000000000e (SONAME)             Library soname: [_APP_]
 0x000000000000000c (INIT)               0x7a70
 0x000000000000000d (FINI)               0xb251
 0x0000000000000004 (HASH)               0x120
 0x0000000000000005 (STRTAB)             0x2ae8
 0x0000000000000006 (SYMTAB)             0xaa8
 0x000000000000000a (STRSZ)              10769 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0xd970
 0x0000000000000002 (PLTRELSZ)           3432 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x6d08
 0x0000000000000007 (RELA)               0x5850
 0x0000000000000008 (RELASZ)             5304 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x57b0
 0x000000006fffffff (VERNEEDNUM)         3
 0x000000006ffffff0 (VERSYM)             0x54fa
 0x000000006ffffff9 (RELACOUNT)          1
 0x0000000000000000 (NULL)               0x0
korli commented 2 weeks ago

Linker on Haiku: /home/korli/githaiku/haiku/generated_gcc13_64/cross-tools-x86_64/bin/x86_64-unknown-haiku-gcc -pipe -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-builtin-fork -fno-builtin-vfork -Xlinker --no-undefined -Xlinker -soname="EXRTranslator" -nostdlib -Xlinker --no-undefined -o "objects/haiku/x86_64/release/add-ons/translators/exr/EXRTranslator" "objects/haiku/x86_64/release/system/glue/arch/x86_64/crti.o" "/home/korli/githaiku/haiku/generated_gcc13_64/cross-tools-x86_64/lib/gcc/x86_64-unknown-haiku/13.3.0/crtbeginS.o" "objects/haiku/x86_64/release/system/glue/start_dyn.o" "objects/haiku/x86_64/release/system/glue/init_term_dyn.o" "objects/haiku/x86_64/release/add-ons/translators/exr/main.o" "objects/haiku/x86_64/release/add-ons/translators/exr/ConfigView.o" "objects/haiku/x86_64/release/add-ons/translators/exr/EXRGamma.o" "objects/haiku/x86_64/release/add-ons/translators/exr/EXRTranslator.o" "objects/haiku/x86_64/release/add-ons/translators/exr/IStreamWrapper.o" \ "objects/haiku/x86_64/release/kits/libbe.so" "objects/haiku/x86_64/release/kits/translation/libtranslation.so" "objects/haiku/x86_64/release/kits/textencoding/libtextencoding.so" "build_packages/gcc_syslibs-13.2.0_2023_08_10-3-x86_64/lib/libstdc++.so" "objects/haiku/x86_64/release/add-ons/translators/shared/libtranslatorsutils.a" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libIlmImf.so" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libIlmImfUtil.so" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libHalf.so" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libIex.so" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libIexMath.so" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libIlmThread.so" "build_packages/openexr-2.4.1-1-x86_64/develop/lib/libImath.so" "objects/haiku/x86_64/release/kits/locale/liblocalestub.a" "objects/haiku/x86_64/release/system/libroot/libroot.so" "build_packages/gcc_syslibs-13.2.0_2023_08_10-3-x86_64/lib/libgcc_s.so.1" "build_packages/gcc_syslibs_devel-13.2.0_2023_08_10-3-x86_64/develop/lib/libgcc.a" "/home/korli/githaiku/haiku/generated_gcc13_64/cross-tools-x86_64/lib/gcc/x86_64-unknown-haiku/13.3.0/crtendS.o" "objects/haiku/x86_64/release/system/glue/arch/x86_64/crtn.o" \

Begasus commented 2 weeks ago

-Xlinker -soname="EXRTranslator"

Added this now in the Makefile, with APP set it builds and works as expected on both arch's

Begasus commented 2 weeks ago

Current situation (64bit)

cc -o "objects.x86_64-cc13-release/EXRTranslator"       objects.x86_64-cc13-release/main.o objects.x86_64-cc13-release/ConfigView.o objects.x86_64-cc13-release/EXRGamma.o objects.x86_64-cc13-release/EXRTranslator.o objects.x86_64-cc13-release/IStreamWrapper.o objects.x86_64-cc13-release/BaseTranslator.o objects.x86_64-cc13-release/StreamBuffer.o objects.x86_64-cc13-release/TranslatorSettings.o objects.x86_64-cc13-release/TranslatorWindow.o  -Xlinker -soname=_APP_  -L./  -Lobjects.x86_64-cc13-release/  -Lshared/    -lbe  -lIex  -lIlmThread  -lImath  -lOpenEXR  -lOpenEXRUtil  -ltranslation  -ltextencoding  -llocalestub  -lstdc++  -lsupc++ -Xlinker -soname=EXRTranslator
xres -o objects.x86_64-cc13-release/EXRTranslator       objects.x86_64-cc13-release/EXRTranslator.rsrc
mimeset -f "objects.x86_64-cc13-release/EXRTranslator"
Begasus commented 2 weeks ago

Pushed latest changes here for a (wip) recipe: https://github.com/Begasus/haikuports/tree/exrtranslator