From 63cc2e9d512c36ca662f0af2411395b935fa82a7 Mon Sep 17 00:00:00 2001 From: Slava Barinov Date: Wed, 21 Apr 2021 11:46:03 +0300 Subject: [PATCH] Add whole glibc and libgcc contents to qemu-accel These libraries could be used by some tools, like CoreCLR build tools, but they are not included by default and therefore make build impossible. Change-Id: I0d91b64546bedca92277292851ccb6511936ad03 Signed-off-by: Slava Barinov --- packaging/qemu-accel-aarch64.spec | 9 ++++++++- packaging/qemu-accel-armv7hl.spec | 9 ++++++++- packaging/qemu-accel-armv7l.spec | 9 ++++++++- packaging/qemu-accel.spec.in | 9 ++++++++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/packaging/qemu-accel-aarch64.spec b/packaging/qemu-accel-aarch64.spec index 583faa7..1c9c9fb 100644 --- a/packaging/qemu-accel-aarch64.spec +++ b/packaging/qemu-accel-aarch64.spec @@ -165,7 +165,14 @@ host_python="python$(python --version 2>&1 | sed -ne '1s/.* //p' | head -c 3)" # Emul path inside buildroot for installation buildroot_emul_path=%{buildroot}%{emul_path} -binaries="%{_libdir}/libnsl.so.1 %{_libdir}/libnss_compat.so.2" # loaded via dlopen by glibc +# Collect all shared objects from glibc and libgcc +# excluding RTLD since it's processed in another way later +for lib in $(rpm -ql glibc) \ + $(rpm -ql libgcc) +do + [[ "$lib" =~ .*\.so(\.[[:digit:]]+)?$ && ! "$lib" =~ /ld- ]] && binaries="$binaries $lib" +done + %ifarch %ix86 LD="/%{_lib}/ld-linux.so.2" %endif diff --git a/packaging/qemu-accel-armv7hl.spec b/packaging/qemu-accel-armv7hl.spec index 1adabe6..ecdb4d6 100644 --- a/packaging/qemu-accel-armv7hl.spec +++ b/packaging/qemu-accel-armv7hl.spec @@ -165,7 +165,14 @@ host_python="python$(python --version 2>&1 | sed -ne '1s/.* //p' | head -c 3)" # Emul path inside buildroot for installation buildroot_emul_path=%{buildroot}%{emul_path} -binaries="%{_libdir}/libnsl.so.1 %{_libdir}/libnss_compat.so.2" # loaded via dlopen by glibc +# Collect all shared objects from glibc and libgcc +# excluding RTLD since it's processed in another way later +for lib in $(rpm -ql glibc) \ + $(rpm -ql libgcc) +do + [[ "$lib" =~ .*\.so(\.[[:digit:]]+)?$ && ! "$lib" =~ /ld- ]] && binaries="$binaries $lib" +done + %ifarch %ix86 LD="/%{_lib}/ld-linux.so.2" %endif diff --git a/packaging/qemu-accel-armv7l.spec b/packaging/qemu-accel-armv7l.spec index 08bcb66..98d0dc1 100644 --- a/packaging/qemu-accel-armv7l.spec +++ b/packaging/qemu-accel-armv7l.spec @@ -165,7 +165,14 @@ host_python="python$(python --version 2>&1 | sed -ne '1s/.* //p' | head -c 3)" # Emul path inside buildroot for installation buildroot_emul_path=%{buildroot}%{emul_path} -binaries="%{_libdir}/libnsl.so.1 %{_libdir}/libnss_compat.so.2" # loaded via dlopen by glibc +# Collect all shared objects from glibc and libgcc +# excluding RTLD since it's processed in another way later +for lib in $(rpm -ql glibc) \ + $(rpm -ql libgcc) +do + [[ "$lib" =~ .*\.so(\.[[:digit:]]+)?$ && ! "$lib" =~ /ld- ]] && binaries="$binaries $lib" +done + %ifarch %ix86 LD="/%{_lib}/ld-linux.so.2" %endif diff --git a/packaging/qemu-accel.spec.in b/packaging/qemu-accel.spec.in index 3f8eaea..0767396 100644 --- a/packaging/qemu-accel.spec.in +++ b/packaging/qemu-accel.spec.in @@ -162,7 +162,14 @@ host_python="python$(python --version 2>&1 | sed -ne '1s/.* //p' | head -c 3)" # Emul path inside buildroot for installation buildroot_emul_path=%{buildroot}%{emul_path} -binaries="%{_libdir}/libnsl.so.1 %{_libdir}/libnss_compat.so.2" # loaded via dlopen by glibc +# Collect all shared objects from glibc and libgcc +# excluding RTLD since it's processed in another way later +for lib in $(rpm -ql glibc) \ + $(rpm -ql libgcc) +do + [[ "$lib" =~ .*\.so(\.[[:digit:]]+)?$ && ! "$lib" =~ /ld- ]] && binaries="$binaries $lib" +done + %ifarch %ix86 LD="/%{_lib}/ld-linux.so.2" %endif -- 2.7.4