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=6e6bd41f5e1d60e... https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=ad9d2e17df198a8... https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=fdd439f8b755b69....
Change: -%ifarch %{xenarches} +%ifarch %{ix86} -%ifarch %{multiarcharches}
Thanks.
Full change: ============
commit 2620469c94c9e3b0f154f7649c5dda7930030233 Author: Florian Weimer fweimer@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@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@systemhalted.org - 2.26-1 - Update to released glibc 2.26. - Auto-sync with upstream master,
commit fce95492bdea68d754c84914a459bf3af93aa4dd Author: Florian Weimer fweimer@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@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@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@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@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@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 \