d8307d
%define glibcsrcdir glibc-2.28
d8307d
%define glibcversion 2.28
981dc9
%define glibcrelease 123%{?dist}
d8307d
# Pre-release tarballs are pulled in from git using a command that is
d8307d
# effectively:
d8307d
#
d8307d
# git archive HEAD --format=tar --prefix=$(git describe --match 'glibc-*')/ \
d8307d
#	> $(git describe --match 'glibc-*').tar
d8307d
# gzip -9 $(git describe --match 'glibc-*').tar
d8307d
#
d8307d
# glibc_release_url is only defined when we have a release tarball.
d8307d
%{lua: if string.match(rpm.expand("%glibcsrcdir"), "^glibc%-[0-9.]+$") then
d8307d
  rpm.define("glibc_release_url https://ftp.gnu.org/gnu/glibc/") end}
d8307d
##############################################################################
d8307d
# We support the following options:
d8307d
# --with/--without,
d8307d
# * testsuite - Running the testsuite.
d8307d
# * benchtests - Running and building benchmark subpackage.
d8307d
# * bootstrap - Bootstrapping the package.
d8307d
# * werror - Build with -Werror
d8307d
# * docs - Build with documentation and the required dependencies.
d8307d
# * valgrind - Run smoke tests with valgrind to verify dynamic loader.
d8307d
#
d8307d
# You must always run the testsuite for production builds.
d8307d
# Default: Always run the testsuite.
d8307d
%bcond_without testsuite
d8307d
# Default: Always build the benchtests.
d8307d
%bcond_without benchtests
d8307d
# Default: Not bootstrapping.
d8307d
%bcond_with bootstrap
d8307d
# Default: Enable using -Werror
d8307d
%bcond_without werror
d8307d
# Default: Always build documentation.
d8307d
%bcond_without docs
d8307d
d8307d
# Default: Always run valgrind tests if there is architecture support.
d8307d
%ifarch %{valgrind_arches}
d8307d
%bcond_without valgrind
d8307d
%else
d8307d
%bcond_with valgrind
d8307d
%endif
d8307d
# Restrict %%{valgrind_arches} further in case there are problems with
d8307d
# the smoke test.
d8307d
%if %{with valgrind}
d8307d
%ifarch ppc64 ppc64p7
d8307d
# The valgrind smoke test does not work on ppc64, ppc64p7 (bug 1273103).
d8307d
%undefine with_valgrind
d8307d
%endif
d8307d
%endif
d8307d
d8307d
%if %{with bootstrap}
d8307d
# Disable benchtests, -Werror, docs, and valgrind if we're bootstrapping
d8307d
%undefine with_benchtests
d8307d
%undefine with_werror
d8307d
%undefine with_docs
d8307d
%undefine with_valgrind
d8307d
%endif
d8307d
##############################################################################
d8307d
# Auxiliary arches are those arches that can be built in addition
d8307d
# to the core supported arches. You either install an auxarch or
d8307d
# you install the base arch, not both. You would do this in order
d8307d
# to provide a more optimized version of the package for your arch.
d8307d
%define auxarches athlon alphaev6
d8307d
d8307d
# Only some architectures have static PIE support.
d8307d
%define pie_arches %{ix86} x86_64
d8307d
d8307d
# Build the POWER9 runtime on POWER, but only for downstream.
d8307d
%ifarch ppc64le
d8307d
%define buildpower9 0%{?rhel} > 0
d8307d
%else
d8307d
%define buildpower9 0
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# Any architecture/kernel combination that supports running 32-bit and 64-bit
d8307d
# code in userspace is considered a biarch arch.
d8307d
%define biarcharches %{ix86} x86_64 %{power64} s390 s390x
d8307d
##############################################################################
d8307d
# If the debug information is split into two packages, the core debuginfo
d8307d
# pacakge and the common debuginfo package then the arch should be listed
d8307d
# here. If the arch is not listed here then a single core debuginfo package
d8307d
# will be created for the architecture.
d8307d
%define debuginfocommonarches %{biarcharches} alpha alphaev6
d8307d
##############################################################################
d8307d
# %%package glibc - The GNU C Library (glibc) core package.
d8307d
##############################################################################
d8307d
Summary: The GNU libc libraries
d8307d
Name: glibc
d8307d
Version: %{glibcversion}
d8307d
Release: %{glibcrelease}
d8307d
d8307d
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
d8307d
# libraries.
d8307d
#
d8307d
# LGPLv2+ with exceptions is used for things that are linked directly
d8307d
# into dynamically linked programs and shared libraries (e.g. crt
d8307d
# files, lib*_nonshared.a).  Historically, this exception also applies
d8307d
# to parts of libio.
d8307d
#
d8307d
# GPLv2+ with exceptions is used for parts of the Arm unwinder.
d8307d
#
d8307d
# GFDL is used for the documentation.
d8307d
#
d8307d
# Some other licenses are used in various places (BSD, Inner-Net,
d8307d
# ISC, Public Domain).
d8307d
#
d8307d
# HSRL and FSFAP are only used in test cases, which currently do not
d8307d
# ship in binary RPMs, so they are not listed here.  MIT is used for
d8307d
# scripts/install-sh, which does not ship, either.
d8307d
#
d8307d
# GPLv3+ is used by manual/texinfo.tex, which we do not use.
d8307d
#
d8307d
# LGPLv3+ is used by some Hurd code, which we do not build.
d8307d
#
d8307d
# LGPLv2 is used in one place (time/timespec_get.c, by mistake), but
d8307d
# it is not actually compiled, so it does not matter for libraries.
d8307d
License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL
d8307d
d8307d
URL: http://www.gnu.org/software/glibc/
d8307d
Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.xz
d8307d
Source1: build-locale-archive.c
d8307d
Source4: nscd.conf
d8307d
Source8: power6emul.c
d8307d
Source9: bench.mk
d8307d
Source10: glibc-bench-compare
d8307d
# A copy of localedata/SUPPORTED in the Source0 tarball.  The
d8307d
# SUPPORTED file is used below to generate the list of locale
d8307d
# packages, using a Lua snippet.
d8307d
Source11: SUPPORTED
d8307d
d8307d
# Include in the source RPM for reference.
d8307d
Source12: ChangeLog.old
d8307d
d8307d
##############################################################################
d8307d
# Patches:
d8307d
# - See each individual patch file for origin and upstream status.
d8307d
# - For new patches follow template.patch format.
d8307d
##############################################################################
d8307d
Patch2: glibc-fedora-nscd.patch
d8307d
Patch3: glibc-rh697421.patch
d8307d
Patch4: glibc-fedora-linux-tcsetattr.patch
d8307d
Patch5: glibc-rh741105.patch
d8307d
Patch6: glibc-fedora-localedef.patch
d8307d
Patch7: glibc-fedora-nis-rh188246.patch
d8307d
Patch8: glibc-fedora-manual-dircategory.patch
d8307d
Patch9: glibc-rh827510.patch
d8307d
Patch10: glibc-fedora-locarchive.patch
d8307d
Patch11: glibc-fedora-streams-rh436349.patch
d8307d
Patch12: glibc-rh819430.patch
d8307d
Patch13: glibc-fedora-localedata-rh61908.patch
d8307d
Patch14: glibc-fedora-__libc_multiple_libcs.patch
d8307d
Patch15: glibc-rh1070416.patch
d8307d
Patch16: glibc-nscd-sysconfig.patch
d8307d
Patch17: glibc-cs-path.patch
d8307d
Patch18: glibc-c-utf8-locale.patch
d8307d
Patch23: glibc-python3.patch
d8307d
Patch24: glibc-with-nonshared-cflags.patch
d8307d
Patch25: glibc-asflags.patch
d8307d
Patch27: glibc-rh1614253.patch
d8307d
Patch28: glibc-rh1577365.patch
d8307d
Patch29: glibc-rh1615781.patch
d8307d
Patch30: glibc-rh1615784.patch
d8307d
Patch31: glibc-rh1615790.patch
d8307d
Patch32: glibc-rh1622675.patch
d8307d
Patch33: glibc-rh1622678-1.patch
d8307d
Patch34: glibc-rh1622678-2.patch
d8307d
Patch35: glibc-rh1631293-1.patch
d8307d
Patch36: glibc-rh1631293-2.patch
d8307d
Patch37: glibc-rh1623536.patch
d8307d
Patch38: glibc-rh1631722.patch
d8307d
Patch39: glibc-rh1631730.patch
d8307d
Patch40: glibc-rh1623536-2.patch
d8307d
Patch41: glibc-rh1614979.patch
d8307d
Patch42: glibc-rh1645593.patch
d8307d
Patch43: glibc-rh1645596.patch
d8307d
Patch44: glibc-rh1645604.patch
d8307d
Patch45: glibc-rh1646379.patch
d8307d
Patch46: glibc-rh1645601.patch
d8307d
Patch52: glibc-rh1638523-1.patch
d8307d
Patch47: glibc-rh1638523-2.patch
d8307d
Patch48: glibc-rh1638523-3.patch
d8307d
Patch49: glibc-rh1638523-4.patch
d8307d
Patch50: glibc-rh1638523-5.patch
d8307d
Patch51: glibc-rh1638523-6.patch
d8307d
Patch53: glibc-rh1641982.patch
d8307d
Patch54: glibc-rh1645597.patch
d8307d
Patch55: glibc-rh1650560-1.patch
d8307d
Patch56: glibc-rh1650560-2.patch
d8307d
Patch57: glibc-rh1650563.patch
d8307d
Patch58: glibc-rh1650566.patch
d8307d
Patch59: glibc-rh1650571.patch
d8307d
Patch60: glibc-rh1638520.patch
d8307d
Patch61: glibc-rh1651274.patch
d8307d
Patch62: glibc-rh1654010-1.patch
d8307d
Patch63: glibc-rh1635779.patch
d8307d
Patch64: glibc-rh1654010-2.patch
d8307d
Patch65: glibc-rh1654010-3.patch
d8307d
Patch66: glibc-rh1654010-4.patch
d8307d
Patch67: glibc-rh1654010-5.patch
d8307d
Patch68: glibc-rh1654010-6.patch
d8307d
Patch69: glibc-rh1642094-1.patch
d8307d
Patch70: glibc-rh1642094-2.patch
d8307d
Patch71: glibc-rh1642094-3.patch
d8307d
Patch72: glibc-rh1654872-1.patch
d8307d
Patch73: glibc-rh1654872-2.patch
d8307d
Patch74: glibc-rh1651283-1.patch
d8307d
Patch75: glibc-rh1662843-1.patch
d8307d
Patch76: glibc-rh1662843-2.patch
d8307d
Patch77: glibc-rh1623537.patch
d8307d
Patch78: glibc-rh1577438.patch
d8307d
Patch79: glibc-rh1664408.patch
d8307d
Patch80: glibc-rh1651742.patch
d8307d
Patch81: glibc-rh1672773.patch
d8307d
Patch82: glibc-rh1651283-2.patch
d8307d
Patch83: glibc-rh1651283-3.patch
d8307d
Patch84: glibc-rh1651283-4.patch
d8307d
Patch85: glibc-rh1651283-5.patch
d8307d
Patch86: glibc-rh1651283-6.patch
d8307d
Patch87: glibc-rh1651283-7.patch
d8307d
Patch88: glibc-rh1659293-1.patch
d8307d
Patch89: glibc-rh1659293-2.patch
d8307d
Patch90: glibc-rh1639343-1.patch
d8307d
Patch91: glibc-rh1639343-2.patch
d8307d
Patch92: glibc-rh1639343-3.patch
d8307d
Patch93: glibc-rh1639343-4.patch
d8307d
Patch94: glibc-rh1639343-5.patch
d8307d
Patch95: glibc-rh1639343-6.patch
d8307d
Patch96: glibc-rh1663035.patch
d8307d
Patch97: glibc-rh1658901.patch
d8307d
Patch98: glibc-rh1659512-1.patch
d8307d
Patch99: glibc-rh1659512-2.patch
d8307d
Patch100: glibc-rh1659438-1.patch
d8307d
Patch101: glibc-rh1659438-2.patch
d8307d
Patch102: glibc-rh1659438-3.patch
d8307d
Patch103: glibc-rh1659438-4.patch
d8307d
Patch104: glibc-rh1659438-5.patch
d8307d
Patch105: glibc-rh1659438-6.patch
d8307d
Patch106: glibc-rh1659438-7.patch
d8307d
Patch107: glibc-rh1659438-8.patch
d8307d
Patch108: glibc-rh1659438-9.patch
d8307d
Patch109: glibc-rh1659438-10.patch
d8307d
Patch110: glibc-rh1659438-11.patch
d8307d
Patch111: glibc-rh1659438-12.patch
d8307d
Patch112: glibc-rh1659438-13.patch
d8307d
Patch113: glibc-rh1659438-14.patch
d8307d
Patch114: glibc-rh1659438-15.patch
d8307d
Patch115: glibc-rh1659438-16.patch
d8307d
Patch116: glibc-rh1659438-17.patch
d8307d
Patch117: glibc-rh1659438-18.patch
d8307d
Patch118: glibc-rh1659438-19.patch
d8307d
Patch119: glibc-rh1659438-20.patch
d8307d
Patch120: glibc-rh1659438-21.patch
d8307d
Patch121: glibc-rh1659438-22.patch
d8307d
Patch122: glibc-rh1659438-23.patch
d8307d
Patch123: glibc-rh1659438-24.patch
d8307d
Patch124: glibc-rh1659438-25.patch
d8307d
Patch125: glibc-rh1659438-26.patch
d8307d
Patch126: glibc-rh1659438-27.patch
d8307d
Patch127: glibc-rh1659438-28.patch
d8307d
Patch128: glibc-rh1659438-29.patch
d8307d
Patch129: glibc-rh1659438-30.patch
d8307d
Patch130: glibc-rh1659438-31.patch
d8307d
Patch131: glibc-rh1659438-32.patch
d8307d
Patch132: glibc-rh1659438-33.patch
d8307d
Patch133: glibc-rh1659438-34.patch
d8307d
Patch134: glibc-rh1659438-35.patch
d8307d
Patch135: glibc-rh1659438-36.patch
d8307d
Patch136: glibc-rh1659438-37.patch
d8307d
Patch137: glibc-rh1659438-38.patch
d8307d
Patch138: glibc-rh1659438-39.patch
d8307d
Patch139: glibc-rh1659438-40.patch
d8307d
Patch140: glibc-rh1659438-41.patch
d8307d
Patch141: glibc-rh1659438-42.patch
d8307d
Patch142: glibc-rh1659438-43.patch
d8307d
Patch143: glibc-rh1659438-44.patch
d8307d
Patch144: glibc-rh1659438-45.patch
d8307d
Patch145: glibc-rh1659438-46.patch
d8307d
Patch146: glibc-rh1659438-47.patch
d8307d
Patch147: glibc-rh1659438-48.patch
d8307d
Patch148: glibc-rh1659438-49.patch
d8307d
Patch149: glibc-rh1659438-50.patch
d8307d
Patch150: glibc-rh1659438-51.patch
d8307d
Patch151: glibc-rh1659438-52.patch
d8307d
Patch152: glibc-rh1659438-53.patch
d8307d
Patch153: glibc-rh1659438-54.patch
d8307d
Patch154: glibc-rh1659438-55.patch
d8307d
Patch155: glibc-rh1659438-56.patch
d8307d
Patch156: glibc-rh1659438-57.patch
d8307d
Patch157: glibc-rh1659438-58.patch
d8307d
Patch158: glibc-rh1659438-59.patch
d8307d
Patch159: glibc-rh1659438-60.patch
d8307d
Patch160: glibc-rh1659438-61.patch
d8307d
Patch161: glibc-rh1659438-62.patch
d8307d
Patch162: glibc-rh1702539-1.patch
d8307d
Patch163: glibc-rh1702539-2.patch
d8307d
Patch164: glibc-rh1701605-1.patch
d8307d
Patch165: glibc-rh1701605-2.patch
d8307d
Patch166: glibc-rh1691528-1.patch
d8307d
Patch167: glibc-rh1691528-2.patch
d8307d
Patch168: glibc-rh1706777.patch
d8307d
Patch169: glibc-rh1710478.patch
d8307d
Patch170: glibc-rh1670043-1.patch
d8307d
Patch171: glibc-rh1670043-2.patch
d8307d
Patch172: glibc-rh1710894.patch
d8307d
Patch173: glibc-rh1699194-1.patch
d8307d
Patch174: glibc-rh1699194-2.patch
d8307d
Patch175: glibc-rh1699194-3.patch
d8307d
Patch176: glibc-rh1699194-4.patch
d8307d
Patch177: glibc-rh1727241-1.patch
d8307d
Patch178: glibc-rh1727241-2.patch
d8307d
Patch179: glibc-rh1727241-3.patch
d8307d
Patch180: glibc-rh1717438.patch
d8307d
Patch181: glibc-rh1727152.patch
d8307d
Patch182: glibc-rh1724975.patch
d8307d
Patch183: glibc-rh1722215.patch
d8307d
Patch184: glibc-rh1764234-1.patch
d8307d
Patch185: glibc-rh1764234-2.patch
d8307d
Patch186: glibc-rh1764234-3.patch
d8307d
Patch187: glibc-rh1764234-4.patch
d8307d
Patch188: glibc-rh1764234-5.patch
d8307d
Patch189: glibc-rh1764234-6.patch
d8307d
Patch190: glibc-rh1764234-7.patch
d8307d
Patch191: glibc-rh1764234-8.patch
d8307d
Patch192: glibc-rh1747505-1.patch
d8307d
Patch193: glibc-rh1747505-2.patch
d8307d
Patch194: glibc-rh1747505-3.patch
d8307d
Patch195: glibc-rh1747505-4.patch
d8307d
Patch196: glibc-rh1747453.patch
d8307d
Patch197: glibc-rh1764241.patch
d8307d
Patch198: glibc-rh1746933-1.patch
d8307d
Patch199: glibc-rh1746933-2.patch
d8307d
Patch200: glibc-rh1746933-3.patch
d8307d
Patch201: glibc-rh1735747-1.patch
d8307d
Patch202: glibc-rh1735747-2.patch
d8307d
Patch203: glibc-rh1764226-1.patch
d8307d
Patch204: glibc-rh1764226-2.patch
d8307d
Patch205: glibc-rh1764226-3.patch
d8307d
Patch206: glibc-rh1764218-1.patch
d8307d
Patch207: glibc-rh1764218-2.patch
d8307d
Patch208: glibc-rh1764218-3.patch
d8307d
Patch209: glibc-rh1682954.patch
d8307d
Patch210: glibc-rh1746928.patch
d8307d
Patch211: glibc-rh1747502.patch
d8307d
Patch212: glibc-rh1747502-1.patch
d8307d
Patch213: glibc-rh1747502-2.patch
d8307d
Patch214: glibc-rh1747502-3.patch
d8307d
Patch215: glibc-rh1747502-4.patch
d8307d
Patch216: glibc-rh1747502-5.patch
d8307d
Patch217: glibc-rh1747502-6.patch
d8307d
Patch218: glibc-rh1747502-7.patch
d8307d
Patch219: glibc-rh1747502-8.patch
d8307d
Patch220: glibc-rh1747502-9.patch
d8307d
Patch221: glibc-rh1726638-1.patch
d8307d
Patch222: glibc-rh1726638-2.patch
d8307d
Patch223: glibc-rh1726638-3.patch
d8307d
Patch224: glibc-rh1764238-1.patch
d8307d
Patch225: glibc-rh1764238-2.patch
d8307d
Patch226: glibc-rh1764242.patch
d8307d
Patch227: glibc-rh1769304.patch
d8307d
Patch228: glibc-rh1749439-1.patch
d8307d
Patch229: glibc-rh1749439-2.patch
d8307d
Patch230: glibc-rh1749439-3.patch
d8307d
Patch231: glibc-rh1749439-4.patch
d8307d
Patch232: glibc-rh1749439-5.patch
d8307d
Patch233: glibc-rh1749439-6.patch
d8307d
Patch234: glibc-rh1749439-7.patch
d8307d
Patch235: glibc-rh1749439-8.patch
d8307d
Patch236: glibc-rh1749439-9.patch
d8307d
Patch237: glibc-rh1749439-10.patch
d8307d
Patch238: glibc-rh1749439-11.patch
d8307d
Patch239: glibc-rh1749439-12.patch
d8307d
Patch240: glibc-rh1749439-13.patch
d8307d
Patch241: glibc-rh1764231-1.patch
d8307d
Patch242: glibc-rh1764231-2.patch
d8307d
Patch243: glibc-rh1764235.patch
d8307d
Patch244: glibc-rh1361965.patch
d8307d
Patch245: glibc-rh1764223.patch
d8307d
Patch246: glibc-rh1764214.patch
d8307d
Patch247: glibc-rh1774021.patch
d8307d
Patch248: glibc-rh1775294.patch
d8307d
Patch249: glibc-rh1777241.patch
d8307d
Patch250: glibc-rh1410154-1.patch
d8307d
Patch251: glibc-rh1410154-2.patch
d8307d
Patch252: glibc-rh1410154-3.patch
d8307d
Patch253: glibc-rh1410154-4.patch
d8307d
Patch254: glibc-rh1410154-5.patch
d8307d
Patch255: glibc-rh1410154-6.patch
d8307d
Patch256: glibc-rh1410154-7.patch
d8307d
Patch257: glibc-rh1410154-8.patch
d8307d
Patch258: glibc-rh1410154-9.patch
d8307d
Patch259: glibc-rh1410154-10.patch
d8307d
Patch260: glibc-rh1410154-11.patch
d8307d
Patch261: glibc-rh1410154-12.patch
d8307d
Patch262: glibc-rh1410154-13.patch
d8307d
Patch263: glibc-rh1410154-14.patch
d8307d
Patch264: glibc-rh1410154-15.patch
d8307d
Patch265: glibc-rh1410154-16.patch
7c0489
Patch266: glibc-rh1810142-1.patch
7c0489
Patch267: glibc-rh1810142-2.patch
7c0489
Patch268: glibc-rh1810142-3.patch
7c0489
Patch269: glibc-rh1810142-4.patch
7c0489
Patch270: glibc-rh1810142-5.patch
7c0489
Patch271: glibc-rh1810142-6.patch
7c0489
Patch272: glibc-rh1743445-1.patch
7c0489
Patch273: glibc-rh1743445-2.patch
7c0489
Patch274: glibc-rh1780204-01.patch
7c0489
Patch275: glibc-rh1780204-02.patch
7c0489
Patch276: glibc-rh1780204-03.patch
7c0489
Patch277: glibc-rh1780204-04.patch
7c0489
Patch278: glibc-rh1780204-05.patch
7c0489
Patch279: glibc-rh1780204-06.patch
7c0489
Patch280: glibc-rh1780204-07.patch
7c0489
Patch281: glibc-rh1780204-08.patch
7c0489
Patch282: glibc-rh1780204-09.patch
7c0489
Patch283: glibc-rh1780204-10.patch
7c0489
Patch284: glibc-rh1780204-11.patch
7c0489
Patch285: glibc-rh1780204-12.patch
7c0489
Patch286: glibc-rh1780204-13.patch
7c0489
Patch287: glibc-rh1780204-14.patch
7c0489
Patch288: glibc-rh1780204-15.patch
7c0489
Patch289: glibc-rh1780204-16.patch
7c0489
Patch290: glibc-rh1780204-17.patch
7c0489
Patch291: glibc-rh1780204-18.patch
7c0489
Patch292: glibc-rh1780204-19.patch
7c0489
Patch293: glibc-rh1780204-20.patch
7c0489
Patch294: glibc-rh1780204-21.patch
7c0489
Patch295: glibc-rh1780204-22.patch
7c0489
Patch296: glibc-rh1780204-23.patch
7c0489
Patch297: glibc-rh1780204-24.patch
7c0489
Patch298: glibc-rh1780204-25.patch
7c0489
Patch299: glibc-rh1780204-26.patch
7c0489
Patch300: glibc-rh1780204-27.patch
7c0489
Patch301: glibc-rh1780204-28.patch
7c0489
Patch302: glibc-rh1784519.patch
7c0489
Patch303: glibc-rh1775819.patch
7c0489
Patch304: glibc-rh1774114.patch
7c0489
Patch305: glibc-rh1812756-1.patch
7c0489
Patch306: glibc-rh1812756-2.patch
7c0489
Patch307: glibc-rh1812756-3.patch
7c0489
Patch308: glibc-rh1757354.patch
7c0489
Patch309: glibc-rh1784520.patch
7c0489
Patch310: glibc-rh1784525.patch
7c0489
Patch311: glibc-rh1810146.patch
7c0489
Patch312: glibc-rh1810223-1.patch
7c0489
Patch313: glibc-rh1810223-2.patch
7c0489
Patch314: glibc-rh1811796-1.patch
7c0489
Patch315: glibc-rh1811796-2.patch
7c0489
Patch316: glibc-rh1813398.patch
7c0489
Patch317: glibc-rh1813399.patch
7c0489
Patch318: glibc-rh1810224-1.patch
7c0489
Patch319: glibc-rh1810224-2.patch
7c0489
Patch320: glibc-rh1810224-3.patch
7c0489
Patch321: glibc-rh1810224-4.patch
7c0489
Patch322: glibc-rh1783303-1.patch
7c0489
Patch323: glibc-rh1783303-2.patch
7c0489
Patch324: glibc-rh1783303-3.patch
7c0489
Patch325: glibc-rh1783303-4.patch
7c0489
Patch326: glibc-rh1783303-5.patch
7c0489
Patch327: glibc-rh1783303-6.patch
7c0489
Patch328: glibc-rh1783303-7.patch
7c0489
Patch329: glibc-rh1783303-8.patch
7c0489
Patch330: glibc-rh1783303-9.patch
7c0489
Patch331: glibc-rh1783303-10.patch
7c0489
Patch332: glibc-rh1783303-11.patch
7c0489
Patch333: glibc-rh1783303-12.patch
7c0489
Patch334: glibc-rh1783303-13.patch
7c0489
Patch335: glibc-rh1783303-14.patch
7c0489
Patch336: glibc-rh1783303-15.patch
7c0489
Patch337: glibc-rh1783303-16.patch
7c0489
Patch338: glibc-rh1783303-17.patch
7c0489
Patch339: glibc-rh1783303-18.patch
7c0489
Patch340: glibc-rh1642150-1.patch
7c0489
Patch341: glibc-rh1642150-2.patch
7c0489
Patch342: glibc-rh1642150-3.patch
7c0489
Patch343: glibc-rh1774115.patch
981dc9
Patch344: glibc-rh1780204-29.patch
981dc9
Patch345: glibc-rh1748197-1.patch
981dc9
Patch346: glibc-rh1748197-2.patch
981dc9
Patch347: glibc-rh1748197-3.patch
981dc9
Patch348: glibc-rh1748197-4.patch
981dc9
Patch349: glibc-rh1748197-5.patch
981dc9
Patch350: glibc-rh1748197-6.patch
981dc9
Patch351: glibc-rh1748197-7.patch
d8307d
d8307d
##############################################################################
d8307d
# Continued list of core "glibc" package information:
d8307d
##############################################################################
d8307d
Obsoletes: glibc-profile < 2.4
d8307d
Provides: ldconfig
d8307d
d8307d
# The dynamic linker supports DT_GNU_HASH
d8307d
Provides: rtld(GNU_HASH)
d8307d
Requires: glibc-common = %{version}-%{release}
d8307d
d8307d
# Various components (regex, glob) have been imported from gnulib.
d8307d
Provides: bundled(gnulib)
d8307d
d8307d
Requires(pre): basesystem
d8307d
7c0489
%ifarch %{ix86}
7c0489
# Automatically install the 32-bit variant if the 64-bit variant has
7c0489
# been installed.  This covers the case when glibc.i686 is installed
7c0489
# after nss_db.x86_64.  (See below for the other ordering.)
7c0489
Recommends: (nss_db(x86-32) if nss_db(x86-64))
7c0489
%endif
7c0489
d8307d
# This is for building auxiliary programs like memusage, nscd
d8307d
# For initial glibc bootstraps it can be commented out
d8307d
%if %{without bootstrap}
d8307d
BuildRequires: gd-devel libpng-devel zlib-devel
d8307d
%endif
d8307d
%if %{with docs}
d8307d
# Removing texinfo will cause check-safety.sh test to fail because it seems to
d8307d
# trigger documentation generation based on dependencies.  We need to fix this
d8307d
# upstream in some way that doesn't depend on generating docs to validate the
d8307d
# texinfo.  I expect it's simply the wrong dependency for that target.
d8307d
BuildRequires: texinfo >= 5.0
d8307d
%endif
d8307d
%if %{without bootstrap}
d8307d
BuildRequires: libselinux-devel >= 1.33.4-3
d8307d
%endif
d8307d
BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext
d8307d
# We need procps-ng (/bin/ps), util-linux (/bin/kill), and gawk (/bin/awk),
d8307d
# but it is more flexible to require the actual programs and let rpm infer
d8307d
# the packages. However, until bug 1259054 is widely fixed we avoid the
d8307d
# following:
d8307d
# BuildRequires: /bin/ps, /bin/kill, /bin/awk
d8307d
# And use instead (which should be reverted some time in the future):
d8307d
BuildRequires: procps-ng, util-linux, gawk
d8307d
BuildRequires: systemtap-sdt-devel
d8307d
d8307d
%if %{with valgrind}
d8307d
# Require valgrind for smoke testing the dynamic loader to make sure we
d8307d
# have not broken valgrind.
d8307d
BuildRequires: valgrind
d8307d
%endif
d8307d
d8307d
# We use systemd rpm macros for nscd
d8307d
BuildRequires: systemd
d8307d
d8307d
# We use python for the microbenchmarks and locale data regeneration
d8307d
# from unicode sources (carried out manually). We choose python3
d8307d
# explicitly because it supports both use cases.  On some
d8307d
# distributions, python3 does not actually install /usr/bin/python3,
d8307d
# so we also depend on python3-devel.
d8307d
BuildRequires: python3 python3-devel
d8307d
d8307d
# This is the first GCC version with enhanced valgrind support in the
d8307d
# inline expansion of string functions (#1532205, #1652929, #1652932).
d8307d
BuildRequires: gcc >= 8.2.1-3.4
d8307d
%define enablekernel 3.2
d8307d
Conflicts: kernel < %{enablekernel}
d8307d
%define target %{_target_cpu}-redhat-linux
d8307d
%ifarch %{arm}
d8307d
%define target %{_target_cpu}-redhat-linuxeabi
d8307d
%endif
d8307d
%ifarch %{power64}
d8307d
%ifarch ppc64le
d8307d
%define target ppc64le-redhat-linux
d8307d
%else
d8307d
%define target ppc64-redhat-linux
d8307d
%endif
d8307d
%endif
d8307d
d8307d
# GNU make 4.0 introduced the -O option.
d8307d
BuildRequires: make >= 4.0
d8307d
d8307d
# The intl subsystem generates a parser using bison.
d8307d
BuildRequires: bison >= 2.7
d8307d
d8307d
# binutils 2.30-51 is needed for z13 support on s390x.
d8307d
BuildRequires: binutils >= 2.30-51
d8307d
d8307d
# Earlier releases have broken support for IRELATIVE relocations
d8307d
Conflicts: prelink < 0.4.2
d8307d
d8307d
%if 0%{?_enable_debug_packages}
d8307d
BuildRequires: elfutils >= 0.72
d8307d
BuildRequires: rpm >= 4.2-0.56
d8307d
%endif
d8307d
d8307d
%if %{without bootstrap}
d8307d
%if %{with testsuite}
d8307d
# The testsuite builds static C++ binaries that require a C++ compiler,
d8307d
# static C++ runtime from libstdc++-static, and lastly static glibc.
d8307d
BuildRequires: gcc-c++
d8307d
BuildRequires: libstdc++-static
d8307d
# A configure check tests for the ability to create static C++ binaries
d8307d
# before glibc is built and therefore we need a glibc-static for that
d8307d
# check to pass even if we aren't going to use any of those objects to
d8307d
# build the tests.
d8307d
BuildRequires: glibc-static
d8307d
d8307d
# libidn2 (but not libidn2-devel) is needed for testing AI_IDN/NI_IDN.
d8307d
BuildRequires: libidn2
d8307d
%endif
d8307d
%endif
d8307d
d8307d
# Filter out all GLIBC_PRIVATE symbols since they are internal to
d8307d
# the package and should not be examined by any other tool.
d8307d
%global __filter_GLIBC_PRIVATE 1
d8307d
d8307d
# For language packs we have glibc require a virtual dependency
d8307d
# "glibc-langpack" wich gives us at least one installed langpack.
d8307d
# If no langpack providing 'glibc-langpack' was installed you'd
d8307d
# get all of them, and that would make the transition from a
d8307d
# system without langpacks smoother (you'd get all the locales
d8307d
# installed). You would then trim that list, and the trimmed list
d8307d
# is preserved. One problem is you can't have "no" locales installed,
d8307d
# in that case we offer a "glibc-minimal-langpack" sub-pakcage for
d8307d
# this purpose.
d8307d
Requires: glibc-langpack = %{version}-%{release}
d8307d
Suggests: glibc-all-langpacks = %{version}-%{release}
d8307d
d8307d
%description
d8307d
The glibc package contains standard libraries which are used by
d8307d
multiple programs on the system. In order to save disk space and
d8307d
memory, as well as to make upgrading easier, common system code is
d8307d
kept in one place and shared between programs. This particular package
d8307d
contains the most important sets of shared libraries: the standard C
d8307d
library and the standard math library. Without these two libraries, a
d8307d
Linux system will not function.
d8307d
d8307d
######################################################################
d8307d
# libnsl subpackage
d8307d
######################################################################
d8307d
d8307d
%package -n libnsl
d8307d
Summary: Legacy support library for NIS
d8307d
Requires: %{name}%{_isa} = %{version}-%{release}
d8307d
d8307d
%description -n libnsl
d8307d
This package provides the legacy version of libnsl library, for
d8307d
accessing NIS services.
d8307d
d8307d
This library is provided for backwards compatibility only;
d8307d
applications should use libnsl2 instead to gain IPv6 support.
d8307d
d8307d
##############################################################################
d8307d
# glibc "devel" sub-package
d8307d
##############################################################################
d8307d
%package devel
d8307d
Summary: Object files for development using standard C libraries.
d8307d
Requires(pre): /sbin/install-info
d8307d
Requires(pre): %{name}-headers
d8307d
Requires: %{name}-headers = %{version}-%{release}
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
Requires: libgcc%{_isa}
d8307d
Requires: libxcrypt-devel%{_isa} >= 4.0.0
d8307d
d8307d
%description devel
d8307d
The glibc-devel package contains the object files necessary
d8307d
for developing programs which use the standard C libraries (which are
d8307d
used by nearly all programs).  If you are developing programs which
d8307d
will use the standard C libraries, your system needs to have these
d8307d
standard object files available in order to create the
d8307d
executables.
d8307d
d8307d
Install glibc-devel if you are going to develop programs which will
d8307d
use the standard C libraries.
d8307d
d8307d
##############################################################################
d8307d
# glibc "static" sub-package
d8307d
##############################################################################
d8307d
%package static
d8307d
Summary: C library static libraries for -static linking.
d8307d
Requires: %{name}-devel = %{version}-%{release}
d8307d
Requires: libxcrypt-static%{?_isa} >= 4.0.0
d8307d
d8307d
%description static
d8307d
The glibc-static package contains the C library static libraries
d8307d
for -static linking.  You don't need these, unless you link statically,
d8307d
which is highly discouraged.
d8307d
d8307d
##############################################################################
d8307d
# glibc "headers" sub-package
d8307d
# - The headers package includes all common headers that are shared amongst
d8307d
#   the multilib builds. It was created to reduce the download size, and
d8307d
#   thus avoid downloading one header package per multilib. The package is
d8307d
#   identical both in content and file list, any difference is an error.
d8307d
#   Files like gnu/stubs.h which have gnu/stubs-32.h (i686) and gnu/stubs-64.h
d8307d
#   are included in glibc-headers, but the -32 and -64 files are in their
d8307d
#   respective i686 and x86_64 devel packages.
d8307d
##############################################################################
d8307d
%package headers
d8307d
Summary: Header files for development using standard C libraries.
d8307d
Provides: %{name}-headers(%{_target_cpu})
d8307d
Requires(pre): kernel-headers
d8307d
Requires: kernel-headers >= 2.2.1, %{name} = %{version}-%{release}
d8307d
BuildRequires: kernel-headers >= 3.2
d8307d
d8307d
%description headers
d8307d
The glibc-headers package contains the header files necessary
d8307d
for developing programs which use the standard C libraries (which are
d8307d
used by nearly all programs).  If you are developing programs which
d8307d
will use the standard C libraries, your system needs to have these
d8307d
standard header files available in order to create the
d8307d
executables.
d8307d
d8307d
Install glibc-headers if you are going to develop programs which will
d8307d
use the standard C libraries.
d8307d
d8307d
##############################################################################
d8307d
# glibc "common" sub-package
d8307d
##############################################################################
d8307d
%package common
d8307d
Summary: Common binaries and locale data for glibc
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
Requires: tzdata >= 2003a
d8307d
d8307d
%description common
d8307d
The glibc-common package includes common binaries for the GNU libc
d8307d
libraries, as well as national language (locale) support.
d8307d
d8307d
######################################################################
d8307d
# File triggers to do ldconfig calls automatically (see rhbz#1380878)
d8307d
######################################################################
d8307d
d8307d
# File triggers for when libraries are added or removed in standard
d8307d
# paths.
d8307d
%transfiletriggerin common -P 2000000 -- /lib /usr/lib /lib64 /usr/lib64
d8307d
/sbin/ldconfig
d8307d
%end
d8307d
d8307d
%transfiletriggerpostun common -P 2000000 -- /lib /usr/lib /lib64 /usr/lib64
d8307d
/sbin/ldconfig
d8307d
%end
d8307d
d8307d
# We need to run ldconfig manually because __brp_ldconfig assumes that
d8307d
# glibc itself is always installed in $RPM_BUILD_ROOT, but with sysroots
d8307d
# we may be installed into a subdirectory of that path.  Therefore we
d8307d
# unset __brp_ldconfig and run ldconfig by hand with the sysroots path
d8307d
# passed to -r.
d8307d
%undefine __brp_ldconfig
d8307d
d8307d
######################################################################
d8307d
d8307d
%package locale-source
d8307d
Summary: The sources for the locales
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
Requires: %{name}-common = %{version}-%{release}
d8307d
d8307d
%description locale-source
d8307d
The sources for all locales provided in the language packs.
d8307d
If you are building custom locales you will most likely use
d8307d
these sources as the basis for your new locale.
d8307d
d8307d
%{lua:
d8307d
-- Array of languages (ISO-639 codes).
d8307d
local languages = {}
d8307d
-- Dictionary from language codes (as in the languages array) to arrays
d8307d
-- of regions.
d8307d
local supplements = {}
d8307d
do
d8307d
   -- Parse the SUPPORTED file.  Eliminate duplicates.
d8307d
   local lang_region_seen = {}
d8307d
   for line in io.lines(rpm.expand("%{SOURCE11}")) do
d8307d
      -- Match lines which contain a language (eo) or language/region
d8307d
      -- (en_US) strings.
d8307d
      local lang_region = string.match(line, "^([a-z][^/@.]+)")
d8307d
      if lang_region ~= nil then
d8307d
	 if lang_region_seen[lang_region] == nil then
d8307d
	    lang_region_seen[lang_region] = true
d8307d
d8307d
	    -- Split language/region pair.
d8307d
	    local lang, region = string.match(lang_region, "^(.+)_(.+)")
d8307d
	    if lang == nil then
d8307d
	       -- Region is missing, use only the language.
d8307d
	       lang = lang_region
d8307d
	    end
d8307d
	    local suppl = supplements[lang]
d8307d
	    if suppl == nil then
d8307d
	       suppl = {}
d8307d
	       supplements[lang] = suppl
d8307d
	       -- New language not seen before.
d8307d
	       languages[#languages + 1] = lang
d8307d
	    end
d8307d
	    if region ~= nil then
d8307d
	       -- New region because of the check against
d8307d
	       -- lang_region_seen above.
d8307d
	       suppl[#suppl + 1] = region
d8307d
	    end
d8307d
	 end
d8307d
      end
d8307d
   end
d8307d
   -- Sort for determinism.
d8307d
   table.sort(languages)
d8307d
   for _, supples in pairs(supplements) do
d8307d
      table.sort(supplements)
d8307d
   end
d8307d
end
d8307d
d8307d
-- Compute the Supplements: list for a language, based on the regions.
d8307d
local function compute_supplements(lang)
d8307d
   result = "langpacks-" .. lang
d8307d
   regions = supplements[lang]
d8307d
   if regions ~= nil then
d8307d
      for i = 1, #regions do
d8307d
	 result = result .. " or langpacks-" .. lang .. "_" .. regions[i]
d8307d
      end
d8307d
   end
d8307d
   return result
d8307d
end
d8307d
d8307d
-- Emit the definition of a language pack package.
d8307d
local function lang_package(lang)
d8307d
   local suppl = compute_supplements(lang)
d8307d
   print(rpm.expand([[
d8307d
d8307d
%package langpack-]]..lang..[[
d8307d
d8307d
Summary: Locale data for ]]..lang..[[
d8307d
d8307d
Provides: glibc-langpack = %{version}-%{release}
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
Requires: %{name}-common = %{version}-%{release}
d8307d
Supplements: (glibc and (]]..suppl..[[))
d8307d
%description langpack-]]..lang..[[
d8307d
d8307d
The glibc-langpack-]]..lang..[[ package includes the basic information required
d8307d
to support the ]]..lang..[[ language in your applications.
d8307d
%ifnarch %{auxarches}
d8307d
%files -f langpack-]]..lang..[[.filelist langpack-]]..lang..[[
d8307d
d8307d
%endif
d8307d
]]))
d8307d
end
d8307d
d8307d
for i = 1, #languages do
d8307d
   lang_package(languages[i])
d8307d
end
d8307d
}
d8307d
d8307d
# The glibc-all-langpacks provides the virtual glibc-langpack,
d8307d
# and thus satisfies glibc's requirement for installed locales.
d8307d
# Users can add one more other langauge packs and then eventually
d8307d
# uninstall all-langpacks to save space.
d8307d
%package all-langpacks
d8307d
Summary: All language packs for %{name}.
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
Requires: %{name}-common = %{version}-%{release}
d8307d
Provides: %{name}-langpack = %{version}-%{release}
d8307d
%description all-langpacks
d8307d
d8307d
# No %files, this is an empty pacakge. The C/POSIX and
d8307d
# C.UTF-8 files are already installed by glibc. We create
d8307d
# minimal-langpack because the virtual provide of
d8307d
# glibc-langpack needs at least one package installed
d8307d
# to satisfy it. Given that no-locales installed is a valid
d8307d
# use case we support it here with this package.
d8307d
%package minimal-langpack
d8307d
Summary: Minimal language packs for %{name}.
d8307d
Provides: glibc-langpack = %{version}-%{release}
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
Requires: %{name}-common = %{version}-%{release}
d8307d
%description minimal-langpack
d8307d
This is a Meta package that is used to install minimal language packs.
d8307d
This package ensures you can use C, POSIX, or C.UTF-8 locales, but
d8307d
nothing else. It is designed for assembling a minimal system.
d8307d
%ifnarch %{auxarches}
d8307d
%files minimal-langpack
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# glibc "nscd" sub-package
d8307d
##############################################################################
d8307d
%package -n nscd
d8307d
Summary: A Name Service Caching Daemon (nscd).
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
%if %{without bootstrap}
d8307d
Requires: libselinux >= 1.17.10-1
d8307d
%endif
d8307d
Requires: audit-libs >= 1.1.3
d8307d
Requires(pre): /usr/sbin/useradd, coreutils
d8307d
Requires(post): systemd
d8307d
Requires(preun): systemd
d8307d
Requires(postun): systemd, /usr/sbin/userdel
d8307d
d8307d
%description -n nscd
d8307d
The nscd daemon caches name service lookups and can improve
d8307d
performance with LDAP, and may help with DNS as well.
d8307d
d8307d
##############################################################################
d8307d
# Subpackages for NSS modules except nss_files, nss_compat, nss_dns
d8307d
##############################################################################
d8307d
d8307d
# This should remain it's own subpackage or "Provides: nss_db" to allow easy
d8307d
# migration from old systems that previously had the old nss_db package
d8307d
# installed. Note that this doesn't make the migration that smooth, the
d8307d
# databases still need rebuilding because the formats were different.
d8307d
# The nss_db package was deprecated in F16 and onwards:
d8307d
# https://lists.fedoraproject.org/pipermail/devel/2011-July/153665.html
d8307d
# The different database format does cause some issues for users:
d8307d
# https://lists.fedoraproject.org/pipermail/devel/2011-December/160497.html
d8307d
%package -n nss_db
d8307d
Summary: Name Service Switch (NSS) module using hash-indexed files
d8307d
Requires: %{name}%{_isa} = %{version}-%{release}
7c0489
%ifarch x86_64
7c0489
# Automatically install the 32-bit variant if the 64-bit variant has
7c0489
# been installed.  This covers the case when glibc.i686 is installed
7c0489
# before nss_db.x86_64.  (See above for the other ordering.)
7c0489
Recommends: (nss_db(x86-32) if glibc(x86-32))
7c0489
%endif
d8307d
d8307d
%description -n nss_db
d8307d
The nss_db Name Service Switch module uses hash-indexed files in /var/db
d8307d
to speed up user, group, service, host name, and other NSS-based lookups.
d8307d
d8307d
%package -n nss_hesiod
d8307d
Summary: Name Service Switch (NSS) module using Hesiod
d8307d
Requires: %{name}%{_isa} = %{version}-%{release}
d8307d
d8307d
%description -n nss_hesiod
d8307d
The nss_hesiod Name Service Switch module uses the Domain Name System
d8307d
(DNS) as a source for user, group, and service information, following
d8307d
the Hesiod convention of Project Athena.
d8307d
d8307d
%package nss-devel
d8307d
Summary: Development files for directly linking NSS service modules
d8307d
Requires: %{name}%{_isa} = %{version}-%{release}
d8307d
Requires: nss_db%{_isa} = %{version}-%{release}
d8307d
Requires: nss_hesiod%{_isa} = %{version}-%{release}
d8307d
d8307d
%description nss-devel
d8307d
The glibc-nss-devel package contains the object files necessary to
d8307d
compile applications and libraries which directly link against NSS
d8307d
modules supplied by glibc.
d8307d
d8307d
This is a rare and special use case; regular development has to use
d8307d
the glibc-devel package instead.
d8307d
d8307d
##############################################################################
d8307d
# glibc "utils" sub-package
d8307d
##############################################################################
d8307d
%package utils
d8307d
Summary: Development utilities from GNU C library
d8307d
Requires: %{name} = %{version}-%{release}
d8307d
d8307d
%description utils
d8307d
The glibc-utils package contains memusage, a memory usage profiler,
d8307d
mtrace, a memory leak tracer and xtrace, a function call tracer
d8307d
which can be helpful during program debugging.
d8307d
d8307d
If unsure if you need this, don't install this package.
d8307d
d8307d
##############################################################################
d8307d
# glibc core "debuginfo" sub-package
d8307d
##############################################################################
d8307d
%if 0%{?_enable_debug_packages}
d8307d
%define debug_package %{nil}
d8307d
%define __debug_install_post %{nil}
d8307d
%global __debug_package 1
d8307d
# Disable thew new features that glibc packages don't use.
d8307d
%undefine _debugsource_packages
d8307d
%undefine _debuginfo_subpackages
d8307d
%undefine _unique_debug_names
d8307d
%undefine _unique_debug_srcs
d8307d
d8307d
%package debuginfo
d8307d
Summary: Debug information for package %{name}
d8307d
AutoReqProv: no
d8307d
%ifarch %{debuginfocommonarches}
d8307d
Requires: glibc-debuginfo-common = %{version}-%{release}
d8307d
%else
d8307d
%ifarch %{ix86} %{sparc}
d8307d
Obsoletes: glibc-debuginfo-common
d8307d
%endif
d8307d
%endif
d8307d
d8307d
%description debuginfo
d8307d
This package provides debug information for package %{name}.
d8307d
Debug information is useful when developing applications that use this
d8307d
package or when debugging this package.
d8307d
d8307d
This package also contains static standard C libraries with
d8307d
debugging information.  You need this only if you want to step into
d8307d
C library routines during debugging programs statically linked against
d8307d
one or more of the standard C libraries.
d8307d
To use this debugging information, you need to link binaries
d8307d
with -static -L%{_prefix}/lib/debug%{_libdir} compiler options.
d8307d
d8307d
##############################################################################
d8307d
# glibc common "debuginfo-common" sub-package
d8307d
##############################################################################
d8307d
%ifarch %{debuginfocommonarches}
d8307d
d8307d
%package debuginfo-common
d8307d
Summary: Debug information for package %{name}
d8307d
AutoReqProv: no
d8307d
d8307d
%description debuginfo-common
d8307d
This package provides debug information for package %{name}.
d8307d
Debug information is useful when developing applications that use this
d8307d
package or when debugging this package.
d8307d
d8307d
%endif # %{debuginfocommonarches}
d8307d
%endif # 0%{?_enable_debug_packages}
d8307d
d8307d
%if %{with benchtests}
d8307d
%package benchtests
d8307d
Summary: Benchmarking binaries and scripts for %{name}
d8307d
%description benchtests
d8307d
This package provides built benchmark binaries and scripts to run
d8307d
microbenchmark tests on the system.
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# compat-libpthread-nonshared
d8307d
# See: https://sourceware.org/bugzilla/show_bug.cgi?id=23500
d8307d
##############################################################################
d8307d
%package -n compat-libpthread-nonshared
d8307d
Summary: Compatibility support for linking against libpthread_nonshared.a.
d8307d
d8307d
%description -n compat-libpthread-nonshared
d8307d
This package provides compatibility support for applications that expect
d8307d
libpthread_nonshared.a to exist. The support provided is in the form of
d8307d
an empty libpthread_nonshared.a that allows dynamic links to succeed.
d8307d
Such applications should be adjusted to avoid linking against
d8307d
libpthread_nonshared.a which is no longer used. The static library
d8307d
libpthread_nonshared.a is an internal implementation detail of the C
d8307d
runtime and should not be expected to exist.
d8307d
d8307d
##############################################################################
d8307d
# Prepare for the build.
d8307d
##############################################################################
d8307d
%prep
d8307d
%autosetup -n %{glibcsrcdir} -p1
d8307d
d8307d
##############################################################################
d8307d
# %%prep - Additional prep required...
d8307d
##############################################################################
d8307d
# Make benchmark scripts executable
d8307d
chmod +x benchtests/scripts/*.py scripts/pylint
d8307d
d8307d
# Remove all files generated from patching.
d8307d
find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
d8307d
d8307d
# Ensure timestamps on configure files are current to prevent
d8307d
# regenerating them.
d8307d
touch `find . -name configure`
d8307d
d8307d
# Ensure *-kw.h files are current to prevent regenerating them.
d8307d
touch locale/programs/*-kw.h
d8307d
d8307d
# Verify that our copy of localedata/SUPPORTED matches the glibc
d8307d
# version.
d8307d
#
d8307d
# The separate file copy is used by the Lua parser above.
d8307d
# Patches or new upstream versions may change the list of locales,
d8307d
# which changes the set of langpacks we need to build.  Verify the
d8307d
# differences then update the copy of SUPPORTED.  This approach has
d8307d
# two purposes: (a) avoid spurious changes to the set of langpacks,
d8307d
# and (b) the Lua snippet can use a fully patched-up version
d8307d
# of the localedata/SUPPORTED file.
d8307d
diff -u %{SOURCE11} localedata/SUPPORTED
d8307d
d8307d
##############################################################################
d8307d
# Build glibc...
d8307d
##############################################################################
d8307d
%build
d8307d
# Log system information
d8307d
uname -a
d8307d
LD_SHOW_AUXV=1 /bin/true
d8307d
cat /proc/cpuinfo
d8307d
cat /proc/sysinfo 2>/dev/null || true
d8307d
cat /proc/meminfo
d8307d
df
d8307d
d8307d
# We build using the native system compilers.
d8307d
GCC=gcc
d8307d
GXX=g++
d8307d
d8307d
# Part of rpm_inherit_flags.  Is overridden below.
d8307d
rpm_append_flag ()
d8307d
{
d8307d
    BuildFlags="$BuildFlags $*"
d8307d
}
d8307d
d8307d
# Propagates the listed flags to rpm_append_flag if supplied by
d8307d
# redhat-rpm-config.
d8307d
BuildFlags="-O2 -g"
d8307d
rpm_inherit_flags ()
d8307d
{
d8307d
	local reference=" $* "
d8307d
	local flag
d8307d
	for flag in $RPM_OPT_FLAGS $RPM_LD_FLAGS ; do
d8307d
		if echo "$reference" | grep -q -F " $flag " ; then
d8307d
			rpm_append_flag "$flag"
d8307d
		fi
d8307d
	done
d8307d
}
d8307d
d8307d
# Propgate select compiler flags from redhat-rpm-config.  These flags
d8307d
# are target-dependent, so we use only those which are specified in
d8307d
# redhat-rpm-config.  We keep the -m32/-m32/-m64 flags to support
d8307d
# multilib builds.
d8307d
#
d8307d
# Note: For building alternative run-times, care is required to avoid
d8307d
# overriding the architecture flags which go into CC/CXX.  The flags
d8307d
# below are passed in CFLAGS.
d8307d
d8307d
rpm_inherit_flags \
d8307d
	"-Wp,-D_GLIBCXX_ASSERTIONS" \
d8307d
	"-fasynchronous-unwind-tables" \
d8307d
	"-fstack-clash-protection" \
d8307d
	"-funwind-tables" \
d8307d
	"-m31" \
d8307d
	"-m32" \
d8307d
	"-m64" \
d8307d
	"-march=i686" \
d8307d
	"-march=x86-64" \
d8307d
	"-march=z13" \
d8307d
	"-march=z14" \
d8307d
	"-march=zEC12" \
d8307d
	"-mfpmath=sse" \
d8307d
	"-msse2" \
d8307d
	"-mstackrealign" \
d8307d
	"-mtune=generic" \
d8307d
	"-mtune=z13" \
d8307d
	"-mtune=z14" \
d8307d
	"-mtune=zEC12" \
d8307d
	"-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" \
d8307d
d8307d
# Propagate additional build flags to BuildFlagsNonshared.  This is
d8307d
# very special because some of these files are part of the startup
d8307d
# code.  We essentially hope that these flags have little effect
d8307d
# there, and only specify the, for consistency, so that annobin
d8307d
# records the expected compiler flags.
d8307d
BuildFlagsNonshared=
d8307d
rpm_append_flag () {
d8307d
    BuildFlagsNonshared="$BuildFlagsNonshared $*"
d8307d
}
d8307d
rpm_inherit_flags \
d8307d
	"-Wp,-D_FORTIFY_SOURCE=2" \
d8307d
d8307d
# Special flag to enable annobin annotations for statically linked
d8307d
# assembler code.  Needs to be passed to make; not preserved by
d8307d
# configure.
d8307d
%define glibc_make_flags_as ASFLAGS="-g -Wa,--generate-missing-build-notes=yes"
d8307d
%define glibc_make_flags %{glibc_make_flags_as}
d8307d
d8307d
##############################################################################
d8307d
# %%build - Generic options.
d8307d
##############################################################################
d8307d
EnableKernel="--enable-kernel=%{enablekernel}"
d8307d
# Save the used compiler and options into the file "Gcc" for use later
d8307d
# by %%install.
d8307d
echo "$GCC" > Gcc
d8307d
d8307d
##############################################################################
d8307d
# build()
d8307d
#	Build glibc in `build-%{target}$1', passing the rest of the arguments
d8307d
#	as CFLAGS to the build (not the same as configure CFLAGS). Several
d8307d
#	global values are used to determine build flags, kernel version,
d8307d
#	system tap support, etc.
d8307d
##############################################################################
d8307d
build()
d8307d
{
d8307d
	local builddir=build-%{target}${1:+-$1}
d8307d
	${1+shift}
d8307d
	rm -rf $builddir
d8307d
	mkdir $builddir
d8307d
	pushd $builddir
d8307d
	../configure CC="$GCC" CXX="$GXX" CFLAGS="$BuildFlags $*" \
d8307d
		--prefix=%{_prefix} \
d8307d
		--with-headers=%{_prefix}/include $EnableKernel \
d8307d
		--with-nonshared-cflags="$BuildFlagsNonshared" \
d8307d
		--enable-bind-now \
d8307d
		--build=%{target} \
d8307d
		--enable-stack-protector=strong \
d8307d
%ifarch %{pie_arches}
d8307d
		--enable-static-pie \
d8307d
%endif
d8307d
		--enable-tunables \
d8307d
		--enable-systemtap \
d8307d
		${core_with_options} \
d8307d
%ifarch x86_64 %{ix86}
d8307d
	       --enable-cet \
d8307d
%endif
d8307d
%ifarch %{ix86}
d8307d
		--disable-multi-arch \
d8307d
%endif
d8307d
%if %{without werror}
d8307d
		--disable-werror \
d8307d
%endif
d8307d
		--disable-profile \
d8307d
%if %{with bootstrap}
d8307d
		--without-selinux \
d8307d
%endif
d8307d
		--disable-crypt ||
d8307d
		{ cat config.log; false; }
d8307d
d8307d
	make %{?_smp_mflags} -O -r %{glibc_make_flags}
d8307d
	popd
d8307d
}
d8307d
d8307d
# Default set of compiler options.
d8307d
build
d8307d
d8307d
%if %{buildpower9}
d8307d
(
d8307d
  GCC="$GCC -mcpu=power9 -mtune=power9"
d8307d
  GXX="$GXX -mcpu=power9 -mtune=power9"
d8307d
  core_with_options="--with-cpu=power9"
d8307d
  build power9
d8307d
)
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# Install glibc...
d8307d
##############################################################################
d8307d
%install
d8307d
d8307d
# The built glibc is installed into a subdirectory of $RPM_BUILD_ROOT.
d8307d
# For a system glibc that subdirectory is "/" (the root of the filesystem).
d8307d
# This is called a sysroot (system root) and can be changed if we have a
d8307d
# distribution that supports multiple installed glibc versions.
d8307d
%define glibc_sysroot $RPM_BUILD_ROOT
d8307d
d8307d
# Remove existing file lists.
d8307d
find . -type f -name '*.filelist' -exec rm -rf {} \;
d8307d
d8307d
# Ensure the permissions of errlist.c do not change.  When the file is
d8307d
# regenerated the Makefile sets the permissions to 444. We set it to 644
d8307d
# to match what comes out of git. The tarball of the git archive won't have
d8307d
# correct permissions because git doesn't track all of the permissions
d8307d
# accurately (see git-cache-meta if you need that). We also set it to 644 to
d8307d
# match pre-existing rpms. We do this *after* the build because the build
d8307d
# might regenerate the file and set the permissions to 444.
d8307d
chmod 644 sysdeps/gnu/errlist.c
d8307d
d8307d
# Reload compiler and build options that were used during %%build.
d8307d
GCC=`cat Gcc`
d8307d
d8307d
%ifarch riscv64
d8307d
# RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d.
d8307d
# Make these be symlinks to /lib64 or /usr/lib64 respectively.  See:
d8307d
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/
d8307d
for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do
d8307d
	mkdir -p $d
d8307d
	(cd $d && ln -sf . lp64d)
d8307d
done
d8307d
%endif
d8307d
d8307d
# Build and install:
d8307d
make -j1 install_root=%{glibc_sysroot} install -C build-%{target}
d8307d
d8307d
# If we are not building an auxiliary arch then install all of the supported
d8307d
# locales.
d8307d
%ifnarch %{auxarches}
d8307d
pushd build-%{target}
d8307d
# Do not use a parallel make here because the hardlink optimization in
d8307d
# localedef is not fully reproducible when running concurrently.
d8307d
make install_root=%{glibc_sysroot} \
d8307d
	install-locales -C ../localedata objdir=`pwd`
d8307d
popd
d8307d
%endif
d8307d
d8307d
# install_different:
d8307d
#	Install all core libraries into DESTDIR/SUBDIR. Either the file is
d8307d
#	installed as a copy or a symlink to the default install (if it is the
d8307d
#	same). The path SUBDIR_UP is the prefix used to go from
d8307d
#	DESTDIR/SUBDIR to the default installed libraries e.g.
d8307d
#	ln -s SUBDIR_UP/foo.so DESTDIR/SUBDIR/foo.so.
d8307d
#	When you call this function it is expected that you are in the root
d8307d
#	of the build directory, and that the default build directory is:
d8307d
#	"../build-%{target}" (relatively).
d8307d
#	The primary use of this function is to install alternate runtimes
d8307d
#	into the build directory and avoid duplicating this code for each
d8307d
#	runtime.
d8307d
install_different()
d8307d
{
d8307d
	local lib libbase libbaseso dlib
d8307d
	local destdir="$1"
d8307d
	local subdir="$2"
d8307d
	local subdir_up="$3"
d8307d
	local libdestdir="$destdir/$subdir"
d8307d
	# All three arguments must be non-zero paths.
d8307d
	if ! [ "$destdir" \
d8307d
	       -a "$subdir" \
d8307d
	       -a "$subdir_up" ]; then
d8307d
		echo "One of the arguments to install_different was emtpy."
d8307d
		exit 1
d8307d
	fi
d8307d
	# Create the destination directory and the multilib directory.
d8307d
	mkdir -p "$destdir"
d8307d
	mkdir -p "$libdestdir"
d8307d
	# Walk all of the libraries we installed...
d8307d
	for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db
d8307d
	do
d8307d
		libbase=${lib#*/}
d8307d
		# Take care that `libbaseso' has a * that needs expanding so
d8307d
		# take care with quoting.
d8307d
		libbaseso=$(basename %{glibc_sysroot}/%{_lib}/${libbase}-*.so)
d8307d
		# Only install if different from default build library.
d8307d
		if cmp -s ${lib}.so ../build-%{target}/${lib}.so; then
d8307d
			ln -sf "$subdir_up"/$libbaseso $libdestdir/$libbaseso
d8307d
		else
d8307d
			cp -a ${lib}.so $libdestdir/$libbaseso
d8307d
		fi
d8307d
		dlib=$libdestdir/$(basename %{glibc_sysroot}/%{_lib}/${libbase}.so.*)
d8307d
		ln -sf $libbaseso $dlib
d8307d
	done
d8307d
}
d8307d
d8307d
%if %{buildpower9}
d8307d
pushd build-%{target}-power9
d8307d
install_different "$RPM_BUILD_ROOT/%{_lib}" power9 ..
d8307d
popd
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# Remove the files we don't want to distribute
d8307d
##############################################################################
d8307d
d8307d
# Remove the libNoVersion files.
d8307d
# XXX: This looks like a bug in glibc that accidentally installed these
d8307d
#      wrong files. We probably don't need this today.
d8307d
rm -f %{glibc_sysroot}/%{_libdir}/libNoVersion*
d8307d
rm -f %{glibc_sysroot}/%{_lib}/libNoVersion*
d8307d
d8307d
# Remove the old nss modules.
d8307d
rm -f %{glibc_sysroot}/%{_lib}/libnss1-*
d8307d
rm -f %{glibc_sysroot}/%{_lib}/libnss-*.so.1
d8307d
d8307d
# This statically linked binary is no longer necessary in a world where
d8307d
# the default Fedora install uses an initramfs, and further we have rpm-ostree
d8307d
# which captures the whole userspace FS tree.
d8307d
# Further, see https://github.com/projectatomic/rpm-ostree/pull/1173#issuecomment-355014583
d8307d
rm -f %{glibc_sysroot}/{usr/,}sbin/sln
d8307d
d8307d
######################################################################
d8307d
# Run ldconfig to create all the symbolic links we need
d8307d
######################################################################
d8307d
d8307d
# Note: This has to happen before creating /etc/ld.so.conf.
d8307d
d8307d
mkdir -p %{glibc_sysroot}/var/cache/ldconfig
d8307d
truncate -s 0 %{glibc_sysroot}/var/cache/ldconfig/aux-cache
d8307d
d8307d
# ldconfig is statically linked, so we can use the new version.
d8307d
%{glibc_sysroot}/sbin/ldconfig -N -r %{glibc_sysroot}
d8307d
d8307d
##############################################################################
d8307d
# Install info files
d8307d
##############################################################################
d8307d
d8307d
%if %{with docs}
d8307d
# Move the info files if glibc installed them into the wrong location.
d8307d
if [ -d %{glibc_sysroot}%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then
d8307d
  mkdir -p %{glibc_sysroot}%{_infodir}
d8307d
  mv -f %{glibc_sysroot}%{_prefix}/info/* %{glibc_sysroot}%{_infodir}
d8307d
  rm -rf %{glibc_sysroot}%{_prefix}/info
d8307d
fi
d8307d
d8307d
# Compress all of the info files.
d8307d
gzip -9nvf %{glibc_sysroot}%{_infodir}/libc*
d8307d
d8307d
%else
d8307d
rm -f %{glibc_sysroot}%{_infodir}/dir
d8307d
rm -f %{glibc_sysroot}%{_infodir}/libc.info*
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# Create locale sub-package file lists
d8307d
##############################################################################
d8307d
d8307d
%ifnarch %{auxarches}
d8307d
olddir=`pwd`
d8307d
pushd %{glibc_sysroot}%{_prefix}/lib/locale
d8307d
rm -f locale-archive
d8307d
# Intentionally we do not pass --alias-file=, aliases will be added
d8307d
# by build-locale-archive.
d8307d
$olddir/build-%{target}/elf/ld.so \
d8307d
        --library-path $olddir/build-%{target}/ \
d8307d
        $olddir/build-%{target}/locale/localedef \
d8307d
        --prefix %{glibc_sysroot} --add-to-archive \
d8307d
        eo *_*
d8307d
# Setup the locale-archive template for use by glibc-all-langpacks.  We
d8307d
# copy the archive in place to keep the size of the file. Even though we
d8307d
# mark the file with "ghost" the size is used by rpm to compute the
d8307d
# required free space (see rhbz#1725131). We do this because there is a
d8307d
# point in the install when build-locale-archive has copied 100% of the
d8307d
# template into the new locale archive and so this consumes twice the
d8307d
# amount of diskspace. Note that this doesn't account for copying
d8307d
# existing compiled locales into the archive, this may consume even more
d8307d
# disk space and we can't fix that issue. In upstream we have moved away
d8307d
# from this process, removing build-locale-archive and installing a
d8307d
# default locale-archive without modification, and leaving compiled
d8307d
# locales as they are (without inclusion into the archive).
d8307d
cp locale-archive{,.tmpl}
d8307d
# Create the file lists for the language specific sub-packages:
d8307d
for i in eo *_*
d8307d
do
d8307d
    lang=${i%%_*}
d8307d
    if [ ! -e langpack-${lang}.filelist ]; then
d8307d
        echo "%dir %{_prefix}/lib/locale" >> langpack-${lang}.filelist
d8307d
    fi
d8307d
    echo "%dir  %{_prefix}/lib/locale/$i" >> langpack-${lang}.filelist
d8307d
    echo "%{_prefix}/lib/locale/$i/*" >> langpack-${lang}.filelist
d8307d
done
d8307d
popd
d8307d
pushd %{glibc_sysroot}%{_prefix}/share/locale
d8307d
for i in */LC_MESSAGES/libc.mo
d8307d
do
d8307d
    locale=${i%%%%/*}
d8307d
    lang=${locale%%%%_*}
d8307d
    echo "%lang($lang) %{_prefix}/share/locale/${i}" \
d8307d
         >> %{glibc_sysroot}%{_prefix}/lib/locale/langpack-${lang}.filelist
d8307d
done
d8307d
popd
d8307d
mv  %{glibc_sysroot}%{_prefix}/lib/locale/*.filelist .
d8307d
%endif
d8307d
d8307d
##############################################################################
d8307d
# Install configuration files for services
d8307d
##############################################################################
d8307d
d8307d
install -p -m 644 nss/nsswitch.conf %{glibc_sysroot}/etc/nsswitch.conf
d8307d
d8307d
%ifnarch %{auxarches}
d8307d
# This is for ncsd - in glibc 2.2
d8307d
install -m 644 nscd/nscd.conf %{glibc_sysroot}/etc
d8307d
mkdir -p %{glibc_sysroot}%{_tmpfilesdir}
d8307d
install -m 644 %{SOURCE4} %{buildroot}%{_tmpfilesdir}
d8307d
mkdir -p %{glibc_sysroot}/lib/systemd/system
d8307d
install -m 644 nscd/nscd.service nscd/nscd.socket %{glibc_sysroot}/lib/systemd/system
d8307d
%endif
d8307d
d8307d
# Include ld.so.conf
d8307d
echo 'include ld.so.conf.d/*.conf' > %{glibc_sysroot}/etc/ld.so.conf
d8307d
truncate -s 0 %{glibc_sysroot}/etc/ld.so.cache
d8307d
chmod 644 %{glibc_sysroot}/etc/ld.so.conf
d8307d
mkdir -p %{glibc_sysroot}/etc/ld.so.conf.d
d8307d
%ifnarch %{auxarches}
d8307d
mkdir -p %{glibc_sysroot}/etc/sysconfig
d8307d
truncate -s 0 %{glibc_sysroot}/etc/sysconfig/nscd
d8307d
truncate -s 0 %{glibc_sysroot}/etc/gai.conf
d8307d
%endif
d8307d
d8307d
# Include %{_libdir}/gconv/gconv-modules.cache
d8307d
truncate -s 0 %{glibc_sysroot}%{_libdir}/gconv/gconv-modules.cache
d8307d
chmod 644 %{glibc_sysroot}%{_libdir}/gconv/gconv-modules.cache
d8307d
d8307d
##############################################################################
d8307d
# Install debug copies of unstripped static libraries
d8307d
# - This step must be last in order to capture any additional static
d8307d
#   archives we might have added.
d8307d
##############################################################################
d8307d
d8307d
# If we are building a debug package then copy all of the static archives
d8307d
# into the debug directory to keep them as unstripped copies.
d8307d
%if 0%{?_enable_debug_packages}
d8307d
mkdir -p %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}
d8307d
cp -a %{glibc_sysroot}%{_libdir}/*.a \
d8307d
	%{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}/
d8307d
rm -f %{glibc_sysroot}%{_prefix}/lib/debug%{_libdir}/*_p.a
d8307d
%endif
d8307d
d8307d
# Remove any zoneinfo files; they are maintained by tzdata.
d8307d
rm -rf %{glibc_sysroot}%{_prefix}/share/zoneinfo
d8307d
d8307d
# Make sure %config files have the same timestamp across multilib packages.
d8307d
#
d8307d
# XXX: Ideally ld.so.conf should have the timestamp of the spec file, but there
d8307d
# doesn't seem to be any macro to give us that.  So we do the next best thing,
d8307d
# which is to at least keep the timestamp consistent. The choice of using
d8307d
# SOURCE0 is arbitrary.
d8307d
touch -r %{SOURCE0} %{glibc_sysroot}/etc/ld.so.conf
d8307d
touch -r sunrpc/etc.rpc %{glibc_sysroot}/etc/rpc
d8307d
d8307d
pushd build-%{target}
d8307d
$GCC -Os -g -static -o build-locale-archive %{SOURCE1} \
d8307d
	../build-%{target}/locale/locarchive.o \
d8307d
	../build-%{target}/locale/md5.o \
d8307d
	../build-%{target}/locale/record-status.o \
d8307d
	-I. -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \
d8307d
	-L../build-%{target} \
d8307d
	-B../build-%{target}/csu/ -lc -lc_nonshared
d8307d
install -m 700 build-locale-archive %{glibc_sysroot}%{_prefix}/sbin/build-locale-archive
d8307d
popd
d8307d
d8307d
# Lastly copy some additional documentation for the packages.
d8307d
rm -rf documentation
d8307d
mkdir documentation
d8307d
cp timezone/README documentation/README.timezone
d8307d
cp posix/gai.conf documentation/
d8307d
d8307d
%ifarch s390x
d8307d
# Compatibility symlink
d8307d
mkdir -p %{glibc_sysroot}/lib
d8307d
ln -sf /%{_lib}/ld64.so.1 %{glibc_sysroot}/lib/ld64.so.1
d8307d
%endif
d8307d
d8307d
%if %{with benchtests}
d8307d
# Build benchmark binaries.  Ignore the output of the benchmark runs.
d8307d
pushd build-%{target}
d8307d
make BENCH_DURATION=1 bench-build
d8307d
popd
d8307d
d8307d
# Copy over benchmark binaries.
d8307d
mkdir -p %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests
d8307d
cp $(find build-%{target}/benchtests -type f -executable) %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
d8307d
# ... and the makefile.
d8307d
for b in %{SOURCE9} %{SOURCE10}; do
d8307d
	cp $b %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
d8307d
done
d8307d
# .. and finally, the comparison scripts.
d8307d
cp benchtests/scripts/benchout.schema.json %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
d8307d
cp benchtests/scripts/compare_bench.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
d8307d
cp benchtests/scripts/import_bench.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
d8307d
cp benchtests/scripts/validate_benchout.py %{glibc_sysroot}%{_prefix}/libexec/glibc-benchtests/
d8307d
d8307d
%if 0%{?_enable_debug_packages}
d8307d
# The #line directives gperf generates do not give the proper
d8307d
# file name relative to the build directory.
d8307d
pushd locale
d8307d
ln -s programs/*.gperf .
d8307d
popd
d8307d
pushd iconv
d8307d
ln -s ../locale/programs/charmap-kw.gperf .
d8307d
popd
d8307d
d8307d
%if %{with docs}
d8307d
# Remove the `dir' info-heirarchy file which will be maintained
d8307d
# by the system as it adds info files to the install.
d8307d
rm -f %{glibc_sysroot}%{_infodir}/dir
d8307d
%endif
d8307d
d8307d
%ifnarch %{auxarches}
d8307d
mkdir -p %{glibc_sysroot}/var/{db,run}/nscd
d8307d
touch %{glibc_sysroot}/var/{db,run}/nscd/{passwd,group,hosts,services}
d8307d
touch %{glibc_sysroot}/var/run/nscd/{socket,nscd.pid}
d8307d
%endif
d8307d
d8307d
# Move libpcprofile.so and libmemusage.so into the proper library directory.
d8307d
# They can be moved without any real consequences because users would not use
d8307d
# them directly.
d8307d
mkdir -p %{glibc_sysroot}%{_libdir}
d8307d
mv -f %{glibc_sysroot}/%{_lib}/lib{pcprofile,memusage}.so \
d8307d
	%{glibc_sysroot}%{_libdir}
d8307d
d8307d
# Strip all of the installed object files.
d8307d
strip -g %{glibc_sysroot}%{_libdir}/*.o
d8307d
d8307d
###############################################################################
d8307d
# Rebuild libpthread.a using --whole-archive to ensure all of libpthread
d8307d
# is included in a static link. This prevents any problems when linking
d8307d
# statically, using parts of libpthread, and other necessary parts not
d8307d
# being included. Upstream has decided that this is the wrong approach to
d8307d
# this problem and that the full set of dependencies should be resolved
d8307d
# such that static linking works and produces the most minimally sized
d8307d
# static application possible.
d8307d
###############################################################################
d8307d
pushd %{glibc_sysroot}%{_prefix}/%{_lib}/
d8307d
$GCC -r -nostdlib -o libpthread.o -Wl,--whole-archive ./libpthread.a
d8307d
rm libpthread.a
d8307d
ar rcs libpthread.a libpthread.o
d8307d
rm libpthread.o
d8307d
popd
d8307d
d8307d
# The xtrace and memusage scripts have hard-coded paths that need to be
d8307d
# translated to a correct set of paths using the $LIB token which is
d8307d
# dynamically translated by ld.so as the default lib directory.
d8307d
for i in %{glibc_sysroot}%{_prefix}/bin/{xtrace,memusage}; do
d8307d
%if %{with bootstrap}
d8307d
  test -w $i || continue
d8307d
%endif
d8307d
  sed -e 's~=/%{_lib}/libpcprofile.so~=%{_libdir}/libpcprofile.so~' \
d8307d
      -e 's~=/%{_lib}/libmemusage.so~=%{_libdir}/libmemusage.so~' \
d8307d
      -e 's~='\''/\\\$LIB/libpcprofile.so~='\''%{_prefix}/\\$LIB/libpcprofile.so~' \
d8307d
      -e 's~='\''/\\\$LIB/libmemusage.so~='\''%{_prefix}/\\$LIB/libmemusage.so~' \
d8307d
      -i $i
d8307d
done
d8307d
d8307d
##############################################################################
d8307d
# Build an empty libpthread_nonshared.a for compatiliby with applications
d8307d
# that have old linker scripts that reference this file. We ship this only
d8307d
# in compat-libpthread-nonshared sub-package.
d8307d
##############################################################################
d8307d
ar cr %{glibc_sysroot}%{_prefix}/%{_lib}/libpthread_nonshared.a
d8307d
d8307d
##############################################################################
d8307d
# Beyond this point in the install process we no longer modify the set of
d8307d
# installed files, with one exception, for auxarches we cleanup the file list
d8307d
# at the end and remove files which we don't intend to ship. We need the file
d8307d
# list to effect a proper cleanup, and so it happens last.
d8307d
##############################################################################
d8307d
d8307d
##############################################################################
d8307d
# Build the file lists used for describing the package and subpackages.
d8307d
##############################################################################
d8307d
# There are several main file lists (and many more for
d8307d
# the langpack sub-packages (langpack-${lang}.filelist)):
d8307d
# * master.filelist
d8307d
#	- Master file list from which all other lists are built.
d8307d
# * glibc.filelist
d8307d
#	- Files for the glibc packages.
d8307d
# * common.filelist
d8307d
#	- Flies for the common subpackage.
d8307d
# * utils.filelist
d8307d
#	- Files for the utils subpackage.
d8307d
# * nscd.filelist
d8307d
#	- Files for the nscd subpackage.
d8307d
# * devel.filelist
d8307d
#	- Files for the devel subpackage.
d8307d
# * headers.filelist
d8307d
#	- Files for the headers subpackage.
d8307d
# * static.filelist
d8307d
#	- Files for the static subpackage.
d8307d
# * libnsl.filelist
d8307d
#       - Files for the libnsl subpackage
d8307d
# * nss_db.filelist
d8307d
# * nss_hesiod.filelist
d8307d
#       - File lists for nss_* NSS module subpackages.
d8307d
# * nss-devel.filelist
d8307d
#       - File list with the .so symbolic links for NSS packages.
d8307d
# * compat-libpthread-nonshared.filelist.
d8307d
#	- File list for compat-libpthread-nonshared subpackage.
d8307d
# * debuginfo.filelist
d8307d
#	- Files for the glibc debuginfo package.
d8307d
# * debuginfocommon.filelist
d8307d
#	- Files for the glibc common debuginfo package.
d8307d
#
d8307d
d8307d
# Create the main file lists. This way we can append to any one of them later
d8307d
# wihtout having to create it. Note these are removed at the start of the
d8307d
# install phase.
d8307d
touch master.filelist
d8307d
touch glibc.filelist
d8307d
touch common.filelist
d8307d
touch utils.filelist
d8307d
touch nscd.filelist
d8307d
touch devel.filelist
d8307d
touch headers.filelist
d8307d
touch static.filelist
d8307d
touch libnsl.filelist
d8307d
touch nss_db.filelist
d8307d
touch nss_hesiod.filelist
d8307d
touch nss-devel.filelist
d8307d
touch compat-libpthread-nonshared.filelist
d8307d
touch debuginfo.filelist
d8307d
touch debuginfocommon.filelist
d8307d
d8307d
###############################################################################
d8307d
# Master file list, excluding a few things.
d8307d
###############################################################################
d8307d
{
d8307d
  # List all files or links that we have created during install.
d8307d
  # Files with 'etc' are configuration files, likewise 'gconv-modules'
d8307d
  # and 'gconv-modules.cache' are caches, and we exclude them.
d8307d
  find %{glibc_sysroot} \( -type f -o -type l \) \
d8307d
       \( \
d8307d
	 -name etc -printf "%%%%config " -o \
d8307d
	 -name gconv-modules \
d8307d
	 -printf "%%%%verify(not md5 size mtime) %%%%config(noreplace) " -o \
d8307d
	 -name gconv-modules.cache \
d8307d
	 -printf "%%%%verify(not md5 size mtime) " \
d8307d
	 , \
d8307d
	 ! -path "*/lib/debug/*" -printf "/%%P\n" \)
d8307d
  # List all directories with a %%dir prefix.  We omit the info directory and
d8307d
  # all directories in (and including) /usr/share/locale.
d8307d
  find %{glibc_sysroot} -type d \
d8307d
       \( -path '*%{_prefix}/share/locale' -prune -o \
d8307d
       \( -path '*%{_prefix}/share/*' \
d8307d
%if %{with docs}
d8307d
	! -path '*%{_infodir}' -o \
d8307d
%endif
d8307d
	  -path "*%{_prefix}/include/*" \
d8307d
       \) -printf "%%%%dir /%%P\n" \)
d8307d
} | {
d8307d
  # Also remove the *.mo entries.  We will add them to the
d8307d
  # language specific sub-packages.
d8307d
  # libnss_ files go into subpackages related to NSS modules.
d8307d
  # and .*/share/i18n/charmaps/.*), they go into the sub-package
d8307d
  # "locale-source":
d8307d
  sed -e '\,.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo,d' \
d8307d
      -e '\,.*/share/i18n/locales/.*,d' \
d8307d
      -e '\,.*/share/i18n/charmaps/.*,d' \
d8307d
      -e '\,.*/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\|rpc\|gai\.conf\),d' \
d8307d
      -e '\,.*/%{_libdir}/lib\(pcprofile\|memusage\)\.so,d' \
d8307d
      -e '\,.*/bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d'
d8307d
} | sort > master.filelist
d8307d
d8307d
# The master file list is now used by each subpackage to list their own
d8307d
# files. We go through each package and subpackage now and create their lists.
d8307d
# Each subpackage picks the files from the master list that they need.
d8307d
# The order of the subpackage list generation does not matter.
d8307d
d8307d
# Make the master file list read-only after this point to avoid accidental
d8307d
# modification.
d8307d
chmod 0444 master.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc
d8307d
###############################################################################
d8307d
d8307d
# Add all files with the following exceptions:
d8307d
# - The info files '%{_infodir}/dir'
d8307d
# - The partial (lib*_p.a) static libraries, include files.
d8307d
# - The static files, objects, unversioned DSOs, and nscd.
d8307d
# - The bin, locale, some sbin, and share.
d8307d
#   - We want iconvconfig in the main package and we do this by using
d8307d
#     a double negation of -v and [^i] so it removes all files in
d8307d
#     sbin *but* iconvconfig.
d8307d
# - All the libnss files (we add back the ones we want later).
d8307d
# - All bench test binaries.
d8307d
# - The aux-cache, since it's handled specially in the files section.
d8307d
# - The build-locale-archive binary since it's in the common package.
d8307d
cat master.filelist \
d8307d
	| grep -v \
