50f89d
%define glibcsrcdir glibc-2.28
50f89d
%define glibcversion 2.28
88265a
%define glibcrelease 42%{?dist}.1
50f89d
# Pre-release tarballs are pulled in from git using a command that is
50f89d
# effectively:
50f89d
#
50f89d
# git archive HEAD --format=tar --prefix=$(git describe --match 'glibc-*')/ \
50f89d
#	> $(git describe --match 'glibc-*').tar
50f89d
# gzip -9 $(git describe --match 'glibc-*').tar
50f89d
#
50f89d
# glibc_release_url is only defined when we have a release tarball.
50f89d
%{lua: if string.match(rpm.expand("%glibcsrcdir"), "^glibc%-[0-9.]+$") then
50f89d
  rpm.define("glibc_release_url https://ftp.gnu.org/gnu/glibc/") end}
50f89d
##############################################################################
50f89d
# We support the following options:
50f89d
# --with/--without,
50f89d
# * testsuite - Running the testsuite.
50f89d
# * benchtests - Running and building benchmark subpackage.
50f89d
# * bootstrap - Bootstrapping the package.
50f89d
# * werror - Build with -Werror
50f89d
# * docs - Build with documentation and the required dependencies.
50f89d
# * valgrind - Run smoke tests with valgrind to verify dynamic loader.
50f89d
#
50f89d
# You must always run the testsuite for production builds.
50f89d
# Default: Always run the testsuite.
50f89d
%bcond_without testsuite
50f89d
# Default: Always build the benchtests.
50f89d
%bcond_without benchtests
50f89d
# Default: Not bootstrapping.
50f89d
%bcond_with bootstrap
50f89d
# Default: Enable using -Werror
50f89d
%bcond_without werror
50f89d
# Default: Always build documentation.
50f89d
%bcond_without docs
50f89d
50f89d
# Default: Always run valgrind tests if there is architecture support.
50f89d
%ifarch %{valgrind_arches}
50f89d
%bcond_without valgrind
50f89d
%else
50f89d
%bcond_with valgrind
50f89d
%endif
50f89d
# Restrict %%{valgrind_arches} further in case there are problems with
50f89d
# the smoke test.
50f89d
%if %{with valgrind}
50f89d
%ifarch ppc64 ppc64p7
50f89d
# The valgrind smoke test does not work on ppc64, ppc64p7 (bug 1273103).
50f89d
%undefine with_valgrind
50f89d
%endif
50f89d
%endif
50f89d
50f89d
%if %{with bootstrap}
50f89d
# Disable benchtests, -Werror, docs, and valgrind if we're bootstrapping
50f89d
%undefine with_benchtests
50f89d
%undefine with_werror
50f89d
%undefine with_docs
50f89d
%undefine with_valgrind
50f89d
%endif
50f89d
##############################################################################
50f89d
# Auxiliary arches are those arches that can be built in addition
50f89d
# to the core supported arches. You either install an auxarch or
50f89d
# you install the base arch, not both. You would do this in order
50f89d
# to provide a more optimized version of the package for your arch.
50f89d
%define auxarches athlon alphaev6
50f89d
50f89d
# Only some architectures have static PIE support.
50f89d
%define pie_arches %{ix86} x86_64
50f89d
50f89d
# Build the POWER9 runtime on POWER, but only for downstream.
50f89d
%ifarch ppc64le
50f89d
%define buildpower9 0%{?rhel} > 0
50f89d
%else
50f89d
%define buildpower9 0
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# Any architecture/kernel combination that supports running 32-bit and 64-bit
50f89d
# code in userspace is considered a biarch arch.
50f89d
%define biarcharches %{ix86} x86_64 %{power64} s390 s390x
50f89d
##############################################################################
50f89d
# If the debug information is split into two packages, the core debuginfo
50f89d
# pacakge and the common debuginfo package then the arch should be listed
50f89d
# here. If the arch is not listed here then a single core debuginfo package
50f89d
# will be created for the architecture.
50f89d
%define debuginfocommonarches %{biarcharches} alpha alphaev6
50f89d
##############################################################################
50f89d
# %%package glibc - The GNU C Library (glibc) core package.
50f89d
##############################################################################
50f89d
Summary: The GNU libc libraries
50f89d
Name: glibc
50f89d
Version: %{glibcversion}
50f89d
Release: %{glibcrelease}
50f89d
50f89d
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
50f89d
# libraries.
50f89d
#
50f89d
# LGPLv2+ with exceptions is used for things that are linked directly
50f89d
# into dynamically linked programs and shared libraries (e.g. crt
50f89d
# files, lib*_nonshared.a).  Historically, this exception also applies
50f89d
# to parts of libio.
50f89d
#
50f89d
# GPLv2+ with exceptions is used for parts of the Arm unwinder.
50f89d
#
50f89d
# GFDL is used for the documentation.
50f89d
#
50f89d
# Some other licenses are used in various places (BSD, Inner-Net,
50f89d
# ISC, Public Domain).
50f89d
#
50f89d
# HSRL and FSFAP are only used in test cases, which currently do not
50f89d
# ship in binary RPMs, so they are not listed here.  MIT is used for
50f89d
# scripts/install-sh, which does not ship, either.
50f89d
#
50f89d
# GPLv3+ is used by manual/texinfo.tex, which we do not use.
50f89d
#
50f89d
# LGPLv3+ is used by some Hurd code, which we do not build.
50f89d
#
50f89d
# LGPLv2 is used in one place (time/timespec_get.c, by mistake), but
50f89d
# it is not actually compiled, so it does not matter for libraries.
50f89d
License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL
50f89d
50f89d
URL: http://www.gnu.org/software/glibc/
50f89d
Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.xz
50f89d
Source1: build-locale-archive.c
50f89d
Source4: nscd.conf
50f89d
Source7: nsswitch.conf
50f89d
Source8: power6emul.c
50f89d
Source9: bench.mk
50f89d
Source10: glibc-bench-compare
50f89d
# A copy of localedata/SUPPORTED in the Source0 tarball.  The
50f89d
# SUPPORTED file is used below to generate the list of locale
50f89d
# packages, using a Lua snippet.
50f89d
Source11: SUPPORTED
50f89d
50f89d
# Include in the source RPM for reference.
50f89d
Source12: ChangeLog.old
50f89d
50f89d
##############################################################################
50f89d
# Patches:
50f89d
# - See each individual patch file for origin and upstream status.
50f89d
# - For new patches follow template.patch format.
50f89d
##############################################################################
50f89d
Patch1: glibc-post_upgrade.patch
50f89d
Patch2: glibc-fedora-nscd.patch
50f89d
Patch3: glibc-rh697421.patch
50f89d
Patch4: glibc-fedora-linux-tcsetattr.patch
50f89d
Patch5: glibc-rh741105.patch
50f89d
Patch6: glibc-fedora-localedef.patch
50f89d
Patch7: glibc-fedora-nis-rh188246.patch
50f89d
Patch8: glibc-fedora-manual-dircategory.patch
50f89d
Patch9: glibc-rh827510.patch
50f89d
Patch10: glibc-fedora-locarchive.patch
50f89d
Patch11: glibc-fedora-streams-rh436349.patch
50f89d
Patch12: glibc-rh819430.patch
50f89d
Patch13: glibc-fedora-localedata-rh61908.patch
50f89d
Patch14: glibc-fedora-__libc_multiple_libcs.patch
50f89d
Patch15: glibc-rh1070416.patch
50f89d
Patch16: glibc-nscd-sysconfig.patch
50f89d
Patch17: glibc-cs-path.patch
50f89d
Patch18: glibc-c-utf8-locale.patch
50f89d
Patch23: glibc-python3.patch
50f89d
Patch24: glibc-with-nonshared-cflags.patch
50f89d
Patch25: glibc-asflags.patch
50f89d
Patch27: glibc-rh1614253.patch
50f89d
Patch28: glibc-rh1577365.patch
50f89d
Patch29: glibc-rh1615781.patch
50f89d
Patch30: glibc-rh1615784.patch
50f89d
Patch31: glibc-rh1615790.patch
50f89d
Patch32: glibc-rh1622675.patch
50f89d
Patch33: glibc-rh1622678-1.patch
50f89d
Patch34: glibc-rh1622678-2.patch
50f89d
Patch35: glibc-rh1631293-1.patch
50f89d
Patch36: glibc-rh1631293-2.patch
50f89d
Patch37: glibc-rh1623536.patch
50f89d
Patch38: glibc-rh1631722.patch
50f89d
Patch39: glibc-rh1631730.patch
50f89d
Patch40: glibc-rh1623536-2.patch
50f89d
Patch41: glibc-rh1614979.patch
50f89d
Patch42: glibc-rh1645593.patch
50f89d
Patch43: glibc-rh1645596.patch
50f89d
Patch44: glibc-rh1645604.patch
50f89d
Patch45: glibc-rh1646379.patch
50f89d
Patch46: glibc-rh1645601.patch
50f89d
Patch52: glibc-rh1638523-1.patch
50f89d
Patch47: glibc-rh1638523-2.patch
50f89d
Patch48: glibc-rh1638523-3.patch
50f89d
Patch49: glibc-rh1638523-4.patch
50f89d
Patch50: glibc-rh1638523-5.patch
50f89d
Patch51: glibc-rh1638523-6.patch
50f89d
Patch53: glibc-rh1641982.patch
50f89d
Patch54: glibc-rh1645597.patch
50f89d
Patch55: glibc-rh1650560-1.patch
50f89d
Patch56: glibc-rh1650560-2.patch
50f89d
Patch57: glibc-rh1650563.patch
50f89d
Patch58: glibc-rh1650566.patch
50f89d
Patch59: glibc-rh1650571.patch
50f89d
Patch60: glibc-rh1638520.patch
50f89d
Patch61: glibc-rh1651274.patch
50f89d
Patch62: glibc-rh1654010-1.patch
50f89d
Patch63: glibc-rh1635779.patch
50f89d
Patch64: glibc-rh1654010-2.patch
50f89d
Patch65: glibc-rh1654010-3.patch
50f89d
Patch66: glibc-rh1654010-4.patch
50f89d
Patch67: glibc-rh1654010-5.patch
50f89d
Patch68: glibc-rh1654010-6.patch
50f89d
Patch69: glibc-rh1642094-1.patch
50f89d
Patch70: glibc-rh1642094-2.patch
50f89d
Patch71: glibc-rh1642094-3.patch
50f89d
Patch72: glibc-rh1654872-1.patch
50f89d
Patch73: glibc-rh1654872-2.patch
88265a
Patch74: glibc-rh1692450.patch
50f89d
50f89d
##############################################################################
50f89d
# Continued list of core "glibc" package information:
50f89d
##############################################################################
50f89d
Obsoletes: glibc-profile < 2.4
50f89d
Provides: ldconfig
50f89d
50f89d
# The dynamic linker supports DT_GNU_HASH
50f89d
Provides: rtld(GNU_HASH)
50f89d
Requires: glibc-common = %{version}-%{release}
50f89d
50f89d
# Various components (regex, glob) have been imported from gnulib.
50f89d
Provides: bundled(gnulib)
50f89d
50f89d
Requires(pre): basesystem
50f89d
50f89d
# This is for building auxiliary programs like memusage, nscd
50f89d
# For initial glibc bootstraps it can be commented out
50f89d
%if %{without bootstrap}
50f89d
BuildRequires: gd-devel libpng-devel zlib-devel
50f89d
%endif
50f89d
%if %{with docs}
50f89d
# Removing texinfo will cause check-safety.sh test to fail because it seems to
50f89d
# trigger documentation generation based on dependencies.  We need to fix this
50f89d
# upstream in some way that doesn't depend on generating docs to validate the
50f89d
# texinfo.  I expect it's simply the wrong dependency for that target.
50f89d
BuildRequires: texinfo >= 5.0
50f89d
%endif
50f89d
%if %{without bootstrap}
50f89d
BuildRequires: libselinux-devel >= 1.33.4-3
50f89d
%endif
50f89d
BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext
50f89d
# We need procps-ng (/bin/ps), util-linux (/bin/kill), and gawk (/bin/awk),
50f89d
# but it is more flexible to require the actual programs and let rpm infer
50f89d
# the packages. However, until bug 1259054 is widely fixed we avoid the
50f89d
# following:
50f89d
# BuildRequires: /bin/ps, /bin/kill, /bin/awk
50f89d
# And use instead (which should be reverted some time in the future):
50f89d
BuildRequires: procps-ng, util-linux, gawk
50f89d
BuildRequires: systemtap-sdt-devel
50f89d
50f89d
%if %{with valgrind}
50f89d
# Require valgrind for smoke testing the dynamic loader to make sure we
50f89d
# have not broken valgrind.
50f89d
BuildRequires: valgrind
50f89d
%endif
50f89d
50f89d
# We use systemd rpm macros for nscd
50f89d
BuildRequires: systemd
50f89d
50f89d
# We use python for the microbenchmarks and locale data regeneration
50f89d
# from unicode sources (carried out manually). We choose python3
50f89d
# explicitly because it supports both use cases.  On some
50f89d
# distributions, python3 does not actually install /usr/bin/python3,
50f89d
# so we also depend on python3-devel.
50f89d
BuildRequires: python3 python3-devel
50f89d
50f89d
# This is the first GCC version with enhanced valgrind support in the
50f89d
# inline expansion of string functions (#1532205, #1652929, #1652932).
50f89d
BuildRequires: gcc >= 8.2.1-3.4
50f89d
%define enablekernel 3.2
50f89d
Conflicts: kernel < %{enablekernel}
50f89d
%define target %{_target_cpu}-redhat-linux
50f89d
%ifarch %{arm}
50f89d
%define target %{_target_cpu}-redhat-linuxeabi
50f89d
%endif
50f89d
%ifarch %{power64}
50f89d
%ifarch ppc64le
50f89d
%define target ppc64le-redhat-linux
50f89d
%else
50f89d
%define target ppc64-redhat-linux
50f89d
%endif
50f89d
%endif
50f89d
50f89d
# GNU make 4.0 introduced the -O option.
50f89d
BuildRequires: make >= 4.0
50f89d
50f89d
# The intl subsystem generates a parser using bison.
50f89d
BuildRequires: bison >= 2.7
50f89d
50f89d
# binutils 2.30-17 is needed for --generate-missing-build-notes.
50f89d
BuildRequires: binutils >= 2.30-17
50f89d
50f89d
# Earlier releases have broken support for IRELATIVE relocations
50f89d
Conflicts: prelink < 0.4.2
50f89d
50f89d
%if 0%{?_enable_debug_packages}
50f89d
BuildRequires: elfutils >= 0.72
50f89d
BuildRequires: rpm >= 4.2-0.56
50f89d
%endif
50f89d
50f89d
%if %{without bootstrap}
50f89d
%if %{with testsuite}
50f89d
# The testsuite builds static C++ binaries that require a C++ compiler,
50f89d
# static C++ runtime from libstdc++-static, and lastly static glibc.
50f89d
BuildRequires: gcc-c++
50f89d
BuildRequires: libstdc++-static
50f89d
# A configure check tests for the ability to create static C++ binaries
50f89d
# before glibc is built and therefore we need a glibc-static for that
50f89d
# check to pass even if we aren't going to use any of those objects to
50f89d
# build the tests.
50f89d
BuildRequires: glibc-static
50f89d
50f89d
# libidn2 (but not libidn2-devel) is needed for testing AI_IDN/NI_IDN.
50f89d
BuildRequires: libidn2
50f89d
%endif
50f89d
%endif
50f89d
50f89d
# Filter out all GLIBC_PRIVATE symbols since they are internal to
50f89d
# the package and should not be examined by any other tool.
50f89d
%global __filter_GLIBC_PRIVATE 1
50f89d
50f89d
# For language packs we have glibc require a virtual dependency
50f89d
# "glibc-langpack" wich gives us at least one installed langpack.
50f89d
# If no langpack providing 'glibc-langpack' was installed you'd
50f89d
# get all of them, and that would make the transition from a
50f89d
# system without langpacks smoother (you'd get all the locales
50f89d
# installed). You would then trim that list, and the trimmed list
50f89d
# is preserved. One problem is you can't have "no" locales installed,
50f89d
# in that case we offer a "glibc-minimal-langpack" sub-pakcage for
50f89d
# this purpose.
50f89d
Requires: glibc-langpack = %{version}-%{release}
50f89d
Suggests: glibc-all-langpacks = %{version}-%{release}
50f89d
50f89d
%description
50f89d
The glibc package contains standard libraries which are used by
50f89d
multiple programs on the system. In order to save disk space and
50f89d
memory, as well as to make upgrading easier, common system code is
50f89d
kept in one place and shared between programs. This particular package
50f89d
contains the most important sets of shared libraries: the standard C
50f89d
library and the standard math library. Without these two libraries, a
50f89d
Linux system will not function.
50f89d
50f89d
######################################################################
50f89d
# libnsl subpackage
50f89d
######################################################################
50f89d
50f89d
%package -n libnsl
50f89d
Summary: Legacy support library for NIS
50f89d
Requires: %{name}%{_isa} = %{version}-%{release}
50f89d
50f89d
%description -n libnsl
50f89d
This package provides the legacy version of libnsl library, for
50f89d
accessing NIS services.
50f89d
50f89d
This library is provided for backwards compatibility only;
50f89d
applications should use libnsl2 instead to gain IPv6 support.
50f89d
50f89d
##############################################################################
50f89d
# glibc "devel" sub-package
50f89d
##############################################################################
50f89d
%package devel
50f89d
Summary: Object files for development using standard C libraries.
50f89d
Requires(pre): /sbin/install-info
50f89d
Requires(pre): %{name}-headers
50f89d
Requires: %{name}-headers = %{version}-%{release}
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
Requires: libgcc%{_isa}
50f89d
Requires: libxcrypt-devel%{_isa} >= 4.0.0
50f89d
50f89d
%description devel
50f89d
The glibc-devel package contains the object files necessary
50f89d
for developing programs which use the standard C libraries (which are
50f89d
used by nearly all programs).  If you are developing programs which
50f89d
will use the standard C libraries, your system needs to have these
50f89d
standard object files available in order to create the
50f89d
executables.
50f89d
50f89d
Install glibc-devel if you are going to develop programs which will
50f89d
use the standard C libraries.
50f89d
50f89d
##############################################################################
50f89d
# glibc "static" sub-package
50f89d
##############################################################################
50f89d
%package static
50f89d
Summary: C library static libraries for -static linking.
50f89d
Requires: %{name}-devel = %{version}-%{release}
50f89d
Requires: libxcrypt-static%{?_isa} >= 4.0.0
50f89d
50f89d
%description static
50f89d
The glibc-static package contains the C library static libraries
50f89d
for -static linking.  You don't need these, unless you link statically,
50f89d
which is highly discouraged.
50f89d
50f89d
##############################################################################
50f89d
# glibc "headers" sub-package
50f89d
# - The headers package includes all common headers that are shared amongst
50f89d
#   the multilib builds. It was created to reduce the download size, and
50f89d
#   thus avoid downloading one header package per multilib. The package is
50f89d
#   identical both in content and file list, any difference is an error.
50f89d
#   Files like gnu/stubs.h which have gnu/stubs-32.h (i686) and gnu/stubs-64.h
50f89d
#   are included in glibc-headers, but the -32 and -64 files are in their
50f89d
#   respective i686 and x86_64 devel packages.
50f89d
##############################################################################
50f89d
%package headers
50f89d
Summary: Header files for development using standard C libraries.
50f89d
Provides: %{name}-headers(%{_target_cpu})
50f89d
Requires(pre): kernel-headers
50f89d
Requires: kernel-headers >= 2.2.1, %{name} = %{version}-%{release}
50f89d
BuildRequires: kernel-headers >= 3.2
50f89d
50f89d
%description headers
50f89d
The glibc-headers package contains the header files necessary
50f89d
for developing programs which use the standard C libraries (which are
50f89d
used by nearly all programs).  If you are developing programs which
50f89d
will use the standard C libraries, your system needs to have these
50f89d
standard header files available in order to create the
50f89d
executables.
50f89d
50f89d
Install glibc-headers if you are going to develop programs which will
50f89d
use the standard C libraries.
50f89d
50f89d
##############################################################################
50f89d
# glibc "common" sub-package
50f89d
##############################################################################
50f89d
%package common
50f89d
Summary: Common binaries and locale data for glibc
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
Requires: tzdata >= 2003a
50f89d
50f89d
%description common
50f89d
The glibc-common package includes common binaries for the GNU libc
50f89d
libraries, as well as national language (locale) support.
50f89d
50f89d
######################################################################
50f89d
# File triggers to do ldconfig calls automatically (see rhbz#1380878)
50f89d
######################################################################
50f89d
50f89d
# File triggers for when libraries are added or removed in standard
50f89d
# paths.
50f89d
%transfiletriggerin common -P 2000000 -- /lib /usr/lib /lib64 /usr/lib64
50f89d
/sbin/ldconfig
50f89d
%end
50f89d
50f89d
%transfiletriggerpostun common -P 2000000 -- /lib /usr/lib /lib64 /usr/lib64
50f89d
/sbin/ldconfig
50f89d
%end
50f89d
50f89d
# We need to run ldconfig manually because ldconfig cannot handle the
50f89d
# relative include path in the /etc/ld.so.conf file we gneerate.
50f89d
%undefine __brp_ldconfig
50f89d
50f89d
######################################################################
50f89d
50f89d
%package locale-source
50f89d
Summary: The sources for the locales
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
Requires: %{name}-common = %{version}-%{release}
50f89d
50f89d
%description locale-source
50f89d
The sources for all locales provided in the language packs.
50f89d
If you are building custom locales you will most likely use
50f89d
these sources as the basis for your new locale.
50f89d
50f89d
%{lua:
50f89d
-- Array of languages (ISO-639 codes).
50f89d
local languages = {}
50f89d
-- Dictionary from language codes (as in the languages array) to arrays
50f89d
-- of regions.
50f89d
local supplements = {}
50f89d
do
50f89d
   -- Parse the SUPPORTED file.  Eliminate duplicates.
50f89d
   local lang_region_seen = {}
50f89d
   for line in io.lines(rpm.expand("%{SOURCE11}")) do
50f89d
      -- Match lines which contain a language (eo) or language/region
50f89d
      -- (en_US) strings.
50f89d
      local lang_region = string.match(line, "^([a-z][^/@.]+)")
50f89d
      if lang_region ~= nil then
50f89d
	 if lang_region_seen[lang_region] == nil then
50f89d
	    lang_region_seen[lang_region] = true
50f89d
50f89d
	    -- Split language/region pair.
50f89d
	    local lang, region = string.match(lang_region, "^(.+)_(.+)")
50f89d
	    if lang == nil then
50f89d
	       -- Region is missing, use only the language.
50f89d
	       lang = lang_region
50f89d
	    end
50f89d
	    local suppl = supplements[lang]
50f89d
	    if suppl == nil then
50f89d
	       suppl = {}
50f89d
	       supplements[lang] = suppl
50f89d
	       -- New language not seen before.
50f89d
	       languages[#languages + 1] = lang
50f89d
	    end
50f89d
	    if region ~= nil then
50f89d
	       -- New region because of the check against
50f89d
	       -- lang_region_seen above.
50f89d
	       suppl[#suppl + 1] = region
50f89d
	    end
50f89d
	 end
50f89d
      end
50f89d
   end
50f89d
   -- Sort for determinism.
50f89d
   table.sort(languages)
50f89d
   for _, supples in pairs(supplements) do
50f89d
      table.sort(supplements)
50f89d
   end
50f89d
end
50f89d
50f89d
-- Compute the Supplements: list for a language, based on the regions.
50f89d
local function compute_supplements(lang)
50f89d
   result = "langpacks-" .. lang
50f89d
   regions = supplements[lang]
50f89d
   if regions ~= nil then
50f89d
      for i = 1, #regions do
50f89d
	 result = result .. " or langpacks-" .. lang .. "_" .. regions[i]
50f89d
      end
50f89d
   end
50f89d
   return result
50f89d
end
50f89d
50f89d
-- Emit the definition of a language pack package.
50f89d
local function lang_package(lang)
50f89d
   local suppl = compute_supplements(lang)
50f89d
   print(rpm.expand([[
50f89d
50f89d
%package langpack-]]..lang..[[
50f89d
50f89d
Summary: Locale data for ]]..lang..[[
50f89d
50f89d
Provides: glibc-langpack = %{version}-%{release}
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
Requires: %{name}-common = %{version}-%{release}
50f89d
Supplements: (glibc and (]]..suppl..[[))
50f89d
%description langpack-]]..lang..[[
50f89d
50f89d
The glibc-langpack-]]..lang..[[ package includes the basic information required
50f89d
to support the ]]..lang..[[ language in your applications.
50f89d
%ifnarch %{auxarches}
50f89d
%files -f langpack-]]..lang..[[.filelist langpack-]]..lang..[[
50f89d
50f89d
%endif
50f89d
]]))
50f89d
end
50f89d
50f89d
for i = 1, #languages do
50f89d
   lang_package(languages[i])
50f89d
end
50f89d
}
50f89d
50f89d
# The glibc-all-langpacks provides the virtual glibc-langpack,
50f89d
# and thus satisfies glibc's requirement for installed locales.
50f89d
# Users can add one more other langauge packs and then eventually
50f89d
# uninstall all-langpacks to save space.
50f89d
%package all-langpacks
50f89d
Summary: All language packs for %{name}.
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
Requires: %{name}-common = %{version}-%{release}
50f89d
Provides: %{name}-langpack = %{version}-%{release}
50f89d
%description all-langpacks
50f89d
50f89d
# No %files, this is an empty pacakge. The C/POSIX and
50f89d
# C.UTF-8 files are already installed by glibc. We create
50f89d
# minimal-langpack because the virtual provide of
50f89d
# glibc-langpack needs at least one package installed
50f89d
# to satisfy it. Given that no-locales installed is a valid
50f89d
# use case we support it here with this package.
50f89d
%package minimal-langpack
50f89d
Summary: Minimal language packs for %{name}.
50f89d
Provides: glibc-langpack = %{version}-%{release}
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
Requires: %{name}-common = %{version}-%{release}
50f89d
%description minimal-langpack
50f89d
This is a Meta package that is used to install minimal language packs.
50f89d
This package ensures you can use C, POSIX, or C.UTF-8 locales, but
50f89d
nothing else. It is designed for assembling a minimal system.
50f89d
%ifnarch %{auxarches}
50f89d
%files minimal-langpack
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# glibc "nscd" sub-package
50f89d
##############################################################################
50f89d
%package -n nscd
50f89d
Summary: A Name Service Caching Daemon (nscd).
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
%if %{without bootstrap}
50f89d
Requires: libselinux >= 1.17.10-1
50f89d
%endif
50f89d
Requires: audit-libs >= 1.1.3
50f89d
Requires(pre): /usr/sbin/useradd, coreutils
50f89d
Requires(post): systemd
50f89d
Requires(preun): systemd
50f89d
Requires(postun): systemd, /usr/sbin/userdel
50f89d
50f89d
%description -n nscd
50f89d
The nscd daemon caches name service lookups and can improve
50f89d
performance with LDAP, and may help with DNS as well.
50f89d
50f89d
##############################################################################
50f89d
# Subpackages for NSS modules except nss_files, nss_compat, nss_dns
50f89d
##############################################################################
50f89d
50f89d
# This should remain it's own subpackage or "Provides: nss_db" to allow easy
50f89d
# migration from old systems that previously had the old nss_db package
50f89d
# installed. Note that this doesn't make the migration that smooth, the
50f89d
# databases still need rebuilding because the formats were different.
50f89d
# The nss_db package was deprecated in F16 and onwards:
50f89d
# https://lists.fedoraproject.org/pipermail/devel/2011-July/153665.html
50f89d
# The different database format does cause some issues for users:
50f89d
# https://lists.fedoraproject.org/pipermail/devel/2011-December/160497.html
50f89d
%package -n nss_db
50f89d
Summary: Name Service Switch (NSS) module using hash-indexed files
50f89d
Requires: %{name}%{_isa} = %{version}-%{release}
50f89d
50f89d
%description -n nss_db
50f89d
The nss_db Name Service Switch module uses hash-indexed files in /var/db
50f89d
to speed up user, group, service, host name, and other NSS-based lookups.
50f89d
50f89d
%package -n nss_hesiod
50f89d
Summary: Name Service Switch (NSS) module using Hesiod
50f89d
Requires: %{name}%{_isa} = %{version}-%{release}
50f89d
50f89d
%description -n nss_hesiod
50f89d
The nss_hesiod Name Service Switch module uses the Domain Name System
50f89d
(DNS) as a source for user, group, and service information, following
50f89d
the Hesiod convention of Project Athena.
50f89d
50f89d
%package nss-devel
50f89d
Summary: Development files for directly linking NSS service modules
50f89d
Requires: %{name}%{_isa} = %{version}-%{release}
50f89d
Requires: nss_db%{_isa} = %{version}-%{release}
50f89d
Requires: nss_hesiod%{_isa} = %{version}-%{release}
50f89d
50f89d
%description nss-devel
50f89d
The glibc-nss-devel package contains the object files necessary to
50f89d
compile applications and libraries which directly link against NSS
50f89d
modules supplied by glibc.
50f89d
50f89d
This is a rare and special use case; regular development has to use
50f89d
the glibc-devel package instead.
50f89d
50f89d
##############################################################################
50f89d
# glibc "utils" sub-package
50f89d
##############################################################################
50f89d
%package utils
50f89d
Summary: Development utilities from GNU C library
50f89d
Requires: %{name} = %{version}-%{release}
50f89d
50f89d
%description utils
50f89d
The glibc-utils package contains memusage, a memory usage profiler,
50f89d
mtrace, a memory leak tracer and xtrace, a function call tracer
50f89d
which can be helpful during program debugging.
50f89d
50f89d
If unsure if you need this, don't install this package.
50f89d
50f89d
##############################################################################
50f89d
# glibc core "debuginfo" sub-package
50f89d
##############################################################################
50f89d
%if 0%{?_enable_debug_packages}
50f89d
%define debug_package %{nil}
50f89d
%define __debug_install_post %{nil}
50f89d
%global __debug_package 1
50f89d
# Disable thew new features that glibc packages don't use.
50f89d
%undefine _debugsource_packages
50f89d
%undefine _debuginfo_subpackages
50f89d
%undefine _unique_debug_names
50f89d
%undefine _unique_debug_srcs
50f89d
50f89d
%package debuginfo
50f89d
Summary: Debug information for package %{name}
50f89d
AutoReqProv: no
50f89d
%ifarch %{debuginfocommonarches}
50f89d
Requires: glibc-debuginfo-common = %{version}-%{release}
50f89d
%else
50f89d
%ifarch %{ix86} %{sparc}
50f89d
Obsoletes: glibc-debuginfo-common
50f89d
%endif
50f89d
%endif
50f89d
50f89d
%description debuginfo
50f89d
This package provides debug information for package %{name}.
50f89d
Debug information is useful when developing applications that use this
50f89d
package or when debugging this package.
50f89d
50f89d
This package also contains static standard C libraries with
50f89d
debugging information.  You need this only if you want to step into
50f89d
C library routines during debugging programs statically linked against
50f89d
one or more of the standard C libraries.
50f89d
To use this debugging information, you need to link binaries
50f89d
with -static -L%{_prefix}/lib/debug%{_libdir} compiler options.
50f89d
50f89d
##############################################################################
50f89d
# glibc common "debuginfo-common" sub-package
50f89d
##############################################################################
50f89d
%ifarch %{debuginfocommonarches}
50f89d
50f89d
%package debuginfo-common
50f89d
Summary: Debug information for package %{name}
50f89d
AutoReqProv: no
50f89d
50f89d
%description debuginfo-common
50f89d
This package provides debug information for package %{name}.
50f89d
Debug information is useful when developing applications that use this
50f89d
package or when debugging this package.
50f89d
50f89d
%endif # %{debuginfocommonarches}
50f89d
%endif # 0%{?_enable_debug_packages}
50f89d
50f89d
%if %{with benchtests}
50f89d
%package benchtests
50f89d
Summary: Benchmarking binaries and scripts for %{name}
50f89d
%description benchtests
50f89d
This package provides built benchmark binaries and scripts to run
50f89d
microbenchmark tests on the system.
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# compat-libpthread-nonshared
50f89d
# See: https://sourceware.org/bugzilla/show_bug.cgi?id=23500
50f89d
##############################################################################
50f89d
%package -n compat-libpthread-nonshared
50f89d
Summary: Compatibility support for linking against libpthread_nonshared.a.
50f89d
50f89d
%description -n compat-libpthread-nonshared
50f89d
This package provides compatibility support for applications that expect
50f89d
libpthread_nonshared.a to exist. The support provided is in the form of
50f89d
an empty libpthread_nonshared.a that allows dynamic links to succeed.
50f89d
Such applications should be adjusted to avoid linking against
50f89d
libpthread_nonshared.a which is no longer used. The static library
50f89d
libpthread_nonshared.a is an internal implementation detail of the C
50f89d
runtime and should not be expected to exist.
50f89d
50f89d
##############################################################################
50f89d
# Prepare for the build.
50f89d
##############################################################################
50f89d
%prep
50f89d
%autosetup -n %{glibcsrcdir} -p1
50f89d
50f89d
##############################################################################
50f89d
# %%prep - Additional prep required...
50f89d
##############################################################################
50f89d
# Make benchmark scripts executable
50f89d
chmod +x benchtests/scripts/*.py scripts/pylint
50f89d
50f89d
# Remove all files generated from patching.
50f89d
find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
50f89d
50f89d
# Ensure timestamps on configure files are current to prevent
50f89d
# regenerating them.
50f89d
touch `find . -name configure`
50f89d
50f89d
# Ensure *-kw.h files are current to prevent regenerating them.
50f89d
touch locale/programs/*-kw.h
50f89d
50f89d
# Verify that our copy of localedata/SUPPORTED matches the glibc
50f89d
# version.
50f89d
#
50f89d
# The separate file copy is used by the Lua parser above.
50f89d
# Patches or new upstream versions may change the list of locales,
50f89d
# which changes the set of langpacks we need to build.  Verify the
50f89d
# differences then update the copy of SUPPORTED.  This approach has
50f89d
# two purposes: (a) avoid spurious changes to the set of langpacks,
50f89d
# and (b) the Lua snippet can use a fully patched-up version
50f89d
# of the localedata/SUPPORTED file.
50f89d
diff -u %{SOURCE11} localedata/SUPPORTED
50f89d
50f89d
##############################################################################
50f89d
# Build glibc...
50f89d
##############################################################################
50f89d
%build
50f89d
# Log system information
50f89d
uname -a
50f89d
LD_SHOW_AUXV=1 /bin/true
50f89d
cat /proc/cpuinfo
50f89d
cat /proc/sysinfo 2>/dev/null || true
50f89d
cat /proc/meminfo
50f89d
df
50f89d
50f89d
# We build using the native system compilers.
50f89d
GCC=gcc
50f89d
GXX=g++
50f89d
50f89d
# Part of rpm_inherit_flags.  Is overridden below.
50f89d
rpm_append_flag ()
50f89d
{
50f89d
    BuildFlags="$BuildFlags $*"
50f89d
}
50f89d
50f89d
# Propagates the listed flags to rpm_append_flag if supplied by
50f89d
# redhat-rpm-config.
50f89d
BuildFlags="-O2 -g"
50f89d
rpm_inherit_flags ()
50f89d
{
50f89d
	local reference=" $* "
50f89d
	local flag
50f89d
	for flag in $RPM_OPT_FLAGS $RPM_LD_FLAGS ; do
50f89d
		if echo "$reference" | grep -q -F " $flag " ; then
50f89d
			rpm_append_flag "$flag"
50f89d
		fi
50f89d
	done
50f89d
}
50f89d
50f89d
# Propgate select compiler flags from redhat-rpm-config.  These flags
50f89d
# are target-dependent, so we use only those which are specified in
50f89d
# redhat-rpm-config.  We keep the -m32/-m32/-m64 flags to support
50f89d
# multilib builds.
50f89d
#
50f89d
# Note: For building alternative run-times, care is required to avoid
50f89d
# overriding the architecture flags which go into CC/CXX.  The flags
50f89d
# below are passed in CFLAGS.
50f89d
50f89d
rpm_inherit_flags \
50f89d
	"-Wp,-D_GLIBCXX_ASSERTIONS" \
50f89d
	"-fasynchronous-unwind-tables" \
50f89d
	"-fstack-clash-protection" \
50f89d
	"-funwind-tables" \
50f89d
	"-m31" \
50f89d
	"-m32" \
50f89d
	"-m64" \
50f89d
	"-march=i686" \
50f89d
	"-march=x86-64" \
50f89d
	"-march=z13" \
50f89d
	"-march=z14" \
50f89d
	"-march=zEC12" \
50f89d
	"-mfpmath=sse" \
50f89d
	"-msse2" \
50f89d
	"-mstackrealign" \
50f89d
	"-mtune=generic" \
50f89d
	"-mtune=z13" \
50f89d
	"-mtune=z14" \
50f89d
	"-mtune=zEC12" \
50f89d
	"-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" \
50f89d
50f89d
# Propagate additional build flags to BuildFlagsNonshared.  This is
50f89d
# very special because some of these files are part of the startup
50f89d
# code.  We essentially hope that these flags have little effect
50f89d
# there, and only specify the, for consistency, so that annobin
50f89d
# records the expected compiler flags.
50f89d
BuildFlagsNonshared=
50f89d
rpm_append_flag () {
50f89d
    BuildFlagsNonshared="$BuildFlagsNonshared $*"
50f89d
}
50f89d
rpm_inherit_flags \
50f89d
	"-Wp,-D_FORTIFY_SOURCE=2" \
50f89d
50f89d
# Special flag to enable annobin annotations for statically linked
50f89d
# assembler code.  Needs to be passed to make; not preserved by
50f89d
# configure.
50f89d
%define glibc_make_flags_as ASFLAGS="-g -Wa,--generate-missing-build-notes=yes"
50f89d
%define glibc_make_flags %{glibc_make_flags_as}
50f89d
50f89d
##############################################################################
50f89d
# %%build - Generic options.
50f89d
##############################################################################
50f89d
EnableKernel="--enable-kernel=%{enablekernel}"
50f89d
# Save the used compiler and options into the file "Gcc" for use later
50f89d
# by %%install.
50f89d
echo "$GCC" > Gcc
50f89d
50f89d
##############################################################################
50f89d
# build()
50f89d
#	Build glibc in `build-%{target}$1', passing the rest of the arguments
50f89d
#	as CFLAGS to the build (not the same as configure CFLAGS). Several
50f89d
#	global values are used to determine build flags, kernel version,
50f89d
#	system tap support, etc.
50f89d
##############################################################################
50f89d
build()
50f89d
{
50f89d
	local builddir=build-%{target}${1:+-$1}
50f89d
	${1+shift}
50f89d
	rm -rf $builddir
50f89d
	mkdir $builddir
50f89d
	pushd $builddir
50f89d
	../configure CC="$GCC" CXX="$GXX" CFLAGS="$BuildFlags $*" \
50f89d
		--prefix=%{_prefix} \
50f89d
		--with-headers=%{_prefix}/include $EnableKernel \
50f89d
		--with-nonshared-cflags="$BuildFlagsNonshared" \
50f89d
		--enable-bind-now \
50f89d
		--build=%{target} \
50f89d
		--enable-stack-protector=strong \
50f89d
%ifarch %{pie_arches}
50f89d
		--enable-static-pie \
50f89d
%endif
50f89d
		--enable-tunables \
50f89d
		--enable-systemtap \
50f89d
		${core_with_options} \
50f89d
%ifarch x86_64 %{ix86}
50f89d
	       --enable-cet \
50f89d
%endif
50f89d
%ifarch %{ix86}
50f89d
		--disable-multi-arch \
50f89d
%endif
50f89d
%if %{without werror}
50f89d
		--disable-werror \
50f89d
%endif
50f89d
		--disable-profile \
50f89d
%if %{with bootstrap}
50f89d
		--without-selinux \
50f89d
%endif
50f89d
		--disable-crypt ||
50f89d
		{ cat config.log; false; }
50f89d
50f89d
	make %{?_smp_mflags} -O -r %{glibc_make_flags}
50f89d
	popd
50f89d
}
50f89d
50f89d
# Default set of compiler options.
50f89d
build
50f89d
50f89d
%if %{buildpower9}
50f89d
(
50f89d
  GCC="$GCC -mcpu=power9 -mtune=power9"
50f89d
  GXX="$GXX -mcpu=power9 -mtune=power9"
50f89d
  core_with_options="--with-cpu=power9"
50f89d
  build power9
50f89d
)
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# Install glibc...
50f89d
##############################################################################
50f89d
%install
50f89d
50f89d
# The built glibc is installed into a subdirectory of $RPM_BUILD_ROOT.
50f89d
# For a system glibc that subdirectory is "/" (the root of the filesystem).
50f89d
# This is called a sysroot (system root) and can be changed if we have a
50f89d
# distribution that supports multiple installed glibc versions.
50f89d
%define glibc_sysroot $RPM_BUILD_ROOT
50f89d
50f89d
# Remove existing file lists.
50f89d
find . -type f -name '*.filelist' -exec rm -rf {} \;
50f89d
50f89d
# Ensure the permissions of errlist.c do not change.  When the file is
50f89d
# regenerated the Makefile sets the permissions to 444. We set it to 644
50f89d
# to match what comes out of git. The tarball of the git archive won't have
50f89d
# correct permissions because git doesn't track all of the permissions
50f89d
# accurately (see git-cache-meta if you need that). We also set it to 644 to
50f89d
# match pre-existing rpms. We do this *after* the build because the build
50f89d
# might regenerate the file and set the permissions to 444.
50f89d
chmod 644 sysdeps/gnu/errlist.c
50f89d
50f89d
# Reload compiler and build options that were used during %%build.
50f89d
GCC=`cat Gcc`
50f89d
50f89d
%ifarch riscv64
50f89d
# RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d.
50f89d
# Make these be symlinks to /lib64 or /usr/lib64 respectively.  See:
50f89d
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/
50f89d
for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do
50f89d
	mkdir -p $d
50f89d
	(cd $d && ln -sf . lp64d)
50f89d
done
50f89d
%endif
50f89d
50f89d
# Build and install:
50f89d
make -j1 install_root=%{glibc_sysroot} install -C build-%{target}
50f89d
50f89d
# If we are not building an auxiliary arch then install all of the supported
50f89d
# locales.
50f89d
%ifnarch %{auxarches}
50f89d
pushd build-%{target}
50f89d
# Do not use a parallel make here because the hardlink optimization in
50f89d
# localedef is not fully reproducible when running concurrently.
50f89d
make install_root=%{glibc_sysroot} \
50f89d
	install-locales -C ../localedata objdir=`pwd`
50f89d
popd
50f89d
%endif
50f89d
50f89d
# install_different:
50f89d
#	Install all core libraries into DESTDIR/SUBDIR. Either the file is
50f89d
#	installed as a copy or a symlink to the default install (if it is the
50f89d
#	same). The path SUBDIR_UP is the prefix used to go from
50f89d
#	DESTDIR/SUBDIR to the default installed libraries e.g.
50f89d
#	ln -s SUBDIR_UP/foo.so DESTDIR/SUBDIR/foo.so.
50f89d
#	When you call this function it is expected that you are in the root
50f89d
#	of the build directory, and that the default build directory is:
50f89d
#	"../build-%{target}" (relatively).
50f89d
#	The primary use of this function is to install alternate runtimes
50f89d
#	into the build directory and avoid duplicating this code for each
50f89d
#	runtime.
50f89d
install_different()
50f89d
{
50f89d
	local lib libbase libbaseso dlib
50f89d
	local destdir="$1"
50f89d
	local subdir="$2"
50f89d
	local subdir_up="$3"
50f89d
	local libdestdir="$destdir/$subdir"
50f89d
	# All three arguments must be non-zero paths.
50f89d
	if ! [ "$destdir" \
50f89d
	       -a "$subdir" \
50f89d
	       -a "$subdir_up" ]; then
50f89d
		echo "One of the arguments to install_different was emtpy."
50f89d
		exit 1
50f89d
	fi
50f89d
	# Create the destination directory and the multilib directory.
50f89d
	mkdir -p "$destdir"
50f89d
	mkdir -p "$libdestdir"
50f89d
	# Walk all of the libraries we installed...
50f89d
	for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db
50f89d
	do
50f89d
		libbase=${lib#*/}
50f89d
		# Take care that `libbaseso' has a * that needs expanding so
50f89d
		# take care with quoting.
50f89d
		libbaseso=$(basename %{glibc_sysroot}/%{_lib}/${libbase}-*.so)
50f89d
		# Only install if different from default build library.
50f89d
		if cmp -s ${lib}.so ../build-%{target}/${lib}.so; then
50f89d
			ln -sf "$subdir_up"/$libbaseso $libdestdir/$libbaseso
50f89d
		else
50f89d
			cp -a ${lib}.so $libdestdir/$libbaseso
50f89d
		fi
50f89d
		dlib=$libdestdir/$(basename %{glibc_sysroot}/%{_lib}/${libbase}.so.*)
50f89d
		ln -sf $libbaseso $dlib
50f89d
	done
50f89d
}
50f89d
50f89d
%if %{buildpower9}
50f89d
pushd build-%{target}-power9
50f89d
install_different "$RPM_BUILD_ROOT/%{_lib}" power9 ..
50f89d
popd
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# Remove the files we don't want to distribute
50f89d
##############################################################################
50f89d
50f89d
# Remove the libNoVersion files.
50f89d
# XXX: This looks like a bug in glibc that accidentally installed these
50f89d
#      wrong files. We probably don't need this today.
50f89d
rm -f %{glibc_sysroot}/%{_libdir}/libNoVersion*
50f89d
rm -f %{glibc_sysroot}/%{_lib}/libNoVersion*
50f89d
50f89d
# Remove the old nss modules.
50f89d
rm -f %{glibc_sysroot}/%{_lib}/libnss1-*
50f89d
rm -f %{glibc_sysroot}/%{_lib}/libnss-*.so.1
50f89d
50f89d
# This statically linked binary is no longer necessary in a world where
50f89d
# the default Fedora install uses an initramfs, and further we have rpm-ostree
50f89d
# which captures the whole userspace FS tree.
50f89d
# Further, see https://github.com/projectatomic/rpm-ostree/pull/1173#issuecomment-355014583
50f89d
rm -f %{glibc_sysroot}/{usr/,}sbin/sln
50f89d
50f89d
######################################################################
50f89d
# Run ldconfig to create all the symbolic links we need
50f89d
######################################################################
50f89d
50f89d
# Note: This has to happen before creating /etc/ld.so.conf.
50f89d
50f89d
mkdir -p %{glibc_sysroot}/var/cache/ldconfig
50f89d
truncate -s 0 %{glibc_sysroot}/var/cache/ldconfig/aux-cache
50f89d
50f89d
# ldconfig is statically linked, so we can use the new version.
50f89d
%{glibc_sysroot}/sbin/ldconfig -N -r %{glibc_sysroot}
50f89d
50f89d
##############################################################################
50f89d
# Install info files
50f89d
##############################################################################
50f89d
50f89d
%if %{with docs}
50f89d
# Move the info files if glibc installed them into the wrong location.
50f89d
if [ -d %{glibc_sysroot}%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then
50f89d
  mkdir -p %{glibc_sysroot}%{_infodir}
50f89d
  mv -f %{glibc_sysroot}%{_prefix}/info/* %{glibc_sysroot}%{_infodir}
50f89d
  rm -rf %{glibc_sysroot}%{_prefix}/info
50f89d
fi
50f89d
50f89d
# Compress all of the info files.
50f89d
gzip -9nvf %{glibc_sysroot}%{_infodir}/libc*
50f89d
50f89d
%else
50f89d
rm -f %{glibc_sysroot}%{_infodir}/dir
50f89d
rm -f %{glibc_sysroot}%{_infodir}/libc.info*
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# Create locale sub-package file lists
50f89d
##############################################################################
50f89d
50f89d
%ifnarch %{auxarches}
50f89d
olddir=`pwd`
50f89d
pushd %{glibc_sysroot}%{_prefix}/lib/locale
50f89d
rm -f locale-archive
50f89d
# Intentionally we do not pass --alias-file=, aliases will be added
50f89d
# by build-locale-archive.
50f89d
$olddir/build-%{target}/elf/ld.so \
50f89d
        --library-path $olddir/build-%{target}/ \
50f89d
        $olddir/build-%{target}/locale/localedef \
50f89d
        --prefix %{glibc_sysroot} --add-to-archive \
50f89d
        eo *_*
50f89d
# Setup the locale-archive template for use by glibc-all-langpacks.
50f89d
mv locale-archive{,.tmpl}
50f89d
# Create the file lists for the language specific sub-packages:
50f89d
for i in eo *_*
50f89d
do
50f89d
    lang=${i%%_*}
50f89d
    if [ ! -e langpack-${lang}.filelist ]; then
50f89d
        echo "%dir %{_prefix}/lib/locale" >> langpack-${lang}.filelist
50f89d
    fi
50f89d
    echo "%dir  %{_prefix}/lib/locale/$i" >> langpack-${lang}.filelist
50f89d
    echo "%{_prefix}/lib/locale/$i/*" >> langpack-${lang}.filelist
50f89d
done
50f89d
popd
50f89d
pushd %{glibc_sysroot}%{_prefix}/share/locale
50f89d
for i in */LC_MESSAGES/libc.mo
50f89d
do
50f89d
    locale=${i%%%%/*}
50f89d
    lang=${locale%%%%_*}
50f89d
    echo "%lang($lang) %{_prefix}/share/locale/${i}" \
50f89d
         >> %{glibc_sysroot}%{_prefix}/lib/locale/langpack-${lang}.filelist
50f89d
done
50f89d
popd
50f89d
mv  %{glibc_sysroot}%{_prefix}/lib/locale/*.filelist .
50f89d
%endif
50f89d
50f89d
##############################################################################
50f89d
# Install configuration files for services
50f89d
##############################################################################
50f89d
50f89d
install -p -m 644 %{SOURCE7} %{glibc_sysroot}/etc/nsswitch.conf
50f89d
50f89d
%ifnarch %{auxarches}
50f89d
# This is for ncsd - in glibc 2.2
50f89d
install -m 644 nscd/nscd.conf %{glibc_sysroot}/etc
50f89d
mkdir -p %{glibc_sysroot}%{_tmpfilesdir}
50f89d
install -m 644 %{SOURCE4} %{buildroot}%{_tmpfilesdir}
50f89d
mkdir -p %{glibc_sysroot}/lib/systemd/system
50f89d
install -m 644 nscd/nscd.service nscd/nscd.socket %{glibc_sysroot}/lib/systemd/system
50f89d
%endif
50f89d
50f89d
# Include ld.so.conf
50f89d
echo 'include ld.so.conf.d/*.conf' > %{glibc_sysroot}/etc/ld.so.conf
50f89d
truncate -s 0 %{glibc_sysroot}/etc/ld.so.cache
50f89d
chmod 644 %{glibc_sysroot}/etc/ld.so.conf
50f89d
mkdir -p %{glibc_sysroot}/etc/ld.so.conf.d
50f89d
%ifnarch %{auxarches}
50f89d
mkdir -p %{glibc_sysroot}/etc/sysconfig
50f89d
truncate -s 0 %{glibc_sysroot}/etc/sysconfig/nscd
50f89d
truncate -s 0 %{glibc_sysroot}/etc/gai.conf
50f89d
%endif
50f89d
50f89d
# Include %{_libdir}/gconv/gconv-modules.cache
50f89d
truncate -s 0 %{glibc_sysroot}%{_libdir}/gconv/gconv-modules.cache
50f89d
chmod 644 %{glibc_sysroot}%{_libdir}/gconv/gconv-modules.cache
50f89d
50f89d
# Install the upgrade program
50f89d
install -m 700 build-%{target}/elf/glibc_post_upgrade \
50f89d
  %{glibc_sysroot}%{_prefix}/sbin/glibc_post_upgrade.%{_target_cpu}
50f89d
50f89d
##############################################################################
50f89d
# Install debug copies of unstripped static libraries
50f89d
# - This step must be last in order to capture any additional static
50f89d
#   archives we might have added.
50f89d
##############################################################################
50f89d
50f89d
# If we are building a debug package then copy all of the static archives
50f89d
# into the debug directory to keep them as unstripped copies.
50f89d
%if 0%{?_enable_debug_packages}
50f89d
mkdir -p %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}
50f89d
cp -a %{glibc_sysroot}%{_libdir}/*.a \
50f89d
	%{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}/
50f89d
rm -f %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}/*_p.a
50f89d
%endif
50f89d
50f89d
# Remove any zoneinfo files; they are maintained by tzdata.
50f89d
rm -rf %{glibc_sysroot}%{_prefix}/share/zoneinfo
50f89d
50f89d
# Make sure %config files have the same timestamp across multilib packages.
50f89d
#
50f89d
# XXX: Ideally ld.so.conf should have the timestamp of the spec file, but there
50f89d
# doesn't seem to be any macro to give us that.  So we do the next best thing,
50f89d
# which is to at least keep the timestamp consistent.  The choice of using
50f89d
# glibc_post_upgrade.c is arbitrary.
50f89d
touch -r %{SOURCE0} %{glibc_sysroot}/etc/ld.so.conf
50f89d
touch -r sunrpc/etc.rpc %{glibc_sysroot}/etc/rpc
50f89d
50f89d
pushd build-%{target}
50f89d
$GCC -Os -g -static -o build-locale-archive %{SOURCE1} \
50f89d
	../build-%{target}/locale/locarchive.o \
50f89d
	../build-%{target}/locale/md5.o \
50f89d
	../build-%{target}/locale/record-status.o \
50f89d
	-I. -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \
50f89d
	-L../build-%{target} \
50f89d
	-B../build-%{target}/csu/ -lc -lc_nonshared
50f89d
install -m 700 build-locale-archive %{glibc_sysroot}%{_prefix}/sbin/build-locale-archive
50f89d
popd
50f89d
50f89d
# Lastly copy some additional documentation for the packages.
50f89d
rm -rf documentation
50f89d
mkdir documentation
50f89d
cp timezone/README documentation/README.timezone
50f89d
cp posix/gai.conf documentation/
50f89d
50f89d
%ifarch s390x
50f89d
# Compatibility symlink
50f89d
mkdir -p %{glibc_sysroot}/lib
50f89d
ln -sf /%{_lib}/ld64.so.1 %{glibc_sysroot}/lib/ld64.so.1
50f89d
%endif
50f89d
50f89d
%if %{with benchtests}
50f89d
# Build benchmark binaries.  Ignore the output of the benchmark runs.
50f89d
pushd build-%{target}
50f89d
make BENCH_DURATION=1 bench-build
50f89d
popd
50f89d
50f89d
# Copy over benchmark binaries.
50f89d
mkdir -p %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests
50f89d
cp $(find build-%{target}/benchtests -type f -executable) %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
50f89d
# ... and the makefile.
50f89d
for b in %{SOURCE9} %{SOURCE10}; do
50f89d
	cp $b %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
50f89d
done
50f89d
# .. and finally, the comparison scripts.
50f89d
cp benchtests/scripts/benchout.schema.json %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
50f89d
cp benchtests/scripts/compare_bench.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
50f89d
cp benchtests/scripts/import_bench.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
50f89d
cp benchtests/scripts/validate_benchout.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
50f89d
50f89d
%if 0%{?_enable_debug_packages}
50f89d
# The #line directives gperf generates do not give the proper
50f89d
# file name relative to the build directory.
50f89d
pushd locale
50f89d
ln -s programs/*.gperf .
50f89d
popd
50f89d
pushd iconv
50f89d
ln -s ../locale/programs/charmap-kw.gperf .
50f89d
popd
50f89d
50f89d
%if %{with docs}
50f89d
# Remove the `dir' info-heirarchy file which will be maintained
50f89d
# by the system as it adds info files to the install.
50f89d
rm -f %{glibc_sysroot}%{_infodir}/dir
50f89d
%endif
50f89d
50f89d
%ifnarch %{auxarches}
50f89d
truncate -s 0 %{glibc_sysroot}/%{_prefix}/lib/locale/locale-archive
50f89d
mkdir -p %{glibc_sysroot}/var/{db,run}/nscd
50f89d
touch %{glibc_sysroot}/var/{db,run}/nscd/{passwd,group,hosts,services}
50f89d
touch %{glibc_sysroot}/var/run/nscd/{socket,nscd.pid}
50f89d
%endif
50f89d
50f89d
# Move libpcprofile.so and libmemusage.so into the proper library directory.
50f89d
# They can be moved without any real consequences because users would not use
50f89d
# them directly.
50f89d
mkdir -p %{glibc_sysroot}%{_libdir}
50f89d
mv -f %{glibc_sysroot}/%{_lib}/lib{pcprofile,memusage}.so \
50f89d
	%{glibc_sysroot}%{_libdir}
50f89d
50f89d
# Strip all of the installed object files.
50f89d
strip -g %{glibc_sysroot}%{_libdir}/*.o
50f89d
50f89d
###############################################################################
50f89d
# Rebuild libpthread.a using --whole-archive to ensure all of libpthread
50f89d
# is included in a static link. This prevents any problems when linking
50f89d
# statically, using parts of libpthread, and other necessary parts not
50f89d
# being included. Upstream has decided that this is the wrong approach to
50f89d
# this problem and that the full set of dependencies should be resolved
50f89d
# such that static linking works and produces the most minimally sized
50f89d
# static application possible.
50f89d
###############################################################################
50f89d
pushd %{glibc_sysroot}%{_prefix}/%{_lib}/
50f89d
$GCC -r -nostdlib -o libpthread.o -Wl,--whole-archive ./libpthread.a
50f89d
rm libpthread.a
50f89d
ar rcs libpthread.a libpthread.o
50f89d
rm libpthread.o
50f89d
popd
50f89d
50f89d
# The xtrace and memusage scripts have hard-coded paths that need to be
50f89d
# translated to a correct set of paths using the $LIB token which is
50f89d
# dynamically translated by ld.so as the default lib directory.
50f89d
for i in %{glibc_sysroot}%{_prefix}/bin/{xtrace,memusage}; do
50f89d
%if %{with bootstrap}
50f89d
  test -w $i || continue
50f89d
%endif
50f89d
  sed -e 's~=/%{_lib}/libpcprofile.so~=%{_libdir}/libpcprofile.so~' \
50f89d
      -e 's~=/%{_lib}/libmemusage.so~=%{_libdir}/libmemusage.so~' \
50f89d
      -e 's~='\''/\\\$LIB/libpcprofile.so~='\''%{_prefix}/\\$LIB/libpcprofile.so~' \
50f89d
      -e 's~='\''/\\\$LIB/libmemusage.so~='\''%{_prefix}/\\$LIB/libmemusage.so~' \
50f89d
      -i $i
50f89d
done
50f89d
50f89d
##############################################################################
50f89d
# Build an empty libpthread_nonshared.a for compatiliby with applications
50f89d
# that have old linker scripts that reference this file. We ship this only
50f89d
# in compat-libpthread-nonshared sub-package.
50f89d
##############################################################################
50f89d
ar cr %{glibc_sysroot}%{_prefix}/%{_lib}/libpthread_nonshared.a
50f89d
50f89d
##############################################################################
50f89d
# Beyond this point in the install process we no longer modify the set of
50f89d
# installed files, with one exception, for auxarches we cleanup the file list
50f89d
# at the end and remove files which we don't intend to ship. We need the file
50f89d
# list to effect a proper cleanup, and so it happens last.
50f89d
##############################################################################
50f89d
50f89d
##############################################################################
50f89d
# Build the file lists used for describing the package and subpackages.
50f89d
##############################################################################
50f89d
# There are several main file lists (and many more for
50f89d
# the langpack sub-packages (langpack-${lang}.filelist)):
50f89d
# * master.filelist
50f89d
#	- Master file list from which all other lists are built.
50f89d
# * glibc.filelist
50f89d
#	- Files for the glibc packages.
50f89d
# * common.filelist
50f89d
#	- Flies for the common subpackage.
50f89d
# * utils.filelist
50f89d
#	- Files for the utils subpackage.
50f89d
# * nscd.filelist
50f89d
#	- Files for the nscd subpackage.
50f89d
# * devel.filelist
50f89d
#	- Files for the devel subpackage.
50f89d
# * headers.filelist
50f89d
#	- Files for the headers subpackage.
50f89d
# * static.filelist
50f89d
#	- Files for the static subpackage.
50f89d
# * libnsl.filelist
50f89d
#       - Files for the libnsl subpackage
50f89d
# * nss_db.filelist
50f89d
# * nss_hesiod.filelist
50f89d
#       - File lists for nss_* NSS module subpackages.
50f89d
# * nss-devel.filelist
50f89d
#       - File list with the .so symbolic links for NSS packages.
50f89d
# * compat-libpthread-nonshared.filelist.
50f89d
#	- File list for compat-libpthread-nonshared subpackage.
50f89d
# * debuginfo.filelist
50f89d
#	- Files for the glibc debuginfo package.
50f89d
# * debuginfocommon.filelist
50f89d
#	- Files for the glibc common debuginfo package.
50f89d
#
50f89d
50f89d
# Create the main file lists. This way we can append to any one of them later
50f89d
# wihtout having to create it. Note these are removed at the start of the
50f89d
# install phase.
50f89d
touch master.filelist
50f89d
touch glibc.filelist
50f89d
touch common.filelist
50f89d
touch utils.filelist
50f89d
touch nscd.filelist
50f89d
touch devel.filelist
50f89d
touch headers.filelist
50f89d
touch static.filelist
50f89d
touch libnsl.filelist
50f89d
touch nss_db.filelist
50f89d
touch nss_hesiod.filelist
50f89d
touch nss-devel.filelist
50f89d
touch compat-libpthread-nonshared.filelist
50f89d
touch debuginfo.filelist
50f89d
touch debuginfocommon.filelist
50f89d
50f89d
###############################################################################
50f89d
# Master file list, excluding a few things.
50f89d
###############################################################################
50f89d
{
50f89d
  # List all files or links that we have created during install.
50f89d
  # Files with 'etc' are configuration files, likewise 'gconv-modules'
50f89d
  # and 'gconv-modules.cache' are caches, and we exclude them.
50f89d
  find %{glibc_sysroot} \( -type f -o -type l \) \
50f89d
       \( \
50f89d
	 -name etc -printf "%%%%config " -o \
50f89d
	 -name gconv-modules \
50f89d
	 -printf "%%%%verify(not md5 size mtime) %%%%config(noreplace) " -o \
50f89d
	 -name gconv-modules.cache \
50f89d
	 -printf "%%%%verify(not md5 size mtime) " \
50f89d
	 , \
50f89d
	 ! -path "*/lib/debug/*" -printf "/%%P\n" \)
50f89d
  # List all directories with a %%dir prefix.  We omit the info directory and
50f89d
  # all directories in (and including) /usr/share/locale.
50f89d
  find %{glibc_sysroot} -type d \
50f89d
       \( -path '*%{_prefix}/share/locale' -prune -o \
50f89d
       \( -path '*%{_prefix}/share/*' \
50f89d
%if %{with docs}
50f89d
	! -path '*%{_infodir}' -o \
50f89d
%endif
50f89d
	  -path "*%{_prefix}/include/*" \
50f89d
       \) -printf "%%%%dir /%%P\n" \)
50f89d
} | {
50f89d
  # Also remove the *.mo entries.  We will add them to the
50f89d
  # language specific sub-packages.
50f89d
  # libnss_ files go into subpackages related to NSS modules.
50f89d
  # and .*/share/i18n/charmaps/.*), they go into the sub-package
50f89d
  # "locale-source":
50f89d
  sed -e '\,.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo,d' \
50f89d
      -e '\,.*/share/i18n/locales/.*,d' \
50f89d
      -e '\,.*/share/i18n/charmaps/.*,d' \
50f89d
      -e '\,.*/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\|rpc\|gai\.conf\),d' \
50f89d
      -e '\,.*/%{_libdir}/lib\(pcprofile\|memusage\)\.so,d' \
50f89d
      -e '\,.*/bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d'
50f89d
} | sort > master.filelist
50f89d
50f89d
# The master file list is now used by each subpackage to list their own
50f89d
# files. We go through each package and subpackage now and create their lists.
50f89d
# Each subpackage picks the files from the master list that they need.
50f89d
# The order of the subpackage list generation does not matter.
50f89d
50f89d
# Make the master file list read-only after this point to avoid accidental
50f89d
# modification.
50f89d
chmod 0444 master.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc
50f89d
###############################################################################
50f89d
50f89d
# Add all files with the following exceptions:
50f89d
# - The info files '%{_infodir}/dir'
50f89d
# - The partial (lib*_p.a) static libraries, include files.
50f89d
# - The static files, objects, unversioned DSOs, and nscd.
50f89d
# - The bin, locale, some sbin, and share.
50f89d
#   - The use of [^gi] is meant to exclude all files except glibc_post_upgrade,
50f89d
#     and iconvconfig, which we want in the main packages.
50f89d
# - All the libnss files (we add back the ones we want later).
50f89d
# - All bench test binaries.
50f89d
# - The aux-cache, since it's handled specially in the files section.
50f89d
# - The build-locale-archive binary since it's in the common package.
50f89d
cat master.filelist \
50f89d
	| grep -v \
