[PATCH v1] GAS: Keep symbols in their own section [PR27566]
Xiao Zeng
zengxiao@eswincomputing.com
Wed Oct 23 07:04:27 GMT 2024
More information about the Binutils mailing list
Wed Oct 23 07:04:27 GMT 2024
- Previous message (by thread): [PATCH v1] GAS: Keep symbols in their own section [PR27566]
- Next message (by thread): [PATCH v1] GAS: Keep symbols in their own section [PR27566]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2024-10-23 14:45 Xiao Zeng <zengxiao@eswincomputing.com> wrote: > >2024-10-23 12:43 Alan Modra <amodra@gmail.com> wrote: >> >>On Tue, Oct 22, 2024 at 05:43:18PM +0800, Xiao Zeng wrote: >>> PR27566 is categorized under ld: >>> <https://sourceware.org/bugzilla/show_bug.cgi?id=27566> >>> but the root cause of this issue is in gas. >>> >>> The following assembly example is provided: >>> .section .rodata >>> .globl Sym >>> .type Sym, @object >>> .set Sym, . + 0x1200 >>> .size Sym, 8 >>> >>> readelf reads ELF information: >>> Section Headers: >>> [Nr] Name Type Address Off Size ES Flg Lk Inf Al >>> [ 4] .rodata PROGBITS 0000000000000000 000040 000000 00 A 0 0 1 >>> >>> Symbol table '.symtab' contains 7 entries: >>> Num: Value Size Type Bind Vis Ndx Name >>> 6: 0000000000001200 8 OBJECT GLOBAL DEFAULT 4 Sym >>> >>> The Sym belongs to the .rodata section, but the size of .rodata is 0. >> >>It is not unreasonable to define a symbol relative to some section >>with a value outside of the section. Automatically extending a >>section to enclose a symbol should only happen in special cases. >>Patch rejected. >> >>-- >>Alan Modra > >Dear maintainer, thank you for your reply. I think I should provide more detailed information: >The test case <abs-run.c> is in: ><https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-run.c;h=f3be58ec4938e1ae8b125da3e6796f8e448b04df;hb=ee030b28004eade3da872e7ae62a526a2940a705> > >1 Compilation command: >riscv64-unknown-elf-gcc \ >-fno-schedule-insns -mcmodel=medlow -march=rv64gcv_zvfh -mabi=lp64d \ >-O3 -mrvv-max-lmul=m4 -mrvv-vector-bits=zvl -ffast-math \ >-fdata-sections abs-run.c -S -o abs-run.c.upstream.s > The key assembly information is: .section .rodata .align 3 .set .LANCHOR0,. + 0 .set .LANCHOR1,. + 4096 >Compiler version information: >Supported LTO compression algorithms: zlib >gcc version 15.0.0 20240912 (experimental) (g3f212eabbba-dirty) > >2 Assembly command: >riscv64-unknown-elf-as abs-run.c.upstream.s -o abs-run.c.upstream.s.o > >3 readelf outputs the information: >riscv64-unknown-elf-readelf -SsW abs-run.c.upstream.o > abs-run.c.upstream.o.txt > >Section Headers: > [Nr] Name Type Address Off Size ES Flg Lk Inf Al > [ 9] .rodata PROGBITS 0000000000000000 000c78 000d80 00 A 0 0 8 > >Symbol table '.symtab' contains 110 entries: > Num: Value Size Type Bind Vis Ndx Name > 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND > 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS abs-run.c > 12: 0000000000000000 0 NOTYPE LOCAL DEFAULT 9 .LANCHOR0 > 13: 0000000000001000 0 NOTYPE LOCAL DEFAULT 9 .LANCHOR1 > >This situation, where a symbol is in a section but the section's size is insufficient to contain the symbol, does exist. > >Thanks >Xiao Zeng > Thanks Xiao Zeng
- Previous message (by thread): [PATCH v1] GAS: Keep symbols in their own section [PR27566]
- Next message (by thread): [PATCH v1] GAS: Keep symbols in their own section [PR27566]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list