d8307d
	-e '%{_infodir}' \
d8307d
	-e '%{_libdir}/lib.*_p.a' \
d8307d
	-e '%{_prefix}/include' \
d8307d
	-e '%{_libdir}/lib.*\.a' \
d8307d
        -e '%{_libdir}/.*\.o' \
d8307d
	-e '%{_libdir}/lib.*\.so' \
d8307d
	-e 'nscd' \
d8307d
	-e '%{_prefix}/bin' \
d8307d
	-e '%{_prefix}/lib/locale' \
d8307d
	-e '%{_prefix}/sbin/[^i]' \
d8307d
	-e '%{_prefix}/share' \
d8307d
	-e '/var/db/Makefile' \
d8307d
	-e '/libnss_.*\.so[0-9.]*$' \
d8307d
	-e '/libnsl' \
d8307d
	-e 'glibc-benchtests' \
d8307d
	-e 'aux-cache' \
d8307d
	-e 'build-locale-archive' \
d8307d
	> glibc.filelist
d8307d
d8307d
# Add specific files:
d8307d
# - The nss_files, nss_compat, and nss_db files.
d8307d
# - The libmemusage.so and libpcprofile.so used by utils.
d8307d
for module in compat files dns; do
d8307d
    cat master.filelist \
d8307d
	| grep -E \
