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 <davidlt@rivosinc.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
Andrea Bolognani 2025-04-01 11:33:11 +02:00 committed by Frédéric Bérat
parent 2fac143e74
commit 64d489ff04

View File

@ -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 <fberat@redhat.com> - 2.39-38
- Update riscv64 handling (thanks David Abdurachmanov) (RHEL-87574)
* Fri Jan 24 2025 Florian Weimer <fweimer@redhat.com> - 2.39-37
- setenv: Rework free(environ) compatibility support (RHEL-75809)