On Wed, Oct 21, 2015 at 10:42 AM, Ilya Verbin <iver...@gmail.com> wrote: > On Wed, Oct 21, 2015 at 10:38:10 -0700, H.J. Lu wrote: >> On Wed, Oct 21, 2015 at 10:33 AM, Ilya Verbin <iver...@gmail.com> wrote: >> > H.J., >> > Maybe linker should print some warning about joining writable + nonwritable >> > sections? Here is a simple testcase: >> > >> > $ cat t1.s >> > .section ".AAA", "a" >> > .long 0x12345678 >> > $ cat t2.s >> > .section ".AAA", "wa" >> > .long 0x12345678 >> > $ as t1.s -o t1.o >> > $ as t2.s -o t2.o >> > $ ld -shared t1.o t2.o >> > $ ls -lh a.out >> > 2.1M a.out >> > >> >> Does linker make AAA writable? If yes, linker does what it >> is told. > > Yes, it makes it writable, but why it also makes this? > > [Nr] Name Type Address Offset > Size EntSize Flags Link Info Align > [ 0] NULL 0000000000000000 00000000 > 0000000000000000 0000000000000000 0 0 0 > [ 1] .hash HASH 00000000000000b0 000000b0 > 0000000000000028 0000000000000004 A 2 0 8 > [ 2] .dynsym DYNSYM 00000000000000d8 000000d8 > 0000000000000078 0000000000000018 A 3 2 8 > [ 3] .dynstr STRTAB 0000000000000150 00000150 > 0000000000000019 0000000000000000 A 0 0 1 > [ 4] .AAA PROGBITS 0000000000000169 00000169 > 0000000000000008 0000000000000000 WA 0 0 1 > [ 5] .eh_frame PROGBITS 0000000000000178 00000178 > 0000000000000000 0000000000000000 A 0 0 8 > [ 6] .dynamic DYNAMIC 0000000000200178 00200178 <-- ??? > 00000000000000b0 0000000000000010 WA 3 0 8 > [ 7] .shstrtab STRTAB 0000000000000000 00200380 > 0000000000000049 0000000000000000 0 0 1 > [ 8] .symtab SYMTAB 0000000000000000 00200228 > 0000000000000120 0000000000000018 9 9 8 > [ 9] .strtab STRTAB 0000000000000000 00200348 > 0000000000000038 0000000000000000 0 0 1 >
Linker groups input sections by section name and ors section flags. -- H.J.