Enable ELF DT_HASH for shared objects and the dynamic loader (#2129358)

Resolves: #2129358
This commit is contained in:
Carlos O'Donell 2022-10-17 15:33:14 -04:00
parent 68af9439be
commit a9713abfbd

View File

@ -159,7 +159,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 6
%global baserelease 7
Release: %{baserelease}%{?dist}
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
@ -1192,7 +1192,16 @@ build()
--disable-nscd ||
{ cat config.log; false; }
%make_build -r %{glibc_make_flags}
# We enable DT_GNU_HASH and DT_HASH for ld.so and DSOs to improve
# compatibility with applications that expect DT_HASH e.g. Epic Games
# Easy Anti-Cheat. This is temporary as applications move to
# supporting only DT_GNU_HASH. This was initially enabled in Fedora
# 37. We must use 'env' because it is the only way to pass, via the
# environment, two variables that set the initial Makefile values for
# LDFLAGS used to build shared objects and the dynamic loader.
env LDFLAGS.so="-Wl,--hash-style=both" \
LDFLAGS-rtld="-Wl,--hash-style=both" \
%make_build -r %{glibc_make_flags}
popd
}
@ -2185,6 +2194,9 @@ update_gconv_modules_cache ()
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
%changelog
* Mon Oct 17 2022 Carlos O'Donell <carlos@redhat.com> - 2.36-7
- Enable ELF DT_HASH for shared objects and the dynamic loader (#2129358)
* Fri Oct 07 2022 Arjun Shankar <arjun@redhat.com> - 2.36-6
- Auto-sync with upstream branch release/2.36/master,
commit 2bd815d8347851212b9a91dbdca8053f4dbdac87: