Public bug reported: gcc-aarch64-linux-gnu package in bionic has gcc version 7.2.0.
I have a bug with relocation symbols in this version. It seems to be fixed in gcc version 7.2.1 (tested with gcc-linaro-7.2.1-2017.11 toolchain). Could you please update the package? Thank you! Test case: ``` test.c struct ld_symbol; extern struct ld_symbol _test_start, _test_end; unsigned long long test(void) { unsigned long long test_start = (unsigned long long)&_test_start; unsigned long long test_end = (unsigned long long)&_test_end; return test_end - test_start; } ``` ``` script.ld OUTPUT_ARCH(aarch64) OUTPUT_FORMAT(elf64-littleaarch64) SECTIONS { _test_start = .; .text : { *(.text) } _test_end = .; . += 0xFFFF0000; } ``` Compile with: ``` aarch64-linux-gnu-gcc -O1 -c test.c -o test.o aarch64-linux-gnu-objdump -ld test.o aarch64-linux-gnu-ld -o test.elf -nostdlib --script script.ld --entry test test.o aarch64-linux-gnu-objdump -ld test.elf ``` Bad (current): ``` test.o: test(): 0: 90000001 adrp x1, 0 <_test_end> 4: f9400021 ldr x1, [x1] 8: 90000000 adrp x0, 0 <_test_start> c: f9400000 ldr x0, [x0] 10: cb000020 sub x0, x1, x0 14: d65f03c0 ret test.elf: test(): 0: 907fff81 adrp x1, ffff0000 <_test_end+0xfffeffe8> 4: f9401421 ldr x1, [x1, #40] 8: 907fff80 adrp x0, ffff0000 <_test_end+0xfffeffe8> c: f9401000 ldr x0, [x0, #32] 10: cb000020 sub x0, x1, x0 14: d65f03c0 ret ``` Good: ``` test(): 0: 90000001 adrp x1, 0 <_test_end> 4: 91000021 add x1, x1, #0x0 8: 90000000 adrp x0, 0 <_test_start> c: 91000000 add x0, x0, #0x0 10: cb000020 sub x0, x1, x0 14: d65f03c0 ret ``` ** Affects: gcc-defaults (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1739392 Title: [aarch64] wrong symbol address To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1739392/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs