Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Aug 2020 15:28:04 +0000
From:      bugzilla-noreply@freebsd.org
To:        toolchain@FreeBSD.org
Subject:   [Bug 246322] ld.bfd error on releng/11.4 confuses many autoconf scripts
Message-ID:  <bug-246322-29464-DdNmZi01A3@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-246322-29464@https.bugs.freebsd.org/bugzilla/>
References:  <bug-246322-29464@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D246322

--- Comment #14 from Conrad Meyer <cem@freebsd.org> ---
Could the cflags be more constrained to the specific problematic CUs?  For =
gcc
crt (probably dead now?), the exclusion should only be needed for crtend.o/=
So.=20
That could either be a Makefile change, or we could #if 0 these lines from
crtstuff.c?

=20
https://svnweb.freebsd.org/base/head/contrib/gcc/crtstuff.c?revision=3D1696=
90&view=3Dmarkup&pathrev=3D209294#l483
 (inside a defined(CRT_END) section starting at line 446).

For llvm csu, the issue reported was specific to i386 crt1.o; globally
disabling unwind seems heavy-handed.  Ideally we get a _start frame on i386,
but as a first step we should undisable these frames on !i386.

I don't see any obvious reason llvm csu would actually emit any special
last-CIE eh_frame value for i386; unlike the GNU one above, there isn't any
eh_frame section symbol with magic zero value in any of the lib/csu code.  =
The
weirdest thing about i386 crt1.o is that it has two DW_TAG_compile_units and
also two CIEs.

Supposing that is ld.bfd's problem, could crt1 be a .a?

Alternatively, we could disable the unwind directives in crt1_s.S, keeping
unwind directives for the rest of crt1.o (_start1, etc).  We'd lose _start,=
 but
still have a _start1 frame below main.

(There is a special __EH_FRAME_LIST_END__ in
contrib/llvm-project/compiler-rt/lib/crt/crtend.c, but as far as I can tell=
 we
don't build that file into userspace anywhere and it wouldn't be impacted by
lib/csu/Makefile.inc CFLAGS.  We use the one in lib/csu/common/crtend.c.)

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-246322-29464-DdNmZi01A3>