1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-23 04:23:08 +00:00

Be more careful about what and how we link.

Only link what we need (--as-needed) to get unnecessary dependencies
out of the executables.

Be sure to properly link libc dynamically and the rest statically,
especially libgcc (-static-libgcc, should fix powerpc* builds => [1])

After two years, drop the "for now" LLD_UNSAFE=yes (r457508 by emaste@).

As e2fsprogs dlopen()s libmagic these days, our LIBMAGIC override is
useless.  Instead patch libmagic.so.1 -> libmagic.so (12.1 calls it
libmagic.so.4; patch to lib/support/plausible.c).

Refresh files/patch-misc__Makefile.in

PR:		242798 [1]
This commit is contained in:
Matthias Andree 2020-02-03 00:34:15 +00:00
parent 1634663369
commit 0346c473f7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=525006
3 changed files with 22 additions and 10 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= e2fsprogs
PORTVERSION= 1.45.5
PORTREVISION?= 2
PORTREVISION?= 3
CATEGORIES?= sysutils
MASTER_SITES= KERNEL_ORG/linux/kernel/people/tytso/${PORTNAME}/v${PORTVERSION}
@ -28,7 +28,6 @@ USE_CSTD= gnu99
USE_LDCONFIG= ${PREFIX}/lib/e2fsprogs
.endif
GNU_CONFIGURE= yes
LLD_UNSAFE= yes
# while we use the system blkid, we need to --enable-libblkid
# so that the tools get built:
@ -43,7 +42,7 @@ CONFIGURE_ARGS?=--disable-fsck \
--with-root-prefix='${PREFIX}' \
--without-included-gettext \
LDFLAGS='${LDFLAGS} -L${LOCALBASE}/lib -Wl,--rpath -Wl,${LOCALBASE}/lib/e2fsprogs'
CONFIGURE_ENV?= LIBS='${LIBS} -lexecinfo -lelf'
CONFIGURE_ENV?= LIBS='-Wl,--as-needed ${LIBS} -lexecinfo -lelf'
CPPFLAGS+= -I${WRKSRC}/lib -I${LOCALBASE}/include # -D_EXT2_USE_C_VERSIONS
MAKE_ARGS+= pkgconfigdir='${PREFIX}/libdata/pkgconfig'
MAKE_ENV+= CHECK_CMD=@true
@ -79,7 +78,7 @@ LIB_DEPENDS+= libss.so:devel/e2fsprogs-libss
LIB_DEPENDS+= libuuid.so:misc/e2fsprogs-libuuid
LIBUNWIND_LIB_DEPENDS= libunwind.so:devel/libunwind
LIBUNWIND_LIBS+= -lunwind
LIBUNWIND_LIBS+= -L${LOCALBASE}/lib -lunwind
LIBUNWIND_LDFLAGS+= -rdynamic
LIBUNWIND_EXTRA_PATCHES=${FILESDIR}/extrapatch-e2fsck_sigcatcher.c
@ -247,12 +246,14 @@ post-build:
# system are statically linked against anything that is outside the root fs,
# else we're in trouble if e2fsck is needed for boot:
# (we don't use e2fsck.static, since we can link libc.so dynamically)
# NOTE: we need to link libgcc statically, it might be under /usr/local!
# => do not add a -Bdynamic - but instead list the dynamic libraries
# before the -Bstatic
cd ${WRKSRC}/e2fsck && ${RM} -f e2fsck \
&& ${MAKE_CMD} e2fsck V=1 \
LIBS="../lib/libsupport.a ../lib/libext2fs.a ../lib/libcom_err.a \
LIBS="-static-libgcc -lc -Bstatic ../lib/libsupport.a ../lib/libext2fs.a ../lib/libcom_err.a \
${_staticlibs} /usr/lib/libexecinfo.a /usr/lib/libelf.a \
${LOCALBASE}/lib/libblkid.a ${LOCALBASE}/lib/libuuid.a ${libintl} ../lib/libe2p.a" \
LIBMAGIC=/usr/lib/libmagic.a\ -lz
${LOCALBASE}/lib/libblkid.a ${LOCALBASE}/lib/libuuid.a ${libintl} ../lib/libe2p.a "
# Regression check: avoid a port (not upstream!) regression from 1.40.5,
# check that e2fsck isn't dynalinked against anything but libc.so:
@${ECHO_CMD} -n "===> checking that e2fsck depends on no shared objects outside /lib: "

View File

@ -0,0 +1,11 @@
--- lib/support/plausible.c.orig 2020-01-06 23:10:17 UTC
+++ lib/support/plausible.c
@@ -62,7 +62,7 @@ static void *magic_handle;
static int magic_library_available(void)
{
if (!magic_handle) {
- magic_handle = dlopen("libmagic.so.1", RTLD_NOW);
+ magic_handle = dlopen("libmagic.so", RTLD_NOW);
if (!magic_handle)
return 0;

View File

@ -1,4 +1,4 @@
--- misc/Makefile.in.orig 2019-07-15 01:03:14 UTC
--- misc/Makefile.in.orig 2020-01-06 23:10:17 UTC
+++ misc/Makefile.in
@@ -34,17 +34,17 @@ INSTALL = @INSTALL@
@ -23,7 +23,7 @@
UMANPAGES+= @FUSE_CMT@ fuse2fs.1
LPROGS= @E2INITRD_PROG@
@@ -146,14 +146,14 @@ profiled:
@@ -147,14 +147,14 @@ profiled:
mke2fs.conf: $(srcdir)/mke2fs.conf.in
if test -f $(srcdir)/mke2fs.conf.custom.in ; then \
@ -41,7 +41,7 @@
> default_profile.c
findsuper: findsuper.o
$(E) " LD $@"
@@ -600,34 +600,9 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
@@ -605,34 +605,9 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
(cd $(DESTDIR)$(man5dir); \
$(LN) $(LINK_INSTALL_FLAGS) ext4.5 $$i.5); \
done