50f89d
	-e '%{_infodir}' \
50f89d
	-e '%{_libdir}/lib.*_p.a' \
50f89d
	-e '%{_prefix}/include' \
50f89d
	-e '%{_libdir}/lib.*\.a' \
50f89d
        -e '%{_libdir}/.*\.o' \
50f89d
	-e '%{_libdir}/lib.*\.so' \
50f89d
	-e 'nscd' \
50f89d
	-e '%{_prefix}/bin' \
50f89d
	-e '%{_prefix}/lib/locale' \
50f89d
	-e '%{_prefix}/sbin/[^gi]' \
50f89d
	-e '%{_prefix}/share' \
50f89d
	-e '/var/db/Makefile' \
50f89d
	-e '/libnss_.*\.so[0-9.]*$' \
50f89d
	-e '/libnsl' \
50f89d
	-e 'glibc-benchtests' \
50f89d
	-e 'aux-cache' \
50f89d
	-e 'build-locale-archive' \
50f89d
	> glibc.filelist
50f89d
50f89d
# Add specific files:
50f89d
# - The nss_files, nss_compat, and nss_db files.
50f89d
# - The libmemusage.so and libpcprofile.so used by utils.
50f89d
for module in compat files dns; do
50f89d
    cat master.filelist \
50f89d
	| grep -E \