d8307d
	-e "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
d8307d
	>> glibc.filelist
d8307d
done
d8307d
grep -e "libmemusage.so" -e "libpcprofile.so" master.filelist >> glibc.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc-devel
d8307d
###############################################################################
d8307d
d8307d
%if %{with docs}
d8307d
# Put the info files into the devel file list, but exclude the generated dir.
d8307d
grep '%{_infodir}' master.filelist | grep -v '%{_infodir}/dir' > devel.filelist
d8307d
%endif
d8307d
d8307d
# Put some static files into the devel package.
d8307d
grep '%{_libdir}/lib.*\.a' master.filelist \
d8307d
  | grep '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \
d8307d
  >> devel.filelist
d8307d
d8307d
# Put all of the object files and *.so (not the versioned ones) into the
d8307d
# devel package.
d8307d
grep '%{_libdir}/.*\.o' < master.filelist >> devel.filelist
d8307d
grep '%{_libdir}/lib.*\.so' < master.filelist >> devel.filelist
d8307d
# The exceptions are:
d8307d
# - libmemusage.so and libpcprofile.so in glibc used by utils.
d8307d
# - libnss_*.so which are in nss-devel.
d8307d
sed -i -e '\,libmemusage.so,d' \
d8307d
	-e '\,libpcprofile.so,d' \
