The package rpms/glibc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=6e6bd41f5e1d...
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=ad9d2e17df19...
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=fdd439f8b755....
Change:
-%ifarch %{xenarches}
+%ifarch %{ix86}
-%ifarch %{multiarcharches}
Thanks.
Full change:
============
commit 2620469c94c9e3b0f154f7649c5dda7930030233
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 13:45:31 2017 +0200
glibc-2.26-2.fc28: Packaging adjustments
diff --git a/glibc.spec b/glibc.spec
index 403db62..2f96f44 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.26-19-g2aad4b0
%define glibcversion 2.26
-%define glibcrelease 1%{?dist}
+%define glibcrelease 2%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@@ -128,7 +128,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
-Release: %{glibcrelease}.1
+Release: %{glibcrelease}
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -2140,6 +2140,11 @@ rm -f *.filelist*
%endif
%changelog
+* Wed Aug 16 2017 Florian Weimer <fweimer(a)redhat.com> - 2.26-2
+- Disable multi-arch (IFUNC string functions) on i686 (#1471427)
+- Remove nosegneg 32-bit Xen PV support libraries (#1482027)
+- Adjust spec file to RPM changes
+
* Thu Aug 03 2017 Carlos O'Donell <carlos(a)systemhalted.org> - 2.26-1
- Update to released glibc 2.26.
- Auto-sync with upstream master,
commit fce95492bdea68d754c84914a459bf3af93aa4dd
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 13:30:01 2017 +0200
Change invocation style for find-debuginfo.sh
Using eval affects command line parsing in the shell script. Call the
script directly, but do not quote $find_debuginfo_args, to splice its
contents into the argument list.
diff --git a/glibc.spec b/glibc.spec
index 4da1088..403db62 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1679,9 +1679,7 @@ find_debuginfo_args="$find_debuginfo_args \
%endif
"
%endif
-eval /usr/lib/rpm/find-debuginfo.sh \
- "$find_debuginfo_args" \
- -o debuginfo.filelist
+/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
# List all of the *.a archives in the debug directory.
list_debug_archives()
commit 9df65054b7290db4972a1ea44564a1d0623774cc
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 13:17:21 2017 +0200
Replace create_lang_packages macro with its Lua code
This works around an RPM change in the processing of macro argument lists.
Newer RPM versions split the argument list, so that %1 contains just eo,
and not the whole language list.
Instead, use %language_list directly. This is compatible with earlier
RPM versions, too.
diff --git a/glibc.spec b/glibc.spec
index 0aaf3d2..4da1088 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -567,14 +567,11 @@ to support the %{1} language in your applications.\
# translations.
%define language_list eo %(cat %{SOURCE11} | grep -E '^[a-z]+_' | cut -d _ -f 1
| sort -u | tr "\\\\n" " " | sed 's/ $//')
-%define create_lang_packages()\
-%{lua:\
-local languages = rpm.expand("%1")\
-string.gsub(languages, "(%a+)",\
-function(i) print(rpm.expand("%lang_package "..i.."")) end)}\
-%{nil}
-
-%create_lang_packages %language_list
+%{lua:
+local languages = rpm.expand("%language_list")
+string.gsub(languages, "(%a+)",
+ function(i) print(rpm.expand("%lang_package "..i..""))
end)
+}
# The glibc-all-langpacks provides the virtual glibc-langpack,
# and thus satisfies glibc's requirement for installed locales.
commit d8b4ab633b5449ab5198c89592cc3b38af9a3410
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 12:57:22 2017 +0200
Remove unused require_langpacks macro
diff --git a/glibc.spec b/glibc.spec
index de7faab..0aaf3d2 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -576,13 +576,6 @@ function(i) print(rpm.expand("%lang_package
"..i.."")) end)}\
%create_lang_packages %language_list
-%define require_langpacks()\
-%{lua:\
-local languages = rpm.expand("%1")\
-string.gsub(languages, "(%a+)",\
-function(i) print(rpm.expand("Requires: %{name}-langpack-"..i.." =
%{version}-%{release}\\n")) end)}\
-%{nil}
-
# The glibc-all-langpacks provides the virtual glibc-langpack,
# and thus satisfies glibc's requirement for installed locales.
# Users can add one more other langauge packs and then eventually
commit 6e6bd41f5e1d60eaef49d2af31bd5b816e4ac86f
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 12:03:03 2017 +0200
Remove nosegneg 32-bit Xen PV support libraries (#1482027)
diff --git a/glibc.spec b/glibc.spec
index 3fafdf6..de7faab 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -75,18 +75,6 @@
# disabled it anyway as a conservative measure.
%define lock_elision_arches s390 s390x
##############################################################################
-# We build a special package for Xen that includes TLS support with
-# no negative segment offsets for use with Xen guests. This is
-# purely an optimization for increased performance on those arches.
-%define xenarches i686 athlon
-%ifarch %{xenarches}
-%define buildxen 1
-%define xenpackage 0
-%else
-%define buildxen 0
-%define xenpackage 0
-%endif
-##############################################################################
# We support only 64-bit POWER with the following runtimes:
# 64-bit BE:
# - Power 620 / 970 ISA (default runtime, compatile with POWER4 and newer)
@@ -415,23 +403,6 @@ contains the most important sets of shared libraries: the standard C
library and the standard math library. Without these two libraries, a
Linux system will not function.
-##############################################################################
-# glibc "xen" sub-package
-##############################################################################
-%if %{xenpackage}
-%package xen
-Summary: The GNU libc libraries (optimized for running under Xen)
-Group: System Environment/Libraries
-Requires: glibc = %{version}-%{release}, glibc-utils = %{version}-%{release}
-
-%description xen
-The standard glibc package is optimized for native kernels and does not
-perform as well under the Xen hypervisor. This package provides alternative
-library binaries that will be selected instead when running under Xen.
-
-Install glibc-xen if you might run your system under the Xen hypervisor.
-%endif
-
######################################################################
# crypt subpackages
######################################################################
@@ -1031,14 +1002,6 @@ build()
build
##############################################################################
-# Build glibc for xen:
-# If we support xen build glibc again for xen support.
-##############################################################################
-%if %{buildxen}
-build nosegneg -mno-tls-direct-seg-refs
-%endif
-
-##############################################################################
# Build glibc for power6:
# If we support building a power6 alternate runtime then built glibc again for
# power6.
@@ -1205,19 +1168,6 @@ unset libcrypt libcrypt_found
rm -f ${RPM_BUILD_ROOT}/%{_lib}/libcrypt.so.1
##############################################################################
-# Install the xen build files.
-##############################################################################
-%if %{buildxen}
-%define nosegneg_subdir_base i686
-%define nosegneg_subdir i686/nosegneg
-%define nosegneg_subdir_up ../..
-pushd build-%{target}-nosegneg
-destdir=$RPM_BUILD_ROOT/%{_lib}
-install_different "$destdir" "%{nosegneg_subdir}"
"%{nosegneg_subdir_up}"
-popd
-%endif # %{buildxen}
-
-##############################################################################
# Install the power6 build files.
##############################################################################
%if %{buildpower6}
@@ -1419,8 +1369,6 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_libdir}/*_p.a
# - Contains the list of files for the headers subpackage.
# * static.filelist
# - Contains the list of files for the static subpackage.
-# * nosegneg.filelist
-# - Contains the list of files for the xen subpackage.
# * libcrypt.filelist, libcrypt-nss.filelist
# - Contains the list of files for the crypt-related subpackages
# * nss_db.filelist, nss_nis.filelist, nss_hesiod.filelist
@@ -1554,18 +1502,6 @@ sed -i -e '\|%{_prefix}/bin|d' \
-e '\|%{_prefix}/sbin/[^gi]|d' \
-e '\|%{_prefix}/share|d' rpm.filelist
-##############################################################################
-# Build the xen package file list (nosegneg.filelist)
-##############################################################################
-truncate -s 0 nosegneg.filelist
-%if %{xenpackage}
-grep '/%{_lib}/%{nosegneg_subdir}' < rpm.filelist >> nosegneg.filelist
-sed -i -e '\|/%{_lib}/%{nosegneg_subdir}|d' rpm.filelist
-# TODO: There are files in the nosegneg list which should be in the devel
-# pacakge, but we leave them instead in the xen subpackage. We may
-# wish to clean that up at some point.
-%endif
-
# Add the binary to build locales to the common subpackage.
echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
@@ -1749,10 +1685,9 @@ find_debuginfo_args="$find_debuginfo_args \
%endif
-l rpm.filelist \
%if %{with benchtests}
- -l nosegneg.filelist -l benchtests.filelist"
-%else
- -l nosegneg.filelist"
+ -l benchtests.filelist
%endif
+ "
%endif
eval /usr/lib/rpm/find-debuginfo.sh \
"$find_debuginfo_args" \
@@ -1953,16 +1888,6 @@ pushd build-%{target}
run_tests
popd
-%if %{buildxen}
-echo ====================TESTING -mno-tls-direct-seg-refs=============
-##############################################################################
-# - Test the xen runtimes (nosegneg).
-##############################################################################
-pushd build-%{target}-nosegneg
-run_tests
-popd
-%endif
-
%if %{buildpower6}
echo ====================TESTING -mcpu=power6=============
##############################################################################
@@ -2102,11 +2027,6 @@ if test $1 = 0; then
fi
%systemd_postun_with_restart nscd.service
-%if %{xenpackage}
-%post xen -p /sbin/ldconfig
-%postun xen -p /sbin/ldconfig
-%endif
-
%clean
rm -rf "$RPM_BUILD_ROOT"
rm -f *.filelist*
@@ -2114,10 +2034,6 @@ rm -f *.filelist*
%files -f rpm.filelist
%defattr(-,root,root)
%dir %{_prefix}/%{_lib}/audit
-%if %{buildxen} && !%{xenpackage}
-%dir /%{_lib}/%{nosegneg_subdir_base}
-%dir /%{_lib}/%{nosegneg_subdir}
-%endif
%if %{buildpower6}
%dir /%{_lib}/power6
%dir /%{_lib}/power6x
@@ -2149,13 +2065,6 @@ rm -f *.filelist*
%{!?_licensedir:%global license %%doc}
%license COPYING COPYING.LIB LICENSES
-%if %{xenpackage}
-%files -f nosegneg.filelist xen
-%defattr(-,root,root)
-%dir /%{_lib}/%{nosegneg_subdir_base}
-%dir /%{_lib}/%{nosegneg_subdir}
-%endif
-
%ifnarch %{auxarches}
%files -f common.filelist common
%defattr(-,root,root)
diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c
index 290489b..e5b72a0 100644
--- a/glibc_post_upgrade.c
+++ b/glibc_post_upgrade.c
@@ -74,7 +74,15 @@ main (void)
off_t base;
ssize_t ret;
#ifdef __i386__
- const char *remove_dirs[] = { "/lib/tls", "/lib/i686",
"/lib/tls/i486", "/lib/tls/i586", "/lib/tls/i686" };
+ const char *remove_dirs[] =
+ {
+ "/lib/tls",
+ "/lib/i686",
+ "/lib/tls/i486",
+ "/lib/tls/i586",
+ "/lib/tls/i686",
+ "/lib/i686/nosegneg",
+ };
#else
#ifndef LIBTLS
#define LIBTLS "/lib/tls"
commit ad9d2e17df198a881d4e0f1ef4d63c41caf456fe
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 11:14:32 2017 +0200
Disable multi-arch (IFUNC string functions) on i686 (#1471427)
diff --git a/glibc.spec b/glibc.spec
index 6f2f647..3fafdf6 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1003,6 +1003,9 @@ build()
--enable-obsolete-nsl \
--enable-systemtap \
${core_with_options} \
+%ifarch %{ix86}
+ --disable-multi-arch \
+%endif
%ifarch %{lock_elision_arches}
--enable-lock-elision \
%endif
commit fdd439f8b755b698de0c65c3616abe2d29633925
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Aug 16 11:12:36 2017 +0200
Use upstream default for multi-arch support
Drop binutils run-time conflict. If we still want those, they should
be on glibc-devel, not the main package.
diff --git a/glibc.spec b/glibc.spec
index d6201e7..6f2f647 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -132,14 +132,6 @@
# will be created for the architecture.
%define debuginfocommonarches %{biarcharches} alpha alphaev6
##############################################################################
-# If the architecture has multiarch support in glibc then it should be listed
-# here to enable support in the build. Multiarch support is a single library
-# with implementations of certain functions for multiple architectures. The
-# most optimal function is selected at runtime based on the hardware that is
-# detected by glibc. The underlying support for function selection and
-# execution is provided by STT_GNU_IFUNC.
-%define multiarcharches %{power64} %{ix86} x86_64 %{sparc}
-##############################################################################
# Add -s for a less verbose build output.
%define silentrules PARALLELMFLAGS=
##############################################################################
@@ -375,28 +367,9 @@ Conflicts: kernel < %{enablekernel}
%endif
%endif
-%ifarch %{multiarcharches}
-# Need STT_IFUNC support
-%ifarch %{power64}
-BuildRequires: binutils >= 2.25
-Conflicts: binutils < 2.20.51.0.2
-%else
-%ifarch s390 s390x
-BuildRequires: binutils >= 2.25
-Conflicts: binutils < 2.23.52.0.1-8
-%else
-# Default to this version
BuildRequires: binutils >= 2.25
-Conflicts: binutils < 2.19.51.0.10
-%endif
-%endif
# Earlier releases have broken support for IRELATIVE relocations
Conflicts: prelink < 0.4.2
-%else
-# Need AS_NEEDED directive
-# Need --hash-style=* support
-BuildRequires: binutils >= 2.25
-%endif
%if 0%{?_enable_debug_packages}
BuildRequires: elfutils >= 0.72
@@ -1005,7 +978,7 @@ AddOns=`echo */configure | sed -e
's!/configure!!g;s!\(nptl\|powerpc-cpu\)\( \|$
# Build glibc in `build-%{target}$1', passing the rest of the arguments
# as CFLAGS to the build (not the same as configure CFLAGS). Several
# global values are used to determine build flags, add-ons, kernel
-# version, multiarch support, system tap support, etc.
+# version, system tap support, etc.
##############################################################################
build()
{
@@ -1024,9 +997,6 @@ build()
--with-headers=%{_prefix}/include $EnableKernel \
--enable-bind-now \
--build=%{target} \
-%ifarch %{multiarcharches}
- --enable-multi-arch \
-%endif
--enable-stack-protector=strong \
--enable-tunables \
--enable-obsolete-rpc \