bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/25020] Report "sh_link of section ... points to discarded sectio


From: i at maskray dot me
Subject: [Bug ld/25020] Report "sh_link of section ... points to discarded section ..." for more input sections
Date: Mon, 23 Sep 2019 04:19:00 +0000

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

--- Comment #2 from Fangrui Song <i at maskray dot me> ---
I mean the error should probably be issued for any discarded section.


.globl _start
_start:
  call .foo1
  call baz0
  call baz1

.section .foo0,"a"
.byte 0
.section .foo1,"a"
.byte 0

## The linked-to section of the second input section is discarded.
.section .baz,"ao",@progbits,.foo1,unique,0
baz0:
.byte 0
.section .baz,"ao",@progbits,.foo0,unique,1
baz1:
.byte 1


% llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
% ld.bfd a.o --gc-sections -o a  # no error, but probably should have one.
% readelf -S a
# sh_link(.baz) = .foo1  ; it seems the first non-discarded input section is
picked.
...
Section Headers:                                                                
  [Nr] Name              Type            Address          Off    Size   ES Flg
Lk Inf Al                        
  [ 0]                   NULL            0000000000000000 000000 000000 00     
0   0  0                        
  [ 1] .note.gnu.property NOTE            0000000000400120 000120 000020 00   A
 0   0  8                       
  [ 2] .text             PROGBITS        0000000000401000 001000 00000f 00  AX 
0   0  4                        
  [ 3] .foo1             PROGBITS        0000000000402000 002000 000001 00   A 
0   0  1                       
  [ 4] .baz              PROGBITS        0000000000402001 002001 000002 00  AL 
3   0  1

The ELF spec does not seem to describe sh_link of the output section. GNU ld
appears to use the first non-discarded input section. This is fine (lld does
the same).

-- 
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]