d8307d
	-e '\,/libnss_[a-z]*\.so$,d' \
d8307d
	devel.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc-headers
d8307d
###############################################################################
d8307d
d8307d
# The glibc-headers package includes only common files which are identical
d8307d
# across all multilib packages. We must keep gnu/stubs.h and gnu/lib-names.h
d8307d
# in the glibc-headers package, but the -32, -64, -64-v1, and -64-v2 versions
d8307d
# go into the development packages.
d8307d
grep '%{_prefix}/include/gnu/stubs-.*\.h$' < master.filelist >> devel.filelist || :
d8307d
grep '%{_prefix}/include/gnu/lib-names-.*\.h$' < master.filelist >> devel.filelist || :
d8307d
# Put the include files into headers file list.
d8307d
grep '%{_prefix}/include' < master.filelist \
d8307d
  | egrep -v '%{_prefix}/include/gnu/stubs-.*\.h$' \
d8307d
  | egrep -v '%{_prefix}/include/gnu/lib-names-.*\.h$' \
d8307d
  > headers.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc-static
d8307d
###############################################################################
d8307d
d8307d
# Put the rest of the static files into the static package.
d8307d
grep '%{_libdir}/lib.*\.a' < master.filelist \
d8307d
  | grep -v '/lib\(\(c\|pthread\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\)\.a$' \
d8307d
  > static.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc-common
d8307d
###############################################################################
d8307d
d8307d
# All of the bin and certain sbin files go into the common package except
d8307d
# iconvconfig which needs to go in glibc. Likewise nscd is excluded because
d8307d
# it goes in nscd. The iconvconfig binary is kept in the main glibc package
d8307d
# because we use it in the post-install scriptlet to rebuild the
d8307d
# gconv-modules.cache.
d8307d
grep '%{_prefix}/bin' master.filelist >> common.filelist
d8307d
grep '%{_prefix}/sbin' master.filelist \
d8307d
	| grep -v '%{_prefix}/sbin/iconvconfig' \
d8307d
	| grep -v 'nscd' >> common.filelist
