bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/21524] New: Assert on ld.bfd with -r and --gc-sections


From: adhemerval.zanella at linaro dot org
Subject: [Bug ld/21524] New: Assert on ld.bfd with -r and --gc-sections
Date: Thu, 25 May 2017 18:05:25 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=21524

            Bug ID: 21524
           Summary: Assert on ld.bfd with -r and --gc-sections
           Product: binutils
           Version: 2.27
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: adhemerval.zanella at linaro dot org
  Target Milestone: ---

This is a mirror of an issue against our toolchain for aarch64 [1]. The error
is easily recreated with these steps (check prerequisites at
https://github.com/OP-TEE/build#71-prerequisites , not all are needed for the
build to succeed below):

git clone https://github.com/jenswi-linaro/optee_os.git
cd optee_os
AARCH64_GCC=gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu
TOOLCHAIN_DIR=${HOME}/aarch64-toolchain
export CROSS_COMPILE64=${TOOLCHAIN_DIR}/${AARCH64_GCC}/bin/aarch64-linux-gnu-
export PLATFORM=vexpress-qemu_armv8a
export CFG_ARM64_core=y
git checkout origin/test_compile_ok
make out/arm-plat-vexpress/core/tee.elf
# Compiles OK

# Now add a patch on top of that that causes a the assertion in the linker
# If you add V=1 as an argument to make you'll see how the linker is invoked
git checkout origin/test_compile_fail
make out/arm-plat-vexpress/core/tee.elf

# Fails with:
.../aarch64-linux-gnu-ld: BFD (Linaro_Binutils-2016.11)
2.27.0.20161019 assertion fail
/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/aarch64-linux-gnu/snapshots/binutils-gdb.git~linaro_binutils-2_27-branch/bfd/elflink.c:8380

It boils down to the linker command line:

/home/azanella/Projects/binutils/binutils-gdb-build-aarch64/ld/ld-new -i
--gc-sections -u_start         `cat
out/arm-plat-vexpress/core/init_entries.txt`       
out/arm-plat-vexpress/core/arch/arm/kernel/user_ta.o
out/arm-plat-vexpress/core/arch/arm/kernel/ree_fs_ta.o
out/arm-plat-vexpress/core/arch/arm/kernel/pseudo_ta.o
out/arm-plat-vexpress/core/arch/arm/kernel/elf_load.o
out/arm-plat-vexpress/core/arch/arm/kernel/tee_time.o
out/arm-plat-vexpress/core/arch/arm/kernel/otp_stubs.o
out/arm-plat-vexpress/core/arch/arm/kernel/tee_time_arm_cntpct.o
out/arm-plat-vexpress/core/arch/arm/kernel/proc_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/spin_lock_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/ssvce_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/cache_helpers_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/thread_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/thread.o
out/arm-plat-vexpress/core/arch/arm/kernel/abort.o
out/arm-plat-vexpress/core/arch/arm/kernel/vfp.o
out/arm-plat-vexpress/core/arch/arm/kernel/vfp_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/trace_ext.o
out/arm-plat-vexpress/core/arch/arm/kernel/misc_a64.o
out/arm-plat-vexpress/core/arch/arm/kernel/mutex.o
out/arm-plat-vexpress/core/arch/arm/kernel/wait_queue.o
out/arm-plat-vexpress/core/arch/arm/kernel/pm_stubs.o
out/arm-plat-vexpress/core/arch/arm/kernel/generic_boot.o
out/arm-plat-vexpress/core/arch/arm/kernel/generic_entry_a64.o
out/arm-plat-vexpress/core/arch/arm/mm/core_mmu.o
out/arm-plat-vexpress/core/arch/arm/mm/tee_mmu.o
out/arm-plat-vexpress/core/arch/arm/mm/core_mmu_lpae.o
out/arm-plat-vexpress/core/arch/arm/mm/tee_mm.o
out/arm-plat-vexpress/core/arch/arm/mm/pgt_cache.o
out/arm-plat-vexpress/core/arch/arm/mm/mobj.o
out/arm-plat-vexpress/core/arch/arm/tee/arch_svc_a64.o
out/arm-plat-vexpress/core/arch/arm/tee/pta_socket.o
out/arm-plat-vexpress/core/arch/arm/tee/entry_fast.o
out/arm-plat-vexpress/core/arch/arm/tee/cache.o
out/arm-plat-vexpress/core/arch/arm/pta/pta_invoke_tests.o
out/arm-plat-vexpress/core/arch/arm/pta/core_self_tests.o
out/arm-plat-vexpress/core/arch/arm/pta/interrupt_tests.o
out/arm-plat-vexpress/core/arch/arm/pta/core_fs_htree_tests.o
out/arm-plat-vexpress/core/arch/arm/pta/stats.o
out/arm-plat-vexpress/core/arch/arm/plat-vexpress/main.o
out/arm-plat-vexpress/core/arch/arm/plat-vexpress/vendor_props.o
out/arm-plat-vexpress/core/kernel/assert.o
out/arm-plat-vexpress/core/kernel/console.o
out/arm-plat-vexpress/core/kernel/dt.o
out/arm-plat-vexpress/core/kernel/tee_ta_manager.o
out/arm-plat-vexpress/core/kernel/tee_misc.o
out/arm-plat-vexpress/core/kernel/panic.o
out/arm-plat-vexpress/core/kernel/handle.o
out/arm-plat-vexpress/core/kernel/interrupt.o
out/arm-plat-vexpress/core/tee/tee_cryp_utl.o
out/arm-plat-vexpress/core/tee/tee_cryp_hkdf.o
out/arm-plat-vexpress/core/tee/tee_cryp_concat_kdf.o
out/arm-plat-vexpress/core/tee/tee_cryp_pbkdf2.o
out/arm-plat-vexpress/core/tee/tee_svc.o
out/arm-plat-vexpress/core/tee/tee_svc_cryp.o
out/arm-plat-vexpress/core/tee/tee_svc_storage.o
out/arm-plat-vexpress/core/tee/tee_ree_fs.o
out/arm-plat-vexpress/core/tee/fs_htree.o
out/arm-plat-vexpress/core/tee/fs_dirfile.o
out/arm-plat-vexpress/core/tee/tee_fs_rpc.o
out/arm-plat-vexpress/core/tee/tee_fs_rpc_cache.o
out/arm-plat-vexpress/core/tee/tee_fs_key_manager.o
out/arm-plat-vexpress/core/tee/tee_obj.o
out/arm-plat-vexpress/core/tee/tee_pobj.o
out/arm-plat-vexpress/core/tee/tee_time_generic.o
out/arm-plat-vexpress/core/tee/uuid.o
out/arm-plat-vexpress/core/drivers/pl011.o
out/arm-plat-vexpress/core/drivers/gic.o
out/arm-plat-vexpress/core/ta_pub_key.o out/arm-plat-vexpress/core/version.o 
-Lout/arm-plat-vexpress/core/lib/libfdt
-Lout/arm-plat-vexpress/core/lib/libtomcrypt
-Lout/arm-plat-vexpress/core-lib/libmpa
-Lout/arm-plat-vexpress/core-lib/libutils -lfdt -ltomcrypt -lmpa -lutils
/opt/cross/aarch64-linux-gnu/bin/../lib/gcc/aarch64-glibc-linux-gnu/6.2.1/libgcc.a
-o out/arm-plat-vexpress/core/init.o

And I could build without issue by removing --gc-sections.  I also could
reproduce it on master (64aaf98419a0485fe3490dfb53417ac9958c7327).

[1] https://bugs.linaro.org/show_bug.cgi?id=3006

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]