50f89d
	-e "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
50f89d
	>> glibc.filelist
50f89d
done
50f89d
grep -e "libmemusage.so" -e "libpcprofile.so" master.filelist >> glibc.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc-devel
50f89d
###############################################################################
50f89d
50f89d
%if %{with docs}
50f89d
# Put the info files into the devel file list, but exclude the generated dir.
50f89d
grep '%{_infodir}' master.filelist | grep -v '%{_infodir}/dir' > devel.filelist
50f89d
%endif
50f89d
50f89d
# Put some static files into the devel package.
50f89d
grep '%{_libdir}/lib.*\.a' master.filelist \
50f89d
  | grep '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \
50f89d
  >> devel.filelist
50f89d
50f89d
# Put all of the object files and *.so (not the versioned ones) into the
50f89d
# devel package.
50f89d
grep '%{_libdir}/.*\.o' < master.filelist >> devel.filelist
50f89d
grep '%{_libdir}/lib.*\.so' < master.filelist >> devel.filelist
50f89d
# The exceptions are:
50f89d
# - libmemusage.so and libpcprofile.so in glibc used by utils.
50f89d
# - libnss_*.so which are in nss-devel.
50f89d
sed -i -e '\,libmemusage.so,d' \
50f89d
	-e '\,libpcprofile.so,d' \
