bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/27495] -z start_stop_gc isn't compatible with --gc-sections


From: i at maskray dot me
Subject: [Bug ld/27495] -z start_stop_gc isn't compatible with --gc-sections
Date: Tue, 02 Mar 2021 02:08:46 +0000

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

--- Comment #3 from Fangrui Song <i at maskray dot me> ---
(In reply to H.J. Lu from comment #2)
> FAIL: ld-elf/pr21562a
> FAIL: ld-elf/pr21562b

Expected. __start_scnfoo references do not retain scnfoo input sections.

> FAIL: ld-elf/pr21562c
> FAIL: ld-elf/pr21562d

Expected. Use KEEP(*(scnfoo)) to mark scnfoo as GC roots.

> FAIL: ld-elf/pr21562i
> FAIL: ld-elf/pr21562j
> FAIL: ld-elf/pr21562k
> FAIL: ld-elf/pr21562l
> FAIL: ld-elf/pr21562m
> FAIL: ld-elf/pr21562n

These reuse the other .s files.

> So this option generates broken outputs by design.  I don't this is a good 
> idea.

I don't think so. I have performed a large scale test internally, everything
except Swift and systemd works.

> Instead, LLVM should generate __gc_start/__gc_stop instead of __start/__stop.

If __start_/__stop_ were broken, creating new magic symbols might be an option.

__start_/__stop_ work in 99.9% cases so not sure new symbols need to be
invented.


bug 27492 tracks the glibc static linking issue related to stdio flushing.

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