From 64d489ff04ef0d400d2be4f663fca16ec5155c4b Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Tue, 1 Apr 2025 11:33:11 +0200 Subject: [PATCH] Update riscv64 handling The /usr/lib64/lp64d symlink is part of the filesystem package starting with version 3.18-39, so we no longer need (or want) to handle it here. This means that we can drop all existing symlink handling and replace it with a file move operation. Thanks: David Abdurachmanov Signed-off-by: Andrea Bolognani --- glibc.spec | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/glibc.spec b/glibc.spec index a6e5f3f..820e3ac 100644 --- a/glibc.spec +++ b/glibc.spec @@ -145,7 +145,7 @@ Version: %{glibcversion} # - It allows using the Release number without the %%dist tag in the dependency # generator to make the generated requires interchangeable between Rawhide # and ELN (.elnYY < .fcXX). -%global baserelease 37 +%global baserelease 38 Release: %{baserelease}%{?dist} # Licenses: @@ -1583,17 +1583,6 @@ for d in $usrmove_file_names ; do ln -s "usr/$d" "%{glibc_sysroot}/$d" done -%ifarch riscv64 -# RISC-V ABI wants to install everything in /usr/lib64/lp64d. -# Make these be symlinks to /usr/lib64. See: -# Make these be symlinks to /lib64 or /usr/lib64 respectively. See: -# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ -for d in %{glibc_sysroot}%{_libdir}; do - mkdir -p $d - (cd $d && ln -sf . lp64d) -done -%endif - %ifarch x86_64 # Install for the glibc32 package. pushd build-%{target}-32 @@ -1698,6 +1687,19 @@ popd %endif +############################################################################## +# Move files to the expected location +############################################################################## + +# On riscv64 libraries end up installed into the lp64d/ subdirectory +# by default, but in Fedora that's a compatibility symlink (owned by +# the filesystem package) that we don't want to show up in paths. +# Let's move everything out. +%ifarch riscv64 +mv %{glibc_sysroot}%{_libdir}/lp64d/* %{glibc_sysroot}/%{_libdir}/ +rm -rf %{glibc_sysroot}%{_libdir}/lp64d/ +%endif + ############################################################################## # Remove the files we don't want to distribute ############################################################################## @@ -1935,10 +1937,6 @@ for lib in lib lib64; do set +x slbase=$(basename $sl) sltarget=$(basename $(readlink $sl)) - if test "$sltarget" = . ; then - # This is the lp64d symbolic link on riscv64, see above. - continue - fi if ! test -r usr/$lib/$sltarget; then echo "$sl: inferred $sltarget ($(readlink $sl)) missing" exit 1 @@ -2503,6 +2501,9 @@ update_gconv_modules_cache () %endif %changelog +* Fri Apr 18 2025 Frédéric Bérat - 2.39-38 +- Update riscv64 handling (thanks David Abdurachmanov) (RHEL-87574) + * Fri Jan 24 2025 Florian Weimer - 2.39-37 - setenv: Rework free(environ) compatibility support (RHEL-75809)