glibc/glibc.spec

2559 lines
94 KiB
RPMSpec
Raw Normal View History

%define glibcsrcdir glibc-2.26-543-g645ac9aaf8
%define glibcversion 2.26.90
%define glibcrelease 19%{?dist}
2013-08-16 13:56:44 +00:00
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
# git archive HEAD --format=tar --prefix=$(git describe --match 'glibc-*')/ \
# > $(git describe --match 'glibc-*').tar
# gzip -9 $(git describe --match 'glibc-*').tar
#
# glibc_release_url is only defined when we have a release tarball.
%{lua: if not string.match(rpm.expand("%glibcversion"), "%.*.90$") then
rpm.define("glibc_release_url http://ftp.gnu.org/gnu/glibc/") end}
2013-07-24 11:58:38 +00:00
##############################################################################
# We support hte following options:
# --with/--without,
# * testsuite - Running the testsuite.
# * benchtests - Running and building benchmark subpackage.
# * bootstrap - Bootstrapping the package.
# * werror - Build with -Werror
# * docs - Build with documentation and the required dependencies.
# * valgrind - Run smoke tests with valgrind to verify dynamic loader.
#
# You must always run the testsuite for production builds.
# Default: Always run the testsuite.
%bcond_without testsuite
# Default: Always build the benchtests.
%bcond_without benchtests
# Default: Not bootstrapping.
%bcond_with bootstrap
# Default: Enable using -Werror
%bcond_without werror
# Default: Always build documentation.
%bcond_without docs
# Default: Always run valgrind tests
%bcond_without valgrind
# Run a valgrind smoke test to ensure that the release is compatible and
# doesn't any new feature that might cause valgrind to abort.
%if %{with valgrind}
2017-06-23 11:10:13 +00:00
%ifarch s390 ppc64 ppc64p7 %{mips}
# There is no valgrind support for 31-bit s390, nor for MIPS.
# The valgrind test does not work on ppc64, ppc64p7 (bug 1273103).
%undefine with_valgrind
%endif
%endif
%if %{with werror}
%ifarch s390 s390x
# The s390 and s390x builds are not -Werror clean yet. For s390, the
# latest problem may be due to questionable code in test-string.h
# (upstream bug 19261, rhbz#1283184).
%undefine with_werror
%endif
%endif
%if %{with bootstrap}
# Disable benchtests, -Werror, docs, and valgrind if we're bootstrapping
%undefine with_benchtests
%undefine with_werror
%undefine with_docs
%undefine with_valgrind
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Auxiliary arches are those arches that can be built in addition
# to the core supported arches. You either install an auxarch or
# you install the base arch, not both. You would do this in order
# to provide a more optimized version of the package for your arch.
%define auxarches athlon alphaev6
2013-07-24 11:58:38 +00:00
##############################################################################
# Enable lock elision support for these architectures
#
# At the moment lock elision is disabled on x86_64 until there's a CPU that
# would actually benefit from enabling it. Intel released a microcode update
# to disable HLE and RTM at boot and the Fedora kernel now applies it early
# enough that keeping lock elision enabled should be harmless, but we have
# disabled it anyway as a conservative measure.
%define lock_elision_arches s390 s390x
##############################################################################
# We support only 64-bit POWER with the following runtimes:
# 64-bit BE:
# - Power 620 / 970 ISA (default runtime, compatile with POWER4 and newer)
# - Provided for the large number of PowerPC G5 users.
# - IFUNC support provides optimized core routines for POWER6,
# POWER7, and POWER8 transparently (if not using specific runtimes
# below)
# - POWER6 (has power6x symlink to power6, enabled via AT_PLATFORM)
# - Legacy for old systems. Should be deprecated at some point soon.
# - POWER7 (enabled via AT_PLATFORM)
# - Existing deployments.
# - POWER8 (enabled via AT_PLATFORM)
# - Latest generation.
# 64-bit LE:
# - POWER8 LE (default)
# - Latest generation.
#
# No 32-bit POWER support is provided.
#
# There are currently no plans for POWER9 enablement, but as hardware and
# upstream support become available this will be reviewed.
#
%ifarch ppc64
# Build the additional runtimes for 64-bit BE POWER.
%define buildpower6 1
%define buildpower7 1
%define buildpower8 1
%else
# No additional runtimes for ppc64le or ppc64p7, just the default.
%define buildpower6 0
%define buildpower7 0
%define buildpower8 0
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Any architecture/kernel combination that supports running 32-bit and 64-bit
# code in userspace is considered a biarch arch.
%define biarcharches %{ix86} x86_64 %{power64} s390 s390x
2013-07-24 11:58:38 +00:00
##############################################################################
# If the debug information is split into two packages, the core debuginfo
# pacakge and the common debuginfo package then the arch should be listed
# here. If the arch is not listed here then a single core debuginfo package
# will be created for the architecture.
2011-02-15 13:29:18 +00:00
%define debuginfocommonarches %{biarcharches} alpha alphaev6
2013-07-24 11:58:38 +00:00
##############################################################################
# Add -s for a less verbose build output.
%define silentrules PARALLELMFLAGS=
2013-07-24 11:58:38 +00:00
##############################################################################
# %%package glibc - The GNU C Library (glibc) core package.
##############################################################################
2008-03-05 10:32:39 +00:00
Summary: The GNU libc libraries
Name: glibc
2009-06-26 15:46:27 +00:00
Version: %{glibcversion}
Release: %{glibcrelease}
2007-08-04 21:26:28 +00:00
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
# exception which allows linking it into any kind of programs or shared
# libraries without restrictions.
License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
2010-07-12 11:40:50 +00:00
URL: http://www.gnu.org/software/glibc/
2011-12-20 05:46:44 +00:00
Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.gz
Source1: build-locale-archive.c
Source2: glibc_post_upgrade.c
Source4: nscd.conf
Source7: nsswitch.conf
Source8: power6emul.c
Source9: bench.mk
Source10: glibc-bench-compare
# A copt of localedata/SUPPORTED in the Source0 tarball. The
# SUPPORTED file is used below to generate the list of locale
# packages. See the language_list macro definition.
Source11: SUPPORTED
2013-07-24 11:58:38 +00:00
##############################################################################
# Start of glibc patches
##############################################################################
# 0000-0999 for patches which are unlikely to ever go upstream or which
# have not been analyzed to see if they ought to go upstream yet.
2013-07-24 05:22:37 +00:00
#
# 1000-2000 for patches that are already upstream.
#
# 2000-3000 for patches that are awaiting upstream approval
#
# Yes, I realize this means some gratutious changes as patches to from
# one bucket to another, but I find this scheme makes it easier to track
# the upstream divergence and patches needing approval.
#
# Note that we can still apply the patches in any order we see fit, so
# the changes from one bucket to another won't necessarily result in needing
# to twiddle the patch because of dependencies on prior patches and the like.
##############################################################################
#
# Patches that are unlikely to go upstream or not yet analyzed.
#
##############################################################################
# Configuration twiddle, not sure there's a good case to get upstream to
# change this.
2015-07-07 18:04:07 +00:00
Patch0001: glibc-fedora-nscd.patch
# All these were from the glibc-fedora.patch mega-patch and need another
# round of reviewing. Ideally they'll either be submitted upstream or
# dropped.
2015-07-07 18:04:07 +00:00
Patch0012: glibc-fedora-linux-tcsetattr.patch
Patch0014: glibc-fedora-nptl-linklibc.patch
Patch0015: glibc-fedora-localedef.patch
Patch0019: glibc-fedora-nis-rh188246.patch
Patch0020: glibc-fedora-manual-dircategory.patch
Patch0024: glibc-fedora-locarchive.patch
Patch0025: glibc-fedora-streams-rh436349.patch
Patch0028: glibc-fedora-localedata-rh61908.patch
Patch0031: glibc-fedora-__libc_multiple_libcs.patch
Patch0033: glibc-fedora-elf-ORIGIN.patch
2012-09-21 19:08:53 +00:00
# Allow applications to call pthread_atfork without libpthread.so.
2015-07-07 18:04:07 +00:00
Patch0046: glibc-rh1013801.patch
2015-07-07 18:04:07 +00:00
Patch0047: glibc-nscd-sysconfig.patch
# confstr _CS_PATH should only return /usr/bin on Fedora since /bin is just a
# symlink to it.
2015-07-07 18:04:07 +00:00
Patch0053: glibc-cs-path.patch
# Add C.UTF-8 locale into /usr/lib/locale/
Patch0059: glibc-c-utf8-locale.patch
# Build libcrypt twice, with and without NSS.
Patch0060: glibc-rh1324623.patch
##############################################################################
#
# Patches from upstream
#
##############################################################################
##############################################################################
#
# Patches submitted, but not yet approved upstream.
#
##############################################################################
#
# Each should be associated with a BZ.
# Obviously we're not there right now, but that's the goal
#
# http://sourceware.org/ml/libc-alpha/2012-12/msg00103.html
2015-07-07 18:04:07 +00:00
Patch2007: glibc-rh697421.patch
2015-07-07 18:04:07 +00:00
Patch2013: glibc-rh741105.patch
# Upstream BZ 14247
2015-07-07 18:04:07 +00:00
Patch2023: glibc-rh827510.patch
# Upstream BZ 14185
2015-07-07 18:04:07 +00:00
Patch2027: glibc-rh819430.patch
2015-07-07 18:04:07 +00:00
Patch2031: glibc-rh1070416.patch
# extend_alloca removal, BZ 18023
Patch2037: glibc-rh1315108.patch
# sln implemented by ldconfig, to conserve disk space.
Patch2112: glibc-rh1315476-2.patch
2013-07-24 11:58:38 +00:00
##############################################################################
# End of glibc patches.
##############################################################################
2013-07-24 11:58:38 +00:00
##############################################################################
# Continued list of core "glibc" package information:
##############################################################################
2008-03-05 10:32:39 +00:00
Obsoletes: glibc-profile < 2.4
Provides: ldconfig
2013-07-24 11:58:38 +00:00
2006-07-11 15:23:42 +00:00
# The dynamic linker supports DT_GNU_HASH
Provides: rtld(GNU_HASH)
Requires: glibc-common = %{version}-%{release}
2013-07-24 11:58:38 +00:00
%if %{without bootstrap}
# Use the NSS-based cryptographic libraries by default.
Suggests: libcrypt-nss%{_isa}
%endif
Requires(pre): basesystem
2013-07-24 11:58:38 +00:00
# This is for building auxiliary programs like memusage, nscd
# For initial glibc bootstraps it can be commented out
BuildRequires: gd-devel libpng-devel zlib-devel
%if %{with docs}
# Removing texinfo will cause check-safety.sh test to fail because it seems to
# trigger documentation generation based on dependencies. We need to fix this
# upstream in some way that doesn't depend on generating docs to validate the
# texinfo. I expect it's simply the wrong dependency for that target.
BuildRequires: texinfo >= 5.0
%endif
%if %{without bootstrap}
BuildRequires: libselinux-devel >= 1.33.4-3
BuildRequires: nss-devel
%endif
BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext
# We need procps-ng (/bin/ps), util-linux (/bin/kill), and gawk (/bin/awk),
# but it is more flexible to require the actual programs and let rpm infer
# the packages. However, until bug 1259054 is widely fixed we avoid the
# following:
# BuildRequires: /bin/ps, /bin/kill, /bin/awk
# And use instead (which should be reverted some time in the future):
BuildRequires: procps-ng, util-linux, gawk
2011-04-07 11:22:58 +00:00
BuildRequires: systemtap-sdt-devel
2013-07-24 11:58:38 +00:00
%if %{with valgrind}
# Require valgrind for smoke testing the dynamic loader to make sure we
# have not broken valgrind.
BuildRequires: valgrind
%endif
# We use systemd rpm macros for nscd
BuildRequires: systemd
# We use python for the microbenchmarks
BuildRequires: python
# This is to ensure that __frame_state_for is exported by glibc
# will be compatible with egcs 1.x.y
BuildRequires: gcc >= 4.9
%define enablekernel 3.2
2010-08-02 12:18:20 +00:00
Conflicts: kernel < %{enablekernel}
2011-07-20 11:54:13 +00:00
%define target %{_target_cpu}-redhat-linux
%ifarch %{arm}
%define target %{_target_cpu}-redhat-linuxeabi
%endif
%ifarch %{power64}
2014-05-14 07:21:29 +00:00
%ifarch ppc64le
%define target ppc64le-redhat-linux
%else
%define target ppc64-redhat-linux
%endif
2014-05-14 07:21:29 +00:00
%endif
2013-07-24 11:58:38 +00:00
BuildRequires: binutils >= 2.25
2009-08-24 09:22:26 +00:00
# Earlier releases have broken support for IRELATIVE relocations
Conflicts: prelink < 0.4.2
2013-07-24 11:58:38 +00:00
2009-06-26 15:46:27 +00:00
%if 0%{?_enable_debug_packages}
2008-03-05 10:32:39 +00:00
BuildRequires: elfutils >= 0.72
BuildRequires: rpm >= 4.2-0.56
%endif
2013-07-24 11:58:38 +00:00
%if %{without boostrap}
%if %{with testsuite}
# The testsuite builds static C++ binaries that require a C++ compiler,
# static C++ runtime from libstdc++-static, and lastly static glibc.
BuildRequires: gcc-c++
BuildRequires: libstdc++-static
# A configure check tests for the ability to create static C++ binaries
# before glibc is built and therefore we need a glibc-static for that
# check to pass even if we aren't going to use any of those objects to
# build the tests.
BuildRequires: glibc-static
%endif
%endif
2013-07-24 11:58:38 +00:00
# Filter out all GLIBC_PRIVATE symbols since they are internal to
2013-07-25 02:45:11 +00:00
# the package and should not be examined by any other tool.
2011-08-15 09:29:40 +00:00
%global __filter_GLIBC_PRIVATE 1
# For language packs we have glibc require a virtual dependency
# "glibc-langpack" wich gives us at least one installed langpack.
# If no langpack providing 'glibc-langpack' was installed you'd
# get all of them, and that would make the transition from a
# system without langpacks smoother (you'd get all the locales
# installed). You would then trim that list, and the trimmed list
# is preserved. One problem is you can't have "no" locales installed,
# in that case we offer a "glibc-minimal-langpack" sub-pakcage for
# this purpose.
Requires: glibc-langpack = %{version}-%{release}
Suggests: glibc-all-langpacks = %{version}-%{release}
%description
The glibc package contains standard libraries which are used by
multiple programs on the system. In order to save disk space and
memory, as well as to make upgrading easier, common system code is
kept in one place and shared between programs. This particular package
contains the most important sets of shared libraries: the standard C
library and the standard math library. Without these two libraries, a
Linux system will not function.
######################################################################
# crypt subpackages
######################################################################
%package -n libcrypt
Summary: Password hashing library (non-NSS version)
Requires: %{name}%{_isa} = %{version}-%{release}
Provides: libcrypt%{_isa}
Conflicts: libcrypt-nss
%description -n libcrypt
This package provides the crypt function, which implements password
hashing. The glibc implementation of the cryptographic algorithms is
used by this package.
%post -n libcrypt
/sbin/ldconfig
%postun -n libcrypt
/sbin/ldconfig
%if %{without bootstrap}
%package -n libcrypt-nss
Summary: Password hashing library (NSS version)
Requires: %{name}%{_isa} = %{version}-%{release}
Provides: libcrypt%{_isa}
Conflicts: libcrypt
%description -n libcrypt-nss
This package provides the crypt function, which implements password
hashing. The cryptographic algorithm implementations are provided by
the low-level NSS libraries.
%post -n libcrypt-nss
/sbin/ldconfig
%postun -n libcrypt-nss
/sbin/ldconfig
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc "devel" sub-package
##############################################################################
%package devel
Summary: Object files for development using standard C libraries.
2008-03-05 10:32:39 +00:00
Requires(pre): /sbin/install-info
2009-06-26 15:46:27 +00:00
Requires(pre): %{name}-headers
Requires: %{name}-headers = %{version}-%{release}
2008-03-05 10:32:39 +00:00
Requires: %{name} = %{version}-%{release}
Requires: libgcc%{_isa}
Requires: libcrypt%{_isa}
%description devel
The glibc-devel package contains the object files necessary
for developing programs which use the standard C libraries (which are
used by nearly all programs). If you are developing programs which
will use the standard C libraries, your system needs to have these
standard object files available in order to create the
executables.
Install glibc-devel if you are going to develop programs which will
use the standard C libraries.
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc "static" sub-package
##############################################################################
2009-02-18 20:47:04 +00:00
%package static
Summary: C library static libraries for -static linking.
Requires: %{name}-devel = %{version}-%{release}
%description static
The glibc-static package contains the C library static libraries
for -static linking. You don't need these, unless you link statically,
which is highly discouraged.
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc "headers" sub-package
# - The headers package includes all common headers that are shared amongst
# the multilib builds. It was created to reduce the download size, and
# thus avoid downloading one header package per multilib. The package is
# identical both in content and file list, any difference is an error.
# Files like gnu/stubs.h which have gnu/stubs-32.h (i686) and gnu/stubs-64.h
# are included in glibc-headers, but the -32 and -64 files are in their
# respective i686 and x86_64 devel packages.
2013-07-24 11:58:38 +00:00
##############################################################################
%package headers
Summary: Header files for development using standard C libraries.
Provides: %{name}-headers(%{_target_cpu})
%ifarch x86_64
# If both -m32 and -m64 is to be supported on AMD64, x86_64 glibc-headers
2009-02-18 20:47:04 +00:00
# have to be installed, not i586 ones.
Obsoletes: %{name}-headers(i586)
2009-07-20 13:24:45 +00:00
Obsoletes: %{name}-headers(i686)
%endif
2008-03-05 10:32:39 +00:00
Requires(pre): kernel-headers
Requires: kernel-headers >= 2.2.1, %{name} = %{version}-%{release}
BuildRequires: kernel-headers >= 3.2
%description headers
The glibc-headers package contains the header files necessary
for developing programs which use the standard C libraries (which are
used by nearly all programs). If you are developing programs which
will use the standard C libraries, your system needs to have these
standard header files available in order to create the
executables.
Install glibc-headers if you are going to develop programs which will
use the standard C libraries.
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc "common" sub-package
##############################################################################
%package common
Summary: Common binaries and locale data for glibc
2008-03-26 12:29:52 +00:00
Requires: %{name} = %{version}-%{release}
Requires: tzdata >= 2003a
%description common
The glibc-common package includes common binaries for the GNU libc
libraries, as well as national language (locale) support.
%package locale-source
Summary: The sources for the locales
Requires: %{name} = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
%description locale-source
The sources for all locales provided in the language packs.
If you are building custom locales you will most likely use
these sources as the basis for your new locale.
%{lua:
-- Array of languages (ISO-639 codes).
local languages = {}
-- Dictionary from language codes (as in the languages array) to arrays
-- of regions.
local supplements = {}
do
-- Parse the SUPPORTED file. Eliminate duplicates.
local lang_region_seen = {}
for line in io.lines(rpm.expand("%{SOURCE11}")) do
-- Match lines which contain a language (eo) or language/region
-- (en_US) strings.
local lang_region = string.match(line, "^([a-z][^/@.]+)")
if lang_region ~= nil then
if lang_region_seen[lang_region] == nil then
lang_region_seen[lang_region] = true
-- Split language/region pair.
local lang, region = string.match(lang_region, "^(.+)_(.+)")
if lang == nil then
-- Region is missing, use only the language.
lang = lang_region
end
local suppl = supplements[lang]
if suppl == nil then
suppl = {}
supplements[lang] = suppl
-- New language not seen before.
languages[#languages + 1] = lang
end
if region ~= nil then
-- New region because of the check against
-- lang_region_seen above.
suppl[#suppl + 1] = region
end
end
end
end
-- Sort for determinism.
table.sort(languages)
for _, supples in pairs(supplements) do
table.sort(supplements)
end
end
-- Compute the Supplements: list for a language, based on the regions.
local function compute_supplements(lang)
result = "langpacks-" .. lang
regions = supplements[lang]
if regions ~= nil then
for i = 1, #regions do
result = result .. " or langpacks-" .. lang .. "_" .. regions[i]
end
end
return result
end
-- Emit the definition of a language pack package.
local function lang_package(lang)
local suppl = compute_supplements(lang)
print(rpm.expand([[
%package langpack-]]..lang..[[
Summary: Locale data for ]]..lang..[[
Provides: glibc-langpack = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
Supplements: (glibc = %{version}-%{release} and (]]..suppl..[[))
%description langpack-]]..lang..[[
The glibc-langpack-]]..lang..[[ package includes the basic information required
to support the ]]..lang..[[ language in your applications.
%ifnarch %{auxarches}
%files -f langpack-]]..lang..[[.filelist langpack-]]..lang..[[
%defattr(-,root,root)
%endif
]]))
end
for i = 1, #languages do
lang_package(languages[i])
end
}
# The glibc-all-langpacks provides the virtual glibc-langpack,
# and thus satisfies glibc's requirement for installed locales.
# Users can add one more other langauge packs and then eventually
# uninstall all-langpacks to save space.
%package all-langpacks
Summary: All language packs for %{name}.
Requires: %{name} = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
Provides: %{name}-langpack = %{version}-%{release}
%description all-langpacks
# No %files, this is an empty pacakge. The C/POSIX and
# C.UTF-8 files are already installed by glibc. We create
# minimal-langpack because the virtual provide of
# glibc-langpack needs at least one package installed
# to satisfy it. Given that no-locales installed is a valid
# use case we support it here with this package.
%package minimal-langpack
Summary: Minimal language packs for %{name}.
Provides: glibc-langpack = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
%description minimal-langpack
This is a Meta package that is used to install minimal language packs.
This package ensures you can use C, POSIX, or C.UTF-8 locales, but
nothing else. It is designed for assembling a minimal system.
%ifnarch %{auxarches}
%files minimal-langpack
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc "nscd" sub-package
##############################################################################
%package -n nscd
Summary: A Name Service Caching Daemon (nscd).
2010-10-14 10:30:32 +00:00
Requires: %{name} = %{version}-%{release}
%if %{without bootstrap}
Requires: libselinux >= 1.17.10-1
%endif
Requires: audit-libs >= 1.1.3
2011-09-28 12:23:58 +00:00
Requires(pre): /usr/sbin/useradd, coreutils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd, /usr/sbin/userdel
%description -n nscd
Nscd caches name service lookups and can dramatically improve
2006-03-28 10:15:50 +00:00
performance with NIS+, and may help with DNS as well.
##############################################################################
# Subpackages for NSS modules except nss_files, nss_dns
##############################################################################
%package -n nss_db
Summary: Name Service Switch (NSS) module using hash-indexed files
Requires: %{name}%{_isa} = %{version}-%{release}
%description -n nss_db
The nss_db Name Service Switch module uses hash-indexed files in /var/db
to speed up user, group, service, host name, and other NSS-based lookups.
%package -n nss_nis
Summary: Name Service Switch (NSS) module using NIS
Requires: %{name}%{_isa} = %{version}-%{release}
%description -n nss_nis
The nss_nis and nss_nisplus Name Service Switch modules uses the
Network Information System (NIS) to obtain user, group, host name, and
other data.
%package -n nss_hesiod
Summary: Name Service Switch (NSS) module using Hesiod
Requires: %{name}%{_isa} = %{version}-%{release}
%description -n nss_hesiod
The nss_hesiod Name Service Switch module uses the Domain Name System
(DNS) as a source for user, group, and service information, following
the Hesiod convention of Project Athena.
%package nss-devel
Summary: Development files for directly linking NSS service modules
Requires: nss_db%{_isa} = %{version}-%{release}
Requires: nss_nis%{_isa} = %{version}-%{release}
Requires: nss_hesiod%{_isa} = %{version}-%{release}
%description nss-devel
The glibc-nss-devel package contains the object files necessary to
compile applications and libraries which directly link against NSS
modules supplied by glibc.
This is a rare and special use case; regular development has to use
the glibc-devel package instead.
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc "utils" sub-package
##############################################################################
%package utils
Summary: Development utilities from GNU C library
2008-03-05 10:32:39 +00:00
Requires: %{name} = %{version}-%{release}
%description utils
The glibc-utils package contains memusage, a memory usage profiler,
mtrace, a memory leak tracer and xtrace, a function call tracer
which can be helpful during program debugging.
If unsure if you need this, don't install this package.
2013-07-25 02:45:11 +00:00
##############################################################################
# glibc core "debuginfo" sub-package
##############################################################################
2009-06-26 15:46:27 +00:00
%if 0%{?_enable_debug_packages}
%define debug_package %{nil}
2008-10-28 15:50:31 +00:00
%define __debug_install_post %{nil}
%global __debug_package 1
# Disable thew new features that glibc packages don't use.
%undefine _debugsource_packages
%undefine _debuginfo_subpackages
%undefine _unique_debug_names
%undefine _unique_debug_srcs
%package debuginfo
Summary: Debug information for package %{name}
2007-08-10 01:55:13 +00:00
AutoReqProv: no
%ifarch %{debuginfocommonarches}
Requires: glibc-debuginfo-common = %{version}-%{release}
2009-07-20 13:24:45 +00:00
%else
%ifarch %{ix86} %{sparc}
2009-07-20 13:24:45 +00:00
Obsoletes: glibc-debuginfo-common
%endif
%endif
%description debuginfo
This package provides debug information for package %{name}.
Debug information is useful when developing applications that use this
package or when debugging this package.
auto-import changelog data from glibc-2.3.3-27.src.rpm Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27 - remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so - build mq_{send,receive} with -fexceptions Fri May 07 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26 - update from CVS - fix <tgmath.h> - fix memory leaks in nis, getifaddrs, etc. caused by incorrect use of realloc - remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1 might be a stale symlink Wed May 05 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25 - update from CVS - disable FUTEX_REQUEUE (work around #115349) - mq for sparc/sparc64/ia64 Tue May 04 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24 - update from CVS - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both included already in XNS5) - reorder dlopen checks, so that dlopening ET_REL objects complains about != ET_DYN != ET_EXEC, not about phentsize (#121606) - fix strpbrk macro for GCC 3.4+ (BZ #130) - fix <sys/sysctl.h> (BZ #140) - sched_[gs]etaffinity documentation fix (BZ #131) - fix sparc64 build (BZ #139) - change linuxthreads back to use non-cancellable writes to manager pipes etc. - fix sem_timedwait return value in linuxthreads (BZ #133) - ia64 unnecessary PLT relocs removal Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23 - update from CVS - fix *scanf - fix shm_unlink, sem_unlink and mq_unlink errno values - avoid memory leaks in error - execstack fixes on s390 Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22 - update from CVS - mq and timer fixes - rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically linked binaries - fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21 - disable rtkaio - update from CVS - POSIX message passing support - fixed SIGEV_THREAD support for POSIX timers - fix free on non-malloced memory in syslog - fix ffsl on some 64-bit arches - fix sched_setaffinity on x86-64, ia64 - fix ppc64 umount - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support - various NIS speedups - fix fwrite with > 2GB sizes on 64-bit arches - fix pthread_getattr_np guardsize reporting in NPTL - report PLT relocations in ld.so and libc.so during the build Thu Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20 - update from CVS - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP - strtol speed optimization - don't try to use certainly unimplemented syscalls on ppc64 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common} into /usr/lib/debug/usr/lib64/ directory - fix c_stubs with gcc 3.4 - move all the up to 3 builds into %build scriptlet and leave only installation in the %install scriptlet Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19 - update from CVS - affinity API changes
2004-09-09 05:48:43 +00:00
This package also contains static standard C libraries with
debugging information. You need this only if you want to step into
C library routines during debugging programs statically linked against
one or more of the standard C libraries.
To use this debugging information, you need to link binaries
with -static -L%{_prefix}/lib/debug%{_libdir} compiler options.
auto-import changelog data from glibc-2.3.3-27.src.rpm Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27 - remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so - build mq_{send,receive} with -fexceptions Fri May 07 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26 - update from CVS - fix <tgmath.h> - fix memory leaks in nis, getifaddrs, etc. caused by incorrect use of realloc - remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1 might be a stale symlink Wed May 05 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25 - update from CVS - disable FUTEX_REQUEUE (work around #115349) - mq for sparc/sparc64/ia64 Tue May 04 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24 - update from CVS - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both included already in XNS5) - reorder dlopen checks, so that dlopening ET_REL objects complains about != ET_DYN != ET_EXEC, not about phentsize (#121606) - fix strpbrk macro for GCC 3.4+ (BZ #130) - fix <sys/sysctl.h> (BZ #140) - sched_[gs]etaffinity documentation fix (BZ #131) - fix sparc64 build (BZ #139) - change linuxthreads back to use non-cancellable writes to manager pipes etc. - fix sem_timedwait return value in linuxthreads (BZ #133) - ia64 unnecessary PLT relocs removal Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23 - update from CVS - fix *scanf - fix shm_unlink, sem_unlink and mq_unlink errno values - avoid memory leaks in error - execstack fixes on s390 Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22 - update from CVS - mq and timer fixes - rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically linked binaries - fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21 - disable rtkaio - update from CVS - POSIX message passing support - fixed SIGEV_THREAD support for POSIX timers - fix free on non-malloced memory in syslog - fix ffsl on some 64-bit arches - fix sched_setaffinity on x86-64, ia64 - fix ppc64 umount - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support - various NIS speedups - fix fwrite with > 2GB sizes on 64-bit arches - fix pthread_getattr_np guardsize reporting in NPTL - report PLT relocations in ld.so and libc.so during the build Thu Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20 - update from CVS - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP - strtol speed optimization - don't try to use certainly unimplemented syscalls on ppc64 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common} into /usr/lib/debug/usr/lib64/ directory - fix c_stubs with gcc 3.4 - move all the up to 3 builds into %build scriptlet and leave only installation in the %install scriptlet Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19 - update from CVS - affinity API changes
2004-09-09 05:48:43 +00:00
2013-07-24 11:58:38 +00:00
##############################################################################
# glibc common "debuginfo-common" sub-package
##############################################################################
%ifarch %{debuginfocommonarches}
%package debuginfo-common
Summary: Debug information for package %{name}
2007-08-10 01:55:13 +00:00
AutoReqProv: no
%description debuginfo-common
This package provides debug information for package %{name}.
Debug information is useful when developing applications that use this
package or when debugging this package.
2013-07-24 11:58:38 +00:00
%endif # %{debuginfocommonarches}
%endif # 0%{?_enable_debug_packages}
%if %{with benchtests}
%package benchtests
Summary: Benchmarking binaries and scripts for %{name}
%description benchtests
This package provides built benchmark binaries and scripts to run
microbenchmark tests on the system.
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Prepare for the build.
##############################################################################
%prep
%setup -q -n %{glibcsrcdir}
# Patch order matters.
%patch0001 -p1
%patch2007 -p1
%patch0012 -p1
%patch2013 -p1
%patch0014 -p1
%patch0015 -p1
%patch0019 -p1
%patch0020 -p1
%patch2023 -p1
%patch0024 -p1
%patch0025 -p1
%patch2027 -p1
%patch0028 -p1
%patch0031 -p1
%patch0033 -p1
%patch0046 -p1
%patch2031 -p1
%patch0047 -p1
%patch0053 -p1
%patch0059 -p1
%patch0060 -p1
%patch2037 -p1
%patch2112 -p1
2013-07-24 11:58:38 +00:00
##############################################################################
# %%prep - Additional prep required...
##############################################################################
# Make benchmark scripts executable
chmod +x benchtests/scripts/*.py scripts/pylint
2013-07-24 11:58:38 +00:00
# Remove all files generated from patching.
find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
2013-07-24 11:58:38 +00:00
# Ensure timestamps on configure files are current to prevent
# regenerating them.
touch `find . -name configure`
2013-07-24 11:58:38 +00:00
# Ensure *-kw.h files are current to prevent regenerating them.
2005-12-19 18:04:52 +00:00
touch locale/programs/*-kw.h
# Verify that our copy of localedata/SUPPORTED matches the glibc
# version.
#
# The separate file copy is used by the language_list macro above.
# Patches or new upstream versions may change the list of locales,
# which changes the set of langpacks we need to build. Verify the
# differences then update the copy of SUPPORTED. This approach has
# two purposes: (a) avoid spurious changes to the set of langpacks,
# and (b) the language_list macro can use a fully patched-up version
# of the localedata/SUPPORTED file.
diff -u %{SOURCE11} localedata/SUPPORTED
2013-07-24 11:58:38 +00:00
##############################################################################
# Build glibc...
##############################################################################
%build
# Log system information
uname -a
2017-06-22 12:48:21 +00:00
LD_SHOW_AUXV=1 /bin/true
cat /proc/cpuinfo
cat /proc/meminfo
df
2013-07-24 11:58:38 +00:00
2013-07-25 02:45:11 +00:00
# We build using the native system compilers.
GCC=gcc
GXX=g++
2013-07-24 11:58:38 +00:00
##############################################################################
# %%build - x86 options.
##############################################################################
# On x86 we build for the specific target cpu rpm is using.
%ifarch %{ix86}
2011-07-20 11:54:13 +00:00
BuildFlags="-march=%{_target_cpu} -mtune=generic"
%endif
# We don't support building for i386. The generic i386 architecture lacks the
# atomic primitives required for NPTL support. However, when a user asks to
2013-07-24 05:22:37 +00:00
# build for i386 we interpret that as "for whatever works on x86" and we
# select i686. Thus we treat i386 as an alias for i686.
%ifarch i386 i686
BuildFlags="-march=i686 -mtune=generic"
%endif
%ifarch i486 i586
BuildFlags="$BuildFlags -mno-tls-direct-seg-refs"
%endif
%ifarch x86_64
BuildFlags="-mtune=generic"
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# %%build - s390 options.
##############################################################################
%ifarch s390 s390x
# The default is to turne for z13 (newer hardware), but build for zEC12.
BuildFlags="-march=zEC12 -mtune=z13"
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# %%build - SPARC options.
##############################################################################
%ifarch sparc
BuildFlags="-fcall-used-g6"
GCC="$GCC -m32"
GXX="$GXX -m32"
%endif
%ifarch sparcv9
BuildFlags="-mcpu=ultrasparc -fcall-used-g6"
GCC="$GCC -m32"
GXX="$GXX -m32"
%endif
2007-08-15 21:19:33 +00:00
%ifarch sparcv9v
BuildFlags="-mcpu=niagara -fcall-used-g6"
GCC="$GCC -m32"
GXX="$GXX -m32"
2007-08-15 21:19:33 +00:00
%endif
%ifarch sparc64
BuildFlags="-mcpu=ultrasparc -mvis -fcall-used-g6"
GCC="$GCC -m64"
GXX="$GXX -m64"
%endif
2007-08-15 21:19:33 +00:00
%ifarch sparc64v
BuildFlags="-mcpu=niagara -mvis -fcall-used-g6"
GCC="$GCC -m64"
GXX="$GXX -m64"
2007-08-15 21:19:33 +00:00
%endif
##############################################################################
# %%build - POWER options.
##############################################################################
%ifarch %{power64}
BuildFlags=""
GCC="$GCC -m64"
GXX="$GXX -m64"
%ifarch ppc64p7
GCC="$GCC -mcpu=power7 -mtune=power7"
GXX="$GXX -mcpu=power7 -mtune=power7"
core_with_options="--with-cpu=power7"
%endif
%ifarch ppc64le
GCC="$GCC -mcpu=power8 -mtune=power8"
GXX="$GXX -mcpu=power8 -mtune=power8"
core_with_options="--with-cpu=power8"
%endif
%endif
##############################################################################
# %%build - MIPS options.
##############################################################################
%ifarch mips mipsel
BuildFlags="-march=mips32r2 -mfpxx"
%endif
%ifarch mips64 mips64el
# Without -mrelax-pic-calls ld.so segfaults when built with -O3
BuildFlags="-march=mips64r2 -mabi=64 -mrelax-pic-calls"
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# %%build - Generic options.
##############################################################################
EnableKernel="--enable-kernel=%{enablekernel}"
2013-07-24 11:58:38 +00:00
# Save the used compiler and options into the file "Gcc" for use later
# by %%install.
2005-07-08 10:21:35 +00:00
echo "$GCC" > Gcc
AddOns=`echo */configure | sed -e 's!/configure!!g;s!\(nptl\|powerpc-cpu\)\( \|$\)!!g;s! \+$!!;s! !,!g;s!^!,!;/^,\*$/d'`
auto-import changelog data from glibc-2.3.3-27.src.rpm Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27 - remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so - build mq_{send,receive} with -fexceptions Fri May 07 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26 - update from CVS - fix <tgmath.h> - fix memory leaks in nis, getifaddrs, etc. caused by incorrect use of realloc - remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1 might be a stale symlink Wed May 05 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25 - update from CVS - disable FUTEX_REQUEUE (work around #115349) - mq for sparc/sparc64/ia64 Tue May 04 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24 - update from CVS - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both included already in XNS5) - reorder dlopen checks, so that dlopening ET_REL objects complains about != ET_DYN != ET_EXEC, not about phentsize (#121606) - fix strpbrk macro for GCC 3.4+ (BZ #130) - fix <sys/sysctl.h> (BZ #140) - sched_[gs]etaffinity documentation fix (BZ #131) - fix sparc64 build (BZ #139) - change linuxthreads back to use non-cancellable writes to manager pipes etc. - fix sem_timedwait return value in linuxthreads (BZ #133) - ia64 unnecessary PLT relocs removal Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23 - update from CVS - fix *scanf - fix shm_unlink, sem_unlink and mq_unlink errno values - avoid memory leaks in error - execstack fixes on s390 Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22 - update from CVS - mq and timer fixes - rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically linked binaries - fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21 - disable rtkaio - update from CVS - POSIX message passing support - fixed SIGEV_THREAD support for POSIX timers - fix free on non-malloced memory in syslog - fix ffsl on some 64-bit arches - fix sched_setaffinity on x86-64, ia64 - fix ppc64 umount - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support - various NIS speedups - fix fwrite with > 2GB sizes on 64-bit arches - fix pthread_getattr_np guardsize reporting in NPTL - report PLT relocations in ld.so and libc.so during the build Thu Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20 - update from CVS - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP - strtol speed optimization - don't try to use certainly unimplemented syscalls on ppc64 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common} into /usr/lib/debug/usr/lib64/ directory - fix c_stubs with gcc 3.4 - move all the up to 3 builds into %build scriptlet and leave only installation in the %install scriptlet Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19 - update from CVS - affinity API changes
2004-09-09 05:48:43 +00:00
2013-07-24 11:58:38 +00:00
##############################################################################
# build()
# Build glibc in `build-%{target}$1', passing the rest of the arguments
# as CFLAGS to the build (not the same as configure CFLAGS). Several
# global values are used to determine build flags, add-ons, kernel
# version, system tap support, etc.
2013-07-24 11:58:38 +00:00
##############################################################################
2011-07-20 11:54:13 +00:00
build()
{
builddir=build-%{target}${1:+-$1}
${1+shift}
rm -rf $builddir
mkdir $builddir
pushd $builddir
2017-09-01 12:07:30 +00:00
build_CFLAGS="$BuildFlags -g -O2 $*"
# Some configure checks can spuriously fail for some architectures if
# unwind info is present
configure_CFLAGS="$build_CFLAGS -fno-asynchronous-unwind-tables"
../configure CC="$GCC" CXX="$GXX" CFLAGS="$configure_CFLAGS" \
--prefix=%{_prefix} \
2014-07-03 05:43:32 +00:00
--enable-add-ons=$AddOns \
--with-headers=%{_prefix}/include $EnableKernel \
--enable-bind-now \
--build=%{target} \
--enable-stack-protector=strong \
--enable-tunables \
--enable-obsolete-rpc \
2017-05-02 17:45:38 +00:00
--enable-obsolete-nsl \
--enable-systemtap \
${core_with_options} \
%ifarch %{ix86}
--disable-multi-arch \
%endif
%ifarch %{lock_elision_arches}
--enable-lock-elision \
%endif
%if %{without werror}
--disable-werror \
%endif
--disable-profile \
%if %{with bootstrap}
--without-selinux \
--disable-nss-crypt ||
%else
--enable-nss-crypt ||
2009-06-26 15:46:27 +00:00
%endif
{ cat config.log; false; }
2009-09-01 11:03:11 +00:00
make %{?_smp_mflags} -r CFLAGS="$build_CFLAGS" %{silentrules}
popd
}
2013-07-24 11:58:38 +00:00
##############################################################################
# Build glibc for the default set of options.
##############################################################################
2011-07-20 11:54:13 +00:00
build
2013-07-24 11:58:38 +00:00
##############################################################################
# Build glibc for power6:
# If we support building a power6 alternate runtime then built glibc again for
# power6.
# XXX: We build in a sub-shell for no apparent reason.
##############################################################################
%if %{buildpower6}
(
platform=`LD_SHOW_AUXV=1 /bin/true | sed -n 's/^AT_PLATFORM:[[:blank:]]*//p'`
if [ "$platform" != power6 ]; then
mkdir -p power6emul/{lib,lib64}
$GCC -shared -O2 -fpic -o power6emul/%{_lib}/power6emul.so %{SOURCE8} -Wl,-z,initfirst
%ifarch ppc64
gcc -shared -nostdlib -O2 -fpic -m32 -o power6emul/lib/power6emul.so -xc - < /dev/null
%endif
export LD_PRELOAD=`pwd`/power6emul/\$LIB/power6emul.so
fi
GCC="$GCC -mcpu=power6"
GXX="$GXX -mcpu=power6"
core_with_options="--with-cpu=power6"
build power6
)
%endif # %{buildpower6}
%if %{buildpower7}
(
GCC="$GCC -mcpu=power7 -mtune=power7"
GXX="$GXX -mcpu=power7 -mtune=power7"
core_with_options="--with-cpu=power7"
build power7
)
%endif
%if %{buildpower8}
(
GCC="$GCC -mcpu=power8 -mtune=power8"
GXX="$GXX -mcpu=power8 -mtune=power8"
core_with_options="--with-cpu=power8"
build power8
)
%endif
# Build libcrypt with glibc cryptographic implementations.
%if %{without bootstrap}
make %{?_smpflags} -C build-%{target} subdirs=crypt-glibc \
CFLAGS="$build_CFLAGS" %{silentrules}
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Build the glibc post-upgrade program:
# We only build one of these with the default set of options. This program
# must be able to run on all hardware for the lowest common denomintor since
# we only build it once.
##############################################################################
2013-07-24 05:27:35 +00:00
pushd build-%{target}
$GCC -static -L. -Os -g %{SOURCE2} \
-o glibc_post_upgrade.%{_target_cpu} \
'-DLIBTLS="/%{_lib}/tls/"' \
'-DGCONV_MODULES_DIR="%{_libdir}/gconv"' \
'-DLD_SO_CONF="/etc/ld.so.conf"' \
'-DICONVCONFIG="%{_sbindir}/iconvconfig.%{_target_cpu}"'
2013-07-24 05:27:35 +00:00
popd
2013-07-24 11:58:38 +00:00
##############################################################################
# Install glibc...
##############################################################################
%install
# Remove existing file lists.
find . -type f -name '*.filelist' -exec rm -rf {} \;
# Ensure the permissions of errlist.c do not change. When the file is
# regenerated the Makefile sets the permissions to 444. We set it to 644
# to match what comes out of git. The tarball of the git archive won't have
# correct permissions because git doesn't track all of the permissions
# accurately (see git-cache-meta if you need that). We also set it to 644 to
# match pre-existing rpms. We do this *after* the build because the build
# might regenerate the file and set the permissions to 444.
chmod 644 sysdeps/gnu/errlist.c
2013-07-24 11:58:38 +00:00
# Reload compiler and build options that were used during %%build.
GCC=`cat Gcc`
# Build and install.
make -j1 install_root=$RPM_BUILD_ROOT \
install -C build-%{target} %{silentrules}
2013-07-24 11:58:38 +00:00
# If we are not building an auxiliary arch then install all of the supported
# locales.
%ifnarch %{auxarches}
2013-07-24 05:27:35 +00:00
pushd build-%{target}
make %{?_smp_mflags} install_root=$RPM_BUILD_ROOT \
install-locales -C ../localedata objdir=`pwd`
2013-07-24 05:27:35 +00:00
popd
%endif
# install_different:
# Install all core libraries into DESTDIR/SUBDIR. Either the file is
# installed as a copy or a symlink to the default install (if it is the
# same). The path SUBDIR_UP is the prefix used to go from
# DESTDIR/SUBDIR to the default installed libraries e.g.
# ln -s SUBDIR_UP/foo.so DESTDIR/SUBDIR/foo.so.
# When you call this function it is expected that you are in the root
# of the build directory, and that the default build directory is:
# "../build-%{target}" (relatively).
# The primary use of this function is to install alternate runtimes
# into the build directory and avoid duplicating this code for each
# runtime.
install_different()
{
local lib libbase libbaseso dlib
local destdir="$1"
local subdir="$2"
local subdir_up="$3"
local libdestdir="$destdir/$subdir"
# All three arguments must be non-zero paths.
if ! [ "$destdir" \
-a "$subdir" \
-a "$subdir_up" ]; then
echo "One of the arguments to install_different was emtpy."
exit 1
fi
# Create the destination directory and the multilib directory.
mkdir -p "$destdir"
mkdir -p "$libdestdir"
# Walk all of the libraries we installed...
for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db
do
libbase=${lib#*/}
# Take care that `libbaseso' has a * that needs expanding so
# take care with quoting.
libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
# Only install if different from default build library.
if cmp -s ${lib}.so ../build-%{target}/${lib}.so; then
ln -sf "$subdir_up"/$libbaseso $libdestdir/$libbaseso
else
cp -a ${lib}.so $libdestdir/$libbaseso
fi
dlib=$libdestdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
ln -sf $libbaseso $dlib
done
}
#############################################################################
# Install libcrypt
#############################################################################
%if %{without bootstrap}
# Move the NSS-based implementation out of the way.
libcrypt_found=false
for libcrypt in ${RPM_BUILD_ROOT}/%{_lib}/libcrypt-*.so ; do
if $libcrypt_found; then
# Multiple libcrypt files
ls -l ${RPM_BUILD_ROOT}/%{_lib}/libcrypt-*.so
exit 1
fi
mv "$libcrypt" "$(echo "$libcrypt" | sed s/libcrypt-/libcrypt-nss-/)"
done
# Install the non-NSS implementation in the original path.
install -m 755 build-%{target}/crypt-glibc/libcrypt.so "$libcrypt"
unset libcrypt libcrypt_found
%endif
# This symbolic link will be generated by ldconfig.
rm -f ${RPM_BUILD_ROOT}/%{_lib}/libcrypt.so.1
2013-07-24 11:58:38 +00:00
##############################################################################
# Install the power6 build files.
##############################################################################
%if %{buildpower6}
%define power6_subdir power6
%define power6_subdir_up ..
%define power6_legacy power6x
%define power6_legacy_up ..
2013-07-24 05:27:35 +00:00
pushd build-%{target}-power6
destdir=$RPM_BUILD_ROOT/%{_lib}
2013-08-29 04:36:52 +00:00
install_different "$destdir" "%{power6_subdir}" "%{power6_subdir_up}"
# Make a legacy /usr/lib[64]/power6x directory that is a symlink to the
# power6 runtime.
# XXX: When can we remove this? What is the history behind this?
mkdir -p ${destdir}/%{power6_legacy}
pushd ${destdir}/%{power6_legacy}
ln -sf %{power6_legacy_up}/%{power6_subdir}/*.so .
cp -a %{power6_legacy_up}/%{power6_subdir}/*.so.* .
2006-11-30 17:32:26 +00:00
popd
2013-07-24 05:27:35 +00:00
popd
%endif # %{buildpower6}
%if %{buildpower7}
%define power7_subdir power7
%define power7_subdir_up ..
pushd build-%{target}-power7
destdir=$RPM_BUILD_ROOT/%{_lib}
install_different "$destdir" "%{power7_subdir}" "%{power7_subdir_up}"
popd
%endif
%if %{buildpower8}
%define power8_subdir power8
%define power8_subdir_up ..
pushd build-%{target}-power8
destdir=$RPM_BUILD_ROOT/%{_lib}
install_different "$destdir" "%{power8_subdir}" "%{power8_subdir_up}"
popd
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Remove the files we don't want to distribute
2013-07-24 11:58:38 +00:00
##############################################################################
# Remove the libNoVersion files.
# XXX: This looks like a bug in glibc that accidentally installed these
# wrong files. We probably don't need this today.
rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion*
rm -f $RPM_BUILD_ROOT/%{_lib}/libNoVersion*
# rquota.x and rquota.h are now provided by quota
rm -f $RPM_BUILD_ROOT%{_prefix}/include/rpcsvc/rquota.[hx]
# In F7+ this is provided by rpcbind rpm
rm -f $RPM_BUILD_ROOT%{_sbindir}/rpcinfo
# Remove the old nss modules.
rm -f ${RPM_BUILD_ROOT}/%{_lib}/libnss1-*
rm -f ${RPM_BUILD_ROOT}/%{_lib}/libnss-*.so.1
2013-07-25 02:45:11 +00:00
##############################################################################
# Install info files
2013-07-25 02:45:11 +00:00
##############################################################################
%if %{with docs}
2013-07-24 11:58:38 +00:00
# Move the info files if glibc installed them into the wrong location.
if [ -d $RPM_BUILD_ROOT%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then
2008-03-05 10:32:39 +00:00
mkdir -p $RPM_BUILD_ROOT%{_infodir}
mv -f $RPM_BUILD_ROOT%{_prefix}/info/* $RPM_BUILD_ROOT%{_infodir}
rm -rf $RPM_BUILD_ROOT%{_prefix}/info
fi
2013-07-24 11:58:38 +00:00
# Compress all of the info files.
gzip -9nvf $RPM_BUILD_ROOT%{_infodir}/libc*
%else
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/libc.info*
%endif
##############################################################################
# Create locale sub-package file lists
##############################################################################
%ifnarch %{auxarches}
olddir=`pwd`
pushd ${RPM_BUILD_ROOT}%{_prefix}/lib/locale
rm -f locale-archive
# Intentionally we do not pass --alias-file=, aliases will be added
# by build-locale-archive.
$olddir/build-%{target}/elf/ld.so \
--library-path $olddir/build-%{target}/ \
$olddir/build-%{target}/locale/localedef \
--prefix ${RPM_BUILD_ROOT} --add-to-archive \
*_*
# Setup the locale-archive template for use by glibc-all-langpacks.
mv locale-archive{,.tmpl}
# Create the file lists for the language specific sub-packages:
for i in eo *_*
do
lang=${i%%_*}
if [ ! -e langpack-${lang}.filelist ]; then
echo "%dir %{_prefix}/lib/locale" >> langpack-${lang}.filelist
fi
echo "%dir %{_prefix}/lib/locale/$i" >> langpack-${lang}.filelist
echo "%{_prefix}/lib/locale/$i/*" >> langpack-${lang}.filelist
done
popd
pushd ${RPM_BUILD_ROOT}%{_prefix}/share/locale
for i in */LC_MESSAGES/libc.mo
do
locale=${i%%%%/*}
lang=${locale%%%%_*}
echo "%lang($lang) %{_prefix}/share/locale/${i}" \
>> ${RPM_BUILD_ROOT}%{_prefix}/lib/locale/langpack-${lang}.filelist
done
popd
mv ${RPM_BUILD_ROOT}%{_prefix}/lib/locale/*.filelist .
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Install configuration files for services
##############################################################################
install -p -m 644 %{SOURCE7} $RPM_BUILD_ROOT/etc/nsswitch.conf
2010-09-06 14:40:34 +00:00
%ifnarch %{auxarches}
auto-import changelog data from glibc-2.3.3-27.src.rpm Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27 - remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so - build mq_{send,receive} with -fexceptions Fri May 07 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26 - update from CVS - fix <tgmath.h> - fix memory leaks in nis, getifaddrs, etc. caused by incorrect use of realloc - remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1 might be a stale symlink Wed May 05 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25 - update from CVS - disable FUTEX_REQUEUE (work around #115349) - mq for sparc/sparc64/ia64 Tue May 04 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24 - update from CVS - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both included already in XNS5) - reorder dlopen checks, so that dlopening ET_REL objects complains about != ET_DYN != ET_EXEC, not about phentsize (#121606) - fix strpbrk macro for GCC 3.4+ (BZ #130) - fix <sys/sysctl.h> (BZ #140) - sched_[gs]etaffinity documentation fix (BZ #131) - fix sparc64 build (BZ #139) - change linuxthreads back to use non-cancellable writes to manager pipes etc. - fix sem_timedwait return value in linuxthreads (BZ #133) - ia64 unnecessary PLT relocs removal Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23 - update from CVS - fix *scanf - fix shm_unlink, sem_unlink and mq_unlink errno values - avoid memory leaks in error - execstack fixes on s390 Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22 - update from CVS - mq and timer fixes - rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically linked binaries - fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21 - disable rtkaio - update from CVS - POSIX message passing support - fixed SIGEV_THREAD support for POSIX timers - fix free on non-malloced memory in syslog - fix ffsl on some 64-bit arches - fix sched_setaffinity on x86-64, ia64 - fix ppc64 umount - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support - various NIS speedups - fix fwrite with > 2GB sizes on 64-bit arches - fix pthread_getattr_np guardsize reporting in NPTL - report PLT relocations in ld.so and libc.so during the build Thu Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20 - update from CVS - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP - strtol speed optimization - don't try to use certainly unimplemented syscalls on ppc64 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common} into /usr/lib/debug/usr/lib64/ directory - fix c_stubs with gcc 3.4 - move all the up to 3 builds into %build scriptlet and leave only installation in the %install scriptlet Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19 - update from CVS - affinity API changes
2004-09-09 05:48:43 +00:00
mkdir -p $RPM_BUILD_ROOT/etc/default
install -p -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/nss
auto-import changelog data from glibc-2.3.3-27.src.rpm Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27 - remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so - build mq_{send,receive} with -fexceptions Fri May 07 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26 - update from CVS - fix <tgmath.h> - fix memory leaks in nis, getifaddrs, etc. caused by incorrect use of realloc - remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1 might be a stale symlink Wed May 05 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25 - update from CVS - disable FUTEX_REQUEUE (work around #115349) - mq for sparc/sparc64/ia64 Tue May 04 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24 - update from CVS - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both included already in XNS5) - reorder dlopen checks, so that dlopening ET_REL objects complains about != ET_DYN != ET_EXEC, not about phentsize (#121606) - fix strpbrk macro for GCC 3.4+ (BZ #130) - fix <sys/sysctl.h> (BZ #140) - sched_[gs]etaffinity documentation fix (BZ #131) - fix sparc64 build (BZ #139) - change linuxthreads back to use non-cancellable writes to manager pipes etc. - fix sem_timedwait return value in linuxthreads (BZ #133) - ia64 unnecessary PLT relocs removal Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23 - update from CVS - fix *scanf - fix shm_unlink, sem_unlink and mq_unlink errno values - avoid memory leaks in error - execstack fixes on s390 Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22 - update from CVS - mq and timer fixes - rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically linked binaries - fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21 - disable rtkaio - update from CVS - POSIX message passing support - fixed SIGEV_THREAD support for POSIX timers - fix free on non-malloced memory in syslog - fix ffsl on some 64-bit arches - fix sched_setaffinity on x86-64, ia64 - fix ppc64 umount - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support - various NIS speedups - fix fwrite with > 2GB sizes on 64-bit arches - fix pthread_getattr_np guardsize reporting in NPTL - report PLT relocations in ld.so and libc.so during the build Thu Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20 - update from CVS - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP - strtol speed optimization - don't try to use certainly unimplemented syscalls on ppc64 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common} into /usr/lib/debug/usr/lib64/ directory - fix c_stubs with gcc 3.4 - move all the up to 3 builds into %build scriptlet and leave only installation in the %install scriptlet Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19 - update from CVS - affinity API changes
2004-09-09 05:48:43 +00:00
# This is for ncsd - in glibc 2.2
install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT/etc
mkdir -p $RPM_BUILD_ROOT%{_tmpfilesdir}
install -m 644 %{SOURCE4} %{buildroot}%{_tmpfilesdir}
mkdir -p $RPM_BUILD_ROOT/lib/systemd/system
install -m 644 nscd/nscd.service nscd/nscd.socket $RPM_BUILD_ROOT/lib/systemd/system
2010-09-06 14:40:34 +00:00
%endif
# Include ld.so.conf
echo 'include ld.so.conf.d/*.conf' > $RPM_BUILD_ROOT/etc/ld.so.conf
2013-07-26 00:30:34 +00:00
truncate -s 0 $RPM_BUILD_ROOT/etc/ld.so.cache
chmod 644 $RPM_BUILD_ROOT/etc/ld.so.conf
auto-import changelog data from glibc-2.3.3-27.src.rpm Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27 - remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so - build mq_{send,receive} with -fexceptions Fri May 07 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26 - update from CVS - fix <tgmath.h> - fix memory leaks in nis, getifaddrs, etc. caused by incorrect use of realloc - remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1 might be a stale symlink Wed May 05 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25 - update from CVS - disable FUTEX_REQUEUE (work around #115349) - mq for sparc/sparc64/ia64 Tue May 04 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24 - update from CVS - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both included already in XNS5) - reorder dlopen checks, so that dlopening ET_REL objects complains about != ET_DYN != ET_EXEC, not about phentsize (#121606) - fix strpbrk macro for GCC 3.4+ (BZ #130) - fix <sys/sysctl.h> (BZ #140) - sched_[gs]etaffinity documentation fix (BZ #131) - fix sparc64 build (BZ #139) - change linuxthreads back to use non-cancellable writes to manager pipes etc. - fix sem_timedwait return value in linuxthreads (BZ #133) - ia64 unnecessary PLT relocs removal Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23 - update from CVS - fix *scanf - fix shm_unlink, sem_unlink and mq_unlink errno values - avoid memory leaks in error - execstack fixes on s390 Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22 - update from CVS - mq and timer fixes - rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically linked binaries - fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21 - disable rtkaio - update from CVS - POSIX message passing support - fixed SIGEV_THREAD support for POSIX timers - fix free on non-malloced memory in syslog - fix ffsl on some 64-bit arches - fix sched_setaffinity on x86-64, ia64 - fix ppc64 umount - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support - various NIS speedups - fix fwrite with > 2GB sizes on 64-bit arches - fix pthread_getattr_np guardsize reporting in NPTL - report PLT relocations in ld.so and libc.so during the build Thu Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20 - update from CVS - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP - strtol speed optimization - don't try to use certainly unimplemented syscalls on ppc64 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common} into /usr/lib/debug/usr/lib64/ directory - fix c_stubs with gcc 3.4 - move all the up to 3 builds into %build scriptlet and leave only installation in the %install scriptlet Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19 - update from CVS - affinity API changes
2004-09-09 05:48:43 +00:00
mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
2010-09-06 14:40:34 +00:00
%ifnarch %{auxarches}
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
2013-07-26 00:30:34 +00:00
truncate -s 0 $RPM_BUILD_ROOT/etc/sysconfig/nscd
truncate -s 0 $RPM_BUILD_ROOT/etc/gai.conf
2010-09-06 14:40:34 +00:00
%endif
# Include %{_libdir}/gconv/gconv-modules.cache
truncate -s 0 $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
chmod 644 $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
2013-07-24 11:58:38 +00:00
##############################################################################
# Misc...
2013-07-24 11:58:38 +00:00
##############################################################################
# Install the upgrade program
install -m 700 build-%{target}/glibc_post_upgrade.%{_target_cpu} \
$RPM_BUILD_ROOT%{_prefix}/sbin/glibc_post_upgrade.%{_target_cpu}
# Strip all of the installed object files.
strip -g $RPM_BUILD_ROOT%{_libdir}/*.o
# XXX: Ugly hack for buggy rpm. What bug? BZ? Is this fixed?
ln -f ${RPM_BUILD_ROOT}%{_sbindir}/iconvconfig{,.%{_target_cpu}}
##############################################################################
# Install debug copies of unstripped static libraries
# - This step must be last in order to capture any additional static
# archives we might have added.
##############################################################################
# If we are building a debug package then copy all of the static archives
# into the debug directory to keep them as unstripped copies.
%if 0%{?_enable_debug_packages}
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_libdir}
cp -a $RPM_BUILD_ROOT%{_libdir}/*.a \
$RPM_BUILD_ROOT%{_prefix}/lib/debug%{_libdir}/
rm -f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_libdir}/*_p.a
%endif
2013-07-24 11:58:38 +00:00
##############################################################################
# Build the file lists used for describing the package and subpackages.
##############################################################################
# There are several main file lists (and many more for
# the langpack sub-packages (langpack-${lang}.filelist)):
2013-07-24 11:58:38 +00:00
# * rpm.fileslist
# - Master file list. Eventually, after removing files from this list
# we are left with the list of files for the glibc package.
# * common.filelist
# - Contains the list of flies for the common subpackage.
# * utils.filelist
# - Contains the list of files for the utils subpackage.
# * nscd.filelist
# - Contains the list of files for the nscd subpackage.
# * devel.filelist
# - Contains the list of files for the devel subpackage.
# * headers.filelist
# - Contains the list of files for the headers subpackage.
# * static.filelist
# - Contains the list of files for the static subpackage.
# * libcrypt.filelist, libcrypt-nss.filelist
# - Contains the list of files for the crypt-related subpackages
# * nss_db.filelist, nss_nis.filelist, nss_hesiod.filelist
# - File lists for nss_* NSS module subpackages.
# * nss-devel.filelist
# - File list with the .so symbolic links for NSS packages.
2013-07-24 11:58:38 +00:00
# * debuginfo.filelist
# - Contains the list of files for the glibc debuginfo package.
# * debuginfocommon.filelist
# - Contains the list of files for the glibc common debuginfo package.
#
2009-06-26 15:46:27 +00:00
{
2009-07-30 13:39:12 +00:00
find $RPM_BUILD_ROOT \( -type f -o -type l \) \
2009-06-26 15:46:27 +00:00
\( \
-name etc -printf "%%%%config " -o \
-name gconv-modules \
-printf "%%%%verify(not md5 size mtime) %%%%config(noreplace) " -o \
-name gconv-modules.cache \
-printf "%%%%verify(not md5 size mtime) " \
, \
2009-07-30 13:39:12 +00:00
! -path "*/lib/debug/*" -printf "/%%P\n" \)
# Print all directories with a %%dir prefix. We omit the info directory and
# all directories in (and including) /usr/share/locale.
2009-06-26 15:46:27 +00:00
find $RPM_BUILD_ROOT -type d \
\( -path '*%{_prefix}/share/locale' -prune -o \
\( -path '*%{_prefix}/share/*' \
%if %{with docs}
! -path '*%{_infodir}' -o \
%endif
2010-05-19 12:00:46 +00:00
-path "*%{_prefix}/include/*" \
\) -printf "%%%%dir /%%P\n" \)
2009-06-26 15:46:27 +00:00
} | {
# primary filelist
# Also remove the *.mo entries. We will add them to the
# language specific sub-packages.
# libnss_ files go into subpackages related to NSS modules.
# and .*/share/i18n/charmaps/.*), they go into the sub-package
# "locale-source":
sed -e '\,.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo,d' \
-e '\,.*/share/i18n/locales/.*,d' \
-e '\,.*/share/i18n/charmaps/.*,d' \
2010-10-14 10:30:32 +00:00
-e '\,/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\|rpc\|gai\.conf\),d' \
2009-06-26 15:46:27 +00:00
-e '\,/%{_lib}/lib\(pcprofile\|memusage\)\.so,d' \
-e '\,bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d'
} | sort > rpm.filelist
touch common.filelist
mkdir -p $RPM_BUILD_ROOT%{_libdir}
mv -f $RPM_BUILD_ROOT/%{_lib}/lib{pcprofile,memusage}.so $RPM_BUILD_ROOT%{_libdir}
2013-07-24 11:58:38 +00:00
# The xtrace and memusage scripts have hard-coded paths that need to be
# translated to a correct set of paths using the $LIB token which is
# dynamically translated by ld.so as the default lib directory.
for i in $RPM_BUILD_ROOT%{_prefix}/bin/{xtrace,memusage}; do
sed -e 's~=/%{_lib}/libpcprofile.so~=%{_libdir}/libpcprofile.so~' \
-e 's~=/%{_lib}/libmemusage.so~=%{_libdir}/libmemusage.so~' \
-e 's~='\''/\\\$LIB/libpcprofile.so~='\''%{_prefix}/\\$LIB/libpcprofile.so~' \
-e 's~='\''/\\\$LIB/libmemusage.so~='\''%{_prefix}/\\$LIB/libmemusage.so~' \
2009-06-26 15:46:27 +00:00
-i $i
done
%if %{with docs}
2013-07-24 11:58:38 +00:00
# Put the info files into the devel file list.
grep '%{_infodir}' < rpm.filelist | grep -v '%{_infodir}/dir' > devel.filelist
%endif
2013-07-24 11:58:38 +00:00
# The glibc-headers package includes only common files which are identical
# across all multilib packages. We must keep gnu/stubs.h and gnu/lib-names.h
# in the glibc-headers package, but the -32, -64, -64-v1, and -64-v2 versions
# go into the development packages.
grep '%{_prefix}/include/gnu/stubs-.*\.h$' < rpm.filelist >> devel.filelist || :
grep '%{_prefix}/include/gnu/lib-names-.*\.h$' < rpm.filelist >> devel.filelist || :
2013-07-24 11:58:38 +00:00
# Put the include files into headers file list.
grep '%{_prefix}/include' < rpm.filelist \
| egrep -v '%{_prefix}/include/gnu/stubs-.*\.h$' \
| egrep -v '%{_prefix}/include/gnu/lib-names-.*\.h$' \
> headers.filelist
2013-07-24 11:58:38 +00:00
# Remove partial (lib*_p.a) static libraries, include files, and info files from
# the core glibc package.
sed -i -e '\|%{_libdir}/lib.*_p.a|d' \
2009-06-26 15:46:27 +00:00
-e '\|%{_prefix}/include|d' \
-e '\|%{_infodir}|d' \
rpm.filelist
2013-07-24 11:58:38 +00:00
# Put some static files into the devel package.
grep '%{_libdir}/lib.*\.a' < rpm.filelist \
| grep '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \
2009-02-18 20:47:04 +00:00
>> devel.filelist
2013-07-24 11:58:38 +00:00
# Put the rest of the static files into the static package.
grep '%{_libdir}/lib.*\.a' < rpm.filelist \
| grep -v '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \
2009-02-18 20:47:04 +00:00
> static.filelist
2013-07-24 11:58:38 +00:00
# Put all of the object files and *.so (not the versioned ones) into the
# devel package.
grep '%{_libdir}/.*\.o' < rpm.filelist >> devel.filelist
grep '%{_libdir}/lib.*\.so' < rpm.filelist >> devel.filelist
# Remove all of the static, object, unversioned DSOs, and nscd from the core
# glibc package.
sed -i -e '\|%{_libdir}/lib.*\.a|d' \
-e '\|%{_libdir}/.*\.o|d' \
-e '\|%{_libdir}/lib.*\.so|d' \
2009-06-26 15:46:27 +00:00
-e '\|nscd|d' rpm.filelist
2013-07-24 11:58:38 +00:00
# All of the bin and certain sbin files go into the common package.
# We explicitly exclude certain sbin files that need to go into
# the core glibc package for use during upgrades.
grep '%{_prefix}/bin' < rpm.filelist >> common.filelist
grep '%{_prefix}/sbin/[^gi]' < rpm.filelist >> common.filelist
2013-07-24 11:58:38 +00:00
# All of the files under share go into the common package since
# they should be multilib-independent.
2008-03-05 10:32:39 +00:00
grep '%{_prefix}/share' < rpm.filelist | \
grep -v -e '%{_prefix}/share/zoneinfo' -e '%%dir %{prefix}/share' \
>> common.filelist
# Remove the bin, locale, some sbin, and share from the
2013-07-24 11:58:38 +00:00
# core glibc package. We cheat a bit and use the slightly dangerous
# /usr/sbin/[^gi] to match the inverse of the search that put the
2013-07-24 11:58:38 +00:00
# files into common.filelist. It's dangerous in that additional files
# that start with g, or i would get put into common.filelist and
2013-07-24 11:58:38 +00:00
# rpm.filelist.
2009-06-26 15:46:27 +00:00
sed -i -e '\|%{_prefix}/bin|d' \
-e '\|%{_prefix}/lib/locale|d' \
-e '\|%{_prefix}/sbin/[^gi]|d' \
-e '\|%{_prefix}/share|d' rpm.filelist
# Add the binary to build locales to the common subpackage.
echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
2013-07-24 11:58:38 +00:00
# The nscd binary must go into the nscd subpackage.
echo '%{_prefix}/sbin/nscd' > nscd.filelist
2013-07-24 11:58:38 +00:00
# The memusage and pcprofile libraries are put back into the core
# glibc package even though they are only used by utils package
# scripts..
2011-09-16 12:17:45 +00:00
cat >> rpm.filelist <<EOF
%{_libdir}/libmemusage.so
%{_libdir}/libpcprofile.so
2011-09-16 12:17:45 +00:00
EOF
2013-07-24 11:58:38 +00:00
# Add the utils scripts and programs to the utils subpackage.
2011-09-16 12:17:45 +00:00
cat > utils.filelist <<EOF
%{_prefix}/bin/memusage
%{_prefix}/bin/memusagestat
%if %{without bootstrap}
%{_prefix}/bin/mtrace
%endif
%{_prefix}/bin/pcprofiledump
%{_prefix}/bin/xtrace
EOF
# Move the NSS-related files to the NSS subpackages. Be careful not
# to pick up .debug files, and the -devel symbolic links.
for module in db nis nisplus compat hesiod files dns; do
grep -E "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
rpm.filelist > nss_$module.filelist
done
# nis includes nisplus
cat nss_nisplus.filelist >> nss_nis.filelist
# Symlinks go into the nss-devel package (instead of the main devel
# package).
grep '/libnss_[a-z]*\.so$' devel.filelist > nss-devel.filelist
# /var/db/Makefile goes into nss_hesiod, remove the other files from
# the main and devel file list.
sed -i -e '\,/libnss_.*\.so[0-9.]*$,d' \
-e '\,/var/db/Makefile,d' \
rpm.filelist devel.filelist
# Restore the built-in NSS modules.
cat nss_files.filelist nss_dns.filelist nss_compat.filelist >> rpm.filelist
# Prepare the libcrypt-related file lists.
grep '/libcrypt-[0-9.]*.so$' rpm.filelist > libcrypt.filelist
test $(wc -l < libcrypt.filelist) -eq 1
%if %{without bootstrap}
sed s/libcrypt/libcrypt-nss/ < libcrypt.filelist > libcrypt-nss.filelist
%endif
sed -i -e '\,/libcrypt,d' rpm.filelist
# Remove the zoneinfo files
# XXX: Why isn't this don't earlier when we are removing files?
# Won't this impact what is shipped?
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo
# Make sure %config files have the same timestamp across multilib packages.
#
# XXX: Ideally ld.so.conf should have the timestamp of the spec file, but there
# doesn't seem to be any macro to give us that. So we do the next best thing,
# which is to at least keep the timestamp consistent. The choice of using
# glibc_post_upgrade.c is arbitrary.
touch -r %{SOURCE2} $RPM_BUILD_ROOT/etc/ld.so.conf
touch -r sunrpc/etc.rpc $RPM_BUILD_ROOT/etc/rpc
pushd build-%{target}
$GCC -Os -g -static -o build-locale-archive %{SOURCE1} \
../build-%{target}/locale/locarchive.o \
../build-%{target}/locale/md5.o \
-I. -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \
-L../build-%{target} \
-B../build-%{target}/csu/ -lc -lc_nonshared
install -m 700 build-locale-archive $RPM_BUILD_ROOT%{_prefix}/sbin/build-locale-archive
2013-07-24 05:27:35 +00:00
popd
2013-07-24 11:58:38 +00:00
# Lastly copy some additional documentation for the packages.
rm -rf documentation
mkdir documentation
cp crypt/README.ufc-crypt documentation/README.ufc-crypt
cp timezone/README documentation/README.timezone
2006-05-05 07:42:23 +00:00
cp posix/gai.conf documentation/
%ifarch s390x
# Compatibility symlink
2017-09-14 15:41:57 +00:00
mkdir -p $RPM_BUILD_ROOT/lib
ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/lib/ld64.so.1
%endif
%if %{with benchtests}
# Build benchmark binaries. Ignore the output of the benchmark runs.
pushd build-%{target}
make BENCH_DURATION=1 bench-build
popd
# Copy over benchmark binaries.
mkdir -p $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests
cp $(find build-%{target}/benchtests -type f -executable) $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests/
find build-%{target}/benchtests -type f -executable | while read b; do
echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)"
done >> benchtests.filelist
# ... and the makefile.
for b in %{SOURCE9} %{SOURCE10}; do
cp $b $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests/
echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)" >> benchtests.filelist
done
# .. and finally, the comparison scripts.
cp benchtests/scripts/benchout.schema.json $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests/
cp benchtests/scripts/compare_bench.py $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests/
cp benchtests/scripts/import_bench.py $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests/
cp benchtests/scripts/validate_benchout.py $RPM_BUILD_ROOT%{_prefix}/libexec/glibc-benchtests/
echo "%{_prefix}/libexec/glibc-benchtests/benchout.schema.json" >> benchtests.filelist
echo "%{_prefix}/libexec/glibc-benchtests/compare_bench.py*" >> benchtests.filelist
echo "%{_prefix}/libexec/glibc-benchtests/import_bench.py*" >> benchtests.filelist
echo "%{_prefix}/libexec/glibc-benchtests/validate_benchout.py*" >> benchtests.filelist
%endif
2013-07-24 11:58:38 +00:00
###############################################################################
# Rebuild libpthread.a using --whole-archive to ensure all of libpthread
# is included in a static link. This prevents any problems when linking
# statically, using parts of libpthread, and other necessary parts not
# being included. Upstream has decided that this is the wrong approach to
# this problem and that the full set of dependencies should be resolved
# such that static linking works and produces the most minimally sized
# static application possible.
###############################################################################
pushd $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
2009-03-09 15:03:51 +00:00
$GCC -r -nostdlib -o libpthread.o -Wl,--whole-archive ./libpthread.a
2009-02-18 20:47:04 +00:00
rm libpthread.a
ar rcs libpthread.a libpthread.o
rm libpthread.o
popd
2013-07-24 11:58:38 +00:00
###############################################################################
2009-02-18 20:47:04 +00:00
2009-06-26 15:46:27 +00:00
%if 0%{?_enable_debug_packages}
2007-08-10 01:55:13 +00:00
# The #line directives gperf generates do not give the proper
# file name relative to the build directory.
pushd locale
ln -s programs/*.gperf .
popd
pushd iconv
ln -s ../locale/programs/charmap-kw.gperf .
popd
2013-07-24 11:58:38 +00:00
# Print some diagnostic information in the builds about the
# getconf binaries.
# XXX: Why do we do this?
ls -l $RPM_BUILD_ROOT%{_prefix}/bin/getconf
ls -l $RPM_BUILD_ROOT%{_prefix}/libexec/getconf
eu-readelf -hS $RPM_BUILD_ROOT%{_prefix}/bin/getconf \
$RPM_BUILD_ROOT%{_prefix}/libexec/getconf/*
2007-08-10 01:55:13 +00:00
find_debuginfo_args='--strict-build-id -g'
%ifarch %{debuginfocommonarches}
find_debuginfo_args="$find_debuginfo_args \
-l common.filelist \
-l utils.filelist \
-l nscd.filelist \
-p '.*/(sbin|libexec)/.*' \
-o debuginfocommon.filelist \
-l nss_db.filelist -l nss_nis.filelist -l nss_hesiod.filelist \
-l libcrypt.filelist \
%if %{without bootstrap}
-l libcrypt-nss.filelist \
%endif
-l rpm.filelist \
%if %{with benchtests}
-l benchtests.filelist
%endif
"
2007-08-10 01:55:13 +00:00
%endif
/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
2013-07-24 11:58:38 +00:00
# List all of the *.a archives in the debug directory.
2007-08-10 01:55:13 +00:00
list_debug_archives()
{
local dir=%{_prefix}/lib/debug%{_libdir}
find $RPM_BUILD_ROOT$dir -name "*.a" -printf "$dir/%%P\n"
2007-08-10 01:55:13 +00:00
}
%ifarch %{debuginfocommonarches}
2007-08-10 01:55:13 +00:00
2013-07-24 11:58:38 +00:00
# Remove the source files from the common package debuginfo.
2011-02-15 13:29:18 +00:00
sed -i '\#^%{_prefix}/src/debug/#d' debuginfocommon.filelist
2013-07-24 11:58:38 +00:00
# Create a list of all of the source files we copied to the debug directory.
2011-02-15 13:29:18 +00:00
find $RPM_BUILD_ROOT%{_prefix}/src/debug \
\( -type d -printf '%%%%dir ' \) , \
-printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources
%ifarch %{biarcharches}
2013-07-24 11:58:38 +00:00
# Add the source files to the core debuginfo package.
2011-02-15 13:29:18 +00:00
cat debuginfocommon.sources >> debuginfo.filelist
%else
%ifarch %{ix86}
2009-07-20 13:24:45 +00:00
%define basearch i686
%endif
%ifarch sparc sparcv9
%define basearch sparc
%endif
2007-08-10 01:55:13 +00:00
2013-07-24 11:58:38 +00:00
# The auxarches get only these few source files.
2007-08-10 01:55:13 +00:00
auxarches_debugsources=\
'/(generic|linux|%{basearch}|nptl(_db)?)/|/%{glibcsrcdir}/build|/dl-osinfo\.h'
2013-07-24 11:58:38 +00:00
# Place the source files into the core debuginfo pakcage.
2007-08-10 01:55:13 +00:00
egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist
2013-07-24 11:58:38 +00:00
# Remove the source files from the common debuginfo package.
2007-08-10 01:55:13 +00:00
egrep -v "$auxarches_debugsources" \
2008-03-05 10:32:39 +00:00
debuginfocommon.sources >> debuginfocommon.filelist
2007-08-10 01:55:13 +00:00
2013-07-25 02:45:11 +00:00
%endif # %{biarcharches}
2011-02-15 13:29:18 +00:00
2013-07-24 11:58:38 +00:00
# Add the list of *.a archives in the debug directory to
# the common debuginfo package.
2007-08-10 01:55:13 +00:00
list_debug_archives >> debuginfocommon.filelist
# It happens that find-debuginfo.sh produces duplicate entries even
# though the inputs are unique. Therefore we sort and unique the
# entries in the debug file lists. This avoids the following warnings:
# ~~~
# Processing files: glibc-debuginfo-common-2.17.90-10.fc20.x86_64
# warning: File listed twice: /usr/lib/debug/usr/sbin/build-locale-archive.debug
# warning: File listed twice: /usr/lib/debug/usr/sbin/nscd.debug
# warning: File listed twice: /usr/lib/debug/usr/sbin/zdump.debug
# warning: File listed twice: /usr/lib/debug/usr/sbin/zic.debug
# ~~~
sort -u debuginfocommon.filelist > debuginfocommon2.filelist
mv debuginfocommon2.filelist debuginfocommon.filelist
2013-07-24 11:58:38 +00:00
%endif # %{debuginfocommonarches}
# Remove any duplicates output by a buggy find-debuginfo.sh.
sort -u debuginfo.filelist > debuginfo2.filelist
mv debuginfo2.filelist debuginfo.filelist
# Remove some common directories from the common package debuginfo so that we
# don't end up owning them.
exclude_common_dirs()
{
exclude_dirs="%{_prefix}/src/debug"
exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug{,/%{_lib},/bin,/sbin})"
exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug%{_prefix}{,/%{_lib},/libexec,/bin,/sbin})"
for d in $(echo $exclude_dirs | sed 's/ /\n/g'); do
sed -i "\|^%%dir $d/\?$|d" $1
done
}
%ifarch %{debuginfocommonarches}
exclude_common_dirs debuginfocommon.filelist
%endif
exclude_common_dirs debuginfo.filelist
2013-07-24 11:58:38 +00:00
%endif # 0%{?_enable_debug_packages}
2007-08-10 01:55:13 +00:00
%if %{with docs}
2013-07-24 11:58:38 +00:00
# Remove the `dir' info-heirarchy file which will be maintained
# by the system as it adds info files to the install.
2007-08-10 01:55:13 +00:00
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
%endif
2007-08-10 01:55:13 +00:00
%ifarch %{auxarches}
2007-08-10 01:55:13 +00:00
2013-07-24 11:58:38 +00:00
# Delete files that we do not intended to ship with the auxarch.
echo Cutting down the list of unpackaged files
2007-08-10 01:55:13 +00:00
sed -e '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //;s#^/*##' \
common.filelist devel.filelist static.filelist headers.filelist \
utils.filelist nscd.filelist \
%ifarch %{debuginfocommonarches}
debuginfocommon.filelist \
%endif
| (cd $RPM_BUILD_ROOT; xargs --no-run-if-empty rm -f 2> /dev/null || :)
2013-07-24 11:58:38 +00:00
%else
mkdir -p $RPM_BUILD_ROOT/var/{db,run}/nscd
touch $RPM_BUILD_ROOT/var/{db,run}/nscd/{passwd,group,hosts,services}
touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid}
2013-07-25 02:45:11 +00:00
%endif # %{auxarches}
%ifnarch %{auxarches}
truncate -s 0 $RPM_BUILD_ROOT/%{_prefix}/lib/locale/locale-archive
%endif
2007-07-31 18:18:37 +00:00
mkdir -p $RPM_BUILD_ROOT/var/cache/ldconfig
2013-07-26 00:30:34 +00:00
truncate -s 0 $RPM_BUILD_ROOT/var/cache/ldconfig/aux-cache
2007-07-31 18:18:37 +00:00
##############################################################################
# Run the glibc testsuite
##############################################################################
%check
%if %{with testsuite}
# Run the glibc tests. If any tests fail to build we exit %check with an error
# of 1, otherwise we print the test failure list and the failed test output
# and exit with 0. In the future we want to compare against a baseline and
# exit with 1 if the results deviate from the baseline.
run_tests () {
truncate -s 0 check.log
tail -f check.log &
tailpid=$!
# Run the make a sub-shell (to avoid %check failing if make fails)
# but capture the status for use later. We use the normal sub-shell
# trick of printing the status. The actual result of the sub-shell
# is the successful execution of the echo.
status=$(set +e
make %{?_smp_mflags} check %{silentrules} > check.log 2>&1
status=$?
echo $status)
# Wait for the tail to catch up with the output and then kill it.
sleep 10
kill $tailpid
# Print the header, so we can find it, but skip the error printing
# if there aren't any failrues.
echo ===================FAILED TESTS=====================
if [ $status -ne 0 ]; then
# We are not running with `-k`, therefore a test build failure
# terminates the test run and that terminates %check with an
# error which terminates the build. We want this behaviour to
# ensure that all tests build, and all tests run.
# If the test result summary is not present it means one of
# tests failed to build.
if ! grep 'Summary of test results:' check.log; then
echo "FAIL: Some glibc tests failed to build."
exit 1
fi
# Print out information about all of the failed tests.
grep -e ^FAIL -e ^ERROR tests.sum \
| awk '{print $2}' \
| while read testcase;
do
echo "$testcase"
cat $testcase.out
echo -------------------------
done
fi
# If the crypt-glibc test suite fails, something is completely
# broken, so fail the build in this case.
make %{?_smp_mflags} subdirs=crypt-glibc check %{silentrules}
# Unconditonally dump differences in the system call list.
echo "* System call consistency checks:"
cat misc/tst-syscall-list.out
}
# Increase timeouts
export TIMEOUTFACTOR=16
parent=$$
echo ====================TESTING=========================
##############################################################################
# - Test the default runtime.
# - Power 620 / 970 ISA for 64-bit POWER BE.
# - POWER8 for 64-bit POWER LE.
# - ??? for 64-bit x86_64
# - ??? for 32-bit x86
# - ??? for 64-bit AArch64
# - ??? for 32-bit ARM
# - zEC12 for 64-bit s390x
# - ??? for 32-bit s390
##############################################################################
pushd build-%{target}
run_tests
popd
%if %{buildpower6}
echo ====================TESTING -mcpu=power6=============
##############################################################################
# - Test the 64-bit POWER6 BE runtimes.
##############################################################################
pushd build-%{target}-power6
if [ -d ../power6emul ]; then
export LD_PRELOAD=`cd ../power6emul; pwd`/\$LIB/power6emul.so
fi
run_tests
popd
%endif
%if %{buildpower7}
echo ====================TESTING -mcpu=power7=============
##############################################################################
# - Test the 64-bit POWER7 BE runtimes.
##############################################################################
pushd build-%{target}-power7
run_tests
popd
%endif
%if %{buildpower8}
echo ====================TESTING -mcpu=power8=============
##############################################################################
# - Test the 64-bit POWER8 BE runtimes.
##############################################################################
pushd build-%{target}-power8
run_tests
popd
%endif
echo ====================TESTING DETAILS=================
for i in `sed -n 's|^.*\*\*\* \[\([^]]*\.out\)\].*$|\1|p' build-*-linux*/check.log`; do
echo =====$i=====
cat $i || :
echo ============
done
echo ====================TESTING END=====================
PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p'
echo ====================PLT RELOCS LD.SO================
readelf -Wr $RPM_BUILD_ROOT/%{_lib}/ld-*.so | sed -n -e "$PLTCMD"
echo ====================PLT RELOCS LIBC.SO==============
readelf -Wr $RPM_BUILD_ROOT/%{_lib}/libc-*.so | sed -n -e "$PLTCMD"
echo ====================PLT RELOCS END==================
# Finally, check if valgrind runs with the new glibc.
# We want to fail building if valgrind is not able to run with this glibc so
# that we can then coordinate with valgrind to get it fixed before we update
# glibc.
pushd build-%{target}
2017-06-22 12:48:21 +00:00
# Show the auxiliary vector as seen by the new library
# (even if we do not perform the valgrind test).
LD_SHOW_AUXV=1 elf/ld.so --library-path .:elf:nptl:dlfcn /bin/true
%if %{with valgrind}
elf/ld.so --library-path .:elf:nptl:dlfcn \
/usr/bin/valgrind --error-exitcode=1 \
elf/ld.so --library-path .:elf:nptl:dlfcn /usr/bin/true
%endif
2017-06-22 12:48:21 +00:00
popd
%endif # %{run_glibc_tests}
2010-11-12 12:29:24 +00:00
%pre -p <lua>
-- Check that the running kernel is new enough
required = '%{enablekernel}'
2010-12-13 16:58:18 +00:00
rel = posix.uname("%r")
if rpm.vercmp(rel, required) < 0 then
error("FATAL: kernel too old", 0)
2010-11-12 12:29:24 +00:00
end
%post -p %{_prefix}/sbin/glibc_post_upgrade.%{_target_cpu}
%postun -p /sbin/ldconfig
%posttrans all-langpacks -e -p <lua>
-- If at the end of the transaction we are still installed
-- (have a template of non-zero size), then we rebuild the
-- locale cache (locale-archive) from the pre-populated
-- locale cache (locale-archive.tmpl) i.e. template.
if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
pid = posix.fork()
if pid == 0 then
posix.exec("%{_prefix}/sbin/build-locale-archive", "--install-langs", "%%{_install_langs}")
elseif pid > 0 then
posix.wait(pid)
end
end
%postun all-langpacks -p <lua>
-- In the postun we always remove the locale cache.
-- We are being uninstalled and if this is an upgrade
-- then the new packages template will be used to
-- recreate a new copy of the cache.
os.remove("%{_prefix}/lib/locale/locale-archive")
%if %{with docs}
%post devel
2009-08-10 09:56:04 +00:00
/sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
%endif
%pre headers
# this used to be a link and it is causing nightmares now
if [ -L %{_prefix}/include/scsi ] ; then
2008-03-05 10:32:39 +00:00
rm -f %{_prefix}/include/scsi
fi
%if %{with docs}
%preun devel
if [ "$1" = 0 ]; then
2009-08-10 09:56:04 +00:00
/sbin/install-info --delete %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
fi
%endif
%post utils -p /sbin/ldconfig
%postun utils -p /sbin/ldconfig
%pre -n nscd
2010-05-31 15:10:22 +00:00
getent group nscd >/dev/null || /usr/sbin/groupadd -g 28 -r nscd
getent passwd nscd >/dev/null ||
/usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
-c "NSCD Daemon" -u 28 -g nscd nscd
%post -n nscd
%systemd_post nscd.service
%preun -n nscd
%systemd_preun nscd.service
%postun -n nscd
2011-09-28 12:23:58 +00:00
if test $1 = 0; then
2008-03-05 10:32:39 +00:00
/usr/sbin/userdel nscd > /dev/null 2>&1 || :
fi
%systemd_postun_with_restart nscd.service
%files -f rpm.filelist
%defattr(-,root,root)
%dir %{_prefix}/%{_lib}/audit
%if %{buildpower6}
%dir /%{_lib}/power6
%dir /%{_lib}/power6x
%endif
%if %{buildpower7}
%dir /%{_lib}/power7
%endif
%if %{buildpower8}
%dir /%{_lib}/power8
%endif
%ifarch s390x
/lib/ld64.so.1
%endif
%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
2010-06-15 08:43:24 +00:00
%verify(not md5 size mtime) %config(noreplace) /etc/rpc
%dir /etc/ld.so.conf.d
%dir %{_prefix}/libexec/getconf
%dir %{_libdir}/gconv
2007-07-31 18:18:37 +00:00
%dir %attr(0700,root,root) /var/cache/ldconfig
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
2010-10-14 10:30:32 +00:00
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf
%doc README NEWS INSTALL elf/rtld-debugger-interface.txt
# If rpm doesn't support %license, then use %doc instead.
2014-07-12 15:16:06 +00:00
%{!?_licensedir:%global license %%doc}
%license COPYING COPYING.LIB LICENSES
%ifnarch %{auxarches}
%files -f common.filelist common
%defattr(-,root,root)
2014-01-25 18:52:16 +00:00
%dir %{_prefix}/lib/locale
%dir %{_prefix}/lib/locale/C.utf8
%{_prefix}/lib/locale/C.utf8/*
%dir %attr(755,root,root) /etc/default
%verify(not md5 size mtime) %config(noreplace) /etc/default/nss
%doc documentation/README.timezone
%doc documentation/gai.conf
%files all-langpacks
%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl
%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive
%files locale-source
%defattr(-,root,root)
%dir %{_prefix}/share/i18n/locales
%{_prefix}/share/i18n/locales/*
%dir %{_prefix}/share/i18n/charmaps
%{_prefix}/share/i18n/charmaps/*
%files -f devel.filelist devel
%defattr(-,root,root)
2009-02-18 20:47:04 +00:00
%files -f static.filelist static
%defattr(-,root,root)
%files -f headers.filelist headers
%defattr(-,root,root)
%files -f utils.filelist utils
%defattr(-,root,root)
%files -f nscd.filelist -n nscd
%defattr(-,root,root)
%config(noreplace) /etc/nscd.conf
%dir %attr(0755,root,root) /var/run/nscd
%dir %attr(0755,root,root) /var/db/nscd
/lib/systemd/system/nscd.service
/lib/systemd/system/nscd.socket
%{_tmpfilesdir}/nscd.conf
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid
%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/passwd
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/group
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/hosts
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/services
%ghost %config(missingok,noreplace) /etc/sysconfig/nscd
%endif
%files -f nss_db.filelist -n nss_db
%files -f nss_nis.filelist -n nss_nis
%files -f nss_hesiod.filelist -n nss_hesiod
/var/db/Makefile
%doc hesiod/README.hesiod
%files -f nss-devel.filelist nss-devel
%files -f libcrypt.filelist -n libcrypt
%doc documentation/README.ufc-crypt
%ghost /%{_lib}/libcrypt.so.1
%if %{without bootstrap}
%files -f libcrypt-nss.filelist -n libcrypt-nss
%ghost /%{_lib}/libcrypt.so.1
%endif
2009-06-26 15:46:27 +00:00
%if 0%{?_enable_debug_packages}
%files debuginfo -f debuginfo.filelist
%defattr(-,root,root)
%ifarch %{debuginfocommonarches}
%ifnarch %{auxarches}
%files debuginfo-common -f debuginfocommon.filelist
%defattr(-,root,root)
%endif
%endif
%endif
%if %{with benchtests}
%files benchtests -f benchtests.filelist
%defattr(-,root,root)
%endif
%changelog
* Mon Oct 09 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-19
- Auto-sync with upstream branch master,
commit 645ac9aaf89e3311949828546df6334322f48933:
- openpty: use TIOCGPTPEER to open slave side fd
* Fri Oct 06 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.26.90-18
- Auto-sync with upstream master,
commit 1e26d35193efbb29239c710a4c46a64708643320.
- malloc: Fix tcache leak after thread destruction (swbz#22111)
- powerpc: Fix IFUNC for memrchr.
- aarch64: Optimized implementation of memmove for Qualcomm Falkor
- Always do locking when iterating over list of streams (swbz#15142)
- abort: Do not flush stdio streams (swbz#15436)
* Wed Oct 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-17
- Move nss_compat to the main glibc package (#1400538)
- Auto-sync with upstream master,
commit 11c4f5010c58029e73e656d5df4f8f42c9b8e877:
- crypt: Use NSPR header files in addition to NSS header files (#1489339)
- math: Fix yn(n,0) without SVID wrapper (swbz#22244)
- math: Fix log2(0) and log(10) in downward rounding (swbz#22243)
- math: Add C++ versions of iscanonical for ldbl-96, ldbl-128ibm (swbz#22235)
- powerpc: Optimize memrchr for power8
- Hide various internal functions (swbz#18822)
Auto-sync with upstream master Upstream commit: 1e2bffd05c36a9be30d7092d6593a9e9aa009ada - Add IBM858 charset (#1416405) - Update kernel version in syscall-names.list to 4.13 - Add Linux 4.13 constants to bits/fcntl-linux.h - Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h - math: New generic powf, log2f, logf - Fix nearbyint arithmetic moved before feholdexcept (swbz#22225) - Mark __dso_handle as hidden (swbz#18822) - Skip PT_DYNAMIC segment with p_filesz == 0 (swbz#22101) - glob now matches dangling symbolic links (swbz#866, swbz#22183) - nscd: Release read lock after resetting timeout (swbz#22161) - Avoid __MATH_TG in C++ mode with -Os for pfcl (swbz#22146) - Fix dlclose/exit race (swbz#22180) - x86: Add SSE4.1 trunc, truncf (swbz#20142) - Fix atexit/exit race (swbz#14333) - Use execveat syscall in fexecve (swbz#22134) - Enable unwind info in libc-start.c and backtrace.c - powerpc: Avoid misaligned stores in memset - powerpc: build some IFUNC math functions for libc and libm (swbz#21745) - Removed redundant data (LC_TIME and LC_MESSAGES) for niu_NZ (swbz#22023) - Fix LC_TELEPHONE for az_AZ (swbz#22112) - x86: Add MathVec_Prefer_No_AVX512 to cpu-features (swbz#21967) - x86: Add x86_64 to x86-64 HWCAP (swbz#22093) - Finish change from “Bengali” to “Bangla” (swbz#14925) - posix: fix glob bugs with long login names (swbz#1062) - posix: Fix getpwnam_r usage (swbz#1062) - posix: accept inode 0 is a valid inode number (swbz#19971) - Remove redundant LC_TIME data in om_KE (swbz#22100) - Remove remaining _HAVE_STRING_ARCH_* definitions (swbz#18858) - resolv: Fix memory leak with OOM during resolv.conf parsing (swbz#22095) - Add miq_NI locale for Miskito (swbz#20498) - Fix bits/math-finite.h exp10 condition (swbz#22082)
2017-09-30 07:04:21 +00:00
* Sat Sep 30 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-16
- Auto-sync with upstream master,
commit 1e2bffd05c36a9be30d7092d6593a9e9aa009ada:
- Add IBM858 charset (#1416405)
- Update kernel version in syscall-names.list to 4.13
- Add Linux 4.13 constants to bits/fcntl-linux.h
- Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h
- math: New generic powf, log2f, logf
- Fix nearbyint arithmetic moved before feholdexcept (swbz#22225)
- Mark __dso_handle as hidden (swbz#18822)
- Skip PT_DYNAMIC segment with p_filesz == 0 (swbz#22101)
- glob now matches dangling symbolic links (swbz#866, swbz#22183)
- nscd: Release read lock after resetting timeout (swbz#22161)
2017-10-01 15:52:10 +00:00
- Avoid __MATH_TG in C++ mode with -Os for fpclassify (swbz#22146)
Auto-sync with upstream master Upstream commit: 1e2bffd05c36a9be30d7092d6593a9e9aa009ada - Add IBM858 charset (#1416405) - Update kernel version in syscall-names.list to 4.13 - Add Linux 4.13 constants to bits/fcntl-linux.h - Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h - math: New generic powf, log2f, logf - Fix nearbyint arithmetic moved before feholdexcept (swbz#22225) - Mark __dso_handle as hidden (swbz#18822) - Skip PT_DYNAMIC segment with p_filesz == 0 (swbz#22101) - glob now matches dangling symbolic links (swbz#866, swbz#22183) - nscd: Release read lock after resetting timeout (swbz#22161) - Avoid __MATH_TG in C++ mode with -Os for pfcl (swbz#22146) - Fix dlclose/exit race (swbz#22180) - x86: Add SSE4.1 trunc, truncf (swbz#20142) - Fix atexit/exit race (swbz#14333) - Use execveat syscall in fexecve (swbz#22134) - Enable unwind info in libc-start.c and backtrace.c - powerpc: Avoid misaligned stores in memset - powerpc: build some IFUNC math functions for libc and libm (swbz#21745) - Removed redundant data (LC_TIME and LC_MESSAGES) for niu_NZ (swbz#22023) - Fix LC_TELEPHONE for az_AZ (swbz#22112) - x86: Add MathVec_Prefer_No_AVX512 to cpu-features (swbz#21967) - x86: Add x86_64 to x86-64 HWCAP (swbz#22093) - Finish change from “Bengali” to “Bangla” (swbz#14925) - posix: fix glob bugs with long login names (swbz#1062) - posix: Fix getpwnam_r usage (swbz#1062) - posix: accept inode 0 is a valid inode number (swbz#19971) - Remove redundant LC_TIME data in om_KE (swbz#22100) - Remove remaining _HAVE_STRING_ARCH_* definitions (swbz#18858) - resolv: Fix memory leak with OOM during resolv.conf parsing (swbz#22095) - Add miq_NI locale for Miskito (swbz#20498) - Fix bits/math-finite.h exp10 condition (swbz#22082)
2017-09-30 07:04:21 +00:00
- Fix dlclose/exit race (swbz#22180)
- x86: Add SSE4.1 trunc, truncf (swbz#20142)
- Fix atexit/exit race (swbz#14333)
- Use execveat syscall in fexecve (swbz#22134)
- Enable unwind info in libc-start.c and backtrace.c
- powerpc: Avoid misaligned stores in memset
- powerpc: build some IFUNC math functions for libc and libm (swbz#21745)
- Removed redundant data (LC_TIME and LC_MESSAGES) for niu_NZ (swbz#22023)
- Fix LC_TELEPHONE for az_AZ (swbz#22112)
- x86: Add MathVec_Prefer_No_AVX512 to cpu-features (swbz#21967)
- x86: Add x86_64 to x86-64 HWCAP (swbz#22093)
- Finish change from “Bengali” to “Bangla” (swbz#14925)
- posix: fix glob bugs with long login names (swbz#1062)
- posix: Fix getpwnam_r usage (swbz#1062)
- posix: accept inode 0 is a valid inode number (swbz#19971)
- Remove redundant LC_TIME data in om_KE (swbz#22100)
- Remove remaining _HAVE_STRING_ARCH_* definitions (swbz#18858)
- resolv: Fix memory leak with OOM during resolv.conf parsing (swbz#22095)
- Add miq_NI locale for Miskito (swbz#20498)
- Fix bits/math-finite.h exp10 condition (swbz#22082)
* Mon Sep 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-15
- Auto-sync with upstream master,
commit b38042f51430974642616a60afbbf96fd0b98659:
- Implement tmpfile with O_TMPFILE (swbz#21530)
- Obsolete pow10 functions
- math.h: Warn about an already-defined log macro
* Fri Sep 01 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-14
2017-09-01 12:07:30 +00:00
- Build glibc with -O2 (following the upstream default).
- Auto-sync with upstream master,
commit f4a6be2582b8dfe8adfa68da3dd8decf566b3983:
- malloc: Abort on heap corruption, without a backtrace (swbz#21754)
- getaddrinfo: Return EAI_NODATA for gethostbyname2_r with NO_DATA (swbz#21922)
- getaddrinfo: Fix error handling in gethosts (swbz#21915) (swbz#21922)
- Place $(elf-objpfx)sofini.os last (swbz#22051)
- Various locale fixes (swbz#15332, swbz#22044)
* Wed Aug 30 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-13
- Drop glibc-rh952799.patch, applied upstream (#952799, swbz#22025)
- Auto-sync with upstream master,
commit 5f9409b787c5758fc277f8d1baf7478b752b775d:
- Various locale fixes (swbz#22022, swbz#22038, swbz#21951, swbz#13805,
swbz#21971, swbz#21959)
- MIPS/o32: Fix internal_syscall5/6/7 (swbz#21956)
- AArch64: Fix procfs.h not to expose stdint.h types
- iconv_open: Fix heap corruption on gconv_init failure (swbz#22026)
- iconv: Mangle __btowc_fct even without __init_fct (swbz#22025)
- Fix bits/math-finite.h _MSUF_ expansion namespace (swbz#22028)
- Provide a C++ version of iszero that does not use __MATH_TG (swbz#21930)
* Mon Aug 28 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-12
- Auto-sync with upstream master,
commit 2dba5ce7b8115d6a2789bf279892263621088e74.
* Fri Aug 25 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-11
- Auto-sync with upstream master,
commit 3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0:
- string/stratcliff.c: Replace int with size_t (swbz#21982)
- Fix tgmath.h handling of complex integers (swbz#21684)
* Thu Aug 24 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-10
- Use an architecture-independent system call list (#1484729)
- Drop glibc-fedora-include-bits-ldbl.patch (#1482105)
* Tue Aug 22 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-9
- Auto-sync with upstream master,
commit 80f91666fed71fa3dd5eb5618739147cc731bc89.
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-8
- Auto-sync with upstream master,
commit a8410a5fc9305c316633a5a3033f3927b759be35:
- Obsolete matherr, _LIB_VERSION, libieee.a.
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-7
- Auto-sync with upstream master,
commit 4504783c0f65b7074204c6126c6255ed89d6594e.
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-6
- Auto-sync with upstream master,
commit b5889d25e9bf944a89fdd7bcabf3b6c6f6bb6f7c:
- assert: Support types without operator== (int) (#1483005)
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-5
- Auto-sync with upstream master,
commit 2585d7b839559e665d5723734862fbe62264b25d:
- Do not use generic selection in C++ mode
- Do not use __builtin_types_compatible_p in C++ mode (#1481205)
- x86-64: Check FMA_Usable in ifunc-mathvec-avx2.h (swbz#21966)
- Various locale fixes (swbz#21750, swbz#21960, swbz#21959, swbz#19852)
- Fix sigval namespace (swbz#21944)
- x86-64: Optimize e_expf with FMA (swbz#21912)
- Adjust glibc-rh827510.patch.
* Wed Aug 16 2017 Tomasz Kłoczko <kloczek@fedoraproject.org> - 2.26-4
- Remove 'Buildroot' tag, 'Group' tag, and '%%clean' section, and don't
remove the buildroot in '%%install', all per Fedora Packaging Guidelines
(#1476839)
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-3
- Auto-sync with upstream master,
commit 403143e1df85dadd374f304bd891be0cd7573e3b:
- x86-64: Align L(SP_RANGE)/L(SP_INF_0) to 8 bytes (swbz#21955)
- powerpc: Add values from Linux 4.8 to <elf.h>
- S390: Add new s390 platform z14.
- Various locale fixes (swbz#14925, swbz#20008, swbz#20482, swbz#12349
swbz#19982, swbz#20756, swbz#20756, swbz#21836, swbz#17563, swbz#16905,
swbz#21920, swbz#21854)
- NSS: Replace exported NSS lookup functions with stubs (swbz#21962)
- i386: Do not set internal_function
- assert: Suppress pedantic warning caused by statement expression (swbz#21242)
- powerpc: Restrict xssqrtqp operands to Vector Registers (swbz#21941)
- sys/ptrace.h: remove obsolete PTRACE_SEIZE_DEVEL constant (swbz#21928)
- Remove __qaddr_t, __long_double_t
- Fix uc_* namespace (swbz#21457)
- nss: Call __resolv_context_put before early return in get*_r (swbz#21932)
- aarch64: Optimized memcpy for Qualcomm Falkor processor
- manual: Document getcontext uc_stack value on Linux (swbz#759)
- i386: Add <startup.h> (swbz#21913)
- Don't use IFUNC resolver for longjmp or system in libpthread (swbz#21041)
- Fix XPG4.2 bits/sigaction.h namespace (swbz#21899)
- x86-64: Add FMA multiarch functions to libm
- i386: Support static PIE in start.S
- Compile tst-prelink.c without PIE (swbz#21815)
- x86-64: Use _dl_runtime_resolve_opt only with AVX512F (swbz#21871)
- x86: Remove __memset_zero_constant_len_parameter (swbz#21790)
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26-2
- Disable multi-arch (IFUNC string functions) on i686 (#1471427)
- Remove nosegneg 32-bit Xen PV support libraries (#1482027)
- Adjust spec file to RPM changes
* Thu Aug 03 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.26-1
- Update to released glibc 2.26.
- Auto-sync with upstream master,
commit 2aad4b04ad7b17a2e6b0e66d2cb4bc559376617b.
- getaddrinfo: Release resolver context on error in gethosts (swbz#21885)
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.25.90-30.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Sat Jul 29 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-30
- Auto-sync with upstream master,
commit 5920a4a624b1f4db310d1c44997b640e2a4653e5:
- mutex: Fix robust mutex lock acquire (swbz#21778)
* Fri Jul 28 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-29
- Auto-sync with upstream master,
commit d95fcb2df478efbf4f8537ba898374043ac4561f:
- rwlock: Fix explicit hand-over (swbz#21298)
- tunables: Use direct syscall for access (swbz#21744)
- Avoid accessing corrupted stack from __stack_chk_fail (swbz#21752)
- Remove extra semicolons in struct pthread_mutex (swbz#21804)
- grp: Fix cast-after-dereference (another big-endian group merge issue)
- S390: fix sys/ptrace.h to make it includible again after asm/ptrace.h
- Don't add stack_chk_fail_local.o to libc.a (swbz#21740)
- i386: Test memmove_chk and memset_chk only in libc.so (swbz#21741)
- Add new locales az_IR, mai_NP (swbz#14172)
- Various locale improvements
* Thu Jul 27 2017 Carlos O'Donell <codonell@redhat.com> - 2.25.90-28
- Adjust to new rpm debuginfo generation (#1475009).
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.25.90-27.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jul 19 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-27
- Auto-sync with upstream master,
commit 00d7a3777369bac3d8d44152dde2bb7381984ef6:
- aarch64: Fix out of bound array access in _dl_hwcap_string
* Mon Jul 17 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-26
- Drop glibc-rh1467518.patch in favor of upstream patch (#1467518)
- Auto-sync with upstream master,
commit 91ac3a7d8474480685632cd25f844d3154c69fdf:
- Fix pointer alignment in NSS group merge result construction (#1471985)
- Various locale fixes
* Fri Jul 14 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.25.90-25
- armv7hl: Drop 32-bit ARM build fix, already in upstream master.
- s390x: Apply glibc fix again, removing PTRACE_GETREGS etc. (#1469536).
- Auto-sync with upstream master,
commit de895ddcd7fc45caeeeb0ae312311b8bd31d82c5:
- Added Fiji Hindi language locale for Fiji (swbz#21694).
- Added yesstr/nostr for nds_DE and nds_NL (swbz#21756).
- Added yesstr and nostr for Tigrinya (swbz#21759).
- Fix LC_MESSAGES and LC_ADDRESS for anp_IN (swbz#21760).
- Added yesstr/nostr and fix yesexpr for pap_AW and pap_CW (swbz#21757).
- Added Tongan language locale for Tonga (swbz#21728).
- [ARM] Fix ld.so crash when built using Binutils 2.29.
- Added yesstr and nostr for aa_ET (swbz#21768).
- New locale for bi_VU (swbz#21767).
- Disable single thread optimization for open_memstream
* Wed Jul 12 2017 Carlos O'Donell <carlos@redhat.com> - 2.25.90-24
- Fix IFUNC crash in early startup for ppc64le static binaries (#1467518).
- Enable building with BIND_NOW on ppc64le (#1467518).
- Fix 32-bit ARM builds in presence of new binutils.
* Wed Jul 12 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-23
- malloc: Tell GCC optimizers about MAX_FAST_SIZE in _int_malloc (#1470060)
- Auto-sync with upstream master,
commit 30200427a99e5ddac9bad08599418d44d54aa9aa:
- Add per-thread cache to malloc
- Add Samoan language locale for Samoa
- Add Awajún / Aguaruna locale for Peru
- CVE-2010-3192: Avoid backtrace from __stack_chk_fail (swbz#12189)
- Add preadv2, writev2 RWF_NOWAIT flag (swbz#21738)
- Fix abday strings for ar_JO/ar_LB/ar_SY locales (swbz#21749)
- Fix abday strings for ar_SA locale (swbz#21748, swbz#19066)
- Set data_fmt for da_DK locale (swbz#17297)
- Add yesstr and nostr for the zh_HK locale (swbz#21733)
- Fix abday strings for the ksIN@devanagari locale (swbz#21743)
- Do not include _dl_resolv_conflicts in libc.a (swbz#21742)
- Test __memmove_chk, __memset_chk only in libc.so (swbz#21741)
- Add iI and eE to yesexpr and noexpr respectively for ts_ZA locale
- Add yesstr/nostr for kw_GB locale (swbz#21734)
- Add yesstr and nostr for the ts_ZA locale (swbz#21727)
- Fix LC_NAME for hi_IN locale (swbz#21729)
- Add yesstr and nostr for the xh_ZA locale (swbz#21724)
- Add yesstr and nostr for the zh_CN locale (swbz#21723)
- Fix full weekday names for the ks_IN@devanagari locale (swbz#21721)
- Various fixes to Arabic locales after CLDR import
* Tue Jul 11 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-22
- Reinstantiate stack_t cleanup (#1468904)
- s390x: Restore PTRACE_GETREGS etc. to get GCC to build (#1469536)
2017-07-09 16:43:52 +00:00
* Sun Jul 9 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-21
- Back out stack_t cleanup (#1468904)
* Thu Jul 06 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-20
- Auto-sync with upstream master,
commit 031e519c95c069abe4e4c7c59e2b4b67efccdee5:
- x86-64: Align the stack in __tls_get_addr (#1440287)
- Add Tok-Pisin (tpi_PG) locale.
- Add missing yesstr/nostr for Pashto locale (swbz#21711)
- Add missing yesstr/nostr for Breton locale (swbz#21706)
- Single threaded stdio optimization
- sysconf: Use conservative default for _SC_NPROCESSORS_ONLN (swbz#21542)
* Tue Jul 04 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-19
- Auto-sync with upstream master,
commit 4446a885f3aeb3a33b95c72bae1f115bed77f0cb.
* Tue Jul 04 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-18
- Auto-sync with upstream master,
commit 89f6307c5d270ed4f11cee373031fa9f2222f2b9.
* Tue Jul 4 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-17
- Disable building with BIND_NOW on ppc64le (#1467518)
* Mon Jul 03 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-16
- Auto-sync with upstream master,
commit e237357a5a0559dee92261f1914d1fa2cd43a1a8:
- Support an arbitrary number of search domains in the stub resolver (#168253)
- Detect and apply /etc/resolv.conf changes in libresolv (#1374239)
- Increase malloc alignment on i386 to 16 (swbz#21120)
- Make RES_ROTATE start with a random name server (swbz#19570)
- Fix tgmath.h totalorder, totalordermag return type (swbz#21687)
- Miscellaneous sys/ucontext.h namespace fixes (swbz#21457)
- Rename struct ucontext tag (swbz#21457)
- Call exit system call directly in clone (swbz#21512)
- powerpc64le: Enable float128
- getaddrinfo: Merge IPv6 addresses and IPv4 addresses (swbz#21295)
- Avoid .symver on common symbols (swbz#21666)
- inet_pton: Reject IPv6 addresses with many leading zeros (swbz#16637)
* Fri Jun 23 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-15
- Auto-sync with upstream master,
commit 3ec7c02cc3e922b9364dc8cfd1d4546671b91003, fixing:
- memcmp-avx2-movbe.S incorrect results for lengths 2/3 (#1464403)
* Fri Jun 23 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-14
- Auto-sync with upstream master,
commit 12f50337ae80672c393c2317d471d097ad92c492, changing:
- localedata: fur_IT: Fix spelling of Wednesday (Miercus)
- Update to Unicode 10.0.0
- inet: __inet6_scopeid_pton should accept node-local addresses (swbz#21657)
2017-06-23 11:10:13 +00:00
* Fri Jun 23 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-13
- Reenable valgrind on aarch64
2017-06-22 12:48:21 +00:00
* Thu Jun 22 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-12
- Log auxiliary vector during build
* Thu Jun 22 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-11
- Auto-sync with upstream master,
commit 0a47d031e44f15236bcef8aeba80e737bd013c6f.
2017-06-22 11:28:12 +00:00
* Thu Jun 22 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-10
- Disable valgrind on aarch64
* Wed Jun 21 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-9
- Drop historic aarch64 TLS patches
2017-06-21 18:50:35 +00:00
- Drop workaround for GCC PR69537
- Auto-sync with upstream master,
commit 9649350d2ee47fae00794d57e2526aa5d67d900e.
* Wed Jun 21 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-8
- Adjust build requirements for gcc, binutils, kernel-headers.
- Auto-sync with upstream master,
commit 43e0ac24c836eed627a75ca932eb7e64698407c6, changing:
- Remove <xlocale.h>
Resolves: #1462820 - Drop glibc-Disable-buf-NULL-in-login-tst-ptsname.c, applied upstream. - Auto-sync with upstream master, commit 37e9dc814636915afb88d0779e5e897e90e7b8c0, fixing: - CVE-2017-1000366: Avoid large allocas in the dynamic linker (#1462820) - wait3 namespace (swbz#21625) - S390: Sync ptrace.h with kernel (swbz#21539) - Another x86 sys/ucontext.h namespace issue (swbz#21457) - siginterrupt namespace (swbz#21597) - Signal stack namespace (swbz#21584) - Define struct rusage in sys/wait.h when required (swbz#21575) - S390: Fix build with gcc configured with --enable-default-pie (swbz#21537) - Update timezone code from tzcode 2017b - nptl: Invert the mmap/mprotect logic on allocated stacks (swbz#18988) - PowerPC64 ELFv2 PPC64_OPT_LOCALENTRY - Make copy of <bits/std_abs.h> from GCC (swbz#21573) - localedata: ce_RU: update weekdays from CLDR (swbz#21207) - localedata: Remove trailing spaces (swbz#20275) - XPG4 bsd_signal namespace (swbz#21552) - Correct collation rules for Malayalam (swbz#19922, swbz#19919) - waitid namespace (swbz#21561) - Condition signal.h inclusion in sys/wait.h (swbz#21560) - ld.so: Consolidate 2 strtouls into _dl_strtoul (swbz#21528) - tst-timezone race (swbz#14096) - Define SIG_HOLD for XPG4 (swbz#21538) - struct sigaltstack namespace (swbz#21517) - sigevent namespace (swbz#21543) - Add shim header for bits/syscall.h (swbz#21514) - namespace issues in sys/ucontext.h (swbz#21457) - posix: Implement preadv2 and pwritev2 - Various float128 and tunables improvements
2017-06-19 22:18:02 +00:00
* Mon Jun 19 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-7
- Drop glibc-Disable-buf-NULL-in-login-tst-ptsname.c, applied upstream.
- Auto-sync with upstream master,
commit 37e9dc814636915afb88d0779e5e897e90e7b8c0, fixing:
- CVE-2017-1000366: Avoid large allocas in the dynamic linker (#1462820)
- wait3 namespace (swbz#21625)
- S390: Sync ptrace.h with kernel (swbz#21539)
- Another x86 sys/ucontext.h namespace issue (swbz#21457)
- siginterrupt namespace (swbz#21597)
- Signal stack namespace (swbz#21584)
- Define struct rusage in sys/wait.h when required (swbz#21575)
- S390: Fix build with gcc configured with --enable-default-pie (swbz#21537)
- Update timezone code from tzcode 2017b
- nptl: Invert the mmap/mprotect logic on allocated stacks (swbz#18988)
- PowerPC64 ELFv2 PPC64_OPT_LOCALENTRY
- Make copy of <bits/std_abs.h> from GCC (swbz#21573)
- localedata: ce_RU: update weekdays from CLDR (swbz#21207)
- localedata: Remove trailing spaces (swbz#20275)
- XPG4 bsd_signal namespace (swbz#21552)
- Correct collation rules for Malayalam (swbz#19922, swbz#19919)
- waitid namespace (swbz#21561)
- Condition signal.h inclusion in sys/wait.h (swbz#21560)
- ld.so: Consolidate 2 strtouls into _dl_strtoul (swbz#21528)
- tst-timezone race (swbz#14096)
- Define SIG_HOLD for XPG4 (swbz#21538)
- struct sigaltstack namespace (swbz#21517)
- sigevent namespace (swbz#21543)
- Add shim header for bits/syscall.h (swbz#21514)
- namespace issues in sys/ucontext.h (swbz#21457)
- posix: Implement preadv2 and pwritev2
- Various float128 and tunables improvements
* Tue Jun 06 2017 Stephen Gallagher <sgallagh@redhat.com> - 2.25.90-6
- Reduce libcrypt-nss dependency to 'Suggests:'
* Wed May 31 2017 Arjun Shankar <arjun.is@lostca.se> - 2.25.90-5
- Auto-sync with upstream master,
commit cfa9bb61cd09c40def96f042a3123ec0093c4ad0.
- Fix sys/ucontext.h namespace from signal.h etc. inclusion (swbz#21457)
- Fix sigstack namespace (swbz#21511)
* Wed May 31 2017 Arjun Shankar <arjun.is@lostca.se> - 2.25.90-4
- Disable the NULL buffer test in login/tst-ptsname.c. It leads to a build
failure during 'make check'. A permanent solution is being discussed
upstream.
* Tue May 23 2017 Arjun Shankar <arjun.is@lostca.se> - 2.25.90-3
- Auto-sync with upstream master,
commit 231a59ce2c5719d2d77752c21092960e28837b4a.
- Add el_GR@euro support (swbz#20686)
- Set dl_platform and dl_hwcap from CPU features (swbz#21391)
- Use __glibc_reserved convention in mcontext, sigcontext (swbz#21457)
- Fix signal.h bsd_signal namespace (swbz#21445)
- Fix network headers stdint.h namespace (swbz#21455)
- resolv: Use RES_DFLRETRY consistently (swbz#21474)
- Condition some sys/ucontext.h contents on __USE_MISC (swbz#21457)
- Consolidate Linux read syscall (swbz#21428)
- fork: Remove bogus parent PID assertions (swbz#21386)
- Reduce value of LD_HWCAP_MASK for tst-env-setuid test case (swbz#21502)
- libio: Avoid dup already opened file descriptor (swbz#21393)
* Mon May 01 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.25.90-2
- Auto-sync with upstream master,
commit 25e39b4229fb365a605dc4c8f5d6426a77bc08a6.
- logbl for POWER7 return incorrect results (swbz#21280)
- sys/socket.h uio.h namespace (swbz#21426)
- Support POSIX_SPAWN_SETSID (swbz#21340)
- Document how to provide a malloc replacement (swbz#20424)
- Verify that all internal sockets opened with SOCK_CLOEXEC (swbz#15722)
- Use AVX2 memcpy/memset on Skylake server (swbz#21396)
- unwind-dw2-fde deadlock when using AddressSanitizer (swbz#21357)
- resolv: Reduce advertised EDNS0 buffer size to guard against
fragmentation attacks (swbz#21361)
- mmap64 silently truncates large offset values (swbz#21270)
- _dl_map_segments does not test for __mprotect failures consistently
(swbz#20831)
* Thu Mar 02 2017 Florian Weimer <fweimer@redhat.com> - 2.25.90-1
- Switch back to upstream master branch.
- Drop Unicode 9 patch, merged upstream.
- Auto-sync with upstream master,
commit a10e9c4e53fc652b79abf838f7f837589d2c84db, fixing:
- Build all DSOs with BIND_NOW (#1406731)
* Wed Mar 1 2017 Jakub Hrozek <jhrozek@redhat.com> - 2.25-3
- NSS: Prefer sss service for passwd, group databases (#1427646)
* Tue Feb 28 2017 Florian Weimer <fweimer@redhat.com> - 2.25-2
- Auto-sync with upstream release/2.25/master,
commit 93cf93e06ce123439e41d3d62790601c313134cb, fixing:
- sunrpc: Improvements for UDP client timeout handling (#1346406)
- sunrpc: Avoid use-after-free read access in clntudp_call (swbz#21115)
- Fix getting tunable values on big-endian (swbz#21109)
* Wed Feb 08 2017 Carlos O'Donell <carlos@redhat.com> - 2.25-1
- Update to final released glibc 2.25.