[packages/busybox] fix build with glibc after dropping rpc

atler atler at pld-linux.org
Mon Dec 7 01:21:15 CET 2020


commit 6648e38361034b959c2591f61b3f87e251b1ced4
Author: Jan Palus <atler at pld-linux.org>
Date:   Mon Dec 7 00:17:31 2020 +0000

    fix build with glibc after dropping rpc
    
    ...at least when libtirpc is not linked against heimdal

 busybox-initrd.config |  1 -
 busybox.config        |  1 -
 busybox.spec          | 32 +++++++++++++++++++++++++++-----
 3 files changed, 27 insertions(+), 7 deletions(-)
---
diff --git a/busybox.spec b/busybox.spec
index f5275b2..30bae8c 100644
--- a/busybox.spec
+++ b/busybox.spec
@@ -64,12 +64,17 @@ URL:		http://www.busybox.net/
 BuildRequires:	gcc >= 3.2
 BuildRequires:	perl-tools-pod
 BuildRequires:	rpmbuild(macros) >= 1.652
+%if %{with glibc}
+BuildRequires:	libtirpc-devel
+BuildRequires:	pkgconfig
+%endif
 %if %{with initrd} || %{with static}
 	%if %{with dietlibc}
 BuildRequires:	dietlibc-static
 	%else
 		%if %{with glibc}
 BuildRequires:	glibc-static
+BuildRequires:	libtirpc-static
 		%else
 %if "%{_target_base_arch}" != "%{_host_base_arch}"
 BuildRequires:	cross%{_target_base_arch}-uClibc-static
@@ -99,6 +104,16 @@ BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define		filterout_ld	-Wl,-z,(combreloc|relro)
 
+%if %{with glibc}
+%define		tirpccflags	%(pkg-config --cflags libtirpc)
+%if %{with initrd} || %{with static}
+%define		tirpcslibs	%(pkg-config --libs --static libtirpc|sed s/-l//g)
+%endif
+%if %{with dynamic}
+%define		tirpcdlibs	%(pkg-config --libs libtirpc|sed s/-l//g)
+%endif
+%endif
+
 %description
 BusyBox combines tiny versions of many common UNIX utilities into a
 single small executable. It provides minimalist replacements for most
@@ -175,10 +190,11 @@ Statycznie skonsolidowany busybox dla initrd.
 install -d built
 %if %{with initrd}
 install %{SOURCE2} .config
+echo 'CONFIG_EXTRA_LDLIBS="%{?with_glibc:%{tirpcslibs}}"' >> .config
 %{__make} oldconfig
 %{__make} \
 	%{?with_verbose:V=1} \
-	EXTRA_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
+	EXTRA_CFLAGS="%{rpmcflags} %{?with_glibc:%{tirpccflags}} -Os -D_BSD_SOURCE" \
 	EXTRA_LDFLAGS="%{rpmldflags} -static -Wl,-z,noexecstack" \
 %if %{with dietlibc}
 	LIBRARIES="-lrpc" \
@@ -199,17 +215,17 @@ mv -f busybox built/busybox.initrd
 %{__make} clean
 %endif
 
+%if %{with static}
 %if %{with altconfig}
 install %{SOURCE3} .config
 %else
 install %{SOURCE1} .config
+echo 'CONFIG_EXTRA_LDLIBS="%{?with_glibc:%{tirpcslibs}}"' >> .config
 %endif
-
-%if %{with static}
 %{__make} oldconfig
 %{__make} \
 	%{?with_verbose:V=1} \
-	EXTRA_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
+	EXTRA_CFLAGS="%{rpmcflags} %{?with_glibc:%{tirpccflags}} -Os -D_BSD_SOURCE" \
 	EXTRA_LDFLAGS="%{rpmldflags} -static -Wl,-z,noexecstack" \
 %if %{with dietlibc}
 	LIBRARIES="-lrpc" \
@@ -231,11 +247,17 @@ mv -f busybox built/busybox.static
 %endif
 
 %if %{with dynamic}
+%if %{with altconfig}
+install %{SOURCE3} .config
+%else
+install %{SOURCE1} .config
+echo 'CONFIG_EXTRA_LDLIBS="%{?with_glibc:%{tirpcdlibs}}"' >> .config
+%endif
 %{__make} oldconfig
 %{__make} \
 	%{?with_verbose:V=1} \
 	%{CrossOpts} \
-	EXTRA_CFLAGS="%{rpmcflags}" \
+	EXTRA_CFLAGS="%{rpmcflags} %{?with_glibc:%{tirpccflags}}" \
 	EXTRA_LDFLAGS="%{rpmldflags} -Wl,-z,noexecstack" \
 	CC="%{__cc}"
 %{__make} busybox.links docs/busybox.1
diff --git a/busybox-initrd.config b/busybox-initrd.config
index 824c4d2..365d3c9 100644
--- a/busybox-initrd.config
+++ b/busybox-initrd.config
@@ -61,7 +61,6 @@ CONFIG_CROSS_COMPILER_PREFIX=""
 CONFIG_SYSROOT=""
 CONFIG_EXTRA_CFLAGS=""
 CONFIG_EXTRA_LDFLAGS=""
-CONFIG_EXTRA_LDLIBS=""
 
 #
 # Debugging Options
diff --git a/busybox.config b/busybox.config
index 1a1ca11..da42d3f 100644
--- a/busybox.config
+++ b/busybox.config
@@ -66,7 +66,6 @@ CONFIG_CROSS_COMPILER_PREFIX=""
 CONFIG_SYSROOT=""
 CONFIG_EXTRA_CFLAGS=""
 CONFIG_EXTRA_LDFLAGS=""
-CONFIG_EXTRA_LDLIBS=""
 
 #
 # Debugging Options
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/busybox.git/commitdiff/6648e38361034b959c2591f61b3f87e251b1ced4



More information about the pld-cvs-commit mailing list