git: eb90239d0886 - main - lib{c,thr}: add DT_RUNPATH for gcc -m32
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 19 Feb 2024 22:44:37 UTC
The branch main has been updated by brooks:
URL: https://cgit.FreeBSD.org/src/commit/?id=eb90239d08863bcff3cf82a556ad9d89776cdf3f
commit eb90239d08863bcff3cf82a556ad9d89776cdf3f
Author: Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2024-02-19 22:44:08 +0000
Commit: Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2024-02-19 22:44:08 +0000
lib{c,thr}: add DT_RUNPATH for gcc -m32
To allow gcc -m32 to work, link libc and libthr with --rpath-/usr/lib32.
When called with -m32, gcc is currently unable to communicate to
the bfd linker that it should look in /usr/lib32 to resolve needed (as
opposed to explicitly linked) libraries so we need to provide a hint.
See also: https://sourceware.org/bugzilla/show_bug.cgi?id=31395
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D43910
---
lib/libc/Makefile | 5 +++++
lib/libthr/Makefile | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/lib/libc/Makefile b/lib/libc/Makefile
index 41cf0f6de72a..aa6a737002c4 100644
--- a/lib/libc/Makefile
+++ b/lib/libc/Makefile
@@ -63,6 +63,11 @@ CFLAGS+= -ftls-model=initial-exec
LDFLAGS+= -nodefaultlibs
LIBADD+= compiler_rt
LIBADD+= sys
+.if defined(COMPAT_libcompat)
+# XXX: work around gcc -m32 + bfd ld path issue for DT_NEEDED symbols.
+# https://sourceware.org/bugzilla/show_bug.cgi?id=31395
+LDFLAGS+= -Wl,--rpath=/usr/lib${COMPAT_libcompat}
+.endif
LDFLAGS+=-Wl,--auxiliary,libsys.so.7
diff --git a/lib/libthr/Makefile b/lib/libthr/Makefile
index 325a320d55ec..46b547e8da85 100644
--- a/lib/libthr/Makefile
+++ b/lib/libthr/Makefile
@@ -8,6 +8,11 @@ PACKAGE= clibs
SHLIBDIR?= /lib
LIBADD= c sys
+.if defined(COMPAT_libcompat)
+# XXX: work around gcc -m32 + bfd ld path issue for DT_NEEDED symbols.
+# https://sourceware.org/bugzilla/show_bug.cgi?id=31395
+LDFLAGS+= -Wl,--rpath=/usr/lib${COMPAT_libcompat}
+.endif
.include <src.opts.mk>
MK_SSP= no