[haiku-bugs] Re: [Haiku] #15122: arm linker relocation issues

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Mon, 24 Jun 2019 14:00:39 -0000

#15122: arm linker relocation issues
----------------------------+----------------------------
   Reporter:  kallisti5     |      Owner:  bonefish
       Type:  bug           |     Status:  new
   Priority:  normal        |  Milestone:  Unscheduled
  Component:  Build System  |    Version:  R1/Development
 Resolution:                |   Keywords:
 Blocked By:                |   Blocking:
Has a Patch:  0             |   Platform:  All
----------------------------+----------------------------

Comment (by kallisti5):

 I've confirmed that a swap of the linker solves this issue directly:

 (-v added for verbosity between clang lld and gcc ld)

 Stock:
 {{{
 $ /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/bin/arm-
 unknown-haiku-gcc -v -fno-strict-aliasing -fno-delete-null-pointer-checks
 -fno-builtin-fork -fno-builtin-vfork -march=armv7-a -mfloat-abi=hard
 -Xlinker --no-undefined -shared -Xlinker -soname="libbe.so" -nostdlib
 -Xlinker --no-undefined -o "objects/haiku/arm/release/kits/libbe.so"
 "objects/haiku/arm/release/system/glue/arch/arm/crti.o"
 "/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtbeginS.o"
 "objects/haiku/arm/release/system/glue/init_term_dyn.o"
 "objects/haiku/arm/release/kits/app/app_kit.o"
 "objects/haiku/arm/release/kits/interface/interface_kit.o"
 "objects/haiku/arm/release/kits/locale/locale_kit.o"
 "objects/haiku/arm/release/kits/storage/storage_kit.o"
 "objects/haiku/arm/release/kits/support/support_kit.o"
 "objects/haiku/arm/release/kits/storage/mime/libstorage_kit_mime.a"
 "objects/haiku/arm/release/libs/icon/libicon.a"
 "objects/haiku/arm/release/libs/agg/libagg.a"
 "build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libstdc++.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicudata.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicui18n.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicuio.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicule.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libiculx.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicutu.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicuuc.so"
 "build_packages/zlib-1.2.11-1-arm/develop/lib/libz.so"
 "objects/haiku/arm/release/system/libroot/libroot.so"
 "build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libgcc_s.so.1"
 "build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-1-arm/develop/lib/libgcc.a"
 "/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtendS.o"
 "objects/haiku/arm/release/system/glue/arch/arm/crtn.o" -Wl,--version-
 script,../src/kits/libbe_versions
 Using built-in specs.
 COLLECT_GCC=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/bin/arm-unknown-haiku-gcc
 COLLECT_LTO_WRAPPER=/home/alex.vongluck/Code/haiku/generated.arm/cross-
 tools-arm/libexec/gcc/arm-unknown-haiku/8.3.0/lto-wrapper
 Target: arm-unknown-haiku
 Configured with: /home/alex.vongluck/Code/buildtools/gcc/configure
 --prefix=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm
 --target=arm-unknown-haiku --disable-nls --disable-shared --with-system-
 zlib --enable-languages=c,c++ --enable-lto --enable-frame-pointer
 --enable-__cxa-atexit --enable-threads=posix --with-default-libstdcxx-
 abi=gcc4-compatible --with-
 sysroot=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/sysroot --disable-maintainer-mode --disable-multilib --with-float=hard
 --with-cpu=cortex-a8 --with-fpu=vfpv3 --disable-tls
 Thread model: posix
 gcc version 8.3.0 (GCC)
 COMPILER_PATH=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/libexec/gcc/arm-unknown-
 haiku/8.3.0/:/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/libexec/gcc/arm-unknown-
 haiku/8.3.0/:/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/libexec/gcc/arm-unknown-
 haiku/:/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/lib/gcc/arm-unknown-
 haiku/8.3.0/:/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/lib/gcc/arm-unknown-
 haiku/:/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/lib/gcc/arm-unknown-haiku/8.3.0/../../../../arm-unknown-haiku/bin/
 BELIBRARIES=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/lib/gcc/arm-unknown-
 haiku/8.3.0/:/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/lib/gcc/arm-unknown-haiku/8.3.0/../../../../arm-unknown-haiku/lib/
 COLLECT_GCC_OPTIONS='-v' '-fno-strict-aliasing' '-fno-delete-null-pointer-
 checks' '-fno-builtin-fork' '-fno-builtin-vfork'  '-mfloat-abi=hard'
 '-shared' '-nostdlib' '-o' 'objects/haiku/arm/release/kits/libbe.so'
 '-mfpu=vfpv3' '-marm' '-march=armv7-a+vfpv3'
  /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/libexec/gcc
 /arm-unknown-haiku/8.3.0/collect2 -plugin
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/libexec/gcc
 /arm-unknown-haiku/8.3.0/liblto_plugin.so -plugin-
 opt=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/libexec/gcc/arm-unknown-haiku/8.3.0/lto-wrapper -plugin-
 opt=-fresolution=/tmp/ccF1xVQF.res
 --sysroot=/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-
 arm/sysroot -m armelf -shared -e 0 -X -o
 objects/haiku/arm/release/kits/libbe.so
 -L/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc
 /arm-unknown-haiku/8.3.0 -L/home/alex.vongluck/Code/haiku/generated.arm
 /cross-tools-arm/lib/gcc/arm-unknown-haiku/8.3.0/../../../../arm-unknown-
 haiku/lib --no-undefined -soname=libbe.so --no-undefined
 objects/haiku/arm/release/system/glue/arch/arm/crti.o
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtbeginS.o
 objects/haiku/arm/release/system/glue/init_term_dyn.o
 objects/haiku/arm/release/kits/app/app_kit.o
 objects/haiku/arm/release/kits/interface/interface_kit.o
 objects/haiku/arm/release/kits/locale/locale_kit.o
 objects/haiku/arm/release/kits/storage/storage_kit.o
 objects/haiku/arm/release/kits/support/support_kit.o
 objects/haiku/arm/release/kits/storage/mime/libstorage_kit_mime.a
 objects/haiku/arm/release/libs/icon/libicon.a
 objects/haiku/arm/release/libs/agg/libagg.a
 build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libstdc++.so
 build_packages/icu-57.1-2-arm/develop/lib/libicudata.so
 build_packages/icu-57.1-2-arm/develop/lib/libicui18n.so
 build_packages/icu-57.1-2-arm/develop/lib/libicuio.so
 build_packages/icu-57.1-2-arm/develop/lib/libicule.so
 build_packages/icu-57.1-2-arm/develop/lib/libiculx.so
 build_packages/icu-57.1-2-arm/develop/lib/libicutu.so
 build_packages/icu-57.1-2-arm/develop/lib/libicuuc.so
 build_packages/zlib-1.2.11-1-arm/develop/lib/libz.so
 objects/haiku/arm/release/system/libroot/libroot.so
 build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libgcc_s.so.1
 build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-1-arm/develop/lib/libgcc.a
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtendS.o
 objects/haiku/arm/release/system/glue/arch/arm/crtn.o --version-script
 ../src/kits/libbe_versions
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/../../../../arm-unknown-haiku/bin/ld:
 objects/haiku/arm/release/kits/interface/interface_kit.o: relocation
 R_ARM_REL32 against external or undefined symbol `_ZTIi' can not be used
 when making a shared object; recompile with -fPIC
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/../../../../arm-unknown-haiku/bin/ld:
 objects/haiku/arm/release/kits/interface/interface_kit.o(.ARM.extab+0x445c):
 unresolvable R_ARM_REL32 relocation against symbol `_ZTIi'
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/../../../../arm-unknown-haiku/bin/ld: final link
 failed: Nonrepresentable section on output
 collect2: error: ld returned 1 exit status
 release/system/glue/arch/arm/crtn.o" -Wl,--version-
 script,../src/kits/libbe_versions
 }}}


 Updated:
 {{{
 /usr/bin/clang -v -fuse-ld=lld -target arm-unknown-freebsd -fno-strict-
 aliasing -fno-delete-null-pointer-checks -fno-builtin-fork -fno-builtin-
 vfork -march=armv7-a -mfloat-abi=hard -Xlinker --no-undefined -shared
 -Xlinker -soname="libbe.so" -nostdlib -Xlinker --no-undefined -o
 "objects/haiku/arm/release/kits/libbe.so"
 "objects/haiku/arm/release/system/glue/arch/arm/crti.o"
 "/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtbeginS.o"
 "objects/haiku/arm/release/system/glue/init_term_dyn.o"
 "objects/haiku/arm/release/kits/app/app_kit.o"
 "objects/haiku/arm/release/kits/interface/interface_kit.o"
 "objects/haiku/arm/release/kits/locale/locale_kit.o"
 "objects/haiku/arm/release/kits/storage/storage_kit.o"
 "objects/haiku/arm/release/kits/support/support_kit.o"
 "objects/haiku/arm/release/kits/storage/mime/libstorage_kit_mime.a"
 "objects/haiku/arm/release/libs/icon/libicon.a"
 "objects/haiku/arm/release/libs/agg/libagg.a"
 "build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libstdc++.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicudata.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicui18n.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicuio.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicule.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libiculx.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicutu.so"
 "build_packages/icu-57.1-2-arm/develop/lib/libicuuc.so"
 "build_packages/zlib-1.2.11-1-arm/develop/lib/libz.so"
 "objects/haiku/arm/release/system/libroot/libroot.so"
 "build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libgcc_s.so.1"
 "build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-1-arm/develop/lib/libgcc.a"
 "/home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtendS.o"
 "objects/haiku/arm/release/system/glue/arch/arm/crtn.o" -Wl,--version-
 script,../src/kits/libbe_versions
 clang version 8.0.0 (Fedora 8.0.0-1.fc30)
 Target: arm-unknown-freebsd
 Thread model: posix
 InstalledDir: /usr/bin
  "/usr/bin/ld.lld" --eh-frame-hdr -Bshareable --enable-new-dtags -o
 objects/haiku/arm/release/kits/libbe.so -L/usr/lib --no-undefined
 -soname=libbe.so --no-undefined
 objects/haiku/arm/release/system/glue/arch/arm/crti.o
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtbeginS.o
 objects/haiku/arm/release/system/glue/init_term_dyn.o
 objects/haiku/arm/release/kits/app/app_kit.o
 objects/haiku/arm/release/kits/interface/interface_kit.o
 objects/haiku/arm/release/kits/locale/locale_kit.o
 objects/haiku/arm/release/kits/storage/storage_kit.o
 objects/haiku/arm/release/kits/support/support_kit.o
 objects/haiku/arm/release/kits/storage/mime/libstorage_kit_mime.a
 objects/haiku/arm/release/libs/icon/libicon.a
 objects/haiku/arm/release/libs/agg/libagg.a
 build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libstdc++.so
 build_packages/icu-57.1-2-arm/develop/lib/libicudata.so
 build_packages/icu-57.1-2-arm/develop/lib/libicui18n.so
 build_packages/icu-57.1-2-arm/develop/lib/libicuio.so
 build_packages/icu-57.1-2-arm/develop/lib/libicule.so
 build_packages/icu-57.1-2-arm/develop/lib/libiculx.so
 build_packages/icu-57.1-2-arm/develop/lib/libicutu.so
 build_packages/icu-57.1-2-arm/develop/lib/libicuuc.so
 build_packages/zlib-1.2.11-1-arm/develop/lib/libz.so
 objects/haiku/arm/release/system/libroot/libroot.so
 build_packages/gcc_syslibs-8.3.0_2019_05_24-1-arm/lib/libgcc_s.so.1
 build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-1-arm/develop/lib/libgcc.a
 /home/alex.vongluck/Code/haiku/generated.arm/cross-tools-arm/lib/gcc/arm-
 unknown-haiku/8.3.0/crtendS.o
 objects/haiku/arm/release/system/glue/arch/arm/crtn.o --version-script
 ../src/kits/libbe_versions

 }}}

-- 
Ticket URL: <https://dev.haiku-os.org/ticket/15122#comment:1>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: