[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gold/24123] incremental_copy_test failure when building with gcc-9
From: |
saldivarcher at gmail dot com |
Subject: |
[Bug gold/24123] incremental_copy_test failure when building with gcc-9 |
Date: |
Sun, 09 Feb 2020 04:19:46 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=24123
Miguel Saldivar <saldivarcher at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |saldivarcher at gmail dot com
--- Comment #3 from Miguel Saldivar <saldivarcher at gmail dot com> ---
The issue comes from `.rodata` section, as it isn't directly emitted in gcc-9,
when using the `-fmerge-constants` flag.
Looking at copy_test_v1.o, produced by gcc-9:
$ readelf --sections copy_test_v1.o
...
[ 7] .rodata.str1.1
PROGBITS 0000000000000000 0000000000000100 0
000000000000002a 0000000000000001 0 1
[0000000000000032]: ALLOC, MERGE, STRINGS
[ 8] .rodata.str1.8
PROGBITS 0000000000000000 0000000000000130 0
0000000000000065 0000000000000001 0 8
[0000000000000032]: ALLOC, MERGE, STRINGS
...
Now one by gcc-8:
$ readelf --sections copy_test_v1.o
...
[ 7] .rodata.str1.8
PROGBITS 0000000000000000 0000000000000100 0
000000000000004c 0000000000000001 0 8
[0000000000000032]: ALLOC, MERGE, STRINGS
[ 8] .rodata.str1.1
PROGBITS 0000000000000000 000000000000014c 0
000000000000001f 0000000000000001 0 1
[0000000000000032]: ALLOC, MERGE, STRINGS
[ 9] .rodata
PROGBITS 0000000000000000 0000000000000170 0
000000000000000b 0000000000000000 0 8
[0000000000000002]: ALLOC
...
This is the output of `gold` using the `--debug=incremental` flag on the gcc-9
object:
gcctestdir/collect-ld: Free_list::allocate(00000018, 8, 00000540)
gcctestdir/collect-ld: set_section_list_addresses: 00000540 00000018 .rela.plt
gcctestdir/collect-ld: set_section_list_addresses: 000005a8 0000001b .init
gcctestdir/collect-ld: set_section_list_addresses: 000005d0 00000020 .plt
gcctestdir/collect-ld: set_section_list_addresses: 000005f0 00000470 .text
gcctestdir/collect-ld: set_section_list_addresses: 00000a60 0000000d .fini
gcctestdir/collect-ld: set_section_list_addresses: 000001c8 0000001c .interp
gcctestdir/collect-ld: set_section_list_addresses: 00000a70 00000130 .rodata
gcctestdir/collect-ld: set_section_list_addresses: 00000ba0 000000e4 .eh_frame
gcctestdir/collect-ld: Free_list::allocate(00000092, 8, 00000a6d)
gcctestdir/collect-ld: set_section_list_addresses: 00000c88 00000092 .rodata
gcctestdir/collect-ld: Free_list::allocate(00000200, 8, 00000d1a)
gcctestdir/collect-ld: set_section_list_addresses: 00001ad8 00000200 .dynamic
gcctestdir/collect-ld: set_section_list_addresses: 00000eb8 00000040 .got
gcctestdir/collect-ld: set_section_list_addresses: 00000ef8 00000020 .got.plt
gcctestdir/collect-ld: set_section_list_addresses: 00000f18 00000030 .data
gcctestdir/collect-ld: set_section_list_addresses: 00000f48 00000000
.tm_clone_table
gcctestdir/collect-ld: set_section_list_addresses: 00000f48 00000008
.fini_array
gcctestdir/collect-ld: set_section_list_addresses: 00000f50 00000008
.init_array
gcctestdir/collect-ld: internal error in set_section_addresses, at
/mnt/hdd/hdd_workspace/binutils-project/build/gold/../../binutils-gdb/gold/output.cc:4453
collect2: error: ld returned 1 exit status
The output using the same flag on `gold`, but instead using the gcc-8 object:
gcctestdir/collect-ld: Free_list::allocate(00000018, 8, 00000540)
gcctestdir/collect-ld: set_section_list_addresses: 00000540 00000018 .rela.plt
gcctestdir/collect-ld: set_section_list_addresses: 000005a8 0000001b .init
gcctestdir/collect-ld: set_section_list_addresses: 000005d0 00000020 .plt
gcctestdir/collect-ld: set_section_list_addresses: 000005f0 00000470 .text
gcctestdir/collect-ld: set_section_list_addresses: 00000a60 0000000d .fini
gcctestdir/collect-ld: set_section_list_addresses: 000001c8 0000001c .interp
gcctestdir/collect-ld: set_section_list_addresses: 00000a70 00000108 .rodata
gcctestdir/collect-ld: set_section_list_addresses: 00000b78 000000e4 .eh_frame
gcctestdir/collect-ld: Free_list::allocate(00000200, 8, 00000c5c)
gcctestdir/collect-ld: set_section_list_addresses: 00000c60 00000200 .dynamic
gcctestdir/collect-ld: set_section_list_addresses: 00000e90 00000040 .got
gcctestdir/collect-ld: set_section_list_addresses: 00000ed0 00000020 .got.plt
gcctestdir/collect-ld: set_section_list_addresses: 00000ef0 00000030 .data
gcctestdir/collect-ld: set_section_list_addresses: 00000f20 00000000
.tm_clone_table
gcctestdir/collect-ld: set_section_list_addresses: 00000f20 00000008
.fini_array
gcctestdir/collect-ld: set_section_list_addresses: 00000f28 00000008
.init_array
gcctestdir/collect-ld: set_section_list_addresses: 00000f30 00000030 .bss
The gcc-9 object output shows two `.rodata` sections being created, and this
seems to be the underlying issue.
--
You are receiving this mail because:
You are on the CC list for the bug.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug gold/24123] incremental_copy_test failure when building with gcc-9,
saldivarcher at gmail dot com <=