d8307d
# All of the files under share go into the common package since they should be
d8307d
# multilib-independent.
d8307d
# Exceptions:
d8307d
# - The actual share directory, not owned by us.
d8307d
# - The info files which go in devel, and the info directory.
d8307d
grep '%{_prefix}/share' master.filelist \
d8307d
	| grep -v \
d8307d
	-e '%{_prefix}/share/info/libc.info.*' \
d8307d
	-e '%%dir %{prefix}/share/info' \
d8307d
	-e '%%dir %{prefix}/share' \
d8307d
	>> common.filelist
d8307d
d8307d
# Add the binary to build locales to the common subpackage.
d8307d
echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
d8307d
d8307d
###############################################################################
d8307d
# nscd
d8307d
###############################################################################
d8307d
d8307d
# The nscd binary must go into the nscd subpackage.
d8307d
echo '%{_prefix}/sbin/nscd' > nscd.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc-utils
d8307d
###############################################################################
d8307d
d8307d
# Add the utils scripts and programs to the utils subpackage.
d8307d
cat > utils.filelist <
d8307d
%if %{without bootstrap}
d8307d
%{_prefix}/bin/memusage
d8307d
%{_prefix}/bin/memusagestat
d8307d
%endif
d8307d
%{_prefix}/bin/mtrace
d8307d
%{_prefix}/bin/pcprofiledump
d8307d
%{_prefix}/bin/xtrace
d8307d
EOF
d8307d
d8307d
###############################################################################
d8307d
# nss_db, nss_hesiod
d8307d
###############################################################################
d8307d
d8307d
# Move the NSS-related files to the NSS subpackages.  Be careful not
d8307d
# to pick up .debug files, and the -devel symbolic links.
d8307d
for module in db hesiod; do
d8307d
  grep -E "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
d8307d
    master.filelist > nss_$module.filelist
d8307d
done
d8307d
d8307d
###############################################################################
d8307d
# nss-devel
d8307d
###############################################################################
d8307d
d8307d
# Symlinks go into the nss-devel package (instead of the main devel
d8307d
# package).
d8307d
grep '/libnss_[a-z]*\.so$' master.filelist > nss-devel.filelist
d8307d
d8307d
###############################################################################
d8307d
# libnsl
d8307d
###############################################################################
d8307d
d8307d
# Prepare the libnsl-related file lists.
d8307d
grep '/libnsl-[0-9.]*.so$' master.filelist > libnsl.filelist
d8307d
test $(wc -l < libnsl.filelist) -eq 1
d8307d
d8307d
###############################################################################
d8307d
# glibc-benchtests
d8307d
###############################################################################
d8307d
d8307d
# List of benchmarks.
d8307d
find build-%{target}/benchtests -type f -executable | while read b; do
d8307d
	echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)"
d8307d
done >> benchtests.filelist
d8307d
# ... and the makefile.
d8307d
for b in %{SOURCE9} %{SOURCE10}; do
d8307d
	echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)" >> benchtests.filelist
d8307d
done
d8307d
# ... and finally, the comparison scripts.
d8307d
echo "%{_prefix}/libexec/glibc-benchtests/benchout.schema.json" >> benchtests.filelist
d8307d
echo "%{_prefix}/libexec/glibc-benchtests/compare_bench.py*" >> benchtests.filelist
d8307d
echo "%{_prefix}/libexec/glibc-benchtests/import_bench.py*" >> benchtests.filelist
d8307d
echo "%{_prefix}/libexec/glibc-benchtests/validate_benchout.py*" >> benchtests.filelist
d8307d
%endif
d8307d
d8307d
###############################################################################
d8307d
# compat-libpthread-nonshared
d8307d
###############################################################################
d8307d
echo "%{_libdir}/libpthread_nonshared.a" >> compat-libpthread-nonshared.filelist
d8307d
d8307d
###############################################################################
d8307d
# glibc-debuginfocommon, and glibc-debuginfo
d8307d
###############################################################################
d8307d
d8307d
find_debuginfo_args='--strict-build-id -g -i'
d8307d
%ifarch %{debuginfocommonarches}
d8307d
find_debuginfo_args="$find_debuginfo_args \
d8307d
	-l common.filelist \
d8307d
	-l utils.filelist \
d8307d
	-l nscd.filelist \
d8307d
	-p '.*/(sbin|libexec)/.*' \
d8307d
	-o debuginfocommon.filelist \
d8307d
	-l nss_db.filelist -l nss_hesiod.filelist \
d8307d
	-l libnsl.filelist -l glibc.filelist \
d8307d
%if %{with benchtests}
d8307d
	-l benchtests.filelist
d8307d
%endif
d8307d
	"
d8307d
%endif
d8307d
d8307d
/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
d8307d
d8307d
# List all of the *.a archives in the debug directory.
d8307d
list_debug_archives()
d8307d
{
d8307d
	local dir=%{_prefix}/lib/debug%{_libdir}
d8307d
	find %{glibc_sysroot}$dir -name "*.a" -printf "$dir/%%P\n"
d8307d
}
d8307d
d8307d
%ifarch %{debuginfocommonarches}
d8307d
d8307d
# Remove the source files from the common package debuginfo.
d8307d
sed -i '\#^%{glibc_sysroot}%{_prefix}/src/debug/#d' debuginfocommon.filelist
d8307d
d8307d
# Create a list of all of the source files we copied to the debug directory.
d8307d
find %{glibc_sysroot}%{_prefix}/src/debug \
d8307d
     \( -type d -printf '%%%%dir ' \) , \
d8307d
     -printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources
d8307d
d8307d
%ifarch %{biarcharches}
d8307d
d8307d
# Add the source files to the core debuginfo package.
d8307d
cat debuginfocommon.sources >> debuginfo.filelist
d8307d
d8307d
%else
d8307d
d8307d
%ifarch %{ix86}
d8307d
%define basearch i686
d8307d
%endif
d8307d
%ifarch sparc sparcv9
d8307d
%define basearch sparc
d8307d
%endif
d8307d
d8307d
# The auxarches get only these few source files.
d8307d
auxarches_debugsources=\
d8307d
'/(generic|linux|%{basearch}|nptl(_db)?)/|/%{glibcsrcdir}/build|/dl-osinfo\.h'
d8307d
d8307d
# Place the source files into the core debuginfo pakcage.
d8307d
egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist
d8307d
d8307d
# Remove the source files from the common debuginfo package.
d8307d
egrep -v "$auxarches_debugsources" \
d8307d
  debuginfocommon.sources >> debuginfocommon.filelist
d8307d
d8307d
%endif # %{biarcharches}
d8307d
d8307d
# Add the list of *.a archives in the debug directory to
d8307d
# the common debuginfo package.
d8307d
list_debug_archives >> debuginfocommon.filelist
d8307d
d8307d
%endif # %{debuginfocommonarches}
d8307d
d8307d
# Remove some common directories from the common package debuginfo so that we
d8307d
# don't end up owning them.
d8307d
exclude_common_dirs()
d8307d
{
d8307d
	exclude_dirs="%{_prefix}/src/debug"
d8307d
	exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug{,/%{_lib},/bin,/sbin})"
d8307d
	exclude_dirs="$exclude_dirs $(echo %{_prefix}/lib/debug%{_prefix}{,/%{_lib},/libexec,/bin,/sbin})"
d8307d
d8307d
	for d in $(echo $exclude_dirs | sed 's/ /\n/g'); do
d8307d
		sed -i "\|^%%dir $d/\?$|d" $1
d8307d
	done
d8307d
}
d8307d
d8307d
%ifarch %{debuginfocommonarches}
d8307d
exclude_common_dirs debuginfocommon.filelist
d8307d
%endif
d8307d
exclude_common_dirs debuginfo.filelist
d8307d
d8307d
%endif # 0%{?_enable_debug_packages}
d8307d
d8307d
##############################################################################
d8307d
# Delete files that we do not intended to ship with the auxarch.
d8307d
# This is the only place where we touch the installed files after generating
d8307d
# the file lists.
d8307d
##############################################################################
d8307d
%ifarch %{auxarches}
d8307d
echo Cutting down the list of unpackaged files
d8307d
sed -e '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //;s#^/*##' \
d8307d
	common.filelist devel.filelist static.filelist headers.filelist \
d8307d
	utils.filelist nscd.filelist \
d8307d
%ifarch %{debuginfocommonarches}
d8307d
	debuginfocommon.filelist \
d8307d
%endif
d8307d
	| (cd %{glibc_sysroot}; xargs --no-run-if-empty rm -f 2> /dev/null || :)
d8307d
%endif # %{auxarches}
d8307d
d8307d
##############################################################################
d8307d
# Run the glibc testsuite
d8307d
##############################################################################
d8307d
%check
d8307d
%if %{with testsuite}
d8307d
d8307d
# Run the glibc tests. If any tests fail to build we exit %check with
d8307d
# an error, otherwise we print the test failure list and the failed
d8307d
# test output and continue.  Write to standard error to avoid
d8307d
# synchronization issues with make and shell tracing output if
d8307d
# standard output and standard error are different pipes.
d8307d
run_tests () {
d8307d
  # This hides a test suite build failure, which should be fatal.  We
d8307d
  # check "Summary of test results:" below to verify that all tests
d8307d
  # were built and run.
d8307d
  make %{?_smp_mflags} -O check |& tee rpmbuild.check.log >&2
d8307d
  test -n tests.sum
d8307d
  if ! grep -q '^Summary of test results:$' rpmbuild.check.log ; then
d8307d
    echo "FAIL: test suite build of target: $(basename "$(pwd)")" >& 2
d8307d
    exit 1
d8307d
  fi
d8307d
  set +x
d8307d
  grep -v ^PASS: tests.sum > rpmbuild.tests.sum.not-passing || true
d8307d
  if test -n rpmbuild.tests.sum.not-passing ; then
d8307d
    echo ===================FAILED TESTS===================== >&2
d8307d
    echo "Target: $(basename "$(pwd)")" >& 2
d8307d
    cat rpmbuild.tests.sum.not-passing >&2
d8307d
    while read failed_code failed_test ; do
d8307d
      for suffix in out test-result ; do
d8307d
        if test -e "$failed_test.$suffix"; then
d8307d
	  echo >&2
d8307d
          echo "=====$failed_code $failed_test.$suffix=====" >&2
d8307d
          cat -- "$failed_test.$suffix" >&2
d8307d
	  echo >&2
d8307d
        fi
d8307d
      done
d8307d
    done 
d8307d
  fi
d8307d
d8307d
  # Unconditonally dump differences in the system call list.
d8307d
  echo "* System call consistency checks:" >&2
d8307d
  cat misc/tst-syscall-list.out >&2
d8307d
  set -x
d8307d
}
d8307d
d8307d
# Increase timeouts
d8307d
export TIMEOUTFACTOR=16
d8307d
parent=$$
d8307d
echo ====================TESTING=========================
d8307d
d8307d
# Default libraries.
d8307d
pushd build-%{target}
d8307d
run_tests
d8307d
popd
d8307d
d8307d
%if %{buildpower9}
d8307d
echo ====================TESTING -mcpu=power9=============
d8307d
pushd build-%{target}-power9
d8307d
run_tests
d8307d
popd
d8307d
%endif
d8307d
d8307d
d8307d
d8307d
echo ====================TESTING END=====================
d8307d
PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p'
d8307d
echo ====================PLT RELOCS LD.SO================
d8307d
readelf -Wr %{glibc_sysroot}/%{_lib}/ld-*.so | sed -n -e "$PLTCMD"
d8307d
echo ====================PLT RELOCS LIBC.SO==============
d8307d
readelf -Wr %{glibc_sysroot}/%{_lib}/libc-*.so | sed -n -e "$PLTCMD"
d8307d
echo ====================PLT RELOCS END==================
d8307d
d8307d
# Finally, check if valgrind runs with the new glibc.
d8307d
# We want to fail building if valgrind is not able to run with this glibc so
d8307d
# that we can then coordinate with valgrind to get it fixed before we update
d8307d
# glibc.
d8307d
pushd build-%{target}
d8307d
d8307d
# Show the auxiliary vector as seen by the new library
d8307d
# (even if we do not perform the valgrind test).
d8307d
LD_SHOW_AUXV=1 elf/ld.so --library-path .:elf:nptl:dlfcn /bin/true
d8307d
d8307d
%if %{with valgrind}
d8307d
elf/ld.so --library-path .:elf:nptl:dlfcn \
d8307d
	/usr/bin/valgrind --error-exitcode=1 \
d8307d
	elf/ld.so --library-path .:elf:nptl:dlfcn /usr/bin/true
d8307d
%endif
d8307d
popd
d8307d
d8307d
%endif # %{run_glibc_tests}
d8307d
d8307d
d8307d
%pre -p <lua>
d8307d
-- Check that the running kernel is new enough
d8307d
required = '%{enablekernel}'
d8307d
rel = posix.uname("%r")
d8307d
if rpm.vercmp(rel, required) < 0 then
d8307d
  error("FATAL: kernel too old", 0)
d8307d
end
d8307d
d8307d
%post -p <lua>
d8307d
-- We use lua's posix.exec because there may be no shell that we can
d8307d
-- run during glibc upgrade.
d8307d
function post_exec (program, ...)
d8307d
  local pid = posix.fork ()
d8307d
  if pid == 0 then
d8307d
    assert (posix.exec (program, ...))
d8307d
  elseif pid > 0 then
d8307d
    posix.wait (pid)
d8307d
  end
d8307d
end
d8307d
d8307d
-- (1) Remove multilib libraries from previous installs.
d8307d
-- In order to support in-place upgrades, we must immediately remove
d8307d
-- obsolete platform directories after installing a new glibc
d8307d
-- version.  RPM only deletes files removed by updates near the end
d8307d
-- of the transaction.  If we did not remove the obsolete platform
d8307d
-- directories here, they may be preferred by the dynamic linker
d8307d
-- during the execution of subsequent RPM scriptlets, likely
d8307d
-- resulting in process startup failures.
d8307d
d8307d
-- Full set of libraries glibc may install.
d8307d
install_libs = { "anl", "BrokenLocale", "c", "dl", "m", "mvec",
d8307d
		 "nss_compat", "nss_db", "nss_dns", "nss_files",
d8307d
		 "nss_hesiod", "pthread", "resolv", "rt", "SegFault",
d8307d
		 "thread_db", "util" }
d8307d
d8307d
-- We are going to remove these libraries. Generally speaking we remove
d8307d
-- all core libraries in the multilib directory.
d8307d
-- We employ a tight match where X.Y is in [2.0,9.9*], so we would
d8307d
-- match "libc-2.0.so" and so on up to "libc-9.9*".
d8307d
remove_regexps = {}
d8307d
for i = 1, #install_libs do
d8307d
  remove_regexps[i] = ("lib" .. install_libs[i]
d8307d
                       .. "%%-[2-9]%%.[0-9]+%%.so$")