50f89d
	-e '\,/libnss_[a-z]*\.so$,d' \
50f89d
	devel.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc-headers
50f89d
###############################################################################
50f89d
50f89d
# The glibc-headers package includes only common files which are identical
50f89d
# across all multilib packages. We must keep gnu/stubs.h and gnu/lib-names.h
50f89d
# in the glibc-headers package, but the -32, -64, -64-v1, and -64-v2 versions
50f89d
# go into the development packages.
50f89d
grep '%{_prefix}/include/gnu/stubs-.*\.h$' < master.filelist >> devel.filelist || :
50f89d
grep '%{_prefix}/include/gnu/lib-names-.*\.h$' < master.filelist >> devel.filelist || :
50f89d
# Put the include files into headers file list.
50f89d
grep '%{_prefix}/include' < master.filelist \
50f89d
  | egrep -v '%{_prefix}/include/gnu/stubs-.*\.h$' \
50f89d
  | egrep -v '%{_prefix}/include/gnu/lib-names-.*\.h$' \
50f89d
  > headers.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc-static
50f89d
###############################################################################
50f89d
50f89d
# Put the rest of the static files into the static package.
50f89d
grep '%{_libdir}/lib.*\.a' < master.filelist \
50f89d
  | grep -v '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \
50f89d
  > static.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc-common
