[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#888477: glibc FTBFS on arm64: dangerous relocation: unsupported relocation



Source: glibc
Version: 2.26-5
Severity: serious
User: helmutg@debian.org
Usertags: rebootstrap

glibc fails to build from source on amd64. Very likely this is not
caused by the particular glibc upload, but by the binutils upload
instead. In any case, the build log (attached) ends with:

| make[4]: Leaving directory '/home/helmutg/glibc-2.26/elf'
| aarch64-linux-gnu-gcc-7 -no-pie -fno-PIE   -nostdlib -nostartfiles -r -o /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os '-Wl,-(' /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/dl-allobjs.os /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/rtld-libc.a -lgcc '-Wl,-)' \
| 	  -Wl,-Map,/home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os.map
| aarch64-linux-gnu-gcc-7 -no-pie -fno-PIE   -nostdlib -nostartfiles -shared -o /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/ld.so.new		\
| 	  -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,defs 	\
| 	  /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os -Wl,--version-script=/home/helmutg/glibc-2.26/build-tree/arm64-libc/ld.map		\
| 	  -Wl,-soname=ld-linux-aarch64.so.1			\
| 	  -Wl,-defsym=_begin=0
| /usr/bin/ld: /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: relocation R_AARCH64_ABS32 against `a local symbol' can not be used when making a shared object
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `process_envvars':
| /home/helmutg/glibc-2.26/elf/rtld.c:2499:(.text+0x108c): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `audit_list_string' defined in COMMON section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `dl_main':
| /home/helmutg/glibc-2.26/elf/rtld.c:1389:(.text+0x2578): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `audit_list_string' defined in COMMON section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `security_init':
| /home/helmutg/glibc-2.26/elf/rtld.c:802:(.text+0x2784): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `__stack_chk_guard' defined in .data.rel.ro section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/elf/rtld.c:802:(.text+0x352c): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `__stack_chk_guard' defined in .data.rel.ro section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `do_lookup_unique':
| /home/helmutg/glibc-2.26/elf/dl-lookup.c:318:(.text+0x810c): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `free' defined in .text section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/elf/dl-lookup.c:287:(.text+0x823c): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `free' defined in .text section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `elf_machine_runtime_setup':
| /home/helmutg/glibc-2.26/elf/../sysdeps/aarch64/dl-machine.h:117:(.text+0x9a58): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `_dl_runtime_profile' defined in .text section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/elf/../sysdeps/aarch64/dl-machine.h:130:(.text+0xa6ac): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `_dl_runtime_resolve' defined in .text section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `_dl_debug_initialize':
| /home/helmutg/glibc-2.26/elf/dl-debug.c:51:(.text+0xd2cc): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `_r_debug' defined in COMMON section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/elf/dl-debug.c:59:(.text+0xd2e8): relocation truncated to fit: R_AARCH64_LD64_GOT_LO12_NC against symbol `_r_debug' defined in COMMON section in /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os: In function `htab_create':
| /home/helmutg/glibc-2.26/elf/../include/inline-hashtab.h:56:(.text+0x13540): additional relocation overflows omitted from the output
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /usr/bin/ld: BFD (GNU Binutils for Debian) 2.29.90.20180122 assertion fail ../../bfd/elfnn-aarch64.c:4386
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x218): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x220): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x228): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x230): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x238): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x240): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x248): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x250): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:/home/helmutg/glibc-2.26/build-tree/arm64-libc/dl-tunable-list.h:28:(.data.rel.ro+0x2a8): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x2d8): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x2e0): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x310): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x318): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x348): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x350): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x388): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x3b8): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x3c0): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x3f8): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x428): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x430): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x460): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x468): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x498): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x4a0): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x4d8): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x508): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x510): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x548): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro+0x578): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:/home/helmutg/glibc-2.26/elf/../sysdeps/unix/sysv/linux/aarch64/cpu-features.c:30:(.data.rel.ro.local+0x0): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro.local+0x10): dangerous relocation: unsupported relocation
| /home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/librtld.os:(.data.rel.ro.local+0x20): dangerous relocation: unsupported relocation
| collect2: error: ld returned 1 exit status
| Makefile:464: recipe for target '/home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/ld.so' failed
| make[3]: *** [/home/helmutg/glibc-2.26/build-tree/arm64-libc/elf/ld.so] Error 1
| make[3]: Leaving directory '/home/helmutg/glibc-2.26/elf'
| Makefile:231: recipe for target 'elf/subdir_lib' failed
| make[2]: *** [elf/subdir_lib] Error 2
| make[2]: Leaving directory '/home/helmutg/glibc-2.26'
| Makefile:9: recipe for target 'all' failed
| make[1]: *** [all] Error 2
| make[1]: Leaving directory '/home/helmutg/glibc-2.26/build-tree/arm64-libc'
| debian/rules.d/build.mk:102: recipe for target '/home/helmutg/glibc-2.26/stamp-dir/build_libc' failed
| make: *** [/home/helmutg/glibc-2.26/stamp-dir/build_libc] Error 2
| dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

The build was performed on amdahl.d.o.

If you reassign to binutils, please don't forget to add affects.

I put d-arm@l.d.o into X-Debbugs-Cc.

James Clarke said one should look at:
| aarch64: Check UNDEFWEAK_NO_DYNAMIC_RELOC
|
| Don't generate dynamic relocation against weak undefined symbol if it
| is resolved to zero.  FIXME: UNDEFWEAK_NO_DYNAMIC_RELOC may need to be
| checked in more places.

Hope this helps.

Helmut

Attachment: glibc.log.xz
Description: application/xz


Reply to: