[Bug ld/27259] ld: Support SHF_LINK_ORDER self-link

2021-02-05 Thread i at maskray dot me
https://sourceware.org/bugzilla/show_bug.cgi?id=27259

--- Comment #9 from Fangrui Song  ---
(In reply to Alan Modra from comment #7)
> How exactly is the proposed SHF_LINK_ORDER trick supposed to work?  A
> reference to start_foo/stop_foo symbols from a kept section currently marks
> all input sections named foo as kept.  Are you suggesting that any section
> named foo that is SHF_LINK_ORDER with a self-link should not be marked?  But
> those foo that do not have a self-link should be marked?
> 
> Has there been any comment about this idea from the gABI group?

Started https://groups.google.com/g/generic-abi/c/LxmRJRBBbHk
"__start_/__stop_ symbols and GC".
No response yet.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug gas/27355] New: SEGFAULT in dwarf2dbg.c

2021-02-05 Thread sirus.shahini at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=27355

Bug ID: 27355
   Summary: SEGFAULT in dwarf2dbg.c
   Product: binutils
   Version: 2.37 (HEAD)
Status: UNCONFIRMED
  Severity: critical
  Priority: P2
 Component: gas
  Assignee: unassigned at sourceware dot org
  Reporter: sirus.shahini at gmail dot com
  Target Milestone: ---

Created attachment 13203
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13203&action=edit
Sample input

Hello,

Our fuzzer detected another pointer corruption in "allocate_filename_to_slot()"
function. A sample crashing input with null address dereference has been
attached. Assemble with 'as'. No specific option is required for reproducing
the bug. Our investigation suggests this is a critical bug.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug binutils/27349] ar breaks symlinks

2021-02-05 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=27349

--- Comment #1 from cvs-commit at gcc dot gnu.org  ---
The master branch has been updated by Alan Modra :

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=51a25252814f8b6f88ff5999a091e47ca1dbdeb9

commit 51a25252814f8b6f88ff5999a091e47ca1dbdeb9
Author: Alan Modra 
Date:   Fri Feb 5 22:33:08 2021 +1030

PR27349, ar breaks symlinks

PR 27349
* rename.c (smart_rename): Test for existence and type of output
file with lstat.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug binutils/27349] ar breaks symlinks

2021-02-05 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=27349

Alan Modra  changed:

   What|Removed |Added

   Assignee|siddhesh at sourceware dot org |amodra at gmail dot com
 Resolution|--- |FIXED
 Status|NEW |RESOLVED
   Target Milestone|--- |2.37

--- Comment #2 from Alan Modra  ---
Fixed mainline.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug binutils/27348] obsolete Xcustom support in riscv port

2021-02-05 Thread wilson at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=27348

Jim Wilson  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Jim Wilson  ---
Mark as resolved/fixed as it is fixed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug gold/26678] construction vtable defined in a discarded section

2021-02-05 Thread ccoutant at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=26678

Cary Coutant  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |NOTABUG

--- Comment #1 from Cary Coutant  ---
This appears to be a bug in GCC, but the inline asm, being outside the ABI,
could simply render this an unfortunate incompatibility between GCC and Clang.

The problem is that the inline asm is making GCC think that ~A::A() can
raise an exception, so it creates compensation code in D::D(), which
requires a construction vtable for B-in-C, which gets added to the COMDAT
group that also contains the vtable for C (_ZV1C).

Here's the code GCC generates for D::D(), from a.o:

0002 <_ZN1DC1E1C>:
   2:   48 83 ec 18 sub$0x18,%rsp
   6:   48 8b 06mov(%rsi),%rax
   9:   48 8b 40 e8 mov-0x18(%rax),%rax
   d:   8b 04 06mov(%rsi,%rax,1),%eax
  10:   89 44 24 08 mov%eax,0x8(%rsp)
  14:   48 8b 05 00 00 00 00mov0x0(%rip),%rax# 1b
<_ZN1DC1E1C+0x19>
17: R_X86_64_REX_GOTPCRELX  _ZTV1C-0x4
  1b:   48 8d 40 18 lea0x18(%rax),%rax
  1f:   48 89 04 24 mov%rax,(%rsp)
  23:   48 89 e7mov%rsp,%rdi
  26:   e8 00 00 00 00  callq  2b <_ZN1DC1E1C+0x29>
27: R_X86_64_PLT32  _Z1f1C-0x4
  2b:   eb 17   jmp44 <_ZN1DC1E1C+0x42>
  2d:   48 89 c7mov%rax,%rdi
  30:   48 8d 05 00 00 00 00lea0x0(%rip),%rax# 37
<_ZN1DC1E1C+0x35>
33: R_X86_64_PC32   _ZTC1C0_1B+0x14
  37:   48 89 04 24 mov%rax,(%rsp)
  3b:   89 44 24 08 mov%eax,0x8(%rsp)
  3f:   e8 00 00 00 00  callq  44 <_ZN1DC1E1C+0x42>
40: R_X86_64_PLT32  _Unwind_Resume-0x4
  44:   48 83 c4 18 add$0x18,%rsp
  48:   c3  retq   

The code from offset 0x2d through the callq at 0x3f is the compensation code
generated if an exception happens during the call of f(c). Without that inline
asm, GCC would have generated the same code as clang, with no compensation code
and no construction vtable necessary.

Compile with --no-exceptions, and the problem also goes away.

I see the same problem whether compiling a.cpp at -O0, -O1, -O2, or -O3.

At least GCC is consistent when compiling a.cpp and main.cpp, so it could
be argued that this case simply isn't covered by the C++ ABI, and GCC and
Clang are free to treat it differently. I made some trivial attempts to
reproduce with something other than inline asm, but could not.

As for why you're getting an error from gold, but not from bfd or lld,
gold is reporting what could have been a real error, though in this
particular case, since an exception could never have been thrown,
the compensation code would never have executed. But when you link with
bfd ld or lld, the lea instruction at 0x2d is left unrelocated, with no
warning, and the program could conceivably crash in the case of an
exception being thrown during the call to f().

-- 
You are receiving this mail because:
You are on the CC list for the bug.