50f89d
###############################################################################
50f89d
50f89d
# All of the bin and certain sbin files go into the common package except
50f89d
# glibc_post_upgrade.* and iconvconfig which need to go in glibc. Likewise
50f89d
# nscd is excluded because it goes in nscd.
50f89d
grep '%{_prefix}/bin' master.filelist >> common.filelist
50f89d
grep '%{_prefix}/sbin/[^gi]' master.filelist \
50f89d
	| grep -v 'nscd' >> common.filelist
50f89d
# All of the files under share go into the common package since they should be
50f89d
# multilib-independent.
50f89d
# Exceptions:
50f89d
# - The actual share directory, not owned by us.
50f89d
# - The info files which go in devel, and the info directory.
50f89d
grep '%{_prefix}/share' master.filelist \
50f89d
	| grep -v \
50f89d
	-e '%{_prefix}/share/info/libc.info.*' \
50f89d
	-e '%%dir %{prefix}/share/info' \
50f89d
	-e '%%dir %{prefix}/share' \
50f89d
	>> common.filelist
50f89d
50f89d
# Add the binary to build locales to the common subpackage.
50f89d
echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
50f89d
50f89d
###############################################################################
50f89d
# nscd
50f89d
###############################################################################
50f89d
50f89d
# The nscd binary must go into the nscd subpackage.
50f89d
echo '%{_prefix}/sbin/nscd' > nscd.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc-utils
50f89d
###############################################################################
50f89d
50f89d
# Add the utils scripts and programs to the utils subpackage.
50f89d
cat > utils.filelist <
50f89d
%if %{without bootstrap}
50f89d
%{_prefix}/bin/memusage
50f89d
%{_prefix}/bin/memusagestat
50f89d
%endif
50f89d
%{_prefix}/bin/mtrace
50f89d
%{_prefix}/bin/pcprofiledump
50f89d
%{_prefix}/bin/xtrace
50f89d
EOF
50f89d
50f89d
###############################################################################
50f89d
# nss_db, nss_hesiod
50f89d
###############################################################################
50f89d
50f89d
# Move the NSS-related files to the NSS subpackages.  Be careful not
50f89d
# to pick up .debug files, and the -devel symbolic links.
50f89d
for module in db hesiod; do
50f89d
  grep -E "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
50f89d
    master.filelist > nss_$module.filelist
50f89d
done
50f89d
50f89d
###############################################################################
50f89d
# nss-devel
50f89d
###############################################################################
50f89d
50f89d
# Symlinks go into the nss-devel package (instead of the main devel
50f89d
# package).
50f89d
grep '/libnss_[a-z]*\.so$' master.filelist > nss-devel.filelist
50f89d
50f89d
###############################################################################
50f89d
# libnsl
50f89d
###############################################################################
50f89d
50f89d
# Prepare the libnsl-related file lists.
50f89d
grep '/libnsl-[0-9.]*.so$' master.filelist > libnsl.filelist
50f89d
test $(wc -l < libnsl.filelist) -eq 1
50f89d
50f89d
###############################################################################
50f89d
# glibc-benchtests
50f89d
###############################################################################
50f89d
50f89d
# List of benchmarks.
50f89d
find build-%{target}/benchtests -type f -executable | while read b; do
50f89d
	echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)"
50f89d
done >> benchtests.filelist
50f89d
# ... and the makefile.
50f89d
for b in %{SOURCE9} %{SOURCE10}; do
50f89d
	echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)" >> benchtests.filelist
50f89d
done
50f89d
# ... and finally, the comparison scripts.
50f89d
echo "%{_prefix}/libexec/glibc-benchtests/benchout.schema.json" >> benchtests.filelist
50f89d
echo "%{_prefix}/libexec/glibc-benchtests/compare_bench.py*" >> benchtests.filelist
50f89d
echo "%{_prefix}/libexec/glibc-benchtests/import_bench.py*" >> benchtests.filelist
50f89d
echo "%{_prefix}/libexec/glibc-benchtests/validate_benchout.py*" >> benchtests.filelist
50f89d
%endif
50f89d
50f89d
###############################################################################
50f89d
# compat-libpthread-nonshared
50f89d
###############################################################################
50f89d
echo "%{_libdir}/libpthread_nonshared.a" >> compat-libpthread-nonshared.filelist
50f89d
50f89d
###############################################################################
50f89d
# glibc-debuginfocommon, and glibc-debuginfo
50f89d
###############################################################################
50f89d
50f89d
find_debuginfo_args='--strict-build-id -g'
50f89d
%ifarch %{debuginfocommonarches}
50f89d
find_debuginfo_args="$find_debuginfo_args \
50f89d
	-l common.filelist \
50f89d
	-l utils.filelist \
50f89d
	-l nscd.filelist \
50f89d
	-p '.*/(sbin|libexec)/.*' \
50f89d
	-o debuginfocommon.filelist \
50f89d
	-l nss_db.filelist -l nss_hesiod.filelist \
50f89d
	-l libnsl.filelist -l glibc.filelist \
50f89d
%if %{with benchtests}
50f89d
	-l benchtests.filelist
50f89d
%endif
50f89d
	"
50f89d
%endif
50f89d
50f89d
/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
50f89d
50f89d
# List all of the *.a archives in the debug directory.
50f89d
list_debug_archives()
50f89d
{
50f89d
	local dir=%{_prefix}/lib/debug%{_libdir}
50f89d
	find %{glibc_sysroot}$dir -name "*.a" -printf "$dir/%%P\n"
50f89d
}
50f89d
50f89d
%ifarch %{debuginfocommonarches}
50f89d
50f89d
# Remove the source files from the common package debuginfo.
50f89d
sed -i '\#^%{glibc_sysroot}%{_prefix}/src/debug/#d' debuginfocommon.filelist
50f89d
50f89d
# Create a list of all of the source files we copied to the debug directory.
50f89d
find %{glibc_sysroot}%{_prefix}/src/debug \
50f89d
     \( -type d -printf '%%%%dir ' \) , \
50f89d
     -printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources
50f89d
50f89d
%ifarch %{biarcharches}
50f89d
50f89d
# Add the source files to the core debuginfo package.
50f89d
cat debuginfocommon.sources >> debuginfo.filelist
50f89d
50f89d
%else
50f89d
50f89d
%ifarch %{ix86}
50f89d
%define basearch i686
50f89d
%endif
50f89d
%ifarch sparc sparcv9
50f89d
%define basearch sparc
50f89d
%endif
50f89d
50f89d
# The auxarches get only these few source files.
50f89d
auxarches_debugsources=\
50f89d
'/(generic|linux|%{basearch}|nptl(_db)?)/|/%{glibcsrcdir}/build|/dl-osinfo\.h'
50f89d
50f89d
# Place the source files into the core debuginfo pakcage.
50f89d
egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist
50f89d
50f89d
# Remove the source files from the common debuginfo package.
50f89d
egrep -v "$auxarches_debugsources" \
50f89d
  debuginfocommon.sources >> debuginfocommon.filelist
50f89d
50f89d
%endif # %{biarcharches}
50f89d
50f89d
# Add the list of *.a archives in the debug directory to
50f89d
# the common debuginfo package.
50f89d
list_debug_archives >> debuginfocommon.filelist
50f89d
50f89d
%endif # %{debuginfocommonarches}
50f89d
50f89d
# Remove some common directories from the common package debuginfo so that we
50f89d
# don't end up owning them.
50f89d
exclude_common_dirs()
50f89d
{
50f89d
	exclude_dirs="%{_prefix}/src/debug"
50f89d
	exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug{,/%{_lib},/bin,/sbin})"
50f89d
	exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug%{_prefix}{,/%{_lib},/libexec,/bin,/sbin})"
50f89d
50f89d
	for d in $(echo $exclude_dirs | sed 's/ /\n/g'); do
50f89d
		sed -i "\|^%%dir $d/\?$|d" $1
50f89d
	done
50f89d
}
50f89d
50f89d
%ifarch %{debuginfocommonarches}
50f89d
exclude_common_dirs debuginfocommon.filelist
50f89d
%endif
50f89d
exclude_common_dirs debuginfo.filelist
50f89d
50f89d
%endif # 0%{?_enable_debug_packages}
50f89d
50f89d
##############################################################################
50f89d
# Delete files that we do not intended to ship with the auxarch.
50f89d
# This is the only place where we touch the installed files after generating
50f89d
# the file lists.
50f89d
##############################################################################
50f89d
%ifarch %{auxarches}
50f89d
echo Cutting down the list of unpackaged files
50f89d
sed -e '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //;s#^/*##' \
50f89d
	common.filelist devel.filelist static.filelist headers.filelist \
50f89d
	utils.filelist nscd.filelist \
50f89d
%ifarch %{debuginfocommonarches}
50f89d
	debuginfocommon.filelist \
50f89d
%endif
50f89d
	| (cd %{glibc_sysroot}; xargs --no-run-if-empty rm -f 2> /dev/null || :)
50f89d
%endif # %{auxarches}
50f89d
50f89d
##############################################################################
50f89d
# Run the glibc testsuite
50f89d
##############################################################################
50f89d
%check
50f89d
%if %{with testsuite}
50f89d
50f89d
# Run the glibc tests. If any tests fail to build we exit %check with
50f89d
# an error, otherwise we print the test failure list and the failed
50f89d
# test output and continue.  Write to standard error to avoid
50f89d
# synchronization issues with make and shell tracing output if
50f89d
# standard output and standard error are different pipes.
50f89d
run_tests () {
50f89d
  # This hides a test suite build failure, which should be fatal.  We
50f89d
  # check "Summary of test results:" below to verify that all tests
50f89d
  # were built and run.
50f89d
  make %{?_smp_mflags} -O check |& tee rpmbuild.check.log >&2
50f89d
  test -n tests.sum
50f89d
  if ! grep -q '^Summary of test results:$' rpmbuild.check.log ; then
50f89d
    echo "FAIL: test suite build of target: $(basename "$(pwd)")" >& 2
50f89d
    exit 1
50f89d
  fi
50f89d
  set +x
50f89d
  grep -v ^PASS: tests.sum > rpmbuild.tests.sum.not-passing || true
50f89d
  if test -n rpmbuild.tests.sum.not-passing ; then
50f89d
    echo ===================FAILED TESTS===================== >&2
50f89d
    echo "Target: $(basename "$(pwd)")" >& 2
50f89d
    cat rpmbuild.tests.sum.not-passing >&2
50f89d
    while read failed_code failed_test ; do
50f89d
      for suffix in out test-result ; do
50f89d
        if test -e "$failed_test.$suffix"; then
50f89d
	  echo >&2
50f89d
          echo "=====$failed_code $failed_test.$suffix=====" >&2
50f89d
          cat -- "$failed_test.$suffix" >&2
50f89d
	  echo >&2
50f89d
        fi
50f89d
      done
50f89d
    done 
50f89d
  fi
50f89d
50f89d
  # Unconditonally dump differences in the system call list.
50f89d
  echo "* System call consistency checks:" >&2
50f89d
  cat misc/tst-syscall-list.out >&2
50f89d
  set -x
50f89d
}
50f89d
50f89d
# Increase timeouts
50f89d
export TIMEOUTFACTOR=16
50f89d
parent=$$
50f89d
echo ====================TESTING=========================
50f89d
50f89d
# Default libraries.
50f89d
pushd build-%{target}
50f89d
run_tests
50f89d
popd
50f89d
50f89d
%if %{buildpower9}
50f89d
echo ====================TESTING -mcpu=power9=============
50f89d
pushd build-%{target}-power9
50f89d
run_tests
50f89d
popd
50f89d
%endif
50f89d
50f89d
50f89d
50f89d
echo ====================TESTING END=====================
50f89d
PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p'
50f89d
echo ====================PLT RELOCS LD.SO================
50f89d
readelf -Wr %{glibc_sysroot}/%{_lib}/ld-*.so | sed -n -e "$PLTCMD"
50f89d
echo ====================PLT RELOCS LIBC.SO==============
50f89d
readelf -Wr %{glibc_sysroot}/%{_lib}/libc-*.so | sed -n -e "$PLTCMD"
50f89d
echo ====================PLT RELOCS END==================
50f89d
50f89d
# Finally, check if valgrind runs with the new glibc.
50f89d
# We want to fail building if valgrind is not able to run with this glibc so
50f89d
# that we can then coordinate with valgrind to get it fixed before we update
50f89d
# glibc.
50f89d
pushd build-%{target}
50f89d
50f89d
# Show the auxiliary vector as seen by the new library
50f89d
# (even if we do not perform the valgrind test).
50f89d
LD_SHOW_AUXV=1 elf/ld.so --library-path .:elf:nptl:dlfcn /bin/true
50f89d
50f89d
%if %{with valgrind}
50f89d
elf/ld.so --library-path .:elf:nptl:dlfcn \
50f89d
	/usr/bin/valgrind --error-exitcode=1 \
50f89d
	elf/ld.so --library-path .:elf:nptl:dlfcn /usr/bin/true
50f89d
%endif
50f89d
popd
50f89d
50f89d
%endif # %{run_glibc_tests}
50f89d
50f89d
50f89d
%pre -p <lua>
50f89d
-- Check that the running kernel is new enough
50f89d
required = '%{enablekernel}'
50f89d
rel = posix.uname("%r")
50f89d
if rpm.vercmp(rel, required) < 0 then
50f89d
  error("FATAL: kernel too old", 0)
50f89d
end
50f89d
50f89d
%post -p %{_prefix}/sbin/glibc_post_upgrade.%{_target_cpu}
50f89d
50f89d
%posttrans all-langpacks -e -p <lua>
50f89d
-- If at the end of the transaction we are still installed
50f89d
-- (have a template of non-zero size), then we rebuild the
50f89d
-- locale cache (locale-archive) from the pre-populated
50f89d
-- locale cache (locale-archive.tmpl) i.e. template.
50f89d
if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
50f89d
  pid = posix.fork()
50f89d
  if pid == 0 then
50f89d
    posix.exec("%{_prefix}/sbin/build-locale-archive", "--install-langs", "%%{_install_langs}")
50f89d
  elseif pid > 0 then
50f89d
    posix.wait(pid)
50f89d
  end
50f89d
end
50f89d
50f89d
%postun all-langpacks -p <lua>
50f89d
-- In the postun we always remove the locale cache.
50f89d
-- We are being uninstalled and if this is an upgrade
50f89d
-- then the new packages template will be used to
50f89d
-- recreate a new copy of the cache.
50f89d
os.remove("%{_prefix}/lib/locale/locale-archive")
50f89d
50f89d
%if %{with docs}
50f89d
%post devel
50f89d
/sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
50f89d
%endif
50f89d
50f89d
%pre headers
50f89d
# this used to be a link and it is causing nightmares now
50f89d
if [ -L %{_prefix}/include/scsi ] ; then
50f89d
  rm -f %{_prefix}/include/scsi
50f89d
fi
50f89d
50f89d
%if %{with docs}
50f89d
%preun devel
50f89d
if [ "$1" = 0 ]; then
50f89d
  /sbin/install-info --delete %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
50f89d
fi
50f89d
%endif
50f89d
50f89d
%pre -n nscd
50f89d
getent group nscd >/dev/null || /usr/sbin/groupadd -g 28 -r nscd
50f89d
getent passwd nscd >/dev/null ||
50f89d
  /usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
50f89d
		    -c "NSCD Daemon" -u 28 -g nscd nscd
50f89d
50f89d
%post -n nscd
50f89d
%systemd_post nscd.service
50f89d
50f89d
%preun -n nscd
50f89d
%systemd_preun nscd.service
50f89d
50f89d
%postun -n nscd
50f89d
if test $1 = 0; then
50f89d
  /usr/sbin/userdel nscd > /dev/null 2>&1 || :