d8307d
end
d8307d
d8307d
-- Two exceptions:
d8307d
remove_regexps[#install_libs + 1] = "libthread_db%%-1%%.0%%.so"
d8307d
remove_regexps[#install_libs + 2] = "libSegFault%%.so"
d8307d
d8307d
-- We are going to search these directories.
d8307d
local remove_dirs = { "%{_libdir}/i686",
d8307d
		      "%{_libdir}/i686/nosegneg",
d8307d
		      "%{_libdir}/power6",
d8307d
		      "%{_libdir}/power7",
d8307d
		      "%{_libdir}/power8" }
d8307d
d8307d
-- Walk all the directories with files we need to remove...
d8307d
for _, rdir in ipairs (remove_dirs) do
d8307d
  if posix.access (rdir) then
d8307d
    -- If the directory exists we look at all the files...
d8307d
    local remove_files = posix.files (rdir)
d8307d
    for rfile in remove_files do
d8307d
      for _, rregexp in ipairs (remove_regexps) do
d8307d
	-- Does it match the regexp?
d8307d
	local dso = string.match (rfile, rregexp)
d8307d
        if (dso ~= nil) then
d8307d
	  -- Removing file...
d8307d
	  os.remove (rdir .. '/' .. rfile)
d8307d
	end
d8307d
      end
d8307d
    end
d8307d
  end
d8307d
end
d8307d
d8307d
-- (2) Update /etc/ld.so.conf
d8307d
-- Next we update /etc/ld.so.conf to ensure that it starts with
d8307d
-- a literal "include ld.so.conf.d/*.conf".
d8307d
d8307d
local ldsoconf = "/etc/ld.so.conf"
d8307d
local ldsoconf_tmp = "/etc/glibc_post_upgrade.ld.so.conf"
d8307d
d8307d
if posix.access (ldsoconf) then
d8307d
d8307d
  -- We must have a "include ld.so.conf.d/*.conf" line.
d8307d
  local have_include = false
d8307d
  for line in io.lines (ldsoconf) do
d8307d
    -- This must match, and we don't ignore whitespace.
d8307d
    if string.match (line, "^include ld.so.conf.d/%%*%%.conf$") ~= nil then
d8307d
      have_include = true
d8307d
    end
d8307d
  end
d8307d
d8307d
  if not have_include then
d8307d
    -- Insert "include ld.so.conf.d/*.conf" line at the start of the
d8307d
    -- file. We only support one of these post upgrades running at
d8307d
    -- a time (temporary file name is fixed).
d8307d
    local tmp_fd = io.open (ldsoconf_tmp, "w")
d8307d
    if tmp_fd ~= nil then
d8307d
      tmp_fd:write ("include ld.so.conf.d/*.conf\n")
d8307d
      for line in io.lines (ldsoconf) do
d8307d
        tmp_fd:write (line .. "\n")
d8307d
      end
d8307d
      tmp_fd:close ()
d8307d
      local res = os.rename (ldsoconf_tmp, ldsoconf)
d8307d
      if res == nil then
d8307d
        io.stdout:write ("Error: Unable to update configuration file (rename).\n")
d8307d
      end
d8307d
    else
d8307d
      io.stdout:write ("Error: Unable to update configuration file (open).\n")
d8307d
    end
d8307d
  end
d8307d
end
d8307d
d8307d
-- (3) Rebuild ld.so.cache early.
d8307d
-- If the format of the cache changes then we need to rebuild
d8307d
-- the cache early to avoid any problems running binaries with
d8307d
-- the new glibc.
d8307d
d8307d
-- Note: We use _prefix because Fedora's UsrMove says so.
d8307d
post_exec ("%{_prefix}/sbin/ldconfig")
d8307d
d8307d
-- (4) Update gconv modules cache.
d8307d
-- If the /usr/lib/gconv/gconv-modules.cache exists, then update it
d8307d
-- with the latest set of modules that were just installed.
d8307d
-- We assume that the cache is in _libdir/gconv and called
d8307d
-- "gconv-modules.cache".
d8307d
d8307d
local iconv_dir = "%{_libdir}/gconv"
d8307d
local iconv_cache = iconv_dir .. "/gconv-modules.cache"
d8307d
if (posix.utime (iconv_cache) == 0) then
d8307d
  post_exec ("%{_prefix}/sbin/iconvconfig",
d8307d
	     "-o", iconv_cache,
d8307d
	     "--nostdlib",
d8307d
	     iconv_dir)
d8307d
else
d8307d
  io.stdout:write ("Error: Missing " .. iconv_cache .. " file.\n")
d8307d
end
d8307d
d8307d
%posttrans all-langpacks -e -p <lua>
d8307d
-- If at the end of the transaction we are still installed
d8307d
-- (have a template of non-zero size), then we rebuild the
d8307d
-- locale cache (locale-archive) from the pre-populated
d8307d
-- locale cache (locale-archive.tmpl) i.e. template.
d8307d
if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
d8307d
  pid = posix.fork()
d8307d
  if pid == 0 then
d8307d
    posix.exec("%{_prefix}/sbin/build-locale-archive", "--install-langs", "%%{_install_langs}")
d8307d
  elseif pid > 0 then
d8307d
    posix.wait(pid)
d8307d
  end
d8307d
end
d8307d
d8307d
%postun all-langpacks -p <lua>
d8307d
-- In the postun we remove the locale cache if unstalling.
d8307d
-- (build-locale-archive will delete the archive during an upgrade.)
d8307d
if arg[2] == 0 then
d8307d
  os.remove("%{_prefix}/lib/locale/locale-archive")
d8307d
end
d8307d
d8307d
%if %{with docs}
d8307d
%post devel
d8307d
/sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
d8307d
%endif
d8307d
d8307d
%pre headers
d8307d
# this used to be a link and it is causing nightmares now
d8307d
if [ -L %{_prefix}/include/scsi ] ; then
d8307d
  rm -f %{_prefix}/include/scsi
d8307d
fi
d8307d
d8307d
%if %{with docs}
d8307d
%preun devel
d8307d
if [ "$1" = 0 ]; then
d8307d
  /sbin/install-info --delete %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
d8307d
fi
d8307d
%endif
d8307d
d8307d
%pre -n nscd
d8307d
getent group nscd >/dev/null || /usr/sbin/groupadd -g 28 -r nscd
d8307d
getent passwd nscd >/dev/null ||
d8307d
  /usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
d8307d
		    -c "NSCD Daemon" -u 28 -g nscd nscd
d8307d
d8307d
%post -n nscd
d8307d
%systemd_post nscd.service
d8307d
d8307d
%preun -n nscd
d8307d
%systemd_preun nscd.service
d8307d
d8307d
%postun -n nscd
d8307d
if test $1 = 0; then
d8307d
  /usr/sbin/userdel nscd > /dev/null 2>&1 || :
d8307d
fi
d8307d
%systemd_postun_with_restart nscd.service
d8307d
d8307d
%files -f glibc.filelist
d8307d
%dir %{_prefix}/%{_lib}/audit
d8307d
%if %{buildpower9}
d8307d
%dir /%{_lib}/power9
d8307d
%endif
d8307d
%ifarch s390x
d8307d
/lib/ld64.so.1
d8307d
%endif
d8307d
%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
d8307d
%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
d8307d
%verify(not md5 size mtime) %config(noreplace) /etc/rpc
d8307d
%dir /etc/ld.so.conf.d
d8307d
%dir %{_prefix}/libexec/getconf
d8307d
%dir %{_libdir}/gconv
d8307d
%dir %attr(0700,root,root) /var/cache/ldconfig
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache
d8307d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
d8307d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf
d8307d
%doc README NEWS INSTALL elf/rtld-debugger-interface.txt
d8307d
# If rpm doesn't support %license, then use %doc instead.
d8307d
%{!?_licensedir:%global license %%doc}
d8307d
%license COPYING COPYING.LIB LICENSES
d8307d
d8307d
%ifnarch %{auxarches}
d8307d
%files -f common.filelist common
d8307d
%dir %{_prefix}/lib/locale
d8307d
%dir %{_prefix}/lib/locale/C.utf8
d8307d
%{_prefix}/lib/locale/C.utf8/*
d8307d
%doc documentation/README.timezone
d8307d
%doc documentation/gai.conf
d8307d
d8307d
%files all-langpacks
d8307d
%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl
d8307d
%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %{_prefix}/lib/locale/locale-archive
d8307d
d8307d
%files locale-source
d8307d
%dir %{_prefix}/share/i18n/locales
d8307d
%{_prefix}/share/i18n/locales/*
d8307d
%dir %{_prefix}/share/i18n/charmaps
d8307d
%{_prefix}/share/i18n/charmaps/*
d8307d
d8307d
%files -f devel.filelist devel
d8307d
d8307d
%files -f static.filelist static
d8307d
d8307d
%files -f headers.filelist headers
d8307d
d8307d
%files -f utils.filelist utils
d8307d
d8307d
%files -f nscd.filelist -n nscd
d8307d
%config(noreplace) /etc/nscd.conf
d8307d
%dir %attr(0755,root,root) /var/run/nscd
d8307d
%dir %attr(0755,root,root) /var/db/nscd
d8307d
/lib/systemd/system/nscd.service
d8307d
/lib/systemd/system/nscd.socket
d8307d
%{_tmpfilesdir}/nscd.conf
d8307d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid
d8307d
%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/services
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/passwd
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/group
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/hosts
d8307d
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/services
d8307d
%ghost %config(missingok,noreplace) /etc/sysconfig/nscd
d8307d
%endif
d8307d
d8307d
%files -f nss_db.filelist -n nss_db
d8307d
/var/db/Makefile
d8307d
%files -f nss_hesiod.filelist -n nss_hesiod
d8307d
%doc hesiod/README.hesiod
d8307d
%files -f nss-devel.filelist nss-devel
d8307d
d8307d
%files -f libnsl.filelist -n libnsl
d8307d
/%{_lib}/libnsl.so.1
d8307d
d8307d
%if 0%{?_enable_debug_packages}
d8307d
%files debuginfo -f debuginfo.filelist
d8307d
%ifarch %{debuginfocommonarches}
d8307d
%ifnarch %{auxarches}
d8307d
%files debuginfo-common -f debuginfocommon.filelist
d8307d
%endif
d8307d
%endif
d8307d
%endif
d8307d
d8307d
%if %{with benchtests}
d8307d
%files benchtests -f benchtests.filelist
d8307d
%endif
d8307d
d8307d
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
d8307d
d8307d
%changelog
981dc9
* Thu Apr 23 2020 Florian Weimer <fweimer@redhat.com> - 2.28-123
981dc9
- Reduce IFUNC resolver usage in libpthread and librt (#1748197)
981dc9
981dc9
* Thu Apr  9 2020 DJ Delorie <dj@redhat.com> - 2.28-122
981dc9
- Math library optimizations for IBM Z (#1780204)
981dc9
- Additional patch for s_nearbyint.c
981dc9
7c0489
* Wed Apr  8 2020 Florian Weimer <fweimer@redhat.com> - 2.28-121
7c0489
- elf: Assign TLS modid later during dlopen (#1774115)
7c0489
7c0489
* Wed Apr  8 2020 Florian Weimer <fweimer@redhat.com> - 2.28-120
7c0489
- x86-64: Automatically install nss_db.i686 for 32-bit environments (#1807824)
7c0489
7c0489
* Tue Apr  7 2020 Florian Weimer <fweimer@redhat.com> - 2.28-119
7c0489
- ppc64le: Enable protection key support (#1642150)
7c0489
7c0489
* Tue Apr  7 2020 Florian Weimer <fweimer@redhat.com> - 2.28-118
7c0489
- ppc64le: floating-point status and exception optimizations (#1783303)
7c0489
7c0489
* Fri Apr  3 2020 Patsy Griffin <patsy@redhat.com> - 2.28-117
7c0489
- Update to Linux 5.6 syscall-names.list. (#1810224)
7c0489
7c0489
* Fri Apr  3 2020 Patsy Griffin <patsy@redhat.com> - 2.28-116
7c0489
- CVE-2020-1751: Fix an array overflow in backtrace on PowerPC. (#1813399)
7c0489
7c0489
* Fri Apr  3 2020 Patsy Griffin <patsy@redhat.com> - 2.28-115
7c0489
- CVE:2020-1752: Fix a use after free in glob when expanding ~user. (#1813398)
7c0489
7c0489
* Fri Apr  3 2020 Patsy Griffin <patsy@redhat.com> - 2.28-114
7c0489
- CVE-2020-10029: Prevent stack corruption from crafted input in cosl, sinl,
7c0489
  sincosl, and tanl function. (#1811796)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-113
7c0489
- Improve elf/ and nptl/ testsuites (#1810223)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-112
7c0489
- Fix resource leak in getaddrinfo (#1810146)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-111
7c0489
- Protect locale archive against corruption (#1784525)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-110
7c0489
- Properly handle signed vs. unsigned values in mallopt (#1784520)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-109
7c0489
- Update and harmonize locale names with CLDR (#1757354)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-108
7c0489
- Fix filter and auxiliary filter implementation (#1812756)
7c0489
7c0489
* Thu Apr  2 2020 Carlos O'Donell <carlos@redhat.com> - 2.28-107
7c0489
- Handle .dynstr located in separate segment (#1774114)
7c0489
7c0489
* Fri Mar 27 2020 Patsy Griffin <patsy@redhat.com> - 2.28-106
7c0489
- Disable vtable validation for pre-2.1 interposed handles (#1775819)
7c0489
7c0489
* Fri Mar 27 2020 Patsy Griffin <patsy@redhat.com> - 2.28-105
7c0489
- Define __CORRECT_ISO_CPP_STRING_H_PROTO for Clang. (#1784519)
7c0489
7c0489
* Wed Mar 25 2020 DJ Delorie <dj@redhat.com> - 2.28-104
7c0489
- Math library optimizations for IBM Z (#1780204)
7c0489
7c0489
* Wed Mar 25 2020 DJ Delorie <dj@redhat.com> - 2.28-103
7c0489
- Filter "ignore" autofs mount entries in getmntent (#1743445)
7c0489
7c0489
* Wed Mar 25 2020 DJ Delorie <dj@redhat.com> - 2.28-102
7c0489
- Fix /etc/resolv.conf reloading defects (#1810142)
7c0489
d8307d
* Thu Jan 16 2020 Florian Weimer <fweimer@redhat.com> - 2.28-101
d8307d
- ld.so: Reset GL (dl_initfirst) pointer on dlopen failure (#1410154)
d8307d
d8307d
* Fri Dec 13 2019 Florian Weimer <fweimer@redhat.com> - 2.28-100
d8307d
- Roll back dynamic linker state on dlopen failure (#1410154)
d8307d
d8307d
* Wed Nov 27 2019 Florian Weimer <fweimer@redhat.com> - 2.28-99
d8307d
- s390x: Fix z15 strstr for patterns crossing pages (#1777241)
d8307d
d8307d
* Wed Nov 27 2019 Florian Weimer <fweimer@redhat.com> - 2.28-98
d8307d
- Rebuild with new rpm (#1654901)
d8307d
d8307d
* Fri Nov 22 2019 Florian Weimer <fweimer@redhat.com> - 2.28-97
d8307d
- Avoid invalid __has_include in <sys/stat.h> (#1775294)
d8307d
d8307d
* Fri Nov 22 2019 Florian Weimer <fweimer@redhat.com> - 2.28-96
d8307d
- x86-64: Ignore LD_PREFER_MAP_32BIT_EXEC in SUID binaries (#1774021)
d8307d
d8307d
* Thu Nov 14 2019 DJ Delorie <dj@redhat.com> - 2.28-95
d8307d
- Fix alignment of TLS variables for tls variant TLS_TCB_AT_TP (#1764214)
d8307d
d8307d
* Thu Nov 14 2019 DJ Delorie <dj@redhat.com> - 2.28-94
d8307d
- Refuse to dlopen PIE objects (#1764223)
d8307d
d8307d
* Thu Nov 14 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-93
d8307d
- Fix C.UTF-8 locale source ellipsis expressions (#1361965)
d8307d
d8307d
* Thu Nov 14 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-92
d8307d
- Fix hangs during malloc tracing (#1764235)
d8307d
d8307d
* Thu Nov 14 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-91
d8307d
- Support moving versioned symbols between sonames (#1764231)
d8307d
d8307d
* Wed Nov 13 2019 Florian Weimer <fweimer@redhat.com> - 2.28-90
d8307d
- Avoid creating stale utmp entries for repeated pututxline (#1749439)
d8307d
d8307d
* Wed Nov  6 2019 Florian Weimer <fweimer@redhat.com> - 2.28-89
d8307d
- Backport more precise tokenizer for installed headers test (#1769304)
d8307d
d8307d
* Wed Nov  6 2019 Florian Weimer <fweimer@redhat.com> - 2.28-88
d8307d
- math: Enable some math builtins for clang in LLVM Toolset (#1764242)
d8307d
d8307d
* Wed Nov  6 2019 Florian Weimer <fweimer@redhat.com> - 2.28-87
d8307d
- Support Fortran vectorized math functions with GCC Toolset 9 (#1764238)
d8307d
d8307d
* Wed Nov  6 2019 Florian Weimer <fweimer@redhat.com> - 2.28-86
d8307d
- aarch64: Support STO_AARCH64_VARIANT_PCS, DT_AARCH64_VARIANT_PCS (#1726638)
d8307d
d8307d
* Mon Nov  4 2019 DJ Delorie <dj@redhat.com> - 2.28-85
d8307d
- Add more test-in-container support (#1747502)
d8307d
d8307d
* Fri Nov  1 2019 DJ Delorie <dj@redhat.com> - 2.28-84
d8307d
- Fix calling getpwent after endpwent (#1747502)
d8307d
d8307d
* Fri Nov  1 2019 DJ Delorie <dj@redhat.com> - 2.28-83
d8307d
- nptl: Avoid fork handler lock for async-signal-safe fork (#1746928)
d8307d
d8307d
* Thu Oct 31 2019 DJ Delorie <dj@redhat.com> - 2.28-82
d8307d
- Call _dl_open_check after relocation (#1682954)
d8307d
d8307d
* Thu Oct 31 2019 Arjun Shankar <arjun@redhat.com> - 2.28-81
d8307d
- Add malloc fastbin tunable (#1764218)
d8307d
d8307d
* Thu Oct 31 2019 Arjun Shankar <arjun@redhat.com> - 2.28-80
d8307d
- Fix race condition in tst-clone3 and add a new ldconfig test,
d8307d
  tst-ldconfig-bad-aux-cache (#1764226)
d8307d
d8307d
* Thu Oct 31 2019 Arjun Shankar <arjun@redhat.com> - 2.28-79
d8307d
- Remove unwanted whitespace from size lines and account for top chunk in
d8307d
  malloc_info output (#1735747)
d8307d
d8307d
* Wed Oct 30 2019 Arjun Shankar <arjun@redhat.com> - 2.28-78
d8307d
- Enhance malloc tcache (#1746933)
d8307d
d8307d
* Tue Oct 29 2019 Patsy Griffin <patsy@redhat.com> - 2.28-77
d8307d
- Don't define initgroups in nsswitch.conf (#1747505)
d8307d
d8307d
* Mon Oct 28 2019 Patsy Griffin <patsy@redhat.com> - 2.28-76
d8307d
- libio: Remove codecvt vtable. (#1764241)
d8307d
d8307d
* Mon Oct 28 2019 Patsy Griffin <patsy@redhat.com> - 2.28-75
d8307d
- Implement --preload option for the dynamic linker.(#1747453)
d8307d
d8307d
* Mon Oct 28 2019 Patsy Griffin <patsy@redhat.com> - 2.28-74
d8307d
- Make nsswitch.conf more distribution friendly.
d8307d
  Improve nscd.conf comments.  (#1747505)
d8307d
d8307d
* Fri Oct 25 2019 Patsy Griffin <patsy@redhat.com> - 2.28-73
d8307d
- Update system call names list to Linux 5.3 (#1764234)
d8307d
d8307d
* Mon Jul 22 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-72
d8307d
- Skip wide buffer handling for legacy stdio handles (#1722215)
d8307d
d8307d
* Mon Jul 22 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-71
d8307d
- Remove copy_file_range emulation (#1724975)
d8307d
d8307d
* Mon Jul 22 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-70
d8307d
- Avoid nscd assertion failure during persistent db check (#1727152)
d8307d
d8307d
* Mon Jul 22 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-69
d8307d
- Fix invalid free under valgrind with libdl (#1717438)
d8307d
d8307d
* Thu Jul 18 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-68
d8307d
- Account for size of locale-archive in rpm package (#1725131)
d8307d
d8307d
* Thu Jul 18 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-67
d8307d
- Reject IP addresses with trailing characters in getaddrinfo (#1727241)
d8307d
d8307d
* Fri Jun 14 2019 Florian Weimer <fweimer@redhat.com> - 2.28-66
d8307d
- Avoid header conflict between <sys/stat.h> and <linux/stat.h> (#1699194)
d8307d
d8307d
* Wed Jun 12 2019 Florian Weimer <fweimer@redhat.com> - 2.28-65
d8307d
- glibc-all-langpacks: Do not delete locale archive during update (#1717347)
d8307d
- Do not mark /usr/lib/locale/locale-archive as a configuration file
d8307d
  because it is always automatically overwritten by build-locale-archive.
d8307d
d8307d
* Mon Jun 10 2019 DJ Delorie <dj@redhat.com> - 2.28-64
d8307d
- Avoid ABI exposure of the NSS service_user type (#1710894)
d8307d
d8307d
* Thu Jun  6 2019 Patsy Griffin Franklin <patsy@redhat.com> - 2.28-63
d8307d
- Enable full ICMP errors for UDP DNS sockets. (#1670043)
d8307d
d8307d
* Mon Jun  3 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-62
d8307d
- Convert post-install binary to rpm lua scriptlet (#1639346)
d8307d
d8307d
* Mon Jun  3 2019 Florian Weimer <fweimer@redhat.com> - 2.28-61
d8307d
- Fix crash during wide stream buffer flush (#1710478)
d8307d
d8307d
* Fri May 31 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-60
d8307d
- Add PF_XDP, AF_XDP and SOL_XDP from Linux 4.18 (#1706777)
d8307d
d8307d
* Wed May 22 2019 DJ Delorie <dj@redhat.com> - 2.28-59
d8307d
- Add .gdb_index to debug information (#1612448)
d8307d
d8307d
* Wed May 22 2019 DJ Delorie 
d8307d
- iconv, localedef: avoid floating point rounding differences (#1691528)
d8307d
d8307d
* Wed May 22 2019 Arjun Shankar <arjun@redhat.com> - 2.28-57
d8307d
- locale: Add LOCPATH diagnostics to the locale program (#1701605)
d8307d
d8307d
* Fri May 17 2019 Patsy Griffin Franklin <patsy@redhat.com> - 2.28-56
d8307d
- Fix hang in pldd.  (#1702539)
d8307d
d8307d
* Mon May 13 2019 Florian Weimer <fweimer@redhat.com> - 2.28-55
d8307d
- s390x string function improvements (#1659438)
d8307d
d8307d
* Thu May  2 2019 Patsy Griffin Franklin <patsy@redhat.com> - 2.28-54
d8307d
- Fix test suite failures due to race conditions in posix/tst-spawn
d8307d
  spawned processes. (#1659512)
d8307d
d8307d
* Wed May  1 2019 DJ Delorie <dj@redhat.com> - 2.28-53
d8307d
- Add missing CFI data to __mpn_* functions on ppc64le (#1658901)
d8307d
d8307d
* Fri Apr 26 2019 Arjun Shankar <arjun@redhat.com> - 2.28-52
d8307d
- intl: Do not return NULL on asprintf failure in gettext (#1663035)
d8307d
d8307d
* Fri Apr 26 2019 Florian Weimer <fweimer@redhat.com> - 2.28-51
d8307d
- Increase BIND_NOW coverage (#1639343)
d8307d
d8307d
* Tue Apr 23 2019 Carlos O'Donell <carlos@redhat.com> - 2.28-50
d8307d
- Fix pthread_rwlock_trywrlock and pthread_rwlock_tryrdlock stalls (#1659293)
d8307d
d8307d
* Tue Apr 23 2019 Arjun Shankar <arjun@redhat.com> - 2.28-49
d8307d
- malloc: Improve bad chunk detection (#1651283)
d8307d
d8307d
* Mon Apr 22 2019 Patsy Griffin Franklin <patsy@redhat.com> - 2.28-48
d8307d
- Add compiler barriers around modifications of the robust mutex list
d8307d
  for pthread_mutex_trylock. (#1672773)
d8307d
d8307d
* Tue Apr 16 2019 DJ Delorie <dj@redhat.com> - 2.28-47
d8307d
- powerpc: Only enable HTM if kernel supports PPC_FEATURE2_HTM_NOSC (#1651742)
d8307d
d8307d
* Fri Apr 12 2019 Florian Weimer <fweimer@redhat.com> - 2.28-46
d8307d
- Only build libm with -fno-math-errno (#1664408)
d8307d
d8307d
* Tue Apr  2 2019 Florian Weimer <fweimer@redhat.com> - 2.28-45
d8307d
- ja_JP: Add new Japanese Era name (#1577438)
d8307d
d8307d
* Wed Mar  6 2019 Florian Weimer <fweimer@redhat.com> - 2.28-44
d8307d
- math: Add XFAILs for some IBM 128-bit long double fma tests (#1623537)
d8307d
d8307d
* Fri Mar  1 2019 Florian Weimer <fweimer@redhat.com> - 2.28-43
d8307d
- malloc: realloc ncopies integer overflow (#1662843)
d8307d
d8307d
* Fri Dec 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-42
d8307d
- Fix rdlock stall with PREFER_WRITER_NONRECURSIVE_NP (#1654872)
d8307d
d8307d
* Fri Dec 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-41
d8307d
- malloc: Implement double-free check for the thread cache (#1642094)
d8307d
d8307d
* Thu Dec 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-40
d8307d
- Add upstream test case for CVE-2018-19591 (#1654010)
d8307d
d8307d
* Thu Dec 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-39
d8307d
- Add GCC dependency for new inline string functions on ppc64le (#1652932)
d8307d
d8307d
* Sat Dec 01 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-38
d8307d
- Add requires on explicit glibc version for glibc-nss-devel (#1649890)
d8307d
d8307d
* Fri Nov 30 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-37
d8307d
- Fix data race in dynamic loader when using LD_AUDIT (#1635779)
d8307d
d8307d
* Wed Nov 28 2018 Florian Weimer <fweimer@redhat.com> - 2.28-36
d8307d
- CVE-2018-19591: File descriptor leak in if_nametoindex (#1654010)
d8307d
d8307d
* Mon Nov 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-35
d8307d
- Do not use parallel make for building locales (#1652229)
d8307d
d8307d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-34
d8307d
- support: Print timestamps in timeout handler (#1651274)
d8307d
d8307d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-33
d8307d
- Increase test timeout for  libio/tst-readline (#1638520)
d8307d
d8307d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-32
d8307d
- Fix tzfile low-memory assertion failure (#1650571)
d8307d
d8307d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-31
d8307d
- Add newlines in __libc_fatal calls (#1650566)
d8307d
d8307d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-30
d8307d
- nscd: Fix use-after-free in addgetnetgrentX (#1650563)
d8307d
d8307d
* Tue Nov 20 2018 Florian Weimer <fweimer@redhat.com> - 2.28-29
d8307d
- Update syscall names to Linux 4.19 (#1650560)
d8307d
d8307d
* Tue Nov 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-28
d8307d
- kl_GL: Fix spelling of Sunday, should be "sapaat" (#1645597)
d8307d
d8307d
* Tue Nov 13 2018 Florian Weimer <fweimer@redhat.com> - 2.28-27
d8307d
- Fix x86 CPU flags analysis for string function selection (#1641982)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-26
d8307d
- Reduce RAM requirements for stdlib/test-bz22786 (#1638523)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-25
d8307d
- x86: Improve enablement for 32-bit code using CET (#1645601)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-24
d8307d
- Fix crash in getaddrinfo_a when thread creation fails (#1646379)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-23
d8307d
- Fix race in pthread_mutex_lock related to PTHREAD_MUTEX_ELISION_NP (#1645604)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-22
d8307d
- Fix misreported errno on preadv2/pwritev2 (#1645596)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-21
d8307d
- Fix posix/tst-spawn4-compat test case (#1645593)
d8307d
d8307d
* Fri Nov  9 2018 Florian Weimer <fweimer@redhat.com> - 2.28-20
d8307d
- Disable CET for binaries created by older link editors (#1614979)
d8307d
d8307d
* Fri Nov  2 2018 Mike FABIAN <mfabian@redhat.com> - 2.28-19
d8307d
- Include Esperanto (eo) in glibc-all-langpacks (#1644303)
d8307d
d8307d
* Thu Sep 27 2018 Florian Weimer <fweimer@redhat.com> - 2.28-18
d8307d
- stdlib/tst-setcontext9 test suite failure on ppc64le (#1623536)
d8307d
d8307d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-17
d8307d
- Add missing ENDBR32 in start.S (#1631730)
d8307d
d8307d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-16
d8307d
- Fix bug in generic strstr with large needles (#1631722)
d8307d
d8307d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-15
d8307d
- stdlib/tst-setcontext9 test suite failure (#1623536)
d8307d
d8307d
* Wed Sep 26 2018 Florian Weimer <fweimer@redhat.com> - 2.28-14
d8307d
- gethostid: Missing NULL check for gethostbyname_r (#1631293)
d8307d
d8307d
* Wed Sep  5 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-13
d8307d
- Provide compatibility support for linking against libpthread_nonshared.a
d8307d
  (#1614439)
d8307d
d8307d
* Wed Sep  5 2018 Florian Weimer <fweimer@redhat.com> - 2.28-12
d8307d
- Add python3-devel build dependency (#1625592)
d8307d
d8307d
* Wed Aug 29 2018 Florian Weimer <fweimer@redhat.com> - 2.28-11
d8307d
- Drop glibc-ldflags.patch and valgrind bug workaround (#1623456)
d8307d
d8307d
* Wed Aug 29 2018 Florian Weimer <fweimer@redhat.com> - 2.28-10
d8307d
- regex: Fix memory overread when pattern contains NUL byte (#1622678)
d8307d
d8307d
* Wed Aug 29 2018 Florian Weimer <fweimer@redhat.com> - 2.28-9
d8307d
- nptl: Fix waiters-after-spinning case in pthread_cond_broadcast (#1622675)
d8307d
d8307d
* Tue Aug 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-8
d8307d
- nss_files aliases database file stream leak (#1615790)
d8307d
d8307d
* Tue Aug 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-7
d8307d
- Fix static analysis warning in nscd user name allocation (#1615784)
d8307d
d8307d
* Tue Aug 14 2018 Florian Weimer <fweimer@redhat.com> - 2.28-6
d8307d
- error, error_at_line: Add missing va_end calls (#1615781)
d8307d
d8307d
* Mon Aug 13 2018 Carlos O'Donell <carlos@redhat.com> - 2.28-5
d8307d
- Remove abort() warning in manual (#1577365)
d8307d
d8307d
* Fri Aug 10 2018 Florian Weimer <fweimer@redhat.com> - 2.28-4
d8307d
- Fix regression in readdir64@GLIBC_2.1 compat symbol (#1614253)
d8307d
d8307d
* Thu Aug  2 2018 Florian Weimer <fweimer@redhat.com> - 2.28-3
d8307d
- Log /proc/sysinfo if available (on s390x)
d8307d
d8307d
* Thu Aug  2 2018 Florian Weimer <fweimer@redhat.com> - 2.28-2
d8307d
- Honor %%{valgrind_arches}
d8307d
d8307d
* Wed Aug 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-43
d8307d
- Update to glibc 2.28 release tarball:
d8307d
- Translation updates
d8307d
- x86/CET: Fix property note parser (swbz#23467)
d8307d
- x86: Add tst-get-cpu-features-static to $(tests) (swbz#23458)
d8307d
d8307d
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-42
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit af86087f02a5522d8801a11d8381e04f95e33162:
d8307d
- x86/CET: Don't parse beyond the note end
d8307d
- Fix Linux fcntl OFD locks tests on unsupported kernels
d8307d
- x86: Populate COMMON_CPUID_INDEX_80000001 for Intel CPUs (swbz#23459)
d8307d
- x86: Correct index_cpu_LZCNT (swbz#23456)
d8307d
- Fix string/tst-xbzero-opt if build with gcc head
d8307d
d8307d
* Thu Jul 26 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-41
d8307d
- Build with --enable-cet on x86_64, i686
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit cfba5dbb10cc3abde632b46c60c10b2843917035:
d8307d
- Keep expected behaviour for [a-z] and [A-z] (#1607286)
d8307d
- Additional ucontext tests
d8307d
- Intel CET enhancements
d8307d
- ISO C11 threads support
d8307d
- Fix out-of-bounds access in IBM-1390 converter (swbz#23448)
d8307d
- New locale Yakut (Sakha) for Russia (sah_RU) (swbz#22241)
d8307d
- os_RU: Add alternative month names (swbz#23140)
d8307d
- powerpc64: Always restore TOC on longjmp (swbz#21895)
d8307d
- dsb_DE locale: Fix syntax error and add tests (swbz#23208)
d8307d
- Improve performance of the generic strstr implementation
d8307d
- regcomp: Fix off-by-one bug in build_equiv_class (swbz#23396)
d8307d
- Fix out of bounds access in findidxwc (swbz#23442)
d8307d
d8307d
* Fri Jul 13 2018 Carlos O'Donell <carlos@redhat.com> - 2.27.9000-40
d8307d
- Fix file list for glibc RPM packaging (#1601011).
d8307d
d8307d
* Wed Jul 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-39
d8307d
- Add POWER9 multilib (downstream only)
d8307d
d8307d
* Wed Jul 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-38
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 93304f5f7a32f73b551266c5a181db51d97a71e4:
d8307d
- Install <bits/statx.h> header
d8307d
- Put the correct Unicode version number 11.0.0 into the generated files
d8307d
d8307d
* Wed Jul 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-37
d8307d
- Work around valgrind issue on i686 (#1600034)
d8307d
d8307d
* Tue Jul 10 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-36
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit fd70af45528d59a00eb3190ef6706cb299488fcd:
d8307d
- Add the statx function
d8307d
- regexec: Fix off-by-one bug in weight comparison (#1582229)
d8307d
- nss_files: Fix re-reading of long lines (swbz#18991)
d8307d
- aarch64: add HWCAP_ATOMICS to HWCAP_IMPORTANT
d8307d
- aarch64: Remove HWCAP_CPUID from HWCAP_IMPORTANT
d8307d
- conform/conformtest.pl: Escape literal braces in regular expressions
d8307d
- x86: Use AVX_Fast_Unaligned_Load from Zen onwards.
d8307d
d8307d
* Fri Jul  6 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-35
d8307d
- Remove ppc64 multilibs
d8307d
d8307d
* Fri Jul 06 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-34
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 3a885c1f51b18852869a91cf59a1b39da1595c7a.
d8307d
d8307d
* Thu Jul  5 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-33
d8307d
- Enable build flags inheritance for nonshared flags
d8307d
d8307d
* Wed Jul  4 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-32
d8307d
- Add annobin annotations to assembler code (#1548438)
d8307d
d8307d
* Wed Jul  4 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-31
d8307d
- Enable -D_FORTIFY_SOURCE=2 for nonshared code
d8307d
d8307d
* Mon Jul 02 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-30
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5:
d8307d
- New locale: dsb_DE (Lower Sorbian)
d8307d
d8307d
* Fri Jun 29 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-29
d8307d
- Drop glibc-deprecate_libcrypt.patch.  Variant applied upstream. (#1566464)
d8307d
- Drop glibc-linux-timespec-header-compat.patch.  Upstreamed.
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit e69d994a63afc2d367f286a2a7df28cbf710f0fe.
d8307d
d8307d
* Thu Jun 28 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-28
d8307d
- Drop glibc-rh1315108.patch.  extend_alloca was removed upstream. (#1315108)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit c49e18222e4c40f21586dabced8a49732d946917.
d8307d
d8307d
* Thu Jun 21 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-27
d8307d
- Compatibility fix for <sys/stat.h> and <linux/time.h>
d8307d
d8307d
* Thu Jun 21 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-26
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit f496b28e61d0342f579bf794c71b80e9c7d0b1b5.
d8307d
d8307d
* Mon Jun 18 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-25
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit f2857da7cdb65bfad75ee30981f5b2fde5bbb1dc.
d8307d
d8307d
* Mon Jun 18 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-24
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 14beef7575099f6373f9a45b4656f1e3675f7372:
d8307d
- iconv: Make IBM273 equivalent to ISO-8859-1 (#1592270)
d8307d
d8307d
* Mon Jun 18 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-23
d8307d
- Inherit the -msse2 build flag as well (#1592212)
d8307d
d8307d
* Fri Jun 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-22
d8307d
- Modernise nsswitch.conf defaults (#1581809)
d8307d
- Adjust build flags inheritence from redhat-rpm-config
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 104502102c6fa322515ba0bb3c95c05c3185da7a.
d8307d
d8307d
* Fri May 25 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-21
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit c1dc1e1b34873db79dfbfa8f2f0a2abbe28c0514.
d8307d
d8307d
* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-20
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 7f9f1ecb710eac4d65bb02785ddf288cac098323:
d8307d
- CVE-2018-11237: Buffer overflow in __mempcpy_avx512_no_vzeroupper (#1581275)
d8307d
- Drop glibc-rh1452750-allocate_once.patch,
d8307d
  glibc-rh1452750-libidn2.patch.  Applied upstream.
d8307d
d8307d
* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-19
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 8f145c77123a565b816f918969e0e35ee5b89153.
d8307d
d8307d
* Thu May 17 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-18
d8307d
- Do not run telinit u on upgrades (#1579225)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 632a6cbe44cdd41dba7242887992cdca7b42922a.
d8307d
d8307d
* Fri May 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-17
d8307d
- Avoid exporting some Sun RPC symbols with default versions (#1577210)
d8307d
- Inherit the -mstackrealign flag if it is set
d8307d
- Inherit compiler flags in the original order
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 89aacb513eb77549a29df2638913a0f8178cf3f5:
d8307d
- CVE-2018-11236: realpath: Fix path length overflow (#1581270, swbz#22786)
d8307d
d8307d
* Fri May 11 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-16
d8307d
- Use /usr/bin/python3 for benchmarks scripts (#1577223)
d8307d
d8307d
* Thu Apr 19 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-15
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 0085be1415a38b40a5a1a12e49368498f1687380.
d8307d
d8307d
* Mon Apr 09 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-14
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 583a27d525ae189bdfaa6784021b92a9a1dae12e.
d8307d
d8307d
* Thu Mar 29 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-13
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit d39c0a459ef32a41daac4840859bf304d931adab:
d8307d
- CVE-2017-18269: memory corruption in i386 memmove (#1580934)
d8307d
d8307d
* Mon Mar 19 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-12
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit fbce6f7260c3847f14dfa38f60c9111978fb33a5.
d8307d
d8307d
* Fri Mar 16 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-11
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 700593fdd7aef1e36cfa8bad969faab76a6facda.
d8307d
d8307d
* Wed Mar 14 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-10
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 7108f1f944792ac68332967015d5e6418c5ccc88.
d8307d
d8307d
* Mon Mar 12 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-9
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit da6d4404ecfd7eacba8c096b0761a5758a59da4b.
d8307d
d8307d
* Tue Mar  6 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-8
d8307d
- Enable annobin annotations (#1548438)
d8307d
d8307d
* Thu Mar 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-7
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 1a2f44a848663036c8a14671fe0faa3fed0b2a25:
d8307d
- Remove spurios reference to libpthread_nonshared.a
d8307d
d8307d
* Thu Mar 01 2018 Florian Weimer <fweimer@redhat.com> - 2.27.9000-6
d8307d
- Switch back to upstream master branch
d8307d
- Drop glibc-rh1013801.patch, applied upstream.
d8307d
- Drop glibc-fedora-nptl-linklibc.patch, no longer needed.
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit bd60ce86520b781ca24b99b2555e2ad389bbfeaa.
d8307d
d8307d
* Wed Feb 28 2018 Florian Weimer <fweimer@redhat.com> - 2.27-5
d8307d
- Inherit as many flags as possible from redhat-rpm-config (#1550914)
d8307d
d8307d
* Mon Feb 19 2018 Richard W.M. Jones <rjones@redhat.com> - 2.27-4
d8307d
- riscv64: Add symlink from /usr/lib64/lp64d -> /usr/lib64 for ABI compat.
d8307d
- riscv64: Disable valgrind smoke test on this architecture.
d8307d
d8307d
* Wed Feb 14 2018 Florian Weimer <fweimer@redhat.com> - 2.27-3
d8307d
- Spec file cleanups:
d8307d
  - Remove %%defattr(-,root,root)
d8307d
  - Use shell to run ldconfig %%transfiletrigger
d8307d
  - Move %%transfiletrigger* to the glibc-common subpackage
d8307d
  - Trim changelog
d8307d
  - Include ChangeLog.old in the source RPM
d8307d
d8307d
* Wed Feb  7 2018 Florian Weimer <fweimer@redhat.com> - 2.27-2.1
d8307d
- Linux: use reserved name __key in pkey_get (#1542643)
d8307d
- Auto-sync with upstream branch release/2.27/master,
d8307d
  commit 56170e064e2b21ce204f0817733e92f1730541ea.
d8307d
d8307d
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org>
d8307d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
d8307d
d8307d
* Mon Feb 05 2018 Carlos O'Donell <carlos@redhat.com> - 2.27-1
d8307d
- Update to released glibc 2.27.
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 23158b08a0908f381459f273a984c6fd328363cb.
d8307d
d8307d
* Tue Jan 30 2018 Richard W.M. Jones <rjones@redhat.com> - 2.26.9000-52
d8307d
- Disable -fstack-clash-protection on riscv64:
d8307d
  not supported even by GCC 7.3.1 on this architecture.
d8307d
d8307d
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-51
d8307d
- Explicitly run ldconfig in the buildroot
d8307d
- Do not run ldconfig from scriptlets
d8307d
- Put triggers into the glibc-common package, do not pass arguments to ldconfig
d8307d
d8307d
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-50
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit cdd14619a713ab41e26ba700add4880604324dbb:
d8307d
- libnsl: Turn remaining symbols into compat symbols (swbz#22701)
d8307d
- be_BY, be_BY@latin, lt_LT, el_CY, el_GR, ru_RU, ru_UA, uk_UA:
d8307d
  Add alternative month names (swbz#10871)
d8307d
- x86: Revert Intel CET changes to __jmp_buf_tag (swbz#22743)
d8307d
- aarch64: Revert the change of the __reserved member of mcontext_t
d8307d
d8307d
* Mon Jan 29 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.26.9000-49
d8307d
- Add file triggers to do ldconfig calls automatically
d8307d
d8307d
* Mon Jan 22 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-48
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 21c0696cdef617517de6e25711958c40455c554f:
d8307d
- locale: Implement alternative month names (swbz#10871)
d8307d
- locale: Change month names for pl_PL (swbz#10871)
d8307d
d8307d
* Mon Jan 22 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-47
d8307d
- Unconditionally build without libcrypt
d8307d
d8307d
* Fri Jan 19 2018 Björn Esser <besser82@fedoraproject.org> - 2.26.9000-46
d8307d
- Remove deprecated libcrypt, gets replaced by libxcrypt
d8307d
- Add applicable Requires on libxcrypt
d8307d
d8307d
* Fri Jan 19 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-45
d8307d
- Drop static PIE support on aarch64.  It leads to crashes at run time.
d8307d
- Remove glibc-rpcgen subpackage.  See rpcsvc-proto.  (#1531540)
d8307d
d8307d
* Fri Jan 19 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-44
d8307d
- Correct the list of static PIE architectures (#1247050)
d8307d
- glibc_post_upgrade: Remove process restart logic
d8307d
- glibc_post_upgrade: Integrate into the build process
d8307d
- glibc_post_upgrade: Do not clean up tls subdirectories
d8307d
- glibc_post_upgrade: Drop ia64 support
d8307d
- Remove architecture-specific symbolic link for iconvconfig
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 4612268a0ad8e3409d8ce2314dd2dd8ee0af5269:
d8307d
- powerpc: Fix syscalls during early process initialization (swbz#22685)
d8307d
d8307d
* Fri Jan 19 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-43
d8307d
- Enable static PIE support on i386, x86_64 (#1247050)
d8307d
- Remove add-on support (already gone upstream)
d8307d
- Rework test suite status reporting
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 64f63cb4583ecc1ba16c7253aacc192b6d088511:
d8307d
- malloc: Fix integer overflows in memalign and malloc functions (swbz#22343)
d8307d
- x86-64: Properly align La_x86_64_retval to VEC_SIZE (swbz#22715)
d8307d
- aarch64: Update bits/hwcap.h for Linux 4.15
d8307d
- Add NT_ARM_SVE to elf.h
d8307d
d8307d
* Wed Jan 17 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-42
d8307d
- CVE-2017-14062, CVE-2016-6261, CVE-2016-6263:
d8307d
  Use libidn2 for IDNA support (#1452750)
d8307d
d8307d
* Mon Jan 15 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-41
d8307d
- CVE-2018-1000001: Make getcwd fail if it cannot obtain an absolute path
d8307d
  (#1533837)
d8307d
- elf: Synchronize DF_1_* flags with binutils (#1439328)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 860b0240a5645edd6490161de3f8d1d1f2786025:
d8307d
- aarch64: fix static pie enabled libc when main is in a shared library
d8307d
- malloc: Ensure that the consolidated fast chunk has a sane size
d8307d
d8307d
* Fri Jan 12 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-40
d8307d
- libnsl: Do not install libnsl.so, libnsl.a (#1531540)
d8307d
- Use unversioned Supplements: for langpacks (#1490725)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 9a08a366a7e7ddffe62113a9ffe5e50605ea0924:
d8307d
- hu_HU locale: Avoid double space (swbz#22657)
d8307d
- math: Make default libc_feholdsetround_noex_ctx use __feholdexcept
d8307d
  (swbz#22702)
d8307d
d8307d
* Thu Jan 11 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-39
d8307d
- nptl: Open libgcc.so with RTLD_NOW during pthread_cancel (#1527887)
d8307d
- Introduce libnsl subpackage and remove NIS headers (#1531540)
d8307d
- Use versioned Obsoletes: for libcrypt-nss.
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 08c6e95234c60a5c2f37532d1111acf084f39345:
d8307d
- nptl: Add tst-minstack-cancel, tst-minstack-exit (swbz#22636)
d8307d
- math: ldbl-128ibm log1pl (-qNaN) spurious "invalid" exception (swbz#22693)
d8307d
d8307d
* Wed Jan 10 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-38
d8307d
- nptl: Fix stack guard size accounting (#1527887)
d8307d
- Remove invalid Obsoletes: on glibc-header provides
d8307d
- Require python3 instead of python during builds
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 09085ede12fb9650f286bdcd805609ae69f80618:
d8307d
- math: ldbl-128ibm lrintl/lroundl missing "invalid" exceptions (swbz#22690)
d8307d
- x86-64: Add sincosf with vector FMA
d8307d
d8307d
* Mon Jan  8 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-37
d8307d
- Add glibc-rpcgen subpackage, until the replacement is packaged (#1531540)
d8307d
d8307d
* Mon Jan 08 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-36
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 579396ee082565ab5f42ff166a264891223b7b82:
d8307d
- nptl: Add test for callee-saved register restore in pthread_exit
d8307d
- getrlimit64: fix for 32-bit configurations with default version >= 2.2
d8307d
- elf: Add linux-4.15 VDSO hash for RISC-V
d8307d
- elf: Add RISC-V dynamic relocations to elf.h
d8307d
- powerpc: Fix error message during relocation overflow
d8307d
- prlimit: Replace old_rlimit RLIM64_INFINITY with RLIM_INFINITY (swbz#22678)
d8307d
d8307d
* Fri Jan 05 2018 Florian Weimer <fweimer@redhat.com> - 2.26.9000-35
d8307d
- Remove sln (#1531546)
d8307d
- Remove Sun RPC interfaces (#1531540)
d8307d
- Rebuild with newer GCC to fix pthread_exit stack unwinding issue (#1529549)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit f1a844ac6389ea4e111afc019323ca982b5b027d:
d8307d
- CVE-2017-16997: elf: Check for empty tokens before DST expansion (#1526866)
d8307d
- i386: In makecontext, align the stack before calling exit (swbz#22667)
d8307d
- x86, armhfp: sync sys/ptrace.h with Linux 4.15 (swbz#22433)
d8307d
- elf: check for rpath emptiness before making a copy of it
d8307d
- elf: remove redundant is_path argument
d8307d
- elf: remove redundant code from is_dst
d8307d
- elf: remove redundant code from _dl_dst_substitute
d8307d
- scandir: fix wrong assumption about errno (swbz#17804)
d8307d
- Deprecate external use of libio.h and _G_config.h
d8307d
d8307d
* Fri Dec 22 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-34
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit bad7a0c81f501fbbcc79af9eaa4b8254441c4a1f:
d8307d
- copy_file_range: New function to copy file data
d8307d
- nptl: Consolidate pthread_{timed,try}join{_np}
d8307d
- nptl: Implement pthread_self in libc.so (swbz#22635)
d8307d
- math: Provide a C++ version of iseqsig (swbz#22377)
d8307d
- elf: remove redundant __libc_enable_secure check from fillin_rpath
d8307d
- math: Avoid signed shift overflow in pow (swbz#21309)
d8307d
- x86: Add feature_1 to tcbhead_t (swbz#22563)
d8307d
- x86: Update cancel_jmp_buf to match __jmp_buf_tag (swbz#22563)
d8307d
- ld.so: Examine GLRO to detect inactive loader (swbz#20204)
d8307d
- nscd: Fix nscd readlink argument aliasing (swbz#22446)
d8307d
- elf: do not substitute dst in $LD_LIBRARY_PATH twice (swbz#22627)
d8307d
- ldconfig: set LC_COLLATE to C (swbz#22505)
d8307d
- math: New generic sincosf
d8307d
- powerpc: st{r,p}cpy optimization for aligned strings
d8307d
- CVE-2017-1000409: Count in expanded path in _dl_init_path (#1524867)
d8307d
- CVE-2017-1000408: Compute correct array size in _dl_init_paths (#1524867)
d8307d
- x86-64: Remove sysdeps/x86_64/fpu/s_cosf.S
d8307d
- aarch64: Improve strcmp unaligned performance
d8307d
d8307d
* Wed Dec 13 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-33
d8307d
- Remove power6 platform directory (#1522675)
d8307d
d8307d
* Wed Dec 13 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-32
d8307d
- Obsolete the libcrypt-nss subpackage (#1525396)
d8307d
- armhfp: Disable -fstack-clash-protection due to GCC bug (#1522678)
d8307d
- ppc64: Disable power6 multilib due to GCC bug (#1522675)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 243b63337c2c02f30ec3a988ecc44bc0f6ffa0ad:
d8307d
- libio: Free backup area when it not required (swbz#22415)
d8307d
- math: Fix nextafter and nexttoward declaration (swbz#22593)
d8307d
- math: New generic cosf
d8307d
- powerpc: POWER8 memcpy optimization for cached memory
d8307d
- x86-64: Add sinf with FMA
d8307d
- x86-64: Remove sysdeps/x86_64/fpu/s_sinf.S
d8307d
- math: Fix ctanh (0 + i NaN), ctanh (0 + i Inf) (swbz#22568)
d8307d
- lt_LT locale: Base collation on copy "iso14651_t1" (swbz#22524)
d8307d
- math: Add _Float32 function aliases
d8307d
- math: Make cacosh (0 + iNaN) return NaN + i pi/2 (swbz#22561)
d8307d
- hsb_DE locale: Base collation on copy "iso14651_t1" (swbz#22515)
d8307d
d8307d
* Wed Dec 06 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-31
d8307d
- Add elision tunables.  Drop related configure flag.  (#1383986)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 37ac8e635a29810318f6d79902102e2e96b2b5bf:
d8307d
- Linux: Implement interfaces for memory protection keys
d8307d
- math: Add _Float64, _Float32x function aliases
d8307d
- math: Use sign as double for reduced case in sinf
d8307d
- math: fix sinf(NAN)
d8307d
- math: s_sinf.c: Replace floor with simple casts
d8307d
- et_EE locale: Base collation on iso14651_t1 (swbz#22517)
d8307d
- tr_TR locale: Base collation on iso14651_t1 (swbz#22527)
d8307d
- hr_HR locale: Avoid single code points for digraphs in LC_TIME (swbz#10580)
d8307d
- S390: Fix backtrace in vdso functions
d8307d
d8307d
* Mon Dec 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-30
d8307d
- Add build dependency on bison
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 7863a7118112fe502e8020a0db0fa74fef281f29:
d8307d
- math: New generic sinf (swbz#5997)
d8307d
- is_IS locale: Base collation on iso14651_t1 (swbz#22519)
d8307d
- intl: Improve reproducibility by using bison (swbz#22432)
d8307d
- sr_RS, bs_BA locales: make collation rules the same as for hr_HR (wbz#22534)
d8307d
- hr_HR locale: various updates (swbz#10580)
d8307d
- x86: Make a space in jmpbuf for shadow stack pointer
d8307d
- CVE-2017-17426: malloc: Fix integer overflow in tcache (swbz#22375)
d8307d
- locale: make forward accent sorting the default in collating (swbz#17750)
d8307d
d8307d
* Wed Nov 29 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-29
d8307d
- Enable -fstack-clash-protection (#1512531)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit a55430cb0e261834ce7a4e118dd9e0f2b7fb14bc:
d8307d
- elf: Properly compute offsets of note descriptor and next note (swbz#22370)
d8307d
- cs_CZ locale: Base collation on iso14651_t1 (swbz#22336)
d8307d
- Implement the mlock2 function
d8307d
- Add _Float64x function aliases
d8307d
- elf: Consolidate link map sorting
d8307d
- pl_PL locale: Base collation on iso14651_t1 (swbz#22469)
d8307d
- nss: Export nscd hash function as __nss_hash (swbz#22459)
d8307d
d8307d
* Thu Nov 23 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-28
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit cccb6d4e87053ed63c74aee063fa84eb63ebf7b8:
d8307d
- sigwait can fail with EINTR (#1516394)
d8307d
- Add memfd_create function
d8307d
- resolv: Fix p_secstodate overflow handling (swbz#22463)
d8307d
- resolv: Obsolete p_secstodate
d8307d
- Avoid use of strlen in getlogin_r (swbz#22447)
d8307d
- lv_LV locale: fix collation (swbz#15537)
d8307d
- S390: Add cfi information for start routines in order to stop unwinding
d8307d
- aarch64: Optimized memset for falkor
d8307d
d8307d
* Sun Nov 19 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-27
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit f6e965ee94b37289f64ecd3253021541f7c214c3:
d8307d
- powerpc: AT_HWCAP2 bit PPC_FEATURE2_HTM_NO_SUSPEND
d8307d
- aarch64: Add HWCAP_DCPOP bit
d8307d
- ttyname, ttyname_r: Don't bail prematurely (swbz#22145)
d8307d
- signal: Optimize sigrelse implementation
d8307d
- inet: Check length of ifname in if_nametoindex (swbz#22442)
d8307d
- malloc: Account for all heaps in an arena in malloc_info (swbz#22439)
d8307d
- malloc: Add missing arena lock in malloc_info (swbz#22408)
d8307d
- malloc: Use __builtin_tgmath in tgmath.h with GCC 8 (swbz#21660)
d8307d
- locale: Replaced unicode sequences in the ASCII printable range
d8307d
- resolv: More precise checks in res_hnok, res_dnok (swbz#22409, swbz#22412)
d8307d
- resolv: ns_name_pton should report trailing \ as error (swbz#22413)
d8307d
- locale: mfe_MU, miq_NI, an_ES, kab_DZ, om_ET: Escape / in d_fmt (swbz#22403)
d8307d
d8307d
* Tue Nov 07 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-26
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 6b86036452b9ac47b4ee7789a50f2f37df7ecc4f:
d8307d
- CVE-2017-15804: glob: Fix buffer overflow during GLOB_TILDE unescaping
d8307d
- powerpc: Use latest string function optimization for internal function calls
d8307d
- math: No _Float128 support for ppc64le -mlong-double-64 (swbz#22402)
d8307d
- tpi_PG locale: Fix wrong d_fmt
d8307d
- aarch64: Disable lazy symbol binding of TLSDESC
d8307d
- tpi_PG locale: fix syntax error (swbz#22382)
d8307d
- i586: Use conditional branches in strcpy.S (swbz#22353)
d8307d
- ffsl, ffsll: Declare under __USE_MISC, not just __USE_GNU
d8307d
- csb_PL locale: Fix abmon/mon for March (swbz#19485)
d8307d
- locale: Various yesstr/nostr/yesexpr/noexpr fixes (swbz#15260, swbz#15261)
d8307d
- localedef: Add --no-warnings/--warnings option
d8307d
- powerpc: Replace lxvd2x/stxvd2x with lvx/stvx in P7's memcpy/memmove
d8307d
- locale: Use ASCII as much as possible in LC_MESSAGES
d8307d
- Add new locale yuw_PG (swbz#20952)
d8307d
- malloc: Add single-threaded path to malloc/realloc/calloc/memalloc
d8307d
- i386: Replace assembly versions of e_powf with generic e_powf.c
d8307d
- i386: Replace assembly versions of e_log2f with generic e_log2f.c
d8307d
- x86-64: Add powf with FMA
d8307d
- x86-64: Add logf with FMA
d8307d
- i386: Replace assembly versions of e_logf with generic e_logf.c
d8307d
- i386: Replace assembly versions of e_exp2f with generic e_exp2f.c
d8307d
- x86-64: Add exp2f with FMA
d8307d
- i386: Replace assembly versions of e_expf with generic e_expf.c
d8307d
d8307d
* Sat Oct 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-25
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 797ba44ba27521261f94cc521f1c2ca74f650147:
d8307d
- math: Add bits/floatn.h defines for more _FloatN / _FloatNx types
d8307d
- posix: Fix improper assert in Linux posix_spawn (swbz#22273)
d8307d
- x86-64: Use fxsave/xsave/xsavec in _dl_runtime_resolve (swbz#21265)
d8307d
- CVE-2017-15670: glob: Fix one-byte overflow (#1504807)
d8307d
- malloc: Add single-threaded path to _int_free
d8307d
- locale: Add new locale kab_DZ (swbz#18812)
d8307d
- locale: Add new locale shn_MM (swbz#13605)
d8307d
d8307d
* Fri Oct 20 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-24
d8307d
- Use make -O to serialize make output
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 63b4baa44e8d22501c433c4093aa3310f91b6aa2:
d8307d
- sysconf: Fix missing definition of UIO_MAXIOV on Linux (#1504165)
d8307d
- Install correct bits/long-double.h for MIPS64 (swbz#22322)
d8307d
- malloc: Fix deadlock in _int_free consistency check
d8307d
- x86-64: Don't set GLRO(dl_platform) to NULL (swbz#22299)
d8307d
- math: Add _Float128 function aliases
d8307d
- locale: Add new locale mjw_IN (swbz#13994)
d8307d
- aarch64: Rewrite elf_machine_load_address using _DYNAMIC symbol
d8307d
- powerpc: fix check-before-set in SET_RESTORE_ROUND
d8307d
- locale: Use U+202F as thousands separators in pl_PL locale (swbz#16777)
d8307d
- math: Use __f128 to define FLT128_* constants in include/float.h for old GCC
d8307d
- malloc: Improve malloc initialization sequence (swbz#22159)
d8307d
- malloc: Use relaxed atomics for malloc have_fastchunks
d8307d
- locale: New locale ca_ES@valencia (swbz#2522)
d8307d
- math: Let signbit use the builtin in C++ mode with gcc < 6.x (swbz#22296)
d8307d
- locale: Place monetary symbol in el_GR, el_CY after the amount (swbz#22019)
d8307d
d8307d
* Tue Oct 17 2017 Florian Weimer <fweimer@redhat.com> - 2.26.9000-23
d8307d
- Switch to .9000 version numbers during development
d8307d
d8307d
* Tue Oct 17 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-22
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit c38a4bfd596db2be2b9c1f96715bdc833eab760a:
d8307d
- malloc: Use compat_symbol_reference in libmcheck (swbz#22050)
d8307d
d8307d
* Mon Oct 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-21
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 596f70134a8f11967c65c1d55a94a3a2718c731d:
d8307d
- Silence -O3 -Wall warning in malloc/hooks.c with GCC 7 (swbz#22052)
d8307d
- locale: No warning for non-symbolic character (swbz#22295)
d8307d
- locale: Allow "" int_curr_Symbol (swbz#22294)
d8307d
- locale: Fix localedef exit code (swbz#22292)
d8307d
- nptl: Preserve error in setxid thread broadcast in coredumps (swbz#22153)
d8307d
- powerpc: Avoid putting floating point values in memory (swbz#22189)
d8307d
- powerpc: Fix the carry bit on mpn_[add|sub]_n on POWER7 (swbz#22142)
d8307d
- Support profiling PIE (swbz#22284)
d8307d
d8307d
* Wed Oct 11 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-20
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit d8425e116cdd954fea0c04c0f406179b5daebbb3:
d8307d
- nss_files performance issue in multi mode (swbz#22078)
d8307d
- Ensure C99 and C11 interfaces are available for C++ (swbz#21326)
d8307d
d8307d
* Mon Oct 09 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-19
d8307d
- Move /var/db/Makefile to nss_db (#1498900)
d8307d
- Auto-sync with upstream branch master,
d8307d
  commit 645ac9aaf89e3311949828546df6334322f48933:
d8307d
- openpty: use TIOCGPTPEER to open slave side fd
d8307d
d8307d
* Fri Oct 06 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.26.90-18
d8307d
- Auto-sync with upstream master,
d8307d
  commit 1e26d35193efbb29239c710a4c46a64708643320.
d8307d
- malloc: Fix tcache leak after thread destruction (swbz#22111)
d8307d
- powerpc:  Fix IFUNC for memrchr.
d8307d
- aarch64: Optimized implementation of memmove for Qualcomm Falkor
d8307d
- Always do locking when iterating over list of streams (swbz#15142)
d8307d
- abort: Do not flush stdio streams (swbz#15436)
d8307d
d8307d
* Wed Oct 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-17
d8307d
- Move nss_compat to the main glibc package (#1400538)
d8307d
- Auto-sync with upstream master,
d8307d
  commit 11c4f5010c58029e73e656d5df4f8f42c9b8e877:
d8307d
- crypt: Use NSPR header files in addition to NSS header files (#1489339)
d8307d
- math: Fix yn(n,0) without SVID wrapper (swbz#22244)
d8307d
- math: Fix log2(0) and log(10) in downward rounding (swbz#22243)
d8307d
- math: Add C++ versions of iscanonical for ldbl-96, ldbl-128ibm (swbz#22235)
d8307d
- powerpc: Optimize memrchr for power8
d8307d
- Hide various internal functions (swbz#18822)
d8307d
d8307d
* Sat Sep 30 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-16
d8307d
- Auto-sync with upstream master,
d8307d
  commit 1e2bffd05c36a9be30d7092d6593a9e9aa009ada:
d8307d
- Add IBM858 charset (#1416405)
d8307d
- Update kernel version in syscall-names.list to 4.13
d8307d
- Add Linux 4.13 constants to bits/fcntl-linux.h
d8307d
- Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h
d8307d
- math: New generic powf, log2f, logf
d8307d
- Fix nearbyint arithmetic moved before feholdexcept (swbz#22225)
d8307d
- Mark __dso_handle as hidden (swbz#18822)
d8307d
- Skip PT_DYNAMIC segment with p_filesz == 0 (swbz#22101)
d8307d
- glob now matches dangling symbolic links (swbz#866, swbz#22183)
d8307d
- nscd: Release read lock after resetting timeout (swbz#22161)
d8307d
- Avoid __MATH_TG in C++ mode with -Os for fpclassify (swbz#22146)
d8307d
- Fix dlclose/exit race (swbz#22180)
d8307d
- x86: Add SSE4.1 trunc, truncf (swbz#20142)
d8307d
- Fix atexit/exit race (swbz#14333)
d8307d
- Use execveat syscall in fexecve (swbz#22134)
d8307d
- Enable unwind info in libc-start.c and backtrace.c
d8307d
- powerpc: Avoid misaligned stores in memset
d8307d
- powerpc: build some IFUNC math functions for libc and libm (swbz#21745)
d8307d
- Removed redundant data (LC_TIME and LC_MESSAGES) for niu_NZ (swbz#22023)
d8307d
- Fix LC_TELEPHONE for az_AZ (swbz#22112)
d8307d
- x86: Add MathVec_Prefer_No_AVX512 to cpu-features (swbz#21967)
d8307d
- x86: Add x86_64 to x86-64 HWCAP (swbz#22093)
d8307d
- Finish change from “Bengali” to “Bangla” (swbz#14925)
d8307d
- posix: fix glob bugs with long login names (swbz#1062)
d8307d
- posix: Fix getpwnam_r usage (swbz#1062)
d8307d
- posix: accept inode 0 is a valid inode number (swbz#19971)
d8307d
- Remove redundant LC_TIME data in om_KE (swbz#22100)
d8307d
- Remove remaining _HAVE_STRING_ARCH_* definitions (swbz#18858)
d8307d
- resolv: Fix memory leak with OOM during resolv.conf parsing (swbz#22095)
d8307d
- Add miq_NI locale for Miskito (swbz#20498)
d8307d
- Fix bits/math-finite.h exp10 condition (swbz#22082)
d8307d
d8307d
* Mon Sep 04 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-15
d8307d
- Auto-sync with upstream master,
d8307d
  commit b38042f51430974642616a60afbbf96fd0b98659:
d8307d
- Implement tmpfile with O_TMPFILE (swbz#21530)
d8307d
- Obsolete pow10 functions
d8307d
- math.h: Warn about an already-defined log macro
d8307d
d8307d
* Fri Sep 01 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-14
d8307d
- Build glibc with -O2 (following the upstream default).
d8307d
- Auto-sync with upstream master,
d8307d
  commit f4a6be2582b8dfe8adfa68da3dd8decf566b3983:
d8307d
- malloc: Abort on heap corruption, without a backtrace (swbz#21754)
d8307d
- getaddrinfo: Return EAI_NODATA for gethostbyname2_r with NO_DATA (swbz#21922)
d8307d
- getaddrinfo: Fix error handling in gethosts (swbz#21915) (swbz#21922)
d8307d
- Place $(elf-objpfx)sofini.os last (swbz#22051)
d8307d
- Various locale fixes (swbz#15332, swbz#22044)
d8307d
d8307d
* Wed Aug 30 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-13
d8307d
- Drop glibc-rh952799.patch, applied upstream (#952799, swbz#22025)
d8307d
- Auto-sync with upstream master,
d8307d
  commit 5f9409b787c5758fc277f8d1baf7478b752b775d:
d8307d
- Various locale fixes (swbz#22022, swbz#22038, swbz#21951, swbz#13805,
d8307d
  swbz#21971, swbz#21959)
d8307d
- MIPS/o32: Fix internal_syscall5/6/7 (swbz#21956)
d8307d
- AArch64: Fix procfs.h not to expose stdint.h types
d8307d
- iconv_open: Fix heap corruption on gconv_init failure (swbz#22026)
d8307d
- iconv: Mangle __btowc_fct even without __init_fct (swbz#22025)
d8307d
- Fix bits/math-finite.h _MSUF_ expansion namespace (swbz#22028)
d8307d
- Provide a C++ version of iszero that does not use __MATH_TG (swbz#21930)
d8307d
d8307d
* Mon Aug 28 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-12
d8307d
- Auto-sync with upstream master,
d8307d
  commit 2dba5ce7b8115d6a2789bf279892263621088e74.
d8307d
d8307d
* Fri Aug 25 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-11
d8307d
- Auto-sync with upstream master,
d8307d
  commit 3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0:
d8307d
- string/stratcliff.c: Replace int with size_t (swbz#21982)
d8307d
- Fix tgmath.h handling of complex integers (swbz#21684)
d8307d
d8307d
* Thu Aug 24 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-10
d8307d
- Use an architecture-independent system call list (#1484729)
d8307d
- Drop glibc-fedora-include-bits-ldbl.patch (#1482105)
d8307d
d8307d
* Tue Aug 22 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-9
d8307d
- Auto-sync with upstream master,
d8307d
  commit 80f91666fed71fa3dd5eb5618739147cc731bc89.
d8307d
d8307d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-8
d8307d
- Auto-sync with upstream master,
d8307d
  commit a8410a5fc9305c316633a5a3033f3927b759be35:
d8307d
- Obsolete matherr, _LIB_VERSION, libieee.a.
d8307d
d8307d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-7
d8307d
- Auto-sync with upstream master,
d8307d
  commit 4504783c0f65b7074204c6126c6255ed89d6594e.
d8307d
d8307d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-6
d8307d
- Auto-sync with upstream master,
d8307d
  commit b5889d25e9bf944a89fdd7bcabf3b6c6f6bb6f7c:
d8307d
- assert: Support types without operator== (int) (#1483005)
d8307d
d8307d
* Mon Aug 21 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-5
d8307d
- Auto-sync with upstream master,
d8307d
  commit 2585d7b839559e665d5723734862fbe62264b25d:
d8307d
- Do not use generic selection in C++ mode
d8307d
- Do not use __builtin_types_compatible_p in C++ mode (#1481205)
d8307d
- x86-64: Check FMA_Usable in ifunc-mathvec-avx2.h (swbz#21966)
d8307d
- Various locale fixes (swbz#21750, swbz#21960, swbz#21959, swbz#19852)
d8307d
- Fix sigval namespace (swbz#21944)
d8307d
- x86-64: Optimize e_expf with FMA (swbz#21912)
d8307d
- Adjust glibc-rh827510.patch.
d8307d
d8307d
* Wed Aug 16 2017 Tomasz Kłoczko <kloczek@fedoraproject.org> - 2.26-4
d8307d
- Remove 'Buildroot' tag, 'Group' tag, and '%%clean' section, and don't
d8307d
  remove the buildroot in '%%install', all per Fedora Packaging Guidelines
d8307d
  (#1476839)
d8307d
d8307d
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26.90-3
d8307d
- Auto-sync with upstream master,
d8307d
  commit 403143e1df85dadd374f304bd891be0cd7573e3b:
d8307d
- x86-64: Align L(SP_RANGE)/L(SP_INF_0) to 8 bytes (swbz#21955)
d8307d
- powerpc: Add values from Linux 4.8 to <elf.h>
d8307d
- S390: Add new s390 platform z14.
d8307d
- Various locale fixes (swbz#14925, swbz#20008, swbz#20482, swbz#12349
d8307d
  swbz#19982, swbz#20756, swbz#20756, swbz#21836, swbz#17563, swbz#16905,
d8307d
  swbz#21920, swbz#21854)
d8307d
- NSS: Replace exported NSS lookup functions with stubs (swbz#21962)
d8307d
- i386: Do not set internal_function
d8307d
- assert: Suppress pedantic warning caused by statement expression (swbz#21242)
d8307d
- powerpc: Restrict xssqrtqp operands to Vector Registers (swbz#21941)
d8307d
- sys/ptrace.h: remove obsolete PTRACE_SEIZE_DEVEL constant (swbz#21928)
d8307d
- Remove __qaddr_t, __long_double_t
d8307d
- Fix uc_* namespace (swbz#21457)
d8307d
- nss: Call __resolv_context_put before early return in get*_r (swbz#21932)
d8307d
- aarch64: Optimized memcpy for Qualcomm Falkor processor
d8307d
- manual: Document getcontext uc_stack value on Linux (swbz#759)
d8307d
- i386: Add <startup.h> (swbz#21913)
d8307d
- Don't use IFUNC resolver for longjmp or system in libpthread (swbz#21041)
d8307d
- Fix XPG4.2 bits/sigaction.h namespace (swbz#21899)
d8307d
- x86-64: Add FMA multiarch functions to libm
d8307d
- i386: Support static PIE in start.S
d8307d
- Compile tst-prelink.c without PIE (swbz#21815)
d8307d
- x86-64: Use _dl_runtime_resolve_opt only with AVX512F (swbz#21871)
d8307d
- x86: Remove __memset_zero_constant_len_parameter (swbz#21790)
d8307d
d8307d
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.26-2
d8307d
- Disable multi-arch (IFUNC string functions) on i686 (#1471427)
d8307d
- Remove nosegneg 32-bit Xen PV support libraries (#1482027)
d8307d
- Adjust spec file to RPM changes
d8307d
d8307d
* Thu Aug 03 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.26-1
d8307d
- Update to released glibc 2.26.
d8307d
- Auto-sync with upstream master,
d8307d
  commit 2aad4b04ad7b17a2e6b0e66d2cb4bc559376617b.
d8307d
- getaddrinfo: Release resolver context on error in gethosts (swbz#21885)