mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 08:56:58 +02:00
sys-libs/glibc: Sync with Gentoo
It's from Gentoo commit e0bfeb250d886e096fd861a5d280e798c1e16e9c.
This commit is contained in:
parent
88d8874a87
commit
164934cc94
@ -1,5 +1,4 @@
|
|||||||
DIST gcc-multilib-bootstrap-20201208.tar.xz 5528452 BLAKE2B 16699a6e4df5b2f28a21776ae9e3728b26a9ea251f5580aa5349545ad7c9f6145b9cb6a12ca8f5f96b9cb2a3c70b7e66ca702e4c6f083ac00408e0a20a69e613 SHA512 a243f505e17d0a7e144e8713c077582412f61d6cf7f79baa846de4fb77f5e0f27e11c9a785e14624e04ac52287b32164e7995323aa11caef59113ac438254347
|
DIST gcc-multilib-bootstrap-20201208.tar.xz 5528452 BLAKE2B 16699a6e4df5b2f28a21776ae9e3728b26a9ea251f5580aa5349545ad7c9f6145b9cb6a12ca8f5f96b9cb2a3c70b7e66ca702e4c6f083ac00408e0a20a69e613 SHA512 a243f505e17d0a7e144e8713c077582412f61d6cf7f79baa846de4fb77f5e0f27e11c9a785e14624e04ac52287b32164e7995323aa11caef59113ac438254347
|
||||||
DIST glibc-2.36-patches-5.tar.xz 81348 BLAKE2B 003a59a992302c21132474bcdc994d10b5d50a94368e949ce28cbe389cefd104f66c48cb61a63d24e2f6db94d010e4220bda3fb5291d088cda88069b928c92e0 SHA512 6d6a16114df2223bf04729a79d12a52e41c9b8e756863c1acbb909dc34696958073604ced1b691579271218738511191ddf517e03a700d3948752c455201bcc4
|
DIST glibc-2.37-patches-5.tar.xz 37640 BLAKE2B a87fb239208eb6d65c96bf7687570d8d0919277410fe1e28c293fa7749ffa862417bc1fe6d0819e47a806b20e52d14de84b843fa879fe15b884b2742719caf87 SHA512 344276606b7330322df72ee964d3447d02907df92b5a1d20b9aa427e93727be907f915ecd62db45e994c46451bd09d5da95ef7bf1a27d247a57589c568e6cb20
|
||||||
DIST glibc-2.36.tar.xz 18610836 BLAKE2B f8375e084043f032609e66fd98c234249df57a595c59672acb1bb8c69aed64d339d526611553449492b097cda900ad1d9bae8873d7f5932b10a9a0d8c9210c55 SHA512 9ea0bbda32f83a85b7da0c34f169607fb8a102f0a11a914e6bf531be47d1bef4f5307128286cffa1e2dc5879f0e6ccaef527dd353486883fa332a0b44bde8b3e
|
DIST glibc-2.37.tar.xz 18674604 BLAKE2B 8139cd977b2ed3bfdbde5ffb1cda8f759763dbb83071167272fef798cfbdc0d17cfd1ec893d126c52c91511b7961f3ad12eed34534b99412dfa04a1cdd5b4ea3 SHA512 4fc5932f206bb1b8b54828a28af1a681616b838bbab60c81c82155f3629cbfe1301d271af65511ed917f4c6949a025429221fe6035753282f15346919f15b90c
|
||||||
DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238
|
DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238
|
||||||
DIST locale-gen-2.22.tar.gz 7971 BLAKE2B 2dc66fa69bf51799d0c34459b654fba6998b80a7e322e9b670036c967e269ad921f50195e6e34c4a83c1f0bad191fd5aa3f37defb82271b73acbca07b7e49d08 SHA512 9798b10dbbc792345a7b7a121dec5f4bba9839a8aec010f01a09f3402fd5bf2376f79e03a6a19bc357010db780037a8811c381136ce19be1f1370374906dff38
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
# GLibc
|
|
||||||
|
|
||||||
The system's C library, sometimes referred to as "service pack for the C
|
|
||||||
language". The build recipe has a single modification over the one Gentoo
|
|
||||||
upstream uses: in the installation callback `glibc_do_src_install`, we remove
|
|
||||||
all of glibc's `/etc` files right after the stock glibc build diligently
|
|
||||||
installed them, since we ship our own `/etc` stuff via the `baseimage` recipe.
|
|
||||||
The addition sits at the end of the `glibc_do_src_install` function and is duly
|
|
||||||
labelled `## Flatcar Container Linux: ...`.
|
|
@ -1,2 +0,0 @@
|
|||||||
L /etc/nscd.conf - - - - ../usr/share/baselayout/nscd.conf
|
|
||||||
d /var/db/nscd - - - - -
|
|
@ -1,15 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Name Service Cache Daemon
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/usr/sbin/nscd -F
|
|
||||||
ExecStop=/usr/sbin/nscd --shutdown
|
|
||||||
ExecReload=/usr/sbin/nscd -i passwd
|
|
||||||
ExecReload=/usr/sbin/nscd -i group
|
|
||||||
ExecReload=/usr/sbin/nscd -i hosts
|
|
||||||
ExecReload=/usr/sbin/nscd -i services
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
@ -1,4 +0,0 @@
|
|||||||
# Configuration to create /run/nscd directory
|
|
||||||
# Used as part of systemd's tmpfiles
|
|
||||||
|
|
||||||
d /run/nscd 0755 root root
|
|
@ -1,12 +1,12 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=7
|
EAPI=8
|
||||||
|
|
||||||
# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc
|
# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc
|
||||||
# Please read & adapt the page as necessary if obsolete.
|
# Please read & adapt the page as necessary if obsolete.
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{8..11} )
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
TMPFILES_OPTIONAL=1
|
TMPFILES_OPTIONAL=1
|
||||||
|
|
||||||
inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \
|
inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \
|
||||||
@ -23,6 +23,19 @@ EMULTILIB_PKG="true"
|
|||||||
PATCH_VER=5
|
PATCH_VER=5
|
||||||
PATCH_DEV=dilfridge
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
# gcc mulitilib bootstrap files version
|
||||||
|
GCC_BOOTSTRAP_VER=20201208
|
||||||
|
|
||||||
|
# systemd integration version
|
||||||
|
GLIBC_SYSTEMD_VER=20210729
|
||||||
|
|
||||||
|
# Minimum kernel version that glibc requires
|
||||||
|
MIN_KERN_VER="3.2.0"
|
||||||
|
|
||||||
|
# Minimum pax-utils version needed (which contains any new syscall changes for
|
||||||
|
# its seccomp filter!). Please double check this!
|
||||||
|
MIN_PAX_UTILS_VER="1.3.3"
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]]; then
|
if [[ ${PV} == 9999* ]]; then
|
||||||
inherit git-r3
|
inherit git-r3
|
||||||
else
|
else
|
||||||
@ -31,25 +44,10 @@ else
|
|||||||
SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
|
SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE_VER=${PV}
|
|
||||||
|
|
||||||
GCC_BOOTSTRAP_VER=20201208
|
|
||||||
|
|
||||||
LOCALE_GEN_VER=2.22
|
|
||||||
|
|
||||||
GLIBC_SYSTEMD_VER=20210729
|
|
||||||
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz"
|
|
||||||
SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
|
SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
|
||||||
SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )"
|
SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )"
|
||||||
|
|
||||||
IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp stack-realign +static-libs suid systemd systemtap test vanilla"
|
IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd perl profile selinux +ssp stack-realign +static-libs suid systemd systemtap test vanilla"
|
||||||
|
|
||||||
# Minimum kernel version that glibc requires
|
|
||||||
MIN_KERN_VER="3.2.0"
|
|
||||||
# Minimum pax-utils version needed (which contains any new syscall changes for
|
|
||||||
# its seccomp filter!). Please double check this!
|
|
||||||
MIN_PAX_UTILS_VER="1.3.3"
|
|
||||||
|
|
||||||
# Here's how the cross-compile logic breaks down ...
|
# Here's how the cross-compile logic breaks down ...
|
||||||
# CTARGET - machine that will target the binaries
|
# CTARGET - machine that will target the binaries
|
||||||
@ -99,17 +97,21 @@ fi
|
|||||||
# Lastly, let's avoid some openssh nastiness, bug 708224, as
|
# Lastly, let's avoid some openssh nastiness, bug 708224, as
|
||||||
# convenience to our users.
|
# convenience to our users.
|
||||||
|
|
||||||
# gzip, grep, awk are needed by locale-gen, bug 740750
|
IDEPEND="
|
||||||
|
!compile-locales? ( sys-apps/locale-gen )
|
||||||
|
"
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
${PYTHON_DEPS}
|
${PYTHON_DEPS}
|
||||||
>=app-misc/pax-utils-${MIN_PAX_UTILS_VER}
|
>=app-misc/pax-utils-${MIN_PAX_UTILS_VER}
|
||||||
sys-devel/bison
|
sys-devel/bison
|
||||||
doc? ( sys-apps/texinfo )
|
compile-locales? ( sys-apps/locale-gen )
|
||||||
!compile-locales? (
|
doc? (
|
||||||
app-arch/gzip
|
dev-lang/perl
|
||||||
sys-apps/grep
|
sys-apps/texinfo
|
||||||
app-alternatives/awk
|
)
|
||||||
|
test? (
|
||||||
|
dev-lang/perl
|
||||||
|
>=net-dns/libidn2-2.3.0
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
COMMON_DEPEND="
|
COMMON_DEPEND="
|
||||||
@ -123,20 +125,10 @@ COMMON_DEPEND="
|
|||||||
systemtap? ( dev-util/systemtap )
|
systemtap? ( dev-util/systemtap )
|
||||||
"
|
"
|
||||||
DEPEND="${COMMON_DEPEND}
|
DEPEND="${COMMON_DEPEND}
|
||||||
compile-locales? (
|
|
||||||
app-arch/gzip
|
|
||||||
sys-apps/grep
|
|
||||||
app-alternatives/awk
|
|
||||||
)
|
|
||||||
test? ( >=net-dns/libidn2-2.3.0 )
|
|
||||||
"
|
"
|
||||||
RDEPEND="${COMMON_DEPEND}
|
RDEPEND="${COMMON_DEPEND}
|
||||||
app-arch/gzip
|
|
||||||
sys-apps/grep
|
|
||||||
app-alternatives/awk
|
|
||||||
sys-apps/gentoo-functions
|
|
||||||
!<app-misc/pax-utils-${MIN_PAX_UTILS_VER}
|
!<app-misc/pax-utils-${MIN_PAX_UTILS_VER}
|
||||||
!<net-misc/openssh-8.1_p1-r2
|
perl? ( dev-lang/perl )
|
||||||
"
|
"
|
||||||
|
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
@ -421,6 +413,7 @@ setup_flags() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
strip-unsupported-flags
|
strip-unsupported-flags
|
||||||
|
filter-lto
|
||||||
filter-flags -m32 -m64 '-mabi=*'
|
filter-flags -m32 -m64 '-mabi=*'
|
||||||
|
|
||||||
# glibc aborts if rpath is set by LDFLAGS
|
# glibc aborts if rpath is set by LDFLAGS
|
||||||
@ -439,6 +432,9 @@ setup_flags() {
|
|||||||
# #492892
|
# #492892
|
||||||
filter-flags -frecord-gcc-switches
|
filter-flags -frecord-gcc-switches
|
||||||
|
|
||||||
|
# #898098
|
||||||
|
filter-flags -fno-builtin
|
||||||
|
|
||||||
# #829583
|
# #829583
|
||||||
filter-lfs-flags
|
filter-lfs-flags
|
||||||
|
|
||||||
@ -456,6 +452,7 @@ setup_flags() {
|
|||||||
|
|
||||||
# glibc's headers disallow -O0 and fail at build time:
|
# glibc's headers disallow -O0 and fail at build time:
|
||||||
# include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
|
# include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
|
||||||
|
# https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F
|
||||||
replace-flags -O0 -O1
|
replace-flags -O0 -O1
|
||||||
|
|
||||||
# glibc handles this internally already where it's appropriate;
|
# glibc handles this internally already where it's appropriate;
|
||||||
@ -466,16 +463,16 @@ setup_flags() {
|
|||||||
filter-flags '-fsanitize=*'
|
filter-flags '-fsanitize=*'
|
||||||
|
|
||||||
# See end of bug #830454; we handle this via USE=cet
|
# See end of bug #830454; we handle this via USE=cet
|
||||||
#
|
filter-flags '-fcf-protection=*'
|
||||||
# Flatcar: When bootstrapping, we may have a situation where
|
|
||||||
|
# When bootstrapping, we may have a situation where
|
||||||
# CET-enabled gcc from seed is used to build CET-disabled
|
# CET-enabled gcc from seed is used to build CET-disabled
|
||||||
# glibc. As such, gcc implicitly enables CET if no
|
# glibc. As such, gcc implicitly enables CET if no
|
||||||
# -fcf-protection flag is passed. For a typical package it
|
# -fcf-protection flag is passed. For a typical package it
|
||||||
# should not be a problem, but for glibc it matters as it is
|
# should not be a problem, but for glibc it matters as it is
|
||||||
# dealing with CET in ld.so. So if CET is supposed to be
|
# dealing with CET in ld.so. So if CET is supposed to be
|
||||||
# disabled for glibc, be explicit about it.
|
# disabled for glibc, be explicit about it.
|
||||||
filter-flags '-fcf-protection=*'
|
if (use amd64 || use x86) && ! use cet; then
|
||||||
if ! use cet; then
|
|
||||||
append-flags '-fcf-protection=none'
|
append-flags '-fcf-protection=none'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -665,7 +662,7 @@ foreach_abi() {
|
|||||||
|
|
||||||
glibc_banner() {
|
glibc_banner() {
|
||||||
local b="Gentoo ${PVR}"
|
local b="Gentoo ${PVR}"
|
||||||
[[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}"
|
[[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})"
|
||||||
echo "${b}"
|
echo "${b}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -761,13 +758,6 @@ sanity_prechecks() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Users have had a chance to phase themselves, time to give em the boot
|
|
||||||
if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then
|
|
||||||
eerror "You still haven't deleted ${EROOT}/etc/locales.build."
|
|
||||||
eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher."
|
|
||||||
die "Lazy upgrader detected"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CTARGET} == i386-* ]] ; then
|
if [[ ${CTARGET} == i386-* ]] ; then
|
||||||
eerror "i386 CHOSTs are no longer supported."
|
eerror "i386 CHOSTs are no longer supported."
|
||||||
eerror "Chances are you don't actually want/need i386."
|
eerror "Chances are you don't actually want/need i386."
|
||||||
@ -874,6 +864,8 @@ pkg_pretend() {
|
|||||||
upgrade_warning
|
upgrade_warning
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# pkg_setup
|
||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
# see bug 682570
|
# see bug 682570
|
||||||
[[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
|
[[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
|
||||||
@ -902,23 +894,24 @@ src_unpack() {
|
|||||||
unpack ${P}.tar.xz
|
unpack ${P}.tar.xz
|
||||||
|
|
||||||
cd "${WORKDIR}" || die
|
cd "${WORKDIR}" || die
|
||||||
unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz
|
unpack glibc-${PV}-patches-${PATCH_VER}.tar.xz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "${WORKDIR}" || die
|
cd "${WORKDIR}" || die
|
||||||
unpack locale-gen-${LOCALE_GEN_VER}.tar.gz
|
|
||||||
use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz
|
use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# src_prepare
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
local patchsetname
|
local patchsetname
|
||||||
if ! use vanilla ; then
|
if ! use vanilla ; then
|
||||||
if [[ ${PV} == 9999* ]] ; then
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
patchsetname="from git master"
|
patchsetname="from git master"
|
||||||
else
|
else
|
||||||
patchsetname="${RELEASE_VER}-${PATCH_VER}"
|
patchsetname="${PV}-${PATCH_VER}"
|
||||||
fi
|
fi
|
||||||
einfo "Applying Gentoo Glibc Patchset ${patchsetname}"
|
einfo "Applying Gentoo Glibc patchset ${patchsetname}"
|
||||||
eapply "${WORKDIR}"/patches
|
eapply "${WORKDIR}"/patches
|
||||||
einfo "Done."
|
einfo "Done."
|
||||||
fi
|
fi
|
||||||
@ -927,21 +920,17 @@ src_prepare() {
|
|||||||
|
|
||||||
gnuconfig_update
|
gnuconfig_update
|
||||||
|
|
||||||
cd "${WORKDIR}"
|
cd "${WORKDIR}" || die
|
||||||
find . -name configure -exec touch {} +
|
find . -name configure -exec touch {} +
|
||||||
|
|
||||||
# move the external locale-gen to its old place
|
|
||||||
mkdir extra || die
|
|
||||||
mv locale-gen-${LOCALE_GEN_VER} extra/locale || die
|
|
||||||
|
|
||||||
eprefixify extra/locale/locale-gen
|
|
||||||
|
|
||||||
# Fix permissions on some of the scripts.
|
# Fix permissions on some of the scripts.
|
||||||
chmod u+x "${S}"/scripts/*.sh
|
chmod u+x "${S}"/scripts/*.sh
|
||||||
|
|
||||||
cd "${S}"
|
cd "${S}" || die
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# src_configure
|
||||||
|
|
||||||
glibc_do_configure() {
|
glibc_do_configure() {
|
||||||
dump_build_environment
|
dump_build_environment
|
||||||
|
|
||||||
@ -957,7 +946,7 @@ glibc_do_configure() {
|
|||||||
# https://sourceware.org/PR22634#c0
|
# https://sourceware.org/PR22634#c0
|
||||||
case $(tc-arch ${CTARGET}) in
|
case $(tc-arch ${CTARGET}) in
|
||||||
# Keep whitelist of targets where autodetection mostly works.
|
# Keep whitelist of targets where autodetection mostly works.
|
||||||
amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
|
amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;;
|
||||||
# Blacklist everywhere else
|
# Blacklist everywhere else
|
||||||
*) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
|
*) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
|
||||||
esac
|
esac
|
||||||
@ -1020,6 +1009,14 @@ glibc_do_configure() {
|
|||||||
$(use_enable systemtap)
|
$(use_enable systemtap)
|
||||||
$(use_enable nscd)
|
$(use_enable nscd)
|
||||||
|
|
||||||
|
# /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if
|
||||||
|
# Perl hasn't been installed inside the prefix yet and configure picks
|
||||||
|
# up a Perl from outside the prefix instead. configure will fail to
|
||||||
|
# execute Perl during configure if we're cross-compiling a prefix, but
|
||||||
|
# it will just disable mtrace in that case.
|
||||||
|
# Note: mtrace is needed by the test suite.
|
||||||
|
ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))"
|
||||||
|
|
||||||
# locale data is arch-independent
|
# locale data is arch-independent
|
||||||
# https://bugs.gentoo.org/753740
|
# https://bugs.gentoo.org/753740
|
||||||
libc_cv_complocaledir='${exec_prefix}/lib/locale'
|
libc_cv_complocaledir='${exec_prefix}/lib/locale'
|
||||||
@ -1027,6 +1024,7 @@ glibc_do_configure() {
|
|||||||
# -march= option tricks build system to infer too
|
# -march= option tricks build system to infer too
|
||||||
# high ISA level: https://sourceware.org/PR27318
|
# high ISA level: https://sourceware.org/PR27318
|
||||||
libc_cv_include_x86_isa_level=no
|
libc_cv_include_x86_isa_level=no
|
||||||
|
|
||||||
# Explicit override of https://sourceware.org/PR27991
|
# Explicit override of https://sourceware.org/PR27991
|
||||||
# exposes a bug in glibc's configure:
|
# exposes a bug in glibc's configure:
|
||||||
# https://sourceware.org/PR27991
|
# https://sourceware.org/PR27991
|
||||||
@ -1206,6 +1204,8 @@ src_configure() {
|
|||||||
foreach_abi do_src_configure
|
foreach_abi do_src_configure
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# src_compile
|
||||||
|
|
||||||
do_src_compile() {
|
do_src_compile() {
|
||||||
emake -C "$(builddir nptl)"
|
emake -C "$(builddir nptl)"
|
||||||
}
|
}
|
||||||
@ -1218,6 +1218,8 @@ src_compile() {
|
|||||||
foreach_abi do_src_compile
|
foreach_abi do_src_compile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# src_test
|
||||||
|
|
||||||
glibc_src_test() {
|
glibc_src_test() {
|
||||||
cd "$(builddir nptl)"
|
cd "$(builddir nptl)"
|
||||||
|
|
||||||
@ -1237,26 +1239,16 @@ glibc_src_test() {
|
|||||||
SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check
|
SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check
|
||||||
}
|
}
|
||||||
|
|
||||||
do_src_test() {
|
|
||||||
local ret=0
|
|
||||||
|
|
||||||
glibc_src_test
|
|
||||||
: $(( ret |= $? ))
|
|
||||||
|
|
||||||
return ${ret}
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
src_test() {
|
||||||
if just_headers ; then
|
if just_headers ; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Give tests more time to complete.
|
foreach_abi glibc_src_test || die "tests failed"
|
||||||
export TIMEOUTFACTOR=5
|
|
||||||
|
|
||||||
foreach_abi do_src_test || die "tests failed"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# src_install
|
||||||
|
|
||||||
run_locale_gen() {
|
run_locale_gen() {
|
||||||
# if the host locales.gen contains no entries, we'll install everything
|
# if the host locales.gen contains no entries, we'll install everything
|
||||||
local root="$1"
|
local root="$1"
|
||||||
@ -1276,7 +1268,15 @@ run_locale_gen() {
|
|||||||
locale_list="${root%/}/usr/share/i18n/SUPPORTED"
|
locale_list="${root%/}/usr/share/i18n/SUPPORTED"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \
|
# bug 736794: we need to be careful with the parallelization... the number of
|
||||||
|
# processors saved in the environment of a binary package may differ strongly
|
||||||
|
# from the number of processes available during postinst
|
||||||
|
local mygenjobs="$(makeopts_jobs)"
|
||||||
|
if [[ "${EMERGE_FROM}" == "binary" ]] ; then
|
||||||
|
mygenjobs="$(nproc)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -- locale-gen ${inplace} --jobs "${mygenjobs}" --config "${locale_list}" \
|
||||||
--destdir "${root}"
|
--destdir "${root}"
|
||||||
echo "$@"
|
echo "$@"
|
||||||
"$@"
|
"$@"
|
||||||
@ -1301,13 +1301,13 @@ glibc_do_src_install() {
|
|||||||
# '#define VERSION "2.26.90"' -> '2.26.90'
|
# '#define VERSION "2.26.90"' -> '2.26.90'
|
||||||
local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
|
local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
|
||||||
|
|
||||||
# Flatcar: override this and strip everything to keep image size at bay
|
|
||||||
# Avoid stripping binaries not targeted by ${CHOST}. Or else
|
# Avoid stripping binaries not targeted by ${CHOST}. Or else
|
||||||
# ${CHOST}-strip would break binaries build for ${CTARGET}.
|
# ${CHOST}-strip would break binaries build for ${CTARGET}.
|
||||||
# is_crosscompile && dostrip -x /
|
is_crosscompile && dostrip -x /
|
||||||
# gdb thread introspection relies on local libpthreas symbols. stripping breaks it
|
|
||||||
|
# gdb thread introspection relies on local libpthreads symbols. stripping breaks it
|
||||||
# See Note [Disable automatic stripping]
|
# See Note [Disable automatic stripping]
|
||||||
# dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
|
dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
|
||||||
|
|
||||||
if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
|
if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
|
||||||
# Move versioned .a file out of libdir to evade portage QA checks
|
# Move versioned .a file out of libdir to evade portage QA checks
|
||||||
@ -1318,6 +1318,17 @@ glibc_do_src_install() {
|
|||||||
mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
|
mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# We configure toolchains for standalone prefix systems with a sysroot,
|
||||||
|
# which is prepended to paths in ld scripts, so strip the prefix from these.
|
||||||
|
# Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) )
|
||||||
|
# After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) )
|
||||||
|
if [[ -n $(host_eprefix) ]] ; then
|
||||||
|
local file
|
||||||
|
grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do
|
||||||
|
sed -i "s|$(host_eprefix)/|/|g" "${file}" || die
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# We'll take care of the cache ourselves
|
# We'll take care of the cache ourselves
|
||||||
rm -f "${ED}"/etc/ld.so.cache
|
rm -f "${ED}"/etc/ld.so.cache
|
||||||
|
|
||||||
@ -1412,6 +1423,8 @@ glibc_do_src_install() {
|
|||||||
|
|
||||||
#################################################################
|
#################################################################
|
||||||
# EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
|
# EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
|
||||||
|
#################################################################
|
||||||
|
|
||||||
# Make sure we install some symlink hacks so that when we build
|
# Make sure we install some symlink hacks so that when we build
|
||||||
# a 2nd stage cross-compiler, gcc finds the target system
|
# a 2nd stage cross-compiler, gcc finds the target system
|
||||||
# headers correctly. See gcc/doc/gccinstall.info
|
# headers correctly. See gcc/doc/gccinstall.info
|
||||||
@ -1435,15 +1448,8 @@ glibc_do_src_install() {
|
|||||||
-e "s: \\\\::g" -e "s:/: :g" \
|
-e "s: \\\\::g" -e "s:/: :g" \
|
||||||
"${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
|
"${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
|
||||||
|| die "generating /usr/share/i18n/SUPPORTED failed"
|
|| die "generating /usr/share/i18n/SUPPORTED failed"
|
||||||
cd "${WORKDIR}"/extra/locale
|
|
||||||
dosbin locale-gen
|
|
||||||
doman *.[0-8]
|
|
||||||
insinto /etc
|
|
||||||
doins locale.gen
|
|
||||||
|
|
||||||
keepdir /usr/lib/locale
|
cd "${S}" || die
|
||||||
|
|
||||||
cd "${S}"
|
|
||||||
|
|
||||||
# Install misc network config files
|
# Install misc network config files
|
||||||
insinto /etc
|
insinto /etc
|
||||||
@ -1488,25 +1494,7 @@ glibc_do_src_install() {
|
|||||||
# Generate all locales if this is a native build as locale generation
|
# Generate all locales if this is a native build as locale generation
|
||||||
if use compile-locales && ! is_crosscompile ; then
|
if use compile-locales && ! is_crosscompile ; then
|
||||||
run_locale_gen --inplace-glibc "${ED}/"
|
run_locale_gen --inplace-glibc "${ED}/"
|
||||||
sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Flatcar Container Linux: Add some local changes:
|
|
||||||
# - Config files are installed by baselayout, not glibc.
|
|
||||||
# - Install nscd/systemd stuff in /usr.
|
|
||||||
|
|
||||||
# Use tmpfiles to put nscd.conf in /etc and create directories.
|
|
||||||
insinto /usr/share/baselayout
|
|
||||||
if ! in_iuse nscd || use nscd ; then
|
|
||||||
doins "${S}"/nscd/nscd.conf || die
|
|
||||||
newtmpfiles "${FILESDIR}"/nscd-conf.tmpfiles nscd-conf.conf || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean out any default configs.
|
|
||||||
rm -rf "${ED}"/etc
|
|
||||||
|
|
||||||
# Restore this one for the SDK.
|
|
||||||
test ! -e "${T}"/00glibc || doenvd "${T}"/00glibc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glibc_headers_install() {
|
glibc_headers_install() {
|
||||||
@ -1585,6 +1573,9 @@ pkg_preinst() {
|
|||||||
# nothing to do if just installing headers
|
# nothing to do if just installing headers
|
||||||
just_headers && return
|
just_headers && return
|
||||||
|
|
||||||
|
einfo "Checking general environment sanity."
|
||||||
|
sanity_prechecks
|
||||||
|
|
||||||
# prepare /etc/ld.so.conf.d/ for files
|
# prepare /etc/ld.so.conf.d/ for files
|
||||||
mkdir -p "${EROOT}"/etc/ld.so.conf.d
|
mkdir -p "${EROOT}"/etc/ld.so.conf.d
|
||||||
|
|
@ -17,6 +17,7 @@
|
|||||||
<flag name="multiarch">enable optimizations for multiple CPU architectures (detected at runtime)</flag>
|
<flag name="multiarch">enable optimizations for multiple CPU architectures (detected at runtime)</flag>
|
||||||
<flag name="multilib-bootstrap">Provide prebuilt libgcc.a and crt files if missing. Only needed for ABI switch.</flag>
|
<flag name="multilib-bootstrap">Provide prebuilt libgcc.a and crt files if missing. Only needed for ABI switch.</flag>
|
||||||
<flag name="nscd">Build, and enable support for, the Name Service Cache Daemon</flag>
|
<flag name="nscd">Build, and enable support for, the Name Service Cache Daemon</flag>
|
||||||
|
<flag name="perl">Install additional scripts written in Perl</flag>
|
||||||
<flag name="ssp">protect stack of glibc internals</flag>
|
<flag name="ssp">protect stack of glibc internals</flag>
|
||||||
<flag name="stack-realign">Realign the stack in the 32-bit build for compatibility with older binaries at some performance cost</flag>
|
<flag name="stack-realign">Realign the stack in the 32-bit build for compatibility with older binaries at some performance cost</flag>
|
||||||
<flag name="static-pie">Enable static PIE support (runtime files for -static-pie gcc option).</flag>
|
<flag name="static-pie">Enable static PIE support (runtime files for -static-pie gcc option).</flag>
|
||||||
|
Loading…
Reference in New Issue
Block a user