50f89d
fi
50f89d
%systemd_postun_with_restart nscd.service
50f89d
50f89d
%files -f glibc.filelist
50f89d
%dir %{_prefix}/%{_lib}/audit
50f89d
%if %{buildpower9}
50f89d
%dir /%{_lib}/power9
50f89d
%endif
50f89d
%ifarch s390x
50f89d
/lib/ld64.so.1
50f89d
%endif
50f89d
%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
50f89d
%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
50f89d
%verify(not md5 size mtime) %config(noreplace) /etc/rpc
50f89d
%dir /etc/ld.so.conf.d
50f89d
%dir %{_prefix}/libexec/getconf
50f89d
%dir %{_libdir}/gconv
50f89d
%dir %attr(0700,root,root) /var/cache/ldconfig
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache
50f89d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
50f89d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf
50f89d
%doc README NEWS INSTALL elf/rtld-debugger-interface.txt
50f89d
# If rpm doesn't support %license, then use %doc instead.
50f89d
%{!?_licensedir:%global license %%doc}
50f89d
%license COPYING COPYING.LIB LICENSES
50f89d
50f89d
%ifnarch %{auxarches}
50f89d
%files -f common.filelist common
50f89d
%dir %{_prefix}/lib/locale
50f89d
%dir %{_prefix}/lib/locale/C.utf8
50f89d
%{_prefix}/lib/locale/C.utf8/*
50f89d
%doc documentation/README.timezone
50f89d
%doc documentation/gai.conf
50f89d
50f89d
%files all-langpacks
50f89d
%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl
50f89d
%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive
50f89d
50f89d
%files locale-source
50f89d
%dir %{_prefix}/share/i18n/locales
50f89d
%{_prefix}/share/i18n/locales/*
50f89d
%dir %{_prefix}/share/i18n/charmaps
50f89d
%{_prefix}/share/i18n/charmaps/*
50f89d
50f89d
%files -f devel.filelist devel
50f89d
50f89d
%files -f static.filelist static
50f89d
50f89d
%files -f headers.filelist headers
50f89d
50f89d
%files -f utils.filelist utils
50f89d
50f89d
%files -f nscd.filelist -n nscd
50f89d
%config(noreplace) /etc/nscd.conf
50f89d
%dir %attr(0755,root,root) /var/run/nscd
50f89d
%dir %attr(0755,root,root) /var/db/nscd
50f89d
/lib/systemd/system/nscd.service
50f89d
/lib/systemd/system/nscd.socket
50f89d
%{_tmpfilesdir}/nscd.conf
50f89d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid
50f89d
%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/passwd
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/group
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/hosts
50f89d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/services
50f89d
%ghost %config(missingok,noreplace) /etc/sysconfig/nscd
50f89d
%endif
50f89d
50f89d
%files -f nss_db.filelist -n nss_db
50f89d
/var/db/Makefile
50f89d
%files -f nss_hesiod.filelist -n nss_hesiod
50f89d
%doc hesiod/README.hesiod
50f89d
%files -f nss-devel.filelist nss-devel
50f89d
50f89d
%files -f libnsl.filelist -n libnsl
50f89d
/%{_lib}/libnsl.so.1
50f89d
50f89d
%if 0%{?_enable_debug_packages}
50f89d
%files debuginfo -f debuginfo.filelist
50f89d
%ifarch %{debuginfocommonarches}
50f89d
%ifnarch %{auxarches}
50f89d
%files debuginfo-common -f debuginfocommon.filelist
50f89d
%endif
50f89d
%endif
50f89d
%endif
50f89d
50f89d
%if %{with benchtests}
50f89d
%files benchtests -f benchtests.filelist
50f89d
%endif
50f89d
50f89d
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
50f89d
50f89d
%changelog
88265a
* Mon Apr  1 2019 Florian Weimer <fweimer@redhat.com> - 2.28-42.1
88265a
- ja_JP: Add new Japanese Era name (#1692450)
88265a
50f89d
* Fri Dec 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-42
50f89d
- Fix rdlock stall with PREFER_WRITER_NONRECURSIVE_NP (#1654872)
50f89d
50f89d
* Fri Dec 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-41
50f89d
- malloc: Implement double-free check for the thread cache (#1642094)
50f89d
50f89d
* Thu Dec 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-40
50f89d
- Add upstream test case for CVE-2018-19591 (#1654010)
50f89d
50f89d
* Thu Dec 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-39
50f89d
- Add GCC dependency for new inline string functions on ppc64le (#1652932)
50f89d
50f89d
* Sat Dec 01 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-38
50f89d
- Add requires on explicit glibc version for glibc-nss-devel (#1649890)
50f89d
50f89d
* Fri Nov 30 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-37
50f89d
- Fix data race in dynamic loader when using LD_AUDIT (#1635779)
50f89d
50f89d
* Wed Nov 28 2018 Florian Weimer <fweimer@redhat.com> - 2.28-36
50f89d
- CVE-2018-19591: File descriptor leak in if_nametoindex (#1654010)
50f89d
50f89d
* Mon Nov 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-35
50f89d
- Do not use parallel make for building locales (#1652229)
50f89d
50f89d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-34
50f89d
- support: Print timestamps in timeout handler (#1651274)
50f89d
50f89d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-33
50f89d
- Increase test timeout for  libio/tst-readline (#1638520)
50f89d
50f89d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-32
50f89d
- Fix tzfile low-memory assertion failure (#1650571)
50f89d
50f89d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-31
50f89d
- Add newlines in __libc_fatal calls (#1650566)
50f89d
50f89d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-30
50f89d
- nscd: Fix use-after-free in addgetnetgrentX (#1650563)
50f89d
50f89d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-29
50f89d
- Update syscall names to Linux 4.19 (#1650560)
50f89d
50f89d
* Tue Nov 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-28
50f89d
- kl_GL: Fix spelling of Sunday, should be "sapaat" (#1645597)
50f89d
50f89d
* Tue Nov 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-27
50f89d
- Fix x86 CPU flags analysis for string function selection (#1641982)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-26
50f89d
- Reduce RAM requirements for stdlib/test-bz22786 (#1638523)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-25
50f89d
- x86: Improve enablement for 32-bit code using CET (#1645601)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-24
50f89d
- Fix crash in getaddrinfo_a when thread creation fails (#1646379)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-23
50f89d
- Fix race in pthread_mutex_lock related to PTHREAD_MUTEX_ELISION_NP (#1645604)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-22
50f89d
- Fix misreported errno on preadv2/pwritev2 (#1645596)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-21
50f89d
- Fix posix/tst-spawn4-compat test case (#1645593)
50f89d
50f89d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-20
50f89d
- Disable CET for binaries created by older link editors (#1614979)
50f89d
50f89d
* Fri Nov  2 2018 Mike FABIAN <mfabian@redhat.com> - 2.28-19
50f89d
- Include Esperanto (eo) in glibc-all-langpacks (#1644303)
50f89d
50f89d
* Thu Sep 27 2018 Florian Weimer <fweimer@redhat.com> - 2.28-18
50f89d
- stdlib/tst-setcontext9 test suite failure on ppc64le (#1623536)
50f89d
50f89d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-17
50f89d
- Add missing ENDBR32 in start.S (#1631730)
50f89d
50f89d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-16
50f89d
- Fix bug in generic strstr with large needles (#1631722)
50f89d
50f89d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-15
50f89d
- stdlib/tst-setcontext9 test suite failure (#1623536)
50f89d
50f89d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-14
50f89d
- gethostid: Missing NULL check for gethostbyname_r (#1631293)
50f89d
50f89d
* Wed Sep  5 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-13
50f89d
- Provide compatibility support for linking against libpthread_nonshared.a
50f89d
  (#1614439)
50f89d
50f89d
* Wed Sep  5 2018 Florian Weimer <fweimer@redhat.com> - 2.28-12
50f89d
- Add python3-devel build dependency (#1625592)
50f89d
50f89d
* Wed Aug 29 2018 Florian Weimer <fweimer@redhat.com> - 2.28-11
50f89d
- Drop glibc-ldflags.patch and valgrind bug workaround (#1623456)
50f89d
50f89d
* Wed Aug 29 2018 Florian Weimer <fweimer@redhat.com> - 2.28-10
50f89d
- regex: Fix memory overread when pattern contains NUL byte (#1622678)
50f89d
50f89d
* Wed Aug 29 2018 Florian Weimer <fweimer@redhat.com> - 2.28-9
50f89d
- nptl: Fix waiters-after-spinning case in pthread_cond_broadcast (#1622675)
50f89d
50f89d
* Tue Aug 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-8
50f89d
- nss_files aliases database file stream leak (#1615790)
50f89d
50f89d
* Tue Aug 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-7
50f89d
- Fix static analysis warning in nscd user name allocation (#1615784)
50f89d
50f89d
* Tue Aug 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-6
50f89d
- error, error_at_line: Add missing va_end calls (#1615781)
50f89d
50f89d
* Mon Aug 13 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-5
50f89d
- Remove abort() warning in manual (#1577365)
50f89d
50f89d
* Fri Aug 10 2018 Florian Weimer <fweimer@redhat.com> - 2.28-4
50f89d
- Fix regression in readdir64@GLIBC_2.1 compat symbol (#1614253)
50f89d
50f89d
* Thu Aug  2 2018 Florian Weimer <fweimer@redhat.com> - 2.28-3
50f89d
- Log /proc/sysinfo if available (on s390x)
50f89d
50f89d
* Thu Aug  2 2018 Florian Weimer <fweimer@redhat.com> - 2.28-2
50f89d
- Honor %%{valgrind_arches}
50f89d
50f89d
* Wed Aug 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-43
50f89d
- Update to glibc 2.28 release tarball:
50f89d
- Translation updates
50f89d
- x86/CET: Fix property note parser (swbz#23467)
50f89d
- x86: Add tst-get-cpu-features-static to $(tests) (swbz#23458)
50f89d
50f89d
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-42
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit af86087f02a5522d8801a11d8381e04f95e33162:
50f89d
- x86/CET: Don't parse beyond the note end
50f89d
- Fix Linux fcntl OFD locks tests on unsupported kernels
50f89d
- x86: Populate COMMON_CPUID_INDEX_80000001 for Intel CPUs (swbz#23459)
50f89d
- x86: Correct index_cpu_LZCNT (swbz#23456)
50f89d
- Fix string/tst-xbzero-opt if build with gcc head
50f89d
50f89d
* Thu Jul 26 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-41
50f89d
- Build with --enable-cet on x86_64, i686
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit cfba5dbb10cc3abde632b46c60c10b2843917035:
50f89d
- Keep expected behaviour for [a-z] and [A-z] (#1607286)
50f89d
- Additional ucontext tests
50f89d
- Intel CET enhancements
50f89d
- ISO C11 threads support
50f89d
- Fix out-of-bounds access in IBM-1390 converter (swbz#23448)
50f89d
- New locale Yakut (Sakha) for Russia (sah_RU) (swbz#22241)
50f89d
- os_RU: Add alternative month names (swbz#23140)
50f89d
- powerpc64: Always restore TOC on longjmp (swbz#21895)
50f89d
- dsb_DE locale: Fix syntax error and add tests (swbz#23208)
50f89d
- Improve performance of the generic strstr implementation
50f89d
- regcomp: Fix off-by-one bug in build_equiv_class (swbz#23396)
50f89d
- Fix out of bounds access in findidxwc (swbz#23442)
50f89d
50f89d
* Fri Jul 13 2018 Carlos O'Donell <carlos@redhat.com> - 2.27.9000-40
50f89d
- Fix file list for glibc RPM packaging (#1601011).
50f89d
50f89d
* Wed Jul 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-39
50f89d
- Add POWER9 multilib (downstream only)
50f89d
50f89d
* Wed Jul 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-38
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 93304f5f7a32f73b551266c5a181db51d97a71e4:
50f89d
- Install <bits/statx.h> header
50f89d
- Put the correct Unicode version number 11.0.0 into the generated files
50f89d
50f89d
* Wed Jul 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-37
50f89d
- Work around valgrind issue on i686 (#1600034)
50f89d
50f89d
* Tue Jul 10 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-36
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit fd70af45528d59a00eb3190ef6706cb299488fcd:
50f89d
- Add the statx function
50f89d
- regexec: Fix off-by-one bug in weight comparison (#1582229)
50f89d
- nss_files: Fix re-reading of long lines (swbz#18991)
50f89d
- aarch64: add HWCAP_ATOMICS to HWCAP_IMPORTANT
50f89d
- aarch64: Remove HWCAP_CPUID from HWCAP_IMPORTANT
50f89d
- conform/conformtest.pl: Escape literal braces in regular expressions
50f89d
- x86: Use AVX_Fast_Unaligned_Load from Zen onwards.
50f89d
50f89d
* Fri Jul  6 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-35
50f89d
- Remove ppc64 multilibs
50f89d
50f89d
* Fri Jul 06 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-34
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 3a885c1f51b18852869a91cf59a1b39da1595c7a.
50f89d
50f89d
* Thu Jul  5 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-33
50f89d
- Enable build flags inheritance for nonshared flags
50f89d
50f89d
* Wed Jul  4 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-32
50f89d
- Add annobin annotations to assembler code (#1548438)
50f89d
50f89d
* Wed Jul  4 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-31
50f89d
- Enable -D_FORTIFY_SOURCE=2 for nonshared code
50f89d
50f89d
* Mon Jul 02 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-30
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5:
50f89d
- New locale: dsb_DE (Lower Sorbian)
50f89d
50f89d
* Fri Jun 29 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-29
50f89d
- Drop glibc-deprecate_libcrypt.patch.  Variant applied upstream. (#1566464)
50f89d
- Drop glibc-linux-timespec-header-compat.patch.  Upstreamed.
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit e69d994a63afc2d367f286a2a7df28cbf710f0fe.
50f89d
50f89d
* Thu Jun 28 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-28
50f89d
- Drop glibc-rh1315108.patch.  extend_alloca was removed upstream. (#1315108)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit c49e18222e4c40f21586dabced8a49732d946917.
50f89d
50f89d
* Thu Jun 21 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-27
50f89d
- Compatibility fix for <sys/stat.h> and <linux/time.h>
50f89d
50f89d
* Thu Jun 21 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-26
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit f496b28e61d0342f579bf794c71b80e9c7d0b1b5.
50f89d
50f89d
* Mon Jun 18 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-25
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit f2857da7cdb65bfad75ee30981f5b2fde5bbb1dc.
50f89d
50f89d
* Mon Jun 18 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-24
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 14beef7575099f6373f9a45b4656f1e3675f7372:
50f89d
- iconv: Make IBM273 equivalent to ISO-8859-1 (#1592270)
50f89d
50f89d
* Mon Jun 18 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-23
50f89d
- Inherit the -msse2 build flag as well (#1592212)
50f89d
50f89d
* Fri Jun 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-22
50f89d
- Modernise nsswitch.conf defaults (#1581809)
50f89d
- Adjust build flags inheritence from redhat-rpm-config
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 104502102c6fa322515ba0bb3c95c05c3185da7a.
50f89d
50f89d
* Fri May 25 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-21
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit c1dc1e1b34873db79dfbfa8f2f0a2abbe28c0514.
50f89d
50f89d
* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-20
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 7f9f1ecb710eac4d65bb02785ddf288cac098323:
50f89d
- CVE-2018-11237: Buffer overflow in __mempcpy_avx512_no_vzeroupper (#1581275)
50f89d
- Drop glibc-rh1452750-allocate_once.patch,
50f89d
  glibc-rh1452750-libidn2.patch.  Applied upstream.
50f89d
50f89d
* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-19
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 8f145c77123a565b816f918969e0e35ee5b89153.
50f89d
50f89d
* Thu May 17 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-18
50f89d
- Do not run telinit u on upgrades (#1579225)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 632a6cbe44cdd41dba7242887992cdca7b42922a.
50f89d
50f89d
* Fri May 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-17
50f89d
- Avoid exporting some Sun RPC symbols with default versions (#1577210)
50f89d
- Inherit the -mstackrealign flag if it is set
50f89d
- Inherit compiler flags in the original order
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 89aacb513eb77549a29df2638913a0f8178cf3f5:
50f89d
- CVE-2018-11236: realpath: Fix path length overflow (#1581270, swbz#22786)
50f89d
50f89d
* Fri May 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-16
50f89d
- Use /usr/bin/python3 for benchmarks scripts (#1577223)
50f89d
50f89d
* Thu Apr 19 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-15
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 0085be1415a38b40a5a1a12e49368498f1687380.
50f89d
50f89d
* Mon Apr 09 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-14
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 583a27d525ae189bdfaa6784021b92a9a1dae12e.
50f89d
50f89d
* Thu Mar 29 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-13
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit d39c0a459ef32a41daac4840859bf304d931adab:
50f89d
- CVE-2017-18269: memory corruption in i386 memmove (#1580934)
50f89d
50f89d
* Mon Mar 19 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-12
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit fbce6f7260c3847f14dfa38f60c9111978fb33a5.
50f89d
50f89d
* Fri Mar 16 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-11
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 700593fdd7aef1e36cfa8bad969faab76a6facda.
50f89d
50f89d
* Wed Mar 14 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-10
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 7108f1f944792ac68332967015d5e6418c5ccc88.
50f89d
50f89d
* Mon Mar 12 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-9
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit da6d4404ecfd7eacba8c096b0761a5758a59da4b.
50f89d
50f89d
* Tue Mar  6 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-8
50f89d
- Enable annobin annotations (#1548438)
50f89d
50f89d
* Thu Mar 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-7
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 1a2f44a848663036c8a14671fe0faa3fed0b2a25:
50f89d
- Remove spurios reference to libpthread_nonshared.a
50f89d
50f89d
* Thu Mar 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-6
50f89d
- Switch back to upstream master branch
50f89d
- Drop glibc-rh1013801.patch, applied upstream.
50f89d
- Drop glibc-fedora-nptl-linklibc.patch, no longer needed.
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit bd60ce86520b781ca24b99b2555e2ad389bbfeaa.
50f89d
50f89d
* Wed Feb 28 2018 Florian Weimer <fweimer@redhat.com> - 2.27-5
50f89d
- Inherit as many flags as possible from redhat-rpm-config (#1550914)
50f89d
50f89d
* Mon Feb 19 2018 Richard W.M. Jones <rjones@redhat.com> - 2.27-4
50f89d
- riscv64: Add symlink from /usr/lib64/lp64d -> /usr/lib64 for ABI compat.
50f89d
- riscv64: Disable valgrind smoke test on this architecture.
50f89d
50f89d
* Wed Feb 14 2018 Florian Weimer <fweimer@redhat.com> - 2.27-3
50f89d
- Spec file cleanups:
50f89d
  - Remove %%defattr(-,root,root)
50f89d
  - Use shell to run ldconfig %%transfiletrigger
50f89d
  - Move %%transfiletrigger* to the glibc-common subpackage
50f89d
  - Trim changelog
50f89d
  - Include ChangeLog.old in the source RPM
50f89d
50f89d
* Wed Feb  7 2018 Florian Weimer <fweimer@redhat.com> - 2.27-2.1
50f89d
- Linux: use reserved name __key in pkey_get (#1542643)
50f89d
- Auto-sync with upstream branch release/2.27/master,
50f89d
  commit 56170e064e2b21ce204f0817733e92f1730541ea.
50f89d
50f89d
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org>
50f89d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
50f89d
50f89d
* Mon Feb 05 2018 Carlos O'Donell <carlos@redhat.com> - 2.27-1
50f89d
- Update to released glibc 2.27.
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 23158b08a0908f381459f273a984c6fd328363cb.
50f89d
50f89d
* Tue Jan 30 2018 Richard W.M. Jones <rjones@redhat.com> - 2.26.9000-52
50f89d
- Disable -fstack-clash-protection on riscv64:
50f89d
  not supported even by GCC 7.3.1 on this architecture.
50f89d
50f89d
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-51
50f89d
- Explicitly run ldconfig in the buildroot
50f89d
- Do not run ldconfig from scriptlets
50f89d
- Put triggers into the glibc-common package, do not pass arguments to ldconfig
50f89d
50f89d
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-50
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit cdd14619a713ab41e26ba700add4880604324dbb:
50f89d
- libnsl: Turn remaining symbols into compat symbols (swbz#22701)
50f89d
- be_BY, be_BY@latin, lt_LT, el_CY, el_GR, ru_RU, ru_UA, uk_UA:
50f89d
  Add alternative month names (swbz#10871)
50f89d
- x86: Revert Intel CET changes to __jmp_buf_tag (swbz#22743)
50f89d
- aarch64: Revert the change of the __reserved member of mcontext_t
50f89d
50f89d
* Mon Jan 29 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.26.9000-49
50f89d
- Add file triggers to do ldconfig calls automatically
50f89d
50f89d
* Mon Jan 22 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-48
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 21c0696cdef617517de6e25711958c40455c554f:
50f89d
- locale: Implement alternative month names (swbz#10871)
50f89d
- locale: Change month names for pl_PL (swbz#10871)
50f89d
50f89d
* Mon Jan 22 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-47
50f89d
- Unconditionally build without libcrypt
50f89d
50f89d
* Fri Jan 19 2018 Björn Esser <besser82@fedoraproject.org> - 2.26.9000-46
50f89d
- Remove deprecated libcrypt, gets replaced by libxcrypt
50f89d
- Add applicable Requires on libxcrypt
50f89d
50f89d
* Fri Jan 19 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-45
50f89d
- Drop static PIE support on aarch64.  It leads to crashes at run time.
50f89d
- Remove glibc-rpcgen subpackage.  See rpcsvc-proto.  (#1531540)
50f89d
50f89d
* Fri Jan 19 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-44
50f89d
- Correct the list of static PIE architectures (#1247050)
50f89d
- glibc_post_upgrade: Remove process restart logic
50f89d
- glibc_post_upgrade: Integrate into the build process
50f89d
- glibc_post_upgrade: Do not clean up tls subdirectories
50f89d
- glibc_post_upgrade: Drop ia64 support
50f89d
- Remove architecture-specific symbolic link for iconvconfig
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 4612268a0ad8e3409d8ce2314dd2dd8ee0af5269:
50f89d
- powerpc: Fix syscalls during early process initialization (swbz#22685)
50f89d
50f89d
* Fri Jan 19 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-43
50f89d
- Enable static PIE support on i386, x86_64 (#1247050)
50f89d
- Remove add-on support (already gone upstream)
50f89d
- Rework test suite status reporting
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 64f63cb4583ecc1ba16c7253aacc192b6d088511:
50f89d
- malloc: Fix integer overflows in memalign and malloc functions (swbz#22343)
50f89d
- x86-64: Properly align La_x86_64_retval to VEC_SIZE (swbz#22715)
50f89d
- aarch64: Update bits/hwcap.h for Linux 4.15
50f89d
- Add NT_ARM_SVE to elf.h
50f89d
50f89d
* Wed Jan 17 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-42
50f89d
- CVE-2017-14062, CVE-2016-6261, CVE-2016-6263:
50f89d
  Use libidn2 for IDNA support (#1452750)
50f89d
50f89d
* Mon Jan 15 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-41
50f89d
- CVE-2018-1000001: Make getcwd fail if it cannot obtain an absolute path
50f89d
  (#1533837)
50f89d
- elf: Synchronize DF_1_* flags with binutils (#1439328)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 860b0240a5645edd6490161de3f8d1d1f2786025:
50f89d
- aarch64: fix static pie enabled libc when main is in a shared library
50f89d
- malloc: Ensure that the consolidated fast chunk has a sane size
50f89d
50f89d
* Fri Jan 12 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-40
50f89d
- libnsl: Do not install libnsl.so, libnsl.a (#1531540)
50f89d
- Use unversioned Supplements: for langpacks (#1490725)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 9a08a366a7e7ddffe62113a9ffe5e50605ea0924:
50f89d
- hu_HU locale: Avoid double space (swbz#22657)
50f89d
- math: Make default libc_feholdsetround_noex_ctx use __feholdexcept
50f89d
  (swbz#22702)
50f89d
50f89d
* Thu Jan 11 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-39
50f89d
- nptl: Open libgcc.so with RTLD_NOW during pthread_cancel (#1527887)
50f89d
- Introduce libnsl subpackage and remove NIS headers (#1531540)
50f89d
- Use versioned Obsoletes: for libcrypt-nss.
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 08c6e95234c60a5c2f37532d1111acf084f39345:
50f89d
- nptl: Add tst-minstack-cancel, tst-minstack-exit (swbz#22636)
50f89d
- math: ldbl-128ibm log1pl (-qNaN) spurious "invalid" exception (swbz#22693)
50f89d
50f89d
* Wed Jan 10 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-38
50f89d
- nptl: Fix stack guard size accounting (#1527887)
50f89d
- Remove invalid Obsoletes: on glibc-header provides
50f89d
- Require python3 instead of python during builds
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 09085ede12fb9650f286bdcd805609ae69f80618:
50f89d
- math: ldbl-128ibm lrintl/lroundl missing "invalid" exceptions (swbz#22690)
50f89d
- x86-64: Add sincosf with vector FMA
50f89d
50f89d
* Mon Jan  8 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-37
50f89d
- Add glibc-rpcgen subpackage, until the replacement is packaged (#1531540)
50f89d
50f89d
* Mon Jan 08 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-36
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 579396ee082565ab5f42ff166a264891223b7b82:
50f89d
- nptl: Add test for callee-saved register restore in pthread_exit
50f89d
- getrlimit64: fix for 32-bit configurations with default version >= 2.2
50f89d
- elf: Add linux-4.15 VDSO hash for RISC-V
50f89d
- elf: Add RISC-V dynamic relocations to elf.h
50f89d
- powerpc: Fix error message during relocation overflow
50f89d
- prlimit: Replace old_rlimit RLIM64_INFINITY with RLIM_INFINITY (swbz#22678)
50f89d
50f89d
* Fri Jan 05 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-35
50f89d
- Remove sln (#1531546)
50f89d
- Remove Sun RPC interfaces (#1531540)
50f89d
- Rebuild with newer GCC to fix pthread_exit stack unwinding issue (#1529549)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit f1a844ac6389ea4e111afc019323ca982b5b027d:
50f89d
- CVE-2017-16997: elf: Check for empty tokens before DST expansion (#1526866)
50f89d
- i386: In makecontext, align the stack before calling exit (swbz#22667)
50f89d
- x86, armhfp: sync sys/ptrace.h with Linux 4.15 (swbz#22433)
50f89d
- elf: check for rpath emptiness before making a copy of it
50f89d
- elf: remove redundant is_path argument
50f89d
- elf: remove redundant code from is_dst
50f89d
- elf: remove redundant code from _dl_dst_substitute
50f89d
- scandir: fix wrong assumption about errno (swbz#17804)
50f89d
- Deprecate external use of libio.h and _G_config.h
50f89d
50f89d
* Fri Dec 22 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-34
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit bad7a0c81f501fbbcc79af9eaa4b8254441c4a1f:
50f89d
- copy_file_range: New function to copy file data
50f89d
- nptl: Consolidate pthread_{timed,try}join{_np}
50f89d
- nptl: Implement pthread_self in libc.so (swbz#22635)
50f89d
- math: Provide a C++ version of iseqsig (swbz#22377)
50f89d
- elf: remove redundant __libc_enable_secure check from fillin_rpath
50f89d
- math: Avoid signed shift overflow in pow (swbz#21309)
50f89d
- x86: Add feature_1 to tcbhead_t (swbz#22563)
50f89d
- x86: Update cancel_jmp_buf to match __jmp_buf_tag (swbz#22563)
50f89d
- ld.so: Examine GLRO to detect inactive loader (swbz#20204)
50f89d
- nscd: Fix nscd readlink argument aliasing (swbz#22446)
50f89d
- elf: do not substitute dst in $LD_LIBRARY_PATH twice (swbz#22627)
50f89d
- ldconfig: set LC_COLLATE to C (swbz#22505)
50f89d
- math: New generic sincosf
50f89d
- powerpc: st{r,p}cpy optimization for aligned strings
50f89d
- CVE-2017-1000409: Count in expanded path in _dl_init_path (#1524867)
50f89d
- CVE-2017-1000408: Compute correct array size in _dl_init_paths (#1524867)
50f89d
- x86-64: Remove sysdeps/x86_64/fpu/s_cosf.S
50f89d
- aarch64: Improve strcmp unaligned performance
50f89d
50f89d
* Wed Dec 13 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-33
50f89d
- Remove power6 platform directory (#1522675)
50f89d
50f89d
* Wed Dec 13 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-32
50f89d
- Obsolete the libcrypt-nss subpackage (#1525396)
50f89d
- armhfp: Disable -fstack-clash-protection due to GCC bug (#1522678)
50f89d
- ppc64: Disable power6 multilib due to GCC bug (#1522675)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 243b63337c2c02f30ec3a988ecc44bc0f6ffa0ad:
50f89d
- libio: Free backup area when it not required (swbz#22415)
50f89d
- math: Fix nextafter and nexttoward declaration (swbz#22593)
50f89d
- math: New generic cosf
50f89d
- powerpc: POWER8 memcpy optimization for cached memory
50f89d
- x86-64: Add sinf with FMA
50f89d
- x86-64: Remove sysdeps/x86_64/fpu/s_sinf.S
50f89d
- math: Fix ctanh (0 + i NaN), ctanh (0 + i Inf) (swbz#22568)
50f89d
- lt_LT locale: Base collation on copy "iso14651_t1" (swbz#22524)
50f89d
- math: Add _Float32 function aliases
50f89d
- math: Make cacosh (0 + iNaN) return NaN + i pi/2 (swbz#22561)
50f89d
- hsb_DE locale: Base collation on copy "iso14651_t1" (swbz#22515)
50f89d
50f89d
* Wed Dec 06 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-31
50f89d
- Add elision tunables.  Drop related configure flag.  (#1383986)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 37ac8e635a29810318f6d79902102e2e96b2b5bf:
50f89d
- Linux: Implement interfaces for memory protection keys
50f89d
- math: Add _Float64, _Float32x function aliases
50f89d
- math: Use sign as double for reduced case in sinf
50f89d
- math: fix sinf(NAN)
50f89d
- math: s_sinf.c: Replace floor with simple casts
50f89d
- et_EE locale: Base collation on iso14651_t1 (swbz#22517)
50f89d
- tr_TR locale: Base collation on iso14651_t1 (swbz#22527)
50f89d
- hr_HR locale: Avoid single code points for digraphs in LC_TIME (swbz#10580)
50f89d
- S390: Fix backtrace in vdso functions
50f89d
50f89d
* Mon Dec 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-30
50f89d
- Add build dependency on bison
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 7863a7118112fe502e8020a0db0fa74fef281f29:
50f89d
- math: New generic sinf (swbz#5997)
50f89d
- is_IS locale: Base collation on iso14651_t1 (swbz#22519)
50f89d
- intl: Improve reproducibility by using bison (swbz#22432)
50f89d
- sr_RS, bs_BA locales: make collation rules the same as for hr_HR (wbz#22534)
50f89d
- hr_HR locale: various updates (swbz#10580)
50f89d
- x86: Make a space in jmpbuf for shadow stack pointer
50f89d
- CVE-2017-17426: malloc: Fix integer overflow in tcache (swbz#22375)
50f89d
- locale: make forward accent sorting the default in collating (swbz#17750)
50f89d
50f89d
* Wed Nov 29 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-29
50f89d
- Enable -fstack-clash-protection (#1512531)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit a55430cb0e261834ce7a4e118dd9e0f2b7fb14bc:
50f89d
- elf: Properly compute offsets of note descriptor and next note (swbz#22370)
50f89d
- cs_CZ locale: Base collation on iso14651_t1 (swbz#22336)
50f89d
- Implement the mlock2 function
50f89d
- Add _Float64x function aliases
50f89d
- elf: Consolidate link map sorting
50f89d
- pl_PL locale: Base collation on iso14651_t1 (swbz#22469)
50f89d
- nss: Export nscd hash function as __nss_hash (swbz#22459)
50f89d
50f89d
* Thu Nov 23 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-28
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit cccb6d4e87053ed63c74aee063fa84eb63ebf7b8:
50f89d
- sigwait can fail with EINTR (#1516394)
50f89d
- Add memfd_create function
50f89d
- resolv: Fix p_secstodate overflow handling (swbz#22463)
50f89d
- resolv: Obsolete p_secstodate
50f89d
- Avoid use of strlen in getlogin_r (swbz#22447)
50f89d
- lv_LV locale: fix collation (swbz#15537)
50f89d
- S390: Add cfi information for start routines in order to stop unwinding
50f89d
- aarch64: Optimized memset for falkor
50f89d
50f89d
* Sun Nov 19 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-27
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit f6e965ee94b37289f64ecd3253021541f7c214c3:
50f89d
- powerpc: AT_HWCAP2 bit PPC_FEATURE2_HTM_NO_SUSPEND
50f89d
- aarch64: Add HWCAP_DCPOP bit
50f89d
- ttyname, ttyname_r: Don't bail prematurely (swbz#22145)
50f89d
- signal: Optimize sigrelse implementation
50f89d
- inet: Check length of ifname in if_nametoindex (swbz#22442)
50f89d
- malloc: Account for all heaps in an arena in malloc_info (swbz#22439)
50f89d
- malloc: Add missing arena lock in malloc_info (swbz#22408)
50f89d
- malloc: Use __builtin_tgmath in tgmath.h with GCC 8 (swbz#21660)
50f89d
- locale: Replaced unicode sequences in the ASCII printable range
50f89d
- resolv: More precise checks in res_hnok, res_dnok (swbz#22409, swbz#22412)
50f89d
- resolv: ns_name_pton should report trailing \ as error (swbz#22413)
50f89d
- locale: mfe_MU, miq_NI, an_ES, kab_DZ, om_ET: Escape / in d_fmt (swbz#22403)
50f89d
50f89d
* Tue Nov 07 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-26
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 6b86036452b9ac47b4ee7789a50f2f37df7ecc4f:
50f89d
- CVE-2017-15804: glob: Fix buffer overflow during GLOB_TILDE unescaping
50f89d
- powerpc: Use latest string function optimization for internal function calls
50f89d
- math: No _Float128 support for ppc64le -mlong-double-64 (swbz#22402)
50f89d
- tpi_PG locale: Fix wrong d_fmt
50f89d
- aarch64: Disable lazy symbol binding of TLSDESC
50f89d
- tpi_PG locale: fix syntax error (swbz#22382)
50f89d
- i586: Use conditional branches in strcpy.S (swbz#22353)
50f89d
- ffsl, ffsll: Declare under __USE_MISC, not just __USE_GNU
50f89d
- csb_PL locale: Fix abmon/mon for March (swbz#19485)
50f89d
- locale: Various yesstr/nostr/yesexpr/noexpr fixes (swbz#15260, swbz#15261)
50f89d
- localedef: Add --no-warnings/--warnings option
50f89d
- powerpc: Replace lxvd2x/stxvd2x with lvx/stvx in P7's memcpy/memmove
50f89d
- locale: Use ASCII as much as possible in LC_MESSAGES
50f89d
- Add new locale yuw_PG (swbz#20952)
50f89d
- malloc: Add single-threaded path to malloc/realloc/calloc/memalloc
50f89d
- i386: Replace assembly versions of e_powf with generic e_powf.c
50f89d
- i386: Replace assembly versions of e_log2f with generic e_log2f.c
50f89d
- x86-64: Add powf with FMA
50f89d
- x86-64: Add logf with FMA
50f89d
- i386: Replace assembly versions of e_logf with generic e_logf.c
50f89d
- i386: Replace assembly versions of e_exp2f with generic e_exp2f.c
50f89d
- x86-64: Add exp2f with FMA
50f89d
- i386: Replace assembly versions of e_expf with generic e_expf.c
50f89d
50f89d
* Sat Oct 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-25
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 797ba44ba27521261f94cc521f1c2ca74f650147:
50f89d
- math: Add bits/floatn.h defines for more _FloatN / _FloatNx types
50f89d
- posix: Fix improper assert in Linux posix_spawn (swbz#22273)
50f89d
- x86-64: Use fxsave/xsave/xsavec in _dl_runtime_resolve (swbz#21265)
50f89d
- CVE-2017-15670: glob: Fix one-byte overflow (#1504807)
50f89d
- malloc: Add single-threaded path to _int_free
50f89d
- locale: Add new locale kab_DZ (swbz#18812)
50f89d
- locale: Add new locale shn_MM (swbz#13605)
50f89d
50f89d
* Fri Oct 20 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-24
50f89d
- Use make -O to serialize make output
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 63b4baa44e8d22501c433c4093aa3310f91b6aa2:
50f89d
- sysconf: Fix missing definition of UIO_MAXIOV on Linux (#1504165)
50f89d
- Install correct bits/long-double.h for MIPS64 (swbz#22322)
50f89d
- malloc: Fix deadlock in _int_free consistency check
50f89d
- x86-64: Don't set GLRO(dl_platform) to NULL (swbz#22299)
50f89d
- math: Add _Float128 function aliases
50f89d
- locale: Add new locale mjw_IN (swbz#13994)
50f89d
- aarch64: Rewrite elf_machine_load_address using _DYNAMIC symbol
50f89d
- powerpc: fix check-before-set in SET_RESTORE_ROUND
50f89d
- locale: Use U+202F as thousands separators in pl_PL locale (swbz#16777)
50f89d
- math: Use __f128 to define FLT128_* constants in include/float.h for old GCC
50f89d
- malloc: Improve malloc initialization sequence (swbz#22159)
50f89d
- malloc: Use relaxed atomics for malloc have_fastchunks
50f89d
- locale: New locale ca_ES@valencia (swbz#2522)
50f89d
- math: Let signbit use the builtin in C++ mode with gcc < 6.x (swbz#22296)
50f89d
- locale: Place monetary symbol in el_GR, el_CY after the amount (swbz#22019)
50f89d
50f89d
* Tue Oct 17 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-23
50f89d
- Switch to .9000 version numbers during development
50f89d
50f89d
* Tue Oct 17 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-22
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit c38a4bfd596db2be2b9c1f96715bdc833eab760a:
50f89d
- malloc: Use compat_symbol_reference in libmcheck (swbz#22050)
50f89d
50f89d
* Mon Oct 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-21
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 596f70134a8f11967c65c1d55a94a3a2718c731d:
50f89d
- Silence -O3 -Wall warning in malloc/hooks.c with GCC 7 (swbz#22052)
50f89d
- locale: No warning for non-symbolic character (swbz#22295)
50f89d
- locale: Allow "" int_curr_Symbol (swbz#22294)
50f89d
- locale: Fix localedef exit code (swbz#22292)
50f89d
- nptl: Preserve error in setxid thread broadcast in coredumps (swbz#22153)
50f89d
- powerpc: Avoid putting floating point values in memory (swbz#22189)
50f89d
- powerpc: Fix the carry bit on mpn_[add|sub]_n on POWER7 (swbz#22142)
50f89d
- Support profiling PIE (swbz#22284)
50f89d
50f89d
* Wed Oct 11 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-20
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit d8425e116cdd954fea0c04c0f406179b5daebbb3:
50f89d
- nss_files performance issue in multi mode (swbz#22078)
50f89d
- Ensure C99 and C11 interfaces are available for C++ (swbz#21326)
50f89d
50f89d
* Mon Oct 09 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-19
50f89d
- Move /var/db/Makefile to nss_db (#1498900)
50f89d
- Auto-sync with upstream branch master,
50f89d
  commit 645ac9aaf89e3311949828546df6334322f48933:
50f89d
- openpty: use TIOCGPTPEER to open slave side fd
50f89d
50f89d
* Fri Oct 06 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.26.90-18
50f89d
- Auto-sync with upstream master,
50f89d
  commit 1e26d35193efbb29239c710a4c46a64708643320.
50f89d
- malloc: Fix tcache leak after thread destruction (swbz#22111)
50f89d
- powerpc:  Fix IFUNC for memrchr.
50f89d
- aarch64: Optimized implementation of memmove for Qualcomm Falkor
50f89d
- Always do locking when iterating over list of streams (swbz#15142)
50f89d
- abort: Do not flush stdio streams (swbz#15436)
50f89d
50f89d
* Wed Oct 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-17
50f89d
- Move nss_compat to the main glibc package (#1400538)
50f89d
- Auto-sync with upstream master,
50f89d
  commit 11c4f5010c58029e73e656d5df4f8f42c9b8e877:
50f89d
- crypt: Use NSPR header files in addition to NSS header files (#1489339)
50f89d
- math: Fix yn(n,0) without SVID wrapper (swbz#22244)
50f89d
- math: Fix log2(0) and log(10) in downward rounding (swbz#22243)
50f89d
- math: Add C++ versions of iscanonical for ldbl-96, ldbl-128ibm (swbz#22235)
50f89d
- powerpc: Optimize memrchr for power8
50f89d
- Hide various internal functions (swbz#18822)
50f89d
50f89d
* Sat Sep 30 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-16
50f89d
- Auto-sync with upstream master,
50f89d
  commit 1e2bffd05c36a9be30d7092d6593a9e9aa009ada:
50f89d
- Add IBM858 charset (#1416405)
50f89d
- Update kernel version in syscall-names.list to 4.13
50f89d
- Add Linux 4.13 constants to bits/fcntl-linux.h
50f89d
- Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h
50f89d
- math: New generic powf, log2f, logf
50f89d
- Fix nearbyint arithmetic moved before feholdexcept (swbz#22225)
50f89d
- Mark __dso_handle as hidden (swbz#18822)
50f89d
- Skip PT_DYNAMIC segment with p_filesz == 0 (swbz#22101)
50f89d
- glob now matches dangling symbolic links (swbz#866, swbz#22183)
50f89d
- nscd: Release read lock after resetting timeout (swbz#22161)
50f89d
- Avoid __MATH_TG in C++ mode with -Os for fpclassify (swbz#22146)
50f89d
- Fix dlclose/exit race (swbz#22180)
50f89d
- x86: Add SSE4.1 trunc, truncf (swbz#20142)
50f89d
- Fix atexit/exit race (swbz#14333)
50f89d
- Use execveat syscall in fexecve (swbz#22134)
50f89d
- Enable unwind info in libc-start.c and backtrace.c
50f89d
- powerpc: Avoid misaligned stores in memset
50f89d
- powerpc: build some IFUNC math functions for libc and libm (swbz#21745)
50f89d
- Removed redundant data (LC_TIME and LC_MESSAGES) for niu_NZ (swbz#22023)
50f89d
- Fix LC_TELEPHONE for az_AZ (swbz#22112)
50f89d
- x86: Add MathVec_Prefer_No_AVX512 to cpu-features (swbz#21967)
50f89d
- x86: Add x86_64 to x86-64 HWCAP (swbz#22093)
50f89d
- Finish change from “Bengali” to “Bangla” (swbz#14925)
50f89d
- posix: fix glob bugs with long login names (swbz#1062)
50f89d
- posix: Fix getpwnam_r usage (swbz#1062)
50f89d
- posix: accept inode 0 is a valid inode number (swbz#19971)
50f89d
- Remove redundant LC_TIME data in om_KE (swbz#22100)
50f89d
- Remove remaining _HAVE_STRING_ARCH_* definitions (swbz#18858)
50f89d
- resolv: Fix memory leak with OOM during resolv.conf parsing (swbz#22095)
50f89d
- Add miq_NI locale for Miskito (swbz#20498)
50f89d
- Fix bits/math-finite.h exp10 condition (swbz#22082)
50f89d
50f89d
* Mon Sep 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-15
50f89d
- Auto-sync with upstream master,
50f89d
  commit b38042f51430974642616a60afbbf96fd0b98659:
50f89d
- Implement tmpfile with O_TMPFILE (swbz#21530)
50f89d
- Obsolete pow10 functions
50f89d
- math.h: Warn about an already-defined log macro
50f89d
50f89d
* Fri Sep 01 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-14
50f89d
- Build glibc with -O2 (following the upstream default).
50f89d
- Auto-sync with upstream master,
50f89d
  commit f4a6be2582b8dfe8adfa68da3dd8decf566b3983:
50f89d
- malloc: Abort on heap corruption, without a backtrace (swbz#21754)
50f89d
- getaddrinfo: Return EAI_NODATA for gethostbyname2_r with NO_DATA (swbz#21922)
50f89d
- getaddrinfo: Fix error handling in gethosts (swbz#21915) (swbz#21922)
50f89d
- Place $(elf-objpfx)sofini.os last (swbz#22051)
50f89d
- Various locale fixes (swbz#15332, swbz#22044)
50f89d
50f89d
* Wed Aug 30 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-13
50f89d
- Drop glibc-rh952799.patch, applied upstream (#952799, swbz#22025)
50f89d
- Auto-sync with upstream master,
50f89d
  commit 5f9409b787c5758fc277f8d1baf7478b752b775d:
50f89d
- Various locale fixes (swbz#22022, swbz#22038, swbz#21951, swbz#13805,
50f89d
  swbz#21971, swbz#21959)
50f89d
- MIPS/o32: Fix internal_syscall5/6/7 (swbz#21956)
50f89d
- AArch64: Fix procfs.h not to expose stdint.h types
50f89d
- iconv_open: Fix heap corruption on gconv_init failure (swbz#22026)
50f89d
- iconv: Mangle __btowc_fct even without __init_fct (swbz#22025)
50f89d
- Fix bits/math-finite.h _MSUF_ expansion namespace (swbz#22028)
50f89d
- Provide a C++ version of iszero that does not use __MATH_TG (swbz#21930)
50f89d
50f89d
* Mon Aug 28 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-12
50f89d
- Auto-sync with upstream master,
50f89d
  commit 2dba5ce7b8115d6a2789bf279892263621088e74.
50f89d
50f89d
* Fri Aug 25 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-11
50f89d
- Auto-sync with upstream master,
50f89d
  commit 3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0:
50f89d
- string/stratcliff.c: Replace int with size_t (swbz#21982)
50f89d
- Fix tgmath.h handling of complex integers (swbz#21684)
50f89d
50f89d
* Thu Aug 24 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-10
50f89d
- Use an architecture-independent system call list (#1484729)
50f89d
- Drop glibc-fedora-include-bits-ldbl.patch (#1482105)
50f89d
50f89d
* Tue Aug 22 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-9
50f89d
- Auto-sync with upstream master,
50f89d
  commit 80f91666fed71fa3dd5eb5618739147cc731bc89.
50f89d
50f89d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-8
50f89d
- Auto-sync with upstream master,
50f89d
  commit a8410a5fc9305c316633a5a3033f3927b759be35:
50f89d
- Obsolete matherr, _LIB_VERSION, libieee.a.
50f89d
50f89d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-7
50f89d
- Auto-sync with upstream master,
50f89d
  commit 4504783c0f65b7074204c6126c6255ed89d6594e.
50f89d
50f89d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-6
50f89d
- Auto-sync with upstream master,
50f89d
  commit b5889d25e9bf944a89fdd7bcabf3b6c6f6bb6f7c:
50f89d
- assert: Support types without operator== (int) (#1483005)
50f89d
50f89d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-5
50f89d
- Auto-sync with upstream master,
50f89d
  commit 2585d7b839559e665d5723734862fbe62264b25d:
50f89d
- Do not use generic selection in C++ mode
50f89d
- Do not use __builtin_types_compatible_p in C++ mode (#1481205)
50f89d
- x86-64: Check FMA_Usable in ifunc-mathvec-avx2.h (swbz#21966)
50f89d
- Various locale fixes (swbz#21750, swbz#21960, swbz#21959, swbz#19852)
50f89d
- Fix sigval namespace (swbz#21944)
50f89d
- x86-64: Optimize e_expf with FMA (swbz#21912)
50f89d
- Adjust glibc-rh827510.patch.
50f89d
50f89d
* Wed Aug 16 2017 Tomasz Kłoczko <kloczek@fedoraproject.org> - 2.26-4
50f89d
- Remove 'Buildroot' tag, 'Group' tag, and '%%clean' section, and don't
50f89d
  remove the buildroot in '%%install', all per Fedora Packaging Guidelines
50f89d
  (#1476839)
50f89d
50f89d
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-3
50f89d
- Auto-sync with upstream master,
50f89d
  commit 403143e1df85dadd374f304bd891be0cd7573e3b:
50f89d
- x86-64: Align L(SP_RANGE)/L(SP_INF_0) to 8 bytes (swbz#21955)
50f89d
- powerpc: Add values from Linux 4.8 to <elf.h>
50f89d
- S390: Add new s390 platform z14.
50f89d
- Various locale fixes (swbz#14925, swbz#20008, swbz#20482, swbz#12349
50f89d
  swbz#19982, swbz#20756, swbz#20756, swbz#21836, swbz#17563, swbz#16905,
50f89d
  swbz#21920, swbz#21854)
50f89d
- NSS: Replace exported NSS lookup functions with stubs (swbz#21962)
50f89d
- i386: Do not set internal_function
50f89d
- assert: Suppress pedantic warning caused by statement expression (swbz#21242)
50f89d
- powerpc: Restrict xssqrtqp operands to Vector Registers (swbz#21941)
50f89d
- sys/ptrace.h: remove obsolete PTRACE_SEIZE_DEVEL constant (swbz#21928)
50f89d
- Remove __qaddr_t, __long_double_t
50f89d
- Fix uc_* namespace (swbz#21457)
50f89d
- nss: Call __resolv_context_put before early return in get*_r (swbz#21932)
50f89d
- aarch64: Optimized memcpy for Qualcomm Falkor processor
50f89d
- manual: Document getcontext uc_stack value on Linux (swbz#759)
50f89d
- i386: Add <startup.h> (swbz#21913)
50f89d
- Don't use IFUNC resolver for longjmp or system in libpthread (swbz#21041)
50f89d
- Fix XPG4.2 bits/sigaction.h namespace (swbz#21899)
50f89d
- x86-64: Add FMA multiarch functions to libm
50f89d
- i386: Support static PIE in start.S
50f89d
- Compile tst-prelink.c without PIE (swbz#21815)
50f89d
- x86-64: Use _dl_runtime_resolve_opt only with AVX512F (swbz#21871)
50f89d
- x86: Remove __memset_zero_constant_len_parameter (swbz#21790)
50f89d
50f89d
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26-2
50f89d
- Disable multi-arch (IFUNC string functions) on i686 (#1471427)
50f89d
- Remove nosegneg 32-bit Xen PV support libraries (#1482027)
50f89d
- Adjust spec file to RPM changes
50f89d
50f89d
* Thu Aug 03 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.26-1
50f89d
- Update to released glibc 2.26.
50f89d
- Auto-sync with upstream master,
50f89d
  commit 2aad4b04ad7b17a2e6b0e66d2cb4bc559376617b.
50f89d
- getaddrinfo: Release resolver context on error in gethosts (swbz#21885)