Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Aug 2021 12:07:39 -0400
From:      Ed Maste <emaste@freebsd.org>
To:        "freebsd-toolchain@FreeBSD.org" <freebsd-toolchain@freebsd.org>,  FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Compressed debug info sections and big-endian targets
Message-ID:  <CAPyFy2DkabryYfyPhPfzRg1fXQx47488NTh%2BOUOdDNuqNR37MQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
GCC and Clang/LLVM support coimpressed debug info, which compresses
the .debug_* ELF sections in objects, archives, libraries, and
executables. I recently committed build infrastructure changes to turn
this on (c910570e7573) but it broke the build on big-endian targets
(mips, powerpc) and so disabled it again (89ed2ecb14ce). PR257638 has
more details.

The lld bug is now fixed in main thanks to Simon Atanasyan upstream
and dim@ for merging it over (d69d07569ee2), and I would like to
enable it again.

An outstanding issue is that the bug is triggered by the linker's
input, and so this will occur if we attempt to link against a base
system .a archive using a buggy lld. In the short term I think we have
no choice but to leave compressed debug disabled on BE targets, until
fixed lld versions are available in ports/packages.

I have a review open to enable it for LE targets only:
https://reviews.freebsd.org/D31454.

I'd like to apply that change for now, but would like to enable
compressed debug across all targets in the future. This would break,
on big-endian targets, any port that has a build-dependency on an
older lld and links against a base system archive. Such a port could
be fixed by switching to linking with binutils ld, or lld from the
base system or a newer package. What do big-endian mips or powerpc
users think?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPyFy2DkabryYfyPhPfzRg1fXQx47488NTh%2BOUOdDNuqNR37MQ>