From: "Andreas K. Hüttel" <dilfridge@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/glibc/
Date: Fri, 20 Mar 2020 15:30:32 +0000 (UTC) [thread overview]
Message-ID: <1584718219.bebea707eeeb62bbee333cb4e4981af8ebd32985.dilfridge@gentoo> (raw)
commit: bebea707eeeb62bbee333cb4e4981af8ebd32985
Author: Andreas K. Huettel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 19 21:32:06 2020 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Mar 20 15:30:19 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bebea707
sys-libs/glibc: Remove old
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Andreas K. Huettel <dilfridge <AT> gentoo.org>
sys-libs/glibc/Manifest | 2 -
sys-libs/glibc/glibc-2.29-r2.ebuild | 1454 ----------------------------------
sys-libs/glibc/glibc-2.30-r4.ebuild | 1489 -----------------------------------
3 files changed, 2945 deletions(-)
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index ab5a0f5cf36..dcd0e760f61 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -12,10 +12,8 @@ DIST glibc-2.27-patches-3.tar.bz2 166511 BLAKE2B 1dc54bef6e82112935c7411f7a5cd07
DIST glibc-2.27.tar.xz 15395316 BLAKE2B ea206d304c8c9aa86d69db981a14bea008602cea06a6c151c4971a8df059949ffe5632b42a67ab0ffcd7c4d7ce1ec02ac48815dac4dade1c4dd41eaee8a6ed33 SHA512 7c5581154487d38d173ce1feb944e60207139cca148bccf066eaae322c0c2d219423bdcfa15c7f9be1b5e45dfc43c641cc5d80d3c3c65837d08a83cdb4e2a147
DIST glibc-2.28-patches-9.tar.xz 98588 BLAKE2B 4ab583be712994f949dee2512da6e12fd7f7ad73e96393f21678552b43da98f49321b53b5b009551300cdb09ca135e7f6adc636ff750c251a1d6d7f262dbc410 SHA512 e3f40ae6e9d06471c1a11bd2bce7b5161d07c3d0a81791505a72aec4817e7faf9ef09841e98c6dcf62a0a00754dff87dd194d97ac6b6354aeb2497cf60900b96
DIST glibc-2.28.tar.xz 16484344 BLAKE2B 9aa8cbd5a145c2a6fde3a60b3d0a14b12b46ed79333ad1ca3e73464adcfe700277a17a9e7fd0ca36e355a0c5b0b27decfa091da320ba802741ad75cc955bbcc8 SHA512 521f820953ff07c69ece4c2186f59fc061a7f9747932cd70ef2995c2b2deee76eeb6de700d85071cdca5949179aa8ccee75eda7feca1394121ec7b821ad0a3f3
-DIST glibc-2.29-patches-3.tar.xz 35812 BLAKE2B 90b8bc57b7a63f03617795c368b92e525eccfec462d638dbc25c581e5b7a2a72ffd5191842f5ac443a868cbc950838d7e5120e866d343a14b80c55dcbfa48f30 SHA512 4c9b78d9d1a8aa629418f2d758ef800857780b8a1fd8d3582b88348a513ca26ca7f6ac9110a8c6bae16949b360ba36840d184f42293cd4324760273592d1b438
DIST glibc-2.29-patches-8.tar.xz 102712 BLAKE2B 49aacff358c0f8499c444e73eec92f402b81236d6a91d1fc9864f974c5cb72fc5c87bf5ee77700a8333db4c68892b3940948158530cea0d0fbbda51df0ae7953 SHA512 7a929e023294e6b76569120cc234bc862f3e260994e56c3a2fc2b969b7313c94a47de7ef85f4e93c9083c16fde987ca470ab9d69d881ab49a22f5fd3a721703a
DIST glibc-2.29.tar.xz 16515488 BLAKE2B b754e6825176538a2b8ca03fce014f0d87d333dc4d038bf0cda5ee8a2f484cd3ce93ad78ec126737e093ab64b55ceedf04cd08aecb4f8041daaa329e99717afa SHA512 146bc0769fe853d9edbf93cea7f74c5b3d84d69cb7614c62588e7acdecd1ec789a9d8949f3e8b99f8f36f2ccac740a003bed94f32b07817baf780b06cfeb6ed0
-DIST glibc-2.30-patches-5.tar.xz 62504 BLAKE2B 19797021000cbf0951144aa7d72b3a16c8e21677f3af8a34dba2813d1547b9773d50412492dec9c0be50c4734fdc49459a482bb2724f06bbe0be4729f19aff28 SHA512 58567963b3802aa3f51a4a462557b89fc46c930b3a0613536e650a66f95cadaa96305a2ba0d59acf2c959ceda64aa7089e86b60cd0e3e68af68612c38c96b9d6
DIST glibc-2.30-patches-6.tar.xz 66612 BLAKE2B 21ce2de45c1bd847ddf0e4e848e0d7adccc77eb91d452b9a81404b46c44ae681f31f8f41c156a782ec9390cf0d5f4d741f6a393ff6dca65b8091f126c1a30623 SHA512 0871ae71a67b21339055ac05dcb634f3b705ae44c10e7ac51e19f15196232349ed9b79a856c5e9f681dd44f9b946bbbfe170e9195819e76d0ca95dba7cede71b
DIST glibc-2.30-patches-7.tar.xz 70632 BLAKE2B 5442262a4566a18a9a43fa5348365e6299873db320aa6e530ab8ded27cbac137ccbbccf8f0d7954facc6650fea935c9824ea94d69619e30cff9d17b912dec77e SHA512 d33787dcc0e1b4a45e91babe3b87cf979fa5f32d1b285d8f1d0d13729a692606ff65527d5c189f0b3b3c1bec735fda40682399eb8d66897dad49101ddfa195ec
DIST glibc-2.30.tar.xz 16576920 BLAKE2B bd5aae4c9854f40785b91f83c3b632de6d48d811027ddfe61651cb1bc617db8017d7914c23a770cdd3feed06fcc316da841eea916cdba54179e7eace4ea45484 SHA512 37483990cd653685873e96c45dd1651b32b441b6d7919a68ebe3bae31a0c3f7ce183fc9b110f0b268b353f80312f18370559a1e7aecea0e5aa755c8f2aef1d6b
diff --git a/sys-libs/glibc/glibc-2.29-r2.ebuild b/sys-libs/glibc/glibc-2.29-r2.ebuild
deleted file mode 100644
index 6265efcd469..00000000000
--- a/sys-libs/glibc/glibc-2.29-r2.ebuild
+++ /dev/null
@@ -1,1454 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{6,7} )
-
-inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \
- multilib systemd multiprocessing
-
-DESCRIPTION="GNU libc C library"
-HOMEPAGE="https://www.gnu.org/software/libc/"
-LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
-SLOT="2.2"
-
-EMULTILIB_PKG="true"
-
-if [[ ${PV} == 9999* ]]; then
- EGIT_REPO_URI="https://sourceware.org/git/glibc.git"
- inherit git-r3
-else
- KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86"
- SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
-fi
-
-RELEASE_VER=${PV}
-
-GCC_BOOTSTRAP_VER=20180511
-
-# Gentoo patchset
-PATCH_VER=3
-
-SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
-SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
-
-IUSE="audit caps cet compile-locales doc gd headers-only +multiarch multilib nscd profile selinux +ssp suid systemtap test vanilla"
-
-# Minimum kernel version that glibc requires
-MIN_KERN_VER="3.2.0"
-
-# Here's how the cross-compile logic breaks down ...
-# CTARGET - machine that will target the binaries
-# CHOST - machine that will host the binaries
-# CBUILD - machine that will build the binaries
-# If CTARGET != CHOST, it means you want a libc for cross-compiling.
-# If CHOST != CBUILD, it means you want to cross-compile the libc.
-# CBUILD = CHOST = CTARGET - native build/install
-# CBUILD != (CHOST = CTARGET) - cross-compile a native build
-# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
-# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
-# For install paths:
-# CHOST = CTARGET - install into /
-# CHOST != CTARGET - install into /usr/CTARGET/
-#
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-# Note [Disable automatic stripping]
-# Disabling automatic stripping for a few reasons:
-# - portage's attempt to strip breaks non-native binaries at least on
-# arm: bug #697428
-# - portage's attempt to strip libpthread.so.0 breaks gdb thread
-# enumeration: bug #697910. This is quite subtle:
-# * gdb uses glibc's libthread_db-1.0.so to enumerate threads.
-# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols
-# via 'ps_pglobal_lookup' symbol defined in gdb.
-# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all
-# known symbols in 'libpthread.so.0'. Specifically 'nptl_version'
-# (unexported) is used to sanity check compatibility before enabling
-# debugging.
-# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint
-# * normal 'strip' command trims '.symtab'
-# Thus our main goal here is to prevent 'libpthread.so.0' from
-# losing it's '.symtab' entries.
-# As Gentoo's strip does not allow us to pass less aggressive stripping
-# options and does not check the machine target we disable stripping
-# entirely.
-RESTRICT="strip !test? ( test )"
-
-# We need a new-enough binutils/gcc to match upstream baseline.
-# Also we need to make sure our binutils/gcc supports TLS,
-# and that gcc already contains the hardened patches.
-COMMON_DEPEND="
- nscd? ( selinux? (
- audit? ( sys-process/audit )
- caps? ( sys-libs/libcap )
- ) )
- suid? ( caps? ( sys-libs/libcap ) )
- selinux? ( sys-libs/libselinux )
- systemtap? ( dev-util/systemtap )
-"
-DEPEND="${COMMON_DEPEND}
- ${PYTHON_DEPS}
- >=app-misc/pax-utils-0.1.10
- sys-devel/bison
- !<sys-devel/bison-2.7
- doc? ( sys-apps/texinfo )
- test? ( >=net-dns/libidn2-2.0.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- sys-apps/gentoo-functions
-"
-
-if [[ ${CATEGORY} == cross-* ]] ; then
- DEPEND+=" !headers-only? (
- >=${CATEGORY}/binutils-2.24
- >=${CATEGORY}/gcc-6
- )"
- [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
-else
- DEPEND+="
- >=sys-devel/binutils-2.24
- >=sys-devel/gcc-6
- virtual/os-headers
- "
- RDEPEND+="
- >=net-dns/libidn2-2.0.5
- vanilla? ( !sys-libs/timezone-data )
- "
- PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
-fi
-
-#
-# Small helper functions
-#
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-just_headers() {
- is_crosscompile && use headers-only
-}
-
-alt_prefix() {
- is_crosscompile && echo /usr/${CTARGET}
-}
-
-# This prefix is applicable to CHOST when building against this
-# glibc. It is baked into the library at configure time.
-host_eprefix() {
- is_crosscompile || echo "${EPREFIX}"
-}
-
-# This prefix is applicable to CBUILD when building against this
-# glibc. It determines the destination path at install time.
-build_eprefix() {
- is_crosscompile && echo "${EPREFIX}"
-}
-
-# We need to be able to set alternative headers for compiling for non-native
-# platform. Will also become useful for testing kernel-headers without screwing
-# up the whole system.
-alt_headers() {
- echo ${ALT_HEADERS:=$(alt_prefix)/usr/include}
-}
-
-alt_build_headers() {
- if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
- ALT_BUILD_HEADERS="$(host_eprefix)$(alt_headers)"
- if tc-is-cross-compiler ; then
- ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers)
- if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
- local header_path=$(echo '#include <linux/version.h>' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h')
- ALT_BUILD_HEADERS=${header_path%/linux/version.h}
- fi
- fi
- fi
- echo "${ALT_BUILD_HEADERS}"
-}
-
-alt_libdir() {
- echo $(alt_prefix)/$(get_libdir)
-}
-alt_usrlibdir() {
- echo $(alt_prefix)/usr/$(get_libdir)
-}
-
-builddir() {
- echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1"
-}
-
-do_compile_test() {
- local ret save_cflags=${CFLAGS}
- CFLAGS+=" $1"
- shift
-
- pushd "${T}" >/dev/null
-
- rm -f glibc-test*
- printf '%b' "$*" > glibc-test.c
-
- nonfatal emake -s glibc-test
- ret=$?
-
- popd >/dev/null
-
- CFLAGS=${save_cflags}
- return ${ret}
-}
-
-do_run_test() {
- local ret
-
- if [[ ${MERGE_TYPE} == "binary" ]] ; then
- # ignore build failures when installing a binary package #324685
- do_compile_test "" "$@" 2>/dev/null || return 0
- else
- if ! do_compile_test "" "$@" ; then
- ewarn "Simple build failed ... assuming this is desired #324685"
- return 0
- fi
- fi
-
- pushd "${T}" >/dev/null
-
- ./glibc-test
- ret=$?
- rm -f glibc-test*
-
- popd >/dev/null
-
- return ${ret}
-}
-
-setup_target_flags() {
- # This largely mucks with compiler flags. None of which should matter
- # when building up just the headers.
- just_headers && return 0
-
- case $(tc-arch) in
- x86)
- # -march needed for #185404 #199334
- # TODO: When creating the first glibc cross-compile, this test will
- # always fail as it does a full link which in turn requires glibc.
- # Probably also applies when changing multilib profile settings (e.g.
- # enabling x86 when the profile was amd64-only previously).
- # We could change main to _start and pass -nostdlib here so that we
- # only test the gcc code compilation. Or we could do a compile and
- # then look for the symbol via scanelf.
- if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then
- local t=${CTARGET_OPT:-${CTARGET}}
- t=${t%%-*}
- filter-flags '-march=*'
- export CFLAGS="-march=${t} ${CFLAGS}"
- einfo "Auto adding -march=${t} to CFLAGS #185404"
- fi
- ;;
- amd64)
- # -march needed for #185404 #199334
- # Note: This test only matters when the x86 ABI is enabled, so we could
- # optimize a bit and elide it.
- # TODO: See cross-compile issues listed above for x86.
- if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then
- local t=${CTARGET_OPT:-${CTARGET}}
- t=${t%%-*}
- # Normally the target is x86_64-xxx, so turn that into the -march that
- # gcc actually accepts. #528708
- [[ ${t} == "x86_64" ]] && t="x86-64"
- filter-flags '-march=*'
- # ugly, ugly, ugly. ugly.
- CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}")
- export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
- einfo "Auto adding -march=${t} to CFLAGS_x86 #185404"
- fi
- ;;
- mips)
- # The mips abi cannot support the GNU style hashes. #233233
- filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both
- ;;
- sparc)
- # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
- filter-flags "-fcall-used-g7"
- append-flags "-fcall-used-g6"
-
- # If the CHOST is the basic one (e.g. not sparcv9-xxx already),
- # try to pick a better one so glibc can use cpu-specific .S files.
- # We key off the CFLAGS to get a good value. Also need to handle
- # version skew.
- # We can't force users to set their CHOST to their exact machine
- # as many of these are not recognized by config.sub/gcc and such :(.
- # Note: If the mcpu values don't scale, we might try probing CPP defines.
- # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
-
- local cpu
- case ${CTARGET} in
- sparc64-*)
- case $(get-flag mcpu) in
- niagara[234])
- if ver_test -ge 2.8 ; then
- cpu="sparc64v2"
- elif ver_test -ge 2.4 ; then
- cpu="sparc64v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparc64b"
- fi
- ;;
- niagara)
- if ver_test -ge 2.4 ; then
- cpu="sparc64v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparc64b"
- fi
- ;;
- ultrasparc3)
- cpu="sparc64b"
- ;;
- *)
- # We need to force at least v9a because the base build doesn't
- # work with just v9.
- # https://sourceware.org/bugzilla/show_bug.cgi?id=19477
- [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
- ;;
- esac
- ;;
- sparc-*)
- case $(get-flag mcpu) in
- niagara[234])
- if ver_test -ge 2.8 ; then
- cpu="sparcv9v2"
- elif ver_test -ge 2.4 ; then
- cpu="sparcv9v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparcv9b"
- else
- cpu="sparcv9"
- fi
- ;;
- niagara)
- if ver_test -ge 2.4 ; then
- cpu="sparcv9v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparcv9b"
- else
- cpu="sparcv9"
- fi
- ;;
- ultrasparc3)
- cpu="sparcv9b"
- ;;
- v9|ultrasparc)
- cpu="sparcv9"
- ;;
- v8|supersparc|hypersparc|leon|leon3)
- cpu="sparcv8"
- ;;
- esac
- ;;
- esac
- [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
- ;;
- esac
-}
-
-setup_flags() {
- # Make sure host make.conf doesn't pollute us
- if is_crosscompile || tc-is-cross-compiler ; then
- CHOST=${CTARGET} strip-unsupported-flags
- fi
-
- # Store our CFLAGS because it's changed depending on which CTARGET
- # we are building when pulling glibc on a multilib profile
- CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
- CFLAGS=${CFLAGS_BASE}
- CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
- CXXFLAGS=${CXXFLAGS_BASE}
- ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
- ASFLAGS=${ASFLAGS_BASE}
-
- # Over-zealous CFLAGS can often cause problems. What may work for one
- # person may not work for another. To avoid a large influx of bugs
- # relating to failed builds, we strip most CFLAGS out to ensure as few
- # problems as possible.
- strip-flags
- strip-unsupported-flags
- filter-flags -m32 -m64 '-mabi=*'
-
- # glibc aborts if rpath is set by LDFLAGS
- filter-ldflags '-Wl,-rpath=*'
-
- # #492892
- filter-flags -frecord-gcc-switches
-
- unset CBUILD_OPT CTARGET_OPT
- if use multilib ; then
- CTARGET_OPT=$(get_abi_CTARGET)
- [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
- fi
-
- setup_target_flags
-
- if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
- CBUILD_OPT=${CTARGET_OPT}
- fi
-
- # Lock glibc at -O2; we want to be conservative here.
- # -fno-strict-aliasing is to work around #155906.
- filter-flags '-O?'
- append-flags -O2 -fno-strict-aliasing
-
- filter-flags '-fstack-protector*'
-}
-
-want_tls() {
- # Archs that can use TLS (Thread Local Storage)
- case $(tc-arch) in
- x86)
- # requires i486 or better #106556
- [[ ${CTARGET} == i[4567]86* ]] && return 0
- return 1
- ;;
- esac
- return 0
-}
-
-want__thread() {
- want_tls || return 1
-
- # For some reason --with-tls --with__thread is causing segfaults on sparc32.
- [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
-
- [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD}
-
- # only test gcc -- can't test linking yet
- tc-has-tls -c ${CTARGET}
- WANT__THREAD=$?
-
- return ${WANT__THREAD}
-}
-
-use_multiarch() {
- # Allow user to disable runtime arch detection in multilib.
- use multiarch || return 1
- # Make sure binutils is new enough to support indirect functions,
- # #336792. This funky sed supports gold and bfd linkers.
- local bver nver
- bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}')
- case $(tc-arch ${CTARGET}) in
- amd64|x86) nver="2.20" ;;
- arm) nver="2.22" ;;
- hppa) nver="2.23" ;;
- ppc|ppc64) nver="2.20" ;;
- # ifunc support was added in 2.23, but glibc also needs
- # machinemode which is in 2.24.
- s390) nver="2.24" ;;
- sparc) nver="2.21" ;;
- *) return 1 ;;
- esac
- ver_test ${bver} -ge ${nver}
-}
-
-# Setup toolchain variables that had historically been defined in the
-# profiles for these archs.
-setup_env() {
- # silly users
- unset LD_RUN_PATH
- unset LD_ASSUME_KERNEL
-
- if is_crosscompile || tc-is-cross-compiler ; then
- multilib_env ${CTARGET_OPT:-${CTARGET}}
-
- if ! use multilib ; then
- MULTILIB_ABIS=${DEFAULT_ABI}
- else
- MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
- fi
-
- # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
- # and fall back on CFLAGS.
- local VAR=CFLAGS_${CTARGET//[-.]/_}
- CFLAGS=${!VAR-${CFLAGS}}
- einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}"
- fi
-
- setup_flags
-
- export ABI=${ABI:-${DEFAULT_ABI:-default}}
-
- if just_headers ; then
- # Avoid mixing host's CC and target's CFLAGS_${ABI}:
- # At this bootstrap stage we have only binutils for
- # target but not compiler yet.
- einfo "Skip CC ABI injection. We can't use (cross-)compiler yet."
- return 0
- fi
- local VAR=CFLAGS_${ABI}
- # We need to export CFLAGS with abi information in them because glibc's
- # configure script checks CFLAGS for some targets (like mips). Keep
- # around the original clean value to avoid appending multiple ABIs on
- # top of each other.
- : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})}
- export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}"
- einfo " $(printf '%15s' 'Manual CC:') ${CC}"
-}
-
-foreach_abi() {
- setup_env
-
- local ret=0
- local abilist=""
- if use multilib ; then
- abilist=$(get_install_abis)
- else
- abilist=${DEFAULT_ABI}
- fi
- local -x ABI
- for ABI in ${abilist:-default} ; do
- setup_env
- einfo "Running $1 for ABI ${ABI}"
- $1
- : $(( ret |= $? ))
- done
- return ${ret}
-}
-
-glibc_banner() {
- local b="Gentoo ${PVR}"
- [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}"
- echo "${b}"
-}
-
-check_devpts() {
- # Make sure devpts is mounted correctly for use w/out setuid pt_chown.
-
- # If merely building the binary package, then there's nothing to verify.
- [[ ${MERGE_TYPE} == "buildonly" ]] && return
-
- # Only sanity check when installing the native glibc.
- [[ ${ROOT} != "/" ]] && return
-
- # If they're opting in to the old suid code, then no need to check.
- use suid && return
-
- if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then
- eerror "In order to use glibc with USE=-suid, you must make sure that"
- eerror "you have devpts mounted at /dev/pts with the gid=5 option."
- eerror "Openrc should do this for you, so you should check /etc/fstab"
- eerror "and make sure you do not have any invalid settings there."
- die "mount & fix your /dev/pts settings"
- fi
-}
-
-# The following Kernel version handling functions are mostly copied from portage
-# source. It's better not to use linux-info.eclass here since a) it adds too
-# much magic, see bug 326693 for some of the arguments, and b) some of the
-# functions are just not provided.
-
-g_get_running_KV() {
- uname -r
- return $?
-}
-
-g_KV_major() {
- [[ -z $1 ]] && return 1
- local KV=$@
- echo "${KV%%.*}"
-}
-
-g_KV_minor() {
- [[ -z $1 ]] && return 1
- local KV=$@
- KV=${KV#*.}
- echo "${KV%%.*}"
-}
-
-g_KV_micro() {
- [[ -z $1 ]] && return 1
- local KV=$@
- KV=${KV#*.*.}
- echo "${KV%%[^[:digit:]]*}"
-}
-
-g_KV_to_int() {
- [[ -z $1 ]] && return 1
- local KV_MAJOR=$(g_KV_major "$1")
- local KV_MINOR=$(g_KV_minor "$1")
- local KV_MICRO=$(g_KV_micro "$1")
- local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
-
- # We make version 2.2.0 the minimum version we will handle as
- # a sanity check ... if its less, we fail ...
- if [[ ${KV_int} -ge 131584 ]] ; then
- echo "${KV_int}"
- return 0
- fi
- return 1
-}
-
-g_int_to_KV() {
- local version=$1 major minor micro
- major=$((version / 65536))
- minor=$(((version % 65536) / 256))
- micro=$((version % 256))
- echo ${major}.${minor}.${micro}
-}
-
-eend_KV() {
- [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]]
- eend $?
-}
-
-get_kheader_version() {
- printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
- $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \
- tail -n 1
-}
-
-# We collect all sanity checks here. Consistency is not guranteed between
-# pkg_ and src_ phases, so we call this function both in pkg_pretend and in
-# src_unpack.
-sanity_prechecks() {
- # Make sure devpts is mounted correctly for use w/out setuid pt_chown
- check_devpts
-
- # Prevent native builds from downgrading
- if [[ ${MERGE_TYPE} != "buildonly" ]] && \
- [[ ${ROOT} == "/" ]] && \
- [[ ${CBUILD} == ${CHOST} ]] && \
- [[ ${CHOST} == ${CTARGET} ]] ; then
-
- # The high rev # is to allow people to downgrade between -r#
- # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2
- # should be fine. Hopefully we never actually use a r# this
- # high.
- if has_version ">${CATEGORY}/${P}-r10000" ; then
- eerror "Sanity check to keep you from breaking your system:"
- eerror " Downgrading glibc is not supported and a sure way to destruction."
- [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system."
- fi
-
- if ! do_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
- eerror "Your old kernel is broken. You need to update it to a newer"
- eerror "version as syscall(<bignum>) will break. See bug 279260."
- die "Old and broken kernel."
- 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
- eerror "i386 CHOSTs are no longer supported."
- eerror "Chances are you don't actually want/need i386."
- eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml"
- die "Please fix your CHOST"
- fi
-
- if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
- ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
- ewarn "This will result in a 50% performance penalty when running with a 32bit"
- ewarn "hypervisor, which is probably not what you want."
- fi
-
- # Check for sanity of /etc/nsswitch.conf
- if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then
- local entry
- for entry in passwd group shadow; do
- if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then
- eerror "Your ${EROOT}/etc/nsswitch.conf is out of date."
- eerror "Please make sure you have 'files' entries for"
- eerror "'passwd:', 'group:' and 'shadow:' databases."
- eerror "For more details see:"
- eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26"
- die "nsswitch.conf has no 'files' provider in '${entry}'."
- fi
- done
- fi
-
- # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
- # we test for...
- if ! is_crosscompile ; then
- if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
- ebegin "Checking that IA32 emulation is enabled in the running kernel"
- echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
- local STAT
- if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
- "${T}/check-ia32-emulation.elf32"
- STAT=$?
- else
- # Don't fail here to allow single->multi ABI switch
- # or recover from breakage like bug #646424
- ewarn "Failed to compile the ABI test. Broken host glibc?"
- STAT=0
- fi
- rm -f "${T}/check-ia32-emulation.elf32"
- eend $STAT
- [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc."
- fi
-
- fi
-
- # When we actually have to compile something...
- if ! just_headers ; then
- ebegin "Checking gcc for __thread support"
- if ! eend $(want__thread ; echo $?) ; then
- echo
- eerror "Could not find a gcc that supports the __thread directive!"
- eerror "Please update your binutils/gcc and try again."
- die "No __thread support in gcc!"
- fi
-
- if [[ ${CTARGET} == *-linux* ]] ; then
- local run_kv build_kv want_kv
-
- run_kv=$(g_get_running_KV)
- build_kv=$(g_int_to_KV $(get_kheader_version))
- want_kv=${MIN_KERN_VER}
-
- if ! is_crosscompile && ! tc-is-cross-compiler ; then
- # Building fails on an non-supporting kernel
- ebegin "Checking running kernel version (${run_kv} >= ${want_kv})"
- if ! eend_KV ${run_kv} ${want_kv} ; then
- echo
- eerror "You need a kernel of at least ${want_kv}!"
- die "Kernel version too low!"
- fi
- fi
-
- ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
- if ! eend_KV ${build_kv} ${want_kv} ; then
- echo
- eerror "You need linux-headers of at least ${want_kv}!"
- die "linux-headers version too low!"
- fi
- fi
- fi
-}
-
-#
-# the phases
-#
-
-# pkg_pretend
-
-pkg_pretend() {
- # All the checks...
- einfo "Checking general environment sanity."
- sanity_prechecks
-}
-
-pkg_setup() {
- # see bug 682570
- [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
-}
-
-# src_unpack
-
-src_unpack() {
- # Consistency is not guaranteed between pkg_ and src_ ...
- sanity_prechecks
-
- use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
-
- setup_env
-
- if [[ -n ${EGIT_REPO_URI} ]] ; then
- git-r3_src_unpack
- else
- unpack ${P}.tar.xz
- fi
-
- cd "${WORKDIR}" || die
- unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz
-}
-
-src_prepare() {
- if ! use vanilla ; then
- elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}"
- eapply "${WORKDIR}"/patches
- einfo "Done."
- fi
-
- default
-
- gnuconfig_update
-
- cd "${WORKDIR}"
- find . -name configure -exec touch {} +
-
- eprefixify extra/locale/locale-gen
-
- # Fix permissions on some of the scripts.
- chmod u+x "${S}"/scripts/*.sh
-
- cd "${S}"
-}
-
-glibc_do_configure() {
- # Glibc does not work with gold (for various reasons) #269274.
- tc-ld-disable-gold
-
- # CXX isnt handled by the multilib system, so if we dont unset here
- # we accumulate crap across abis
- unset CXX
-
- einfo "Configuring glibc for nptl"
-
- if use doc ; then
- export MAKEINFO=makeinfo
- else
- export MAKEINFO=/dev/null
- fi
-
- local v
- for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do
- einfo " $(printf '%15s' ${v}:) ${!v}"
- done
-
- # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760
- # To build .S (assembly) files with the same ABI-specific flags
- # upstream currently recommends adding CFLAGS to CC/CXX:
- # https://sourceware.org/PR23273
- # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS
- # and breaks multiarch support. See 659030#c3 for an example.
- # The glibc configure script doesn't properly use LDFLAGS all the time.
- export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}"
- einfo " $(printf '%15s' 'Manual CC:') ${CC}"
-
- # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
- export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}"
-
- if is_crosscompile; then
- # Assume worst-case bootstrap: glibc is buil first time
- # when ${CTARGET}-g++ is not available yet. We avoid
- # building auxiliary programs that require C++: bug #683074
- # It should not affect final result.
- export libc_cv_cxx_link_ok=no
- # The line above has the same effect. We set CXX explicitly
- # to make build logs less confusing.
- export CXX=
- fi
- einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
-
- echo
-
- local myconf=()
-
- case ${CTARGET} in
- m68k*)
- # setjmp() is not compatible with stack protection:
- # https://sourceware.org/PR24202
- myconf+=( --enable-stack-protector=no )
- ;;
- powerpc-*)
- # Currently gcc on powerpc32 generates invalid code for
- # __builtin_return_address(0) calls. Normally programs
- # don't do that but malloc hooks in glibc do:
- # https://gcc.gnu.org/PR81996
- # https://bugs.gentoo.org/629054
- myconf+=( --enable-stack-protector=no )
- ;;
- *)
- myconf+=( --enable-stack-protector=$(usex ssp all no) )
- ;;
- esac
- myconf+=( --enable-stackguard-randomization )
-
- # Keep a whitelist of targets supporing IFUNC. glibc's ./configure
- # is not robust enough to detect proper support:
- # https://bugs.gentoo.org/641216
- # https://sourceware.org/PR22634#c0
- case $(tc-arch ${CTARGET}) in
- # Keep whitelist of targets where autodetection mostly works.
- amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
- # Blacklist everywhere else
- *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
- esac
-
- # Enable Intel Control-flow Enforcement Technology on amd64 if requested
- case ${CTARGET} in
- x86_64-*) myconf+=( $(use_enable cet) ) ;;
- *) ;;
- esac
-
- [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
-
- myconf+=( --enable-kernel=${MIN_KERN_VER} )
-
- # Since SELinux support is only required for nscd, only enable it if:
- # 1. USE selinux
- # 2. only for the primary ABI on multilib systems
- # 3. Not a crosscompile
- if ! is_crosscompile && use selinux ; then
- if use multilib ; then
- if is_final_abi ; then
- myconf+=( --with-selinux )
- else
- myconf+=( --without-selinux )
- fi
- else
- myconf+=( --with-selinux )
- fi
- else
- myconf+=( --without-selinux )
- fi
-
- # Force a few tests where we always know the answer but
- # configure is incapable of finding it.
- if is_crosscompile ; then
- export \
- libc_cv_c_cleanup=yes \
- libc_cv_forced_unwind=yes
- fi
-
- myconf+=(
- --without-cvs
- --disable-werror
- --enable-bind-now
- --build=${CBUILD_OPT:-${CBUILD}}
- --host=${CTARGET_OPT:-${CTARGET}}
- $(use_enable profile)
- $(use_with gd)
- --with-headers=$(alt_build_headers)
- --prefix="$(host_eprefix)/usr"
- --sysconfdir="$(host_eprefix)/etc"
- --localstatedir="$(host_eprefix)/var"
- --libdir='$(prefix)'/$(get_libdir)
- --mandir='$(prefix)'/share/man
- --infodir='$(prefix)'/share/info
- --libexecdir='$(libdir)'/misc/glibc
- --with-bugurl=https://bugs.gentoo.org/
- --with-pkgversion="$(glibc_banner)"
- $(use_multiarch || echo --disable-multi-arch)
- $(use_enable systemtap)
- $(use_enable nscd)
- ${EXTRA_ECONF}
- )
-
- # We rely on sys-libs/timezone-data for timezone tools normally.
- myconf+=( $(use_enable vanilla timezone-tools) )
-
- # These libs don't have configure flags.
- ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no)
- ac_cv_lib_cap_cap_init=$(usex caps || echo no)
-
- # There is no configure option for this and we need to export it
- # since the glibc build will re-run configure on itself
- export libc_cv_rootsbindir="$(host_eprefix)/sbin"
- export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)"
-
- # We take care of patching our binutils to use both hash styles,
- # and many people like to force gnu hash style only, so disable
- # this overriding check. #347761
- export libc_cv_hashstyle=no
-
- local builddir=$(builddir nptl)
- mkdir -p "${builddir}"
- cd "${builddir}"
- set -- "${S}"/configure "${myconf[@]}"
- echo "$@"
- "$@" || die "failed to configure glibc"
-
- # ia64 static cross-compilers are a pita in so much that they
- # can't produce static ELFs (as the libgcc.a is broken). so
- # disable building of the programs for those targets if it
- # doesn't work.
- # XXX: We could turn this into a compiler test, but ia64 is
- # the only one that matters, so this should be fine for now.
- if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then
- sed -i '1i+link-static = touch $@' config.make
- fi
-
- # If we're trying to migrate between ABI sets, we need
- # to lie and use a local copy of gcc. Like if the system
- # is built with MULTILIB_ABIS="amd64 x86" but we want to
- # add x32 to it, gcc/glibc don't yet support x32.
- #
- if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then
- echo 'main(){}' > "${T}"/test.c
- if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then
- sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die
- fi
- fi
-}
-
-glibc_headers_configure() {
- export ABI=default
-
- local builddir=$(builddir "headers")
- mkdir -p "${builddir}"
- cd "${builddir}"
-
- # if we don't have a compiler yet, we can't really test it now ...
- # hopefully they don't affect header generation, so let's hope for
- # the best here ...
- local v vars=(
- ac_cv_header_cpuid_h=yes
- libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes
- libc_cv_asm_cfi_directives=yes
- libc_cv_broken_visibility_attribute=no
- libc_cv_c_cleanup=yes
- libc_cv_compiler_powerpc64le_binary128_ok=yes
- libc_cv_forced_unwind=yes
- libc_cv_gcc___thread=yes
- libc_cv_mlong_double_128=yes
- libc_cv_mlong_double_128ibm=yes
- libc_cv_ppc_machine=yes
- libc_cv_ppc_rel16=yes
- libc_cv_predef_fortify_source=no
- libc_cv_target_power8_ok=yes
- libc_cv_visibility_attribute=yes
- libc_cv_z_combreloc=yes
- libc_cv_z_execstack=yes
- libc_cv_z_initfirst=yes
- libc_cv_z_nodelete=yes
- libc_cv_z_nodlopen=yes
- libc_cv_z_relro=yes
- libc_mips_abi=${ABI}
- libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
- # These libs don't have configure flags.
- ac_cv_lib_audit_audit_log_user_avc_message=no
- ac_cv_lib_cap_cap_init=no
- )
-
- einfo "Forcing cached settings:"
- for v in "${vars[@]}" ; do
- einfo " ${v}"
- export ${v}
- done
-
- local headers_only_arch_CPPFLAGS=()
-
- # Blow away some random CC settings that screw things up. #550192
- if [[ -d ${S}/sysdeps/mips ]]; then
- pushd "${S}"/sysdeps/mips >/dev/null
- sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die
- sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die
-
- # Force the mips ABI to the default. This is OK because the set of
- # installed headers in this phase is the same between the 3 ABIs.
- # If this ever changes, this hack will break, but that's unlikely
- # as glibc discourages that behavior.
- # https://crbug.com/647033
- sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die
-
- popd >/dev/null
- fi
-
- case ${CTARGET} in
- riscv*)
- # RISC-V interrogates the compiler to determine which target to
- # build. If building the headers then we don't strictly need a
- # RISC-V compiler, so the built-in definitions that are provided
- # along with all RISC-V compiler might not exist. This causes
- # glibc's RISC-V preconfigure script to blow up. Since we're just
- # building the headers any value will actually work here, so just
- # pick the standard one (rv64g/lp64d) to make the build scripts
- # happy for now -- the headers are all the same anyway so it
- # doesn't matter.
- headers_only_arch_CPPFLAGS+=(
- -D__riscv_xlen=64
- -D__riscv_flen=64
- -D__riscv_float_abi_double=1
- -D__riscv_atomic=1
- ) ;;
- esac
-
- local myconf=()
- myconf+=(
- --disable-sanity-checks
- --enable-hacker-mode
- --without-cvs
- --disable-werror
- --enable-bind-now
- --build=${CBUILD_OPT:-${CBUILD}}
- --host=${CTARGET_OPT:-${CTARGET}}
- --with-headers=$(alt_build_headers)
- --prefix="$(host_eprefix)/usr"
- ${EXTRA_ECONF}
- )
-
- # Nothing is compiled here which would affect the headers for the target.
- # So forcing CC/CFLAGS is sane.
- local headers_only_CC=$(tc-getBUILD_CC)
- local headers_only_CFLAGS="-O1 -pipe"
- local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
- local headers_only_LDFLAGS=""
- set -- "${S}"/configure "${myconf[@]}"
- echo \
- "CC=${headers_only_CC}" \
- "CFLAGS=${headers_only_CFLAGS}" \
- "CPPFLAGS=${headers_only_CPPFLAGS}" \
- "LDFLAGS=${headers_only_LDFLAGS}" \
- "$@"
- CC=${headers_only_CC} \
- CFLAGS=${headers_only_CFLAGS} \
- CPPFLAGS=${headers_only_CPPFLAGS} \
- LDFLAGS="" \
- "$@" || die "failed to configure glibc"
-}
-
-do_src_configure() {
- if just_headers ; then
- glibc_headers_configure
- else
- glibc_do_configure nptl
- fi
-}
-
-src_configure() {
- foreach_abi do_src_configure
-}
-
-do_src_compile() {
- emake -C "$(builddir nptl)"
-}
-
-src_compile() {
- if just_headers ; then
- return
- fi
-
- foreach_abi do_src_compile
-}
-
-glibc_src_test() {
- cd "$(builddir nptl)"
- emake check
-}
-
-do_src_test() {
- local ret=0
-
- glibc_src_test
- : $(( ret |= $? ))
-
- return ${ret}
-}
-
-src_test() {
- if just_headers ; then
- return
- fi
-
- # Give tests more time to complete.
- export TIMEOUTFACTOR=5
-
- foreach_abi do_src_test || die "tests failed"
-}
-
-run_locale_gen() {
- # if the host locales.gen contains no entries, we'll install everything
- local root="$1"
- local locale_list="${root}/etc/locale.gen"
- if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
- ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
- locale_list="${root}/usr/share/i18n/SUPPORTED"
- fi
-
- locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \
- --destdir "${root}"
-}
-
-glibc_do_src_install() {
- local builddir=$(builddir nptl)
- cd "${builddir}"
-
- emake install_root="${D}$(build_eprefix)$(alt_prefix)" install
-
- # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support
- # which come without headers etc. Only needed for binary packages since the
- # external net-libs/libnsl has increased soversion. Keep only versioned libraries.
- find "${D}" -name "libnsl.a" -delete
- find "${D}" -name "libnsl.so" -delete
-
- # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need
- # to infer upstream version:
- # '#define VERSION "2.26.90"' -> '2.26.90'
- local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
-
- if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
- # Move versioned .a file out of libdir to evade portage QA checks
- # instead of using gen_usr_ldscript(). We fix ldscript as:
- # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP ( /usr/lib64/glibc-<pv>/libm-<pv>.a ..."
- sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die
- dodir $(alt_usrlibdir)/${P}
- mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
- fi
-
- # We'll take care of the cache ourselves
- rm -f "${ED}"/etc/ld.so.cache
-
- # Everything past this point just needs to be done once ...
- is_final_abi || return 0
-
- # Make sure the non-native interp can be found on multilib systems even
- # if the main library set isn't installed into the right place. Maybe
- # we should query the active gcc for info instead of hardcoding it ?
- local i ldso_abi ldso_name
- local ldso_abi_list=(
- # x86
- amd64 /lib64/ld-linux-x86-64.so.2
- x32 /libx32/ld-linux-x32.so.2
- x86 /lib/ld-linux.so.2
- # mips
- o32 /lib/ld.so.1
- n32 /lib32/ld.so.1
- n64 /lib64/ld.so.1
- # powerpc
- ppc /lib/ld.so.1
- ppc64 /lib64/ld64.so.1
- # riscv
- lp64d /lib/ld-linux-riscv64-lp64d.so.1
- lp64 /lib/ld-linux-riscv64-lp64.so.1
- # s390
- s390 /lib/ld.so.1
- s390x /lib/ld64.so.1
- # sparc
- sparc32 /lib/ld-linux.so.2
- sparc64 /lib64/ld-linux.so.2
- )
- case $(tc-endian) in
- little)
- ldso_abi_list+=(
- # arm
- arm64 /lib/ld-linux-aarch64.so.1
- )
- ;;
- big)
- ldso_abi_list+=(
- # arm
- arm64 /lib/ld-linux-aarch64_be.so.1
- )
- ;;
- esac
- if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
- dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
- fi
- for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
- ldso_abi=${ldso_abi_list[i]}
- has ${ldso_abi} $(get_install_abis) || continue
-
- ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
- if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
- dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
- fi
- done
-
- # With devpts under Linux mounted properly, we do not need the pt_chown
- # binary to be setuid. This is because the default owners/perms will be
- # exactly what we want.
- if ! use suid ; then
- find "${ED}" -name pt_chown -exec chmod -s {} +
- fi
-
- #################################################################
- # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
- # Make sure we install some symlink hacks so that when we build
- # a 2nd stage cross-compiler, gcc finds the target system
- # headers correctly. See gcc/doc/gccinstall.info
- if is_crosscompile ; then
- # We need to make sure that /lib and /usr/lib always exists.
- # gcc likes to use relative paths to get to its multilibs like
- # /usr/lib/../lib64/. So while we don't install any files into
- # /usr/lib/, we do need it to exist.
- keepdir $(alt_prefix)/lib
- keepdir $(alt_prefix)/usr/lib
-
- dosym usr/include $(alt_prefix)/sys-include
- return 0
- fi
-
- # Files for Debian-style locale updating
- dodir /usr/share/i18n
- sed \
- -e "/^#/d" \
- -e "/SUPPORTED-LOCALES=/d" \
- -e "s: \\\\::g" -e "s:/: :g" \
- "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
- || die "generating /usr/share/i18n/SUPPORTED failed"
- cd "${WORKDIR}"/extra/locale
- dosbin locale-gen
- doman *.[0-8]
- insinto /etc
- doins locale.gen
-
- # Make sure all the ABI's can find the locales and so we only
- # have to generate one set
- local a
- keepdir /usr/$(get_libdir)/locale
- for a in $(get_install_abis) ; do
- if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then
- dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale
- fi
- done
-
- # HACK: If we're building for riscv, we need to additionally make sure that
- # we can find the locale archive afterwards
- case ${CTARGET} in
- riscv*)
- if [[ ! -e ${ED}/usr/lib/locale ]] ; then
- dosym ../$(get_libdir)/locale /usr/lib/locale
- fi
- ;;
- *) ;;
- esac
-
- cd "${S}"
-
- # Install misc network config files
- insinto /etc
- doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf
- doins "${WORKDIR}"/extra/etc/*.conf
-
- if use nscd ; then
- doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)"
-
- local nscd_args=(
- -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):"
- )
-
- sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd
-
- systemd_dounit nscd/nscd.service
- systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf
- else
- # Do this since extra/etc/*.conf above might have nscd.conf.
- rm -f "${ED}"/etc/nscd.conf
- fi
-
- echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
- doenvd "${T}"/00glibc
-
- for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do
- [[ -s ${d} ]] && dodoc ${d}
- done
- dodoc -r ChangeLog.old
-
- # Prevent overwriting of the /etc/localtime symlink. We'll handle the
- # creation of the "factory" symlink in pkg_postinst().
- rm -f "${ED}"/etc/localtime
-
- # Generate all locales if this is a native build as locale generation
- if use compile-locales && ! is_crosscompile ; then
- run_locale_gen "${ED}"
- fi
-}
-
-glibc_headers_install() {
- local builddir=$(builddir "headers")
- cd "${builddir}"
- emake install_root="${D}$(build_eprefix)$(alt_prefix)" install-headers
-
- insinto $(alt_headers)/gnu
- doins "${S}"/include/gnu/stubs.h
-
- # Make sure we install the sys-include symlink so that when
- # we build a 2nd stage cross-compiler, gcc finds the target
- # system headers correctly. See gcc/doc/gccinstall.info
- dosym usr/include $(alt_prefix)/sys-include
-}
-
-src_install() {
- if just_headers ; then
- export ABI=default
- glibc_headers_install
- return
- fi
-
- foreach_abi glibc_do_src_install
-}
-
-# Simple test to make sure our new glibc isn't completely broken.
-# Make sure we don't test with statically built binaries since
-# they will fail. Also, skip if this glibc is a cross compiler.
-#
-# If coreutils is built with USE=multicall, some of these files
-# will just be wrapper scripts, not actual ELFs we can test.
-glibc_sanity_check() {
- cd / #228809
-
- # We enter ${ED} so to avoid trouble if the path contains
- # special characters; for instance if the path contains the
- # colon character (:), then the linker will try to split it
- # and look for the libraries in an unexpected place. This can
- # lead to unsafe code execution if the generated prefix is
- # within a world-writable directory.
- # (e.g. /var/tmp/portage:${HOSTNAME})
- pushd "${ED}"/$(get_libdir) >/dev/null
-
- local x striptest
- for x in cal date env free ls true uname uptime ; do
- x=$(type -p ${x})
- [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue
- striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue
- case ${striptest} in
- *"statically linked"*) continue;;
- *"ASCII text"*) continue;;
- esac
- # We need to clear the locale settings as the upgrade might want
- # incompatible locale data. This test is not for verifying that.
- LC_ALL=C \
- ./ld-*.so --library-path . ${x} > /dev/null \
- || die "simple run test (${x}) failed"
- done
-
- popd >/dev/null
-}
-
-pkg_preinst() {
- # nothing to do if just installing headers
- just_headers && return
-
- # prepare /etc/ld.so.conf.d/ for files
- mkdir -p "${EROOT}"/etc/ld.so.conf.d
-
- # Default /etc/hosts.conf:multi to on for systems with small dbs.
- if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then
- sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf
- einfo "Defaulting /etc/host.conf:multi to on"
- fi
-
- [[ ${ROOT} != "/" ]] && return 0
- [[ -d ${ED}/$(get_libdir) ]] || return 0
- [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check
-}
-
-pkg_postinst() {
- # nothing to do if just installing headers
- just_headers && return
-
- if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
- # Generate fastloading iconv module configuration file.
- "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}"
- fi
-
- if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then
- use compile-locales || run_locale_gen "${EROOT}"
- fi
-
- # Check for sanity of /etc/nsswitch.conf, take 2
- if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then
- local entry
- for entry in passwd group shadow; do
- if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then
- ewarn ""
- ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been"
- ewarn "removed from glibc and is now provided by the package"
- ewarn " sys-auth/libnss-nis"
- ewarn "Install it now to keep your NIS setup working."
- ewarn ""
- fi
- done
- fi
-}
diff --git a/sys-libs/glibc/glibc-2.30-r4.ebuild b/sys-libs/glibc/glibc-2.30-r4.ebuild
deleted file mode 100644
index def7dd491a3..00000000000
--- a/sys-libs/glibc/glibc-2.30-r4.ebuild
+++ /dev/null
@@ -1,1489 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \
- multilib systemd multiprocessing
-
-DESCRIPTION="GNU libc C library"
-HOMEPAGE="https://www.gnu.org/software/libc/"
-LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
-SLOT="2.2"
-
-EMULTILIB_PKG="true"
-
-if [[ ${PV} == 9999* ]]; then
- EGIT_REPO_URI="https://sourceware.org/git/glibc.git"
- inherit git-r3
-else
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86"
- SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
-fi
-
-RELEASE_VER=${PV}
-
-GCC_BOOTSTRAP_VER=20180511
-
-# Gentoo patchset
-PATCH_VER=5
-PATCH_DEV=slyfox
-
-SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
-SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
-
-IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla"
-
-# Minimum kernel version that glibc requires
-MIN_KERN_VER="3.2.0"
-
-# Here's how the cross-compile logic breaks down ...
-# CTARGET - machine that will target the binaries
-# CHOST - machine that will host the binaries
-# CBUILD - machine that will build the binaries
-# If CTARGET != CHOST, it means you want a libc for cross-compiling.
-# If CHOST != CBUILD, it means you want to cross-compile the libc.
-# CBUILD = CHOST = CTARGET - native build/install
-# CBUILD != (CHOST = CTARGET) - cross-compile a native build
-# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
-# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
-# For install paths:
-# CHOST = CTARGET - install into /
-# CHOST != CTARGET - install into /usr/CTARGET/
-#
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-# Note [Disable automatic stripping]
-# Disabling automatic stripping for a few reasons:
-# - portage's attempt to strip breaks non-native binaries at least on
-# arm: bug #697428
-# - portage's attempt to strip libpthread.so.0 breaks gdb thread
-# enumeration: bug #697910. This is quite subtle:
-# * gdb uses glibc's libthread_db-1.0.so to enumerate threads.
-# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols
-# via 'ps_pglobal_lookup' symbol defined in gdb.
-# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all
-# known symbols in 'libpthread.so.0'. Specifically 'nptl_version'
-# (unexported) is used to sanity check compatibility before enabling
-# debugging.
-# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint
-# * normal 'strip' command trims '.symtab'
-# Thus our main goal here is to prevent 'libpthread.so.0' from
-# losing it's '.symtab' entries.
-# As Gentoo's strip does not allow us to pass less aggressive stripping
-# options and does not check the machine target we strip selectively.
-
-# We need a new-enough binutils/gcc to match upstream baseline.
-# Also we need to make sure our binutils/gcc supports TLS,
-# and that gcc already contains the hardened patches.
-BDEPEND="
- ${PYTHON_DEPS}
- >=app-misc/pax-utils-0.1.10
- sys-devel/bison
- !<sys-devel/bison-2.7
- doc? ( sys-apps/texinfo )
-"
-COMMON_DEPEND="
- gd? ( media-libs/gd:2= )
- nscd? ( selinux? (
- audit? ( sys-process/audit )
- caps? ( sys-libs/libcap )
- ) )
- suid? ( caps? ( sys-libs/libcap ) )
- selinux? ( sys-libs/libselinux )
- systemtap? ( dev-util/systemtap )
-"
-DEPEND="${COMMON_DEPEND}
- test? ( >=net-dns/libidn2-2.0.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- sys-apps/gentoo-functions
-"
-
-RESTRICT="!test? ( test )"
-
-if [[ ${CATEGORY} == cross-* ]] ; then
- BDEPEND+=" !headers-only? (
- >=${CATEGORY}/binutils-2.24
- >=${CATEGORY}/gcc-6
- )"
- [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
-else
- BDEPEND+="
- >=sys-devel/binutils-2.24
- >=sys-devel/gcc-6
- "
- DEPEND+=" virtual/os-headers "
- RDEPEND+="
- >=net-dns/libidn2-2.0.5
- vanilla? ( !sys-libs/timezone-data )
- "
- PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
-fi
-
-#
-# Small helper functions
-#
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-just_headers() {
- is_crosscompile && use headers-only
-}
-
-alt_prefix() {
- is_crosscompile && echo /usr/${CTARGET}
-}
-
-# This prefix is applicable to CHOST when building against this
-# glibc. It is baked into the library at configure time.
-host_eprefix() {
- is_crosscompile || echo "${EPREFIX}"
-}
-
-# This prefix is applicable to CBUILD when building against this
-# glibc. It determines the destination path at install time.
-build_eprefix() {
- is_crosscompile && echo "${EPREFIX}"
-}
-
-# We need to be able to set alternative headers for compiling for non-native
-# platform. Will also become useful for testing kernel-headers without screwing
-# up the whole system.
-alt_headers() {
- echo ${ALT_HEADERS:=$(alt_prefix)/usr/include}
-}
-
-alt_build_headers() {
- if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
- ALT_BUILD_HEADERS="$(host_eprefix)$(alt_headers)"
- if tc-is-cross-compiler ; then
- ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers)
- if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
- local header_path=$(echo '#include <linux/version.h>' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h')
- ALT_BUILD_HEADERS=${header_path%/linux/version.h}
- fi
- fi
- fi
- echo "${ALT_BUILD_HEADERS}"
-}
-
-alt_libdir() {
- echo $(alt_prefix)/$(get_libdir)
-}
-alt_usrlibdir() {
- echo $(alt_prefix)/usr/$(get_libdir)
-}
-
-builddir() {
- echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1"
-}
-
-do_compile_test() {
- local ret save_cflags=${CFLAGS}
- CFLAGS+=" $1"
- shift
-
- pushd "${T}" >/dev/null
-
- rm -f glibc-test*
- printf '%b' "$*" > glibc-test.c
-
- nonfatal emake glibc-test
- ret=$?
-
- popd >/dev/null
-
- CFLAGS=${save_cflags}
- return ${ret}
-}
-
-do_run_test() {
- local ret
-
- if [[ ${MERGE_TYPE} == "binary" ]] ; then
- # ignore build failures when installing a binary package #324685
- do_compile_test "" "$@" 2>/dev/null || return 0
- else
- if ! do_compile_test "" "$@" ; then
- ewarn "Simple build failed ... assuming this is desired #324685"
- return 0
- fi
- fi
-
- pushd "${T}" >/dev/null
-
- ./glibc-test
- ret=$?
- rm -f glibc-test*
-
- popd >/dev/null
-
- return ${ret}
-}
-
-setup_target_flags() {
- # This largely mucks with compiler flags. None of which should matter
- # when building up just the headers.
- just_headers && return 0
-
- case $(tc-arch) in
- x86)
- # -march needed for #185404 #199334
- # TODO: When creating the first glibc cross-compile, this test will
- # always fail as it does a full link which in turn requires glibc.
- # Probably also applies when changing multilib profile settings (e.g.
- # enabling x86 when the profile was amd64-only previously).
- # We could change main to _start and pass -nostdlib here so that we
- # only test the gcc code compilation. Or we could do a compile and
- # then look for the symbol via scanelf.
- if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
- local t=${CTARGET_OPT:-${CTARGET}}
- t=${t%%-*}
- filter-flags '-march=*'
- export CFLAGS="-march=${t} ${CFLAGS}"
- einfo "Auto adding -march=${t} to CFLAGS #185404"
- fi
- ;;
- amd64)
- # -march needed for #185404 #199334
- # TODO: See cross-compile issues listed above for x86.
- [[ ${ABI} == x86 ]] &&
- if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
- local t=${CTARGET_OPT:-${CTARGET}}
- t=${t%%-*}
- # Normally the target is x86_64-xxx, so turn that into the -march that
- # gcc actually accepts. #528708
- [[ ${t} == "x86_64" ]] && t="x86-64"
- filter-flags '-march=*'
- # ugly, ugly, ugly. ugly.
- CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}")
- export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
- einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})"
- fi
- ;;
- mips)
- # The mips abi cannot support the GNU style hashes. #233233
- filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both
- ;;
- sparc)
- # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
- filter-flags "-fcall-used-g7"
- append-flags "-fcall-used-g6"
-
- # If the CHOST is the basic one (e.g. not sparcv9-xxx already),
- # try to pick a better one so glibc can use cpu-specific .S files.
- # We key off the CFLAGS to get a good value. Also need to handle
- # version skew.
- # We can't force users to set their CHOST to their exact machine
- # as many of these are not recognized by config.sub/gcc and such :(.
- # Note: If the mcpu values don't scale, we might try probing CPP defines.
- # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
-
- local cpu
- case ${CTARGET} in
- sparc64-*)
- case $(get-flag mcpu) in
- niagara[234])
- if ver_test -ge 2.8 ; then
- cpu="sparc64v2"
- elif ver_test -ge 2.4 ; then
- cpu="sparc64v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparc64b"
- fi
- ;;
- niagara)
- if ver_test -ge 2.4 ; then
- cpu="sparc64v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparc64b"
- fi
- ;;
- ultrasparc3)
- cpu="sparc64b"
- ;;
- *)
- # We need to force at least v9a because the base build doesn't
- # work with just v9.
- # https://sourceware.org/bugzilla/show_bug.cgi?id=19477
- [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
- ;;
- esac
- ;;
- sparc-*)
- case $(get-flag mcpu) in
- niagara[234])
- if ver_test -ge 2.8 ; then
- cpu="sparcv9v2"
- elif ver_test -ge 2.4 ; then
- cpu="sparcv9v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparcv9b"
- else
- cpu="sparcv9"
- fi
- ;;
- niagara)
- if ver_test -ge 2.4 ; then
- cpu="sparcv9v"
- elif ver_test -ge 2.2.3 ; then
- cpu="sparcv9b"
- else
- cpu="sparcv9"
- fi
- ;;
- ultrasparc3)
- cpu="sparcv9b"
- ;;
- v9|ultrasparc)
- cpu="sparcv9"
- ;;
- v8|supersparc|hypersparc|leon|leon3)
- cpu="sparcv8"
- ;;
- esac
- ;;
- esac
- [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
- ;;
- esac
-}
-
-setup_flags() {
- # Make sure host make.conf doesn't pollute us
- if is_crosscompile || tc-is-cross-compiler ; then
- CHOST=${CTARGET} strip-unsupported-flags
- fi
-
- # Store our CFLAGS because it's changed depending on which CTARGET
- # we are building when pulling glibc on a multilib profile
- CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
- CFLAGS=${CFLAGS_BASE}
- CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
- CXXFLAGS=${CXXFLAGS_BASE}
- ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
- ASFLAGS=${ASFLAGS_BASE}
-
- # Allow users to explicitly avoid flag sanitization via
- # USE=custom-cflags.
- if ! use custom-cflags; then
- # Over-zealous CFLAGS can often cause problems. What may work for one
- # person may not work for another. To avoid a large influx of bugs
- # relating to failed builds, we strip most CFLAGS out to ensure as few
- # problems as possible.
- strip-flags
- # Lock glibc at -O2; we want to be conservative here.
- filter-flags '-O?'
- append-flags -O2
- fi
- strip-unsupported-flags
- filter-flags -m32 -m64 '-mabi=*'
-
- # glibc aborts if rpath is set by LDFLAGS
- filter-ldflags '-Wl,-rpath=*'
-
- # #492892
- filter-flags -frecord-gcc-switches
-
- unset CBUILD_OPT CTARGET_OPT
- if use multilib ; then
- CTARGET_OPT=$(get_abi_CTARGET)
- [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
- fi
-
- setup_target_flags
-
- if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
- CBUILD_OPT=${CTARGET_OPT}
- fi
-
- # glibc's headers disallow -O0 and fail at build time:
- # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
- replace-flags -O0 -O1
-
- filter-flags '-fstack-protector*'
-}
-
-want_tls() {
- # Archs that can use TLS (Thread Local Storage)
- case $(tc-arch) in
- x86)
- # requires i486 or better #106556
- [[ ${CTARGET} == i[4567]86* ]] && return 0
- return 1
- ;;
- esac
- return 0
-}
-
-want__thread() {
- want_tls || return 1
-
- # For some reason --with-tls --with__thread is causing segfaults on sparc32.
- [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
-
- [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD}
-
- # only test gcc -- can't test linking yet
- tc-has-tls -c ${CTARGET}
- WANT__THREAD=$?
-
- return ${WANT__THREAD}
-}
-
-use_multiarch() {
- # Allow user to disable runtime arch detection in multilib.
- use multiarch || return 1
- # Make sure binutils is new enough to support indirect functions,
- # #336792. This funky sed supports gold and bfd linkers.
- local bver nver
- bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}')
- case $(tc-arch ${CTARGET}) in
- amd64|x86) nver="2.20" ;;
- arm) nver="2.22" ;;
- hppa) nver="2.23" ;;
- ppc|ppc64) nver="2.20" ;;
- # ifunc support was added in 2.23, but glibc also needs
- # machinemode which is in 2.24.
- s390) nver="2.24" ;;
- sparc) nver="2.21" ;;
- *) return 1 ;;
- esac
- ver_test ${bver} -ge ${nver}
-}
-
-# Setup toolchain variables that had historically been defined in the
-# profiles for these archs.
-setup_env() {
- # silly users
- unset LD_RUN_PATH
- unset LD_ASSUME_KERNEL
-
- if is_crosscompile || tc-is-cross-compiler ; then
- multilib_env ${CTARGET_OPT:-${CTARGET}}
-
- if ! use multilib ; then
- MULTILIB_ABIS=${DEFAULT_ABI}
- else
- MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
- fi
-
- # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
- # and fall back on CFLAGS.
- local VAR=CFLAGS_${CTARGET//[-.]/_}
- CFLAGS=${!VAR-${CFLAGS}}
- einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}"
- fi
-
- setup_flags
-
- export ABI=${ABI:-${DEFAULT_ABI:-default}}
-
- if just_headers ; then
- # Avoid mixing host's CC and target's CFLAGS_${ABI}:
- # At this bootstrap stage we have only binutils for
- # target but not compiler yet.
- einfo "Skip CC ABI injection. We can't use (cross-)compiler yet."
- return 0
- fi
- local VAR=CFLAGS_${ABI}
- # We need to export CFLAGS with abi information in them because glibc's
- # configure script checks CFLAGS for some targets (like mips). Keep
- # around the original clean value to avoid appending multiple ABIs on
- # top of each other.
- : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})}
- export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}"
- einfo " $(printf '%15s' 'Manual CC:') ${CC}"
-}
-
-foreach_abi() {
- setup_env
-
- local ret=0
- local abilist=""
- if use multilib ; then
- abilist=$(get_install_abis)
- else
- abilist=${DEFAULT_ABI}
- fi
- local -x ABI
- for ABI in ${abilist:-default} ; do
- setup_env
- einfo "Running $1 for ABI ${ABI}"
- $1
- : $(( ret |= $? ))
- done
- return ${ret}
-}
-
-glibc_banner() {
- local b="Gentoo ${PVR}"
- [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}"
- echo "${b}"
-}
-
-check_devpts() {
- # Make sure devpts is mounted correctly for use w/out setuid pt_chown.
-
- # If merely building the binary package, then there's nothing to verify.
- [[ ${MERGE_TYPE} == "buildonly" ]] && return
-
- # Only sanity check when installing the native glibc.
- [[ -n ${ROOT} ]] && return
-
- # If they're opting in to the old suid code, then no need to check.
- use suid && return
-
- if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then
- eerror "In order to use glibc with USE=-suid, you must make sure that"
- eerror "you have devpts mounted at /dev/pts with the gid=5 option."
- eerror "Openrc should do this for you, so you should check /etc/fstab"
- eerror "and make sure you do not have any invalid settings there."
- die "mount & fix your /dev/pts settings"
- fi
-}
-
-# The following Kernel version handling functions are mostly copied from portage
-# source. It's better not to use linux-info.eclass here since a) it adds too
-# much magic, see bug 326693 for some of the arguments, and b) some of the
-# functions are just not provided.
-
-g_get_running_KV() {
- uname -r
- return $?
-}
-
-g_KV_major() {
- [[ -z $1 ]] && return 1
- local KV=$@
- echo "${KV%%.*}"
-}
-
-g_KV_minor() {
- [[ -z $1 ]] && return 1
- local KV=$@
- KV=${KV#*.}
- echo "${KV%%.*}"
-}
-
-g_KV_micro() {
- [[ -z $1 ]] && return 1
- local KV=$@
- KV=${KV#*.*.}
- echo "${KV%%[^[:digit:]]*}"
-}
-
-g_KV_to_int() {
- [[ -z $1 ]] && return 1
- local KV_MAJOR=$(g_KV_major "$1")
- local KV_MINOR=$(g_KV_minor "$1")
- local KV_MICRO=$(g_KV_micro "$1")
- local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
-
- # We make version 2.2.0 the minimum version we will handle as
- # a sanity check ... if its less, we fail ...
- if [[ ${KV_int} -ge 131584 ]] ; then
- echo "${KV_int}"
- return 0
- fi
- return 1
-}
-
-g_int_to_KV() {
- local version=$1 major minor micro
- major=$((version / 65536))
- minor=$(((version % 65536) / 256))
- micro=$((version % 256))
- echo ${major}.${minor}.${micro}
-}
-
-eend_KV() {
- [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]]
- eend $?
-}
-
-get_kheader_version() {
- printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
- $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \
- tail -n 1
-}
-
-# We collect all sanity checks here. Consistency is not guranteed between
-# pkg_ and src_ phases, so we call this function both in pkg_pretend and in
-# src_unpack.
-sanity_prechecks() {
- # Make sure devpts is mounted correctly for use w/out setuid pt_chown
- check_devpts
-
- # Prevent native builds from downgrading
- if [[ ${MERGE_TYPE} != "buildonly" ]] && \
- [[ -z ${ROOT} ]] && \
- [[ ${CBUILD} == ${CHOST} ]] && \
- [[ ${CHOST} == ${CTARGET} ]] ; then
-
- # The high rev # is to allow people to downgrade between -r#
- # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2
- # should be fine. Hopefully we never actually use a r# this
- # high.
- if has_version ">${CATEGORY}/${P}-r10000" ; then
- eerror "Sanity check to keep you from breaking your system:"
- eerror " Downgrading glibc is not supported and a sure way to destruction."
- [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system."
- fi
-
- if ! do_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
- eerror "Your old kernel is broken. You need to update it to a newer"
- eerror "version as syscall(<bignum>) will break. See bug 279260."
- die "Old and broken kernel."
- 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
- eerror "i386 CHOSTs are no longer supported."
- eerror "Chances are you don't actually want/need i386."
- eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml"
- die "Please fix your CHOST"
- fi
-
- if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
- ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
- ewarn "This will result in a 50% performance penalty when running with a 32bit"
- ewarn "hypervisor, which is probably not what you want."
- fi
-
- # Check for sanity of /etc/nsswitch.conf
- if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then
- local entry
- for entry in passwd group shadow; do
- if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then
- eerror "Your ${EROOT}/etc/nsswitch.conf is out of date."
- eerror "Please make sure you have 'files' entries for"
- eerror "'passwd:', 'group:' and 'shadow:' databases."
- eerror "For more details see:"
- eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26"
- die "nsswitch.conf has no 'files' provider in '${entry}'."
- fi
- done
- fi
-
- # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
- # we test for...
- if ! is_crosscompile ; then
- if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
- ebegin "Checking that IA32 emulation is enabled in the running kernel"
- echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
- local STAT
- if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
- "${T}/check-ia32-emulation.elf32"
- STAT=$?
- else
- # Don't fail here to allow single->multi ABI switch
- # or recover from breakage like bug #646424
- ewarn "Failed to compile the ABI test. Broken host glibc?"
- STAT=0
- fi
- rm -f "${T}/check-ia32-emulation.elf32"
- eend $STAT
- [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc."
- fi
-
- fi
-
- # When we actually have to compile something...
- if ! just_headers ; then
- ebegin "Checking gcc for __thread support"
- if ! eend $(want__thread ; echo $?) ; then
- echo
- eerror "Could not find a gcc that supports the __thread directive!"
- eerror "Please update your binutils/gcc and try again."
- die "No __thread support in gcc!"
- fi
-
- if [[ ${CTARGET} == *-linux* ]] ; then
- local run_kv build_kv want_kv
-
- run_kv=$(g_get_running_KV)
- build_kv=$(g_int_to_KV $(get_kheader_version))
- want_kv=${MIN_KERN_VER}
-
- if ! is_crosscompile && ! tc-is-cross-compiler ; then
- # Building fails on an non-supporting kernel
- ebegin "Checking running kernel version (${run_kv} >= ${want_kv})"
- if ! eend_KV ${run_kv} ${want_kv} ; then
- echo
- eerror "You need a kernel of at least ${want_kv}!"
- die "Kernel version too low!"
- fi
- fi
-
- ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
- if ! eend_KV ${build_kv} ${want_kv} ; then
- echo
- eerror "You need linux-headers of at least ${want_kv}!"
- die "linux-headers version too low!"
- fi
- fi
- fi
-}
-
-#
-# the phases
-#
-
-# pkg_pretend
-
-pkg_pretend() {
- # All the checks...
- einfo "Checking general environment sanity."
- sanity_prechecks
-}
-
-pkg_setup() {
- # see bug 682570
- [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
-}
-
-# src_unpack
-
-src_unpack() {
- # Consistency is not guaranteed between pkg_ and src_ ...
- sanity_prechecks
-
- use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
-
- setup_env
-
- if [[ -n ${EGIT_REPO_URI} ]] ; then
- git-r3_src_unpack
- else
- unpack ${P}.tar.xz
- fi
-
- cd "${WORKDIR}" || die
- unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz
-}
-
-src_prepare() {
- if ! use vanilla ; then
- elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}"
- eapply "${WORKDIR}"/patches
- einfo "Done."
- fi
-
- default
-
- gnuconfig_update
-
- cd "${WORKDIR}"
- find . -name configure -exec touch {} +
-
- eprefixify extra/locale/locale-gen
-
- # Fix permissions on some of the scripts.
- chmod u+x "${S}"/scripts/*.sh
-
- cd "${S}"
-}
-
-glibc_do_configure() {
- # Glibc does not work with gold (for various reasons) #269274.
- tc-ld-disable-gold
-
- # CXX isnt handled by the multilib system, so if we dont unset here
- # we accumulate crap across abis
- unset CXX
-
- einfo "Configuring glibc for nptl"
-
- if use doc ; then
- export MAKEINFO=makeinfo
- else
- export MAKEINFO=/dev/null
- fi
-
- local v
- for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do
- einfo " $(printf '%15s' ${v}:) ${!v}"
- done
-
- # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760
- # To build .S (assembly) files with the same ABI-specific flags
- # upstream currently recommends adding CFLAGS to CC/CXX:
- # https://sourceware.org/PR23273
- # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS
- # and breaks multiarch support. See 659030#c3 for an example.
- # The glibc configure script doesn't properly use LDFLAGS all the time.
- export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}"
- einfo " $(printf '%15s' 'Manual CC:') ${CC}"
-
- # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
- export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}"
-
- if is_crosscompile; then
- # Assume worst-case bootstrap: glibc is buil first time
- # when ${CTARGET}-g++ is not available yet. We avoid
- # building auxiliary programs that require C++: bug #683074
- # It should not affect final result.
- export libc_cv_cxx_link_ok=no
- # The line above has the same effect. We set CXX explicitly
- # to make build logs less confusing.
- export CXX=
- fi
- einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
-
- echo
-
- local myconf=()
-
- case ${CTARGET} in
- m68k*)
- # setjmp() is not compatible with stack protection:
- # https://sourceware.org/PR24202
- myconf+=( --enable-stack-protector=no )
- ;;
- powerpc-*)
- # Currently gcc on powerpc32 generates invalid code for
- # __builtin_return_address(0) calls. Normally programs
- # don't do that but malloc hooks in glibc do:
- # https://gcc.gnu.org/PR81996
- # https://bugs.gentoo.org/629054
- myconf+=( --enable-stack-protector=no )
- ;;
- *)
- myconf+=( --enable-stack-protector=$(usex ssp all no) )
- ;;
- esac
- myconf+=( --enable-stackguard-randomization )
-
- # Keep a whitelist of targets supporing IFUNC. glibc's ./configure
- # is not robust enough to detect proper support:
- # https://bugs.gentoo.org/641216
- # https://sourceware.org/PR22634#c0
- case $(tc-arch ${CTARGET}) in
- # Keep whitelist of targets where autodetection mostly works.
- amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
- # Blacklist everywhere else
- *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
- esac
-
- # Enable Intel Control-flow Enforcement Technology on amd64 if requested
- case ${CTARGET} in
- x86_64-*) myconf+=( $(use_enable cet) ) ;;
- *) ;;
- esac
-
- [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
-
- myconf+=( --enable-kernel=${MIN_KERN_VER} )
-
- # Since SELinux support is only required for nscd, only enable it if:
- # 1. USE selinux
- # 2. only for the primary ABI on multilib systems
- # 3. Not a crosscompile
- if ! is_crosscompile && use selinux ; then
- if use multilib ; then
- if is_final_abi ; then
- myconf+=( --with-selinux )
- else
- myconf+=( --without-selinux )
- fi
- else
- myconf+=( --with-selinux )
- fi
- else
- myconf+=( --without-selinux )
- fi
-
- # Force a few tests where we always know the answer but
- # configure is incapable of finding it.
- if is_crosscompile ; then
- export \
- libc_cv_c_cleanup=yes \
- libc_cv_forced_unwind=yes
- fi
-
- myconf+=(
- --without-cvs
- --disable-werror
- --enable-bind-now
- --build=${CBUILD_OPT:-${CBUILD}}
- --host=${CTARGET_OPT:-${CTARGET}}
- $(use_enable profile)
- $(use_with gd)
- --with-headers=$(build_eprefix)$(alt_build_headers)
- --prefix="$(host_eprefix)/usr"
- --sysconfdir="$(host_eprefix)/etc"
- --localstatedir="$(host_eprefix)/var"
- --libdir='$(prefix)'/$(get_libdir)
- --mandir='$(prefix)'/share/man
- --infodir='$(prefix)'/share/info
- --libexecdir='$(libdir)'/misc/glibc
- --with-bugurl=https://bugs.gentoo.org/
- --with-pkgversion="$(glibc_banner)"
- $(use_enable crypt)
- $(use_multiarch || echo --disable-multi-arch)
- $(use_enable systemtap)
- $(use_enable nscd)
- ${EXTRA_ECONF}
- )
-
- # We rely on sys-libs/timezone-data for timezone tools normally.
- myconf+=( $(use_enable vanilla timezone-tools) )
-
- # These libs don't have configure flags.
- ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no)
- ac_cv_lib_cap_cap_init=$(usex caps || echo no)
-
- # There is no configure option for this and we need to export it
- # since the glibc build will re-run configure on itself
- export libc_cv_rootsbindir="$(host_eprefix)/sbin"
- export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)"
-
- # We take care of patching our binutils to use both hash styles,
- # and many people like to force gnu hash style only, so disable
- # this overriding check. #347761
- export libc_cv_hashstyle=no
-
- local builddir=$(builddir nptl)
- mkdir -p "${builddir}"
- cd "${builddir}"
- set -- "${S}"/configure "${myconf[@]}"
- echo "$@"
- "$@" || die "failed to configure glibc"
-
- # ia64 static cross-compilers are a pita in so much that they
- # can't produce static ELFs (as the libgcc.a is broken). so
- # disable building of the programs for those targets if it
- # doesn't work.
- # XXX: We could turn this into a compiler test, but ia64 is
- # the only one that matters, so this should be fine for now.
- if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then
- sed -i '1i+link-static = touch $@' config.make
- fi
-
- # If we're trying to migrate between ABI sets, we need
- # to lie and use a local copy of gcc. Like if the system
- # is built with MULTILIB_ABIS="amd64 x86" but we want to
- # add x32 to it, gcc/glibc don't yet support x32.
- #
- if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then
- echo 'main(){}' > "${T}"/test.c
- if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then
- sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die
- fi
- fi
-}
-
-glibc_headers_configure() {
- export ABI=default
-
- local builddir=$(builddir "headers")
- mkdir -p "${builddir}"
- cd "${builddir}"
-
- # if we don't have a compiler yet, we can't really test it now ...
- # hopefully they don't affect header generation, so let's hope for
- # the best here ...
- local v vars=(
- ac_cv_header_cpuid_h=yes
- libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes
- libc_cv_asm_cfi_directives=yes
- libc_cv_broken_visibility_attribute=no
- libc_cv_c_cleanup=yes
- libc_cv_compiler_powerpc64le_binary128_ok=yes
- libc_cv_forced_unwind=yes
- libc_cv_gcc___thread=yes
- libc_cv_mlong_double_128=yes
- libc_cv_mlong_double_128ibm=yes
- libc_cv_ppc_machine=yes
- libc_cv_ppc_rel16=yes
- libc_cv_predef_fortify_source=no
- libc_cv_target_power8_ok=yes
- libc_cv_visibility_attribute=yes
- libc_cv_z_combreloc=yes
- libc_cv_z_execstack=yes
- libc_cv_z_initfirst=yes
- libc_cv_z_nodelete=yes
- libc_cv_z_nodlopen=yes
- libc_cv_z_relro=yes
- libc_mips_abi=${ABI}
- libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
- # These libs don't have configure flags.
- ac_cv_lib_audit_audit_log_user_avc_message=no
- ac_cv_lib_cap_cap_init=no
- )
-
- einfo "Forcing cached settings:"
- for v in "${vars[@]}" ; do
- einfo " ${v}"
- export ${v}
- done
-
- local headers_only_arch_CPPFLAGS=()
-
- # Blow away some random CC settings that screw things up. #550192
- if [[ -d ${S}/sysdeps/mips ]]; then
- pushd "${S}"/sysdeps/mips >/dev/null
- sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die
- sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die
-
- # Force the mips ABI to the default. This is OK because the set of
- # installed headers in this phase is the same between the 3 ABIs.
- # If this ever changes, this hack will break, but that's unlikely
- # as glibc discourages that behavior.
- # https://crbug.com/647033
- sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die
-
- popd >/dev/null
- fi
-
- case ${CTARGET} in
- riscv*)
- # RISC-V interrogates the compiler to determine which target to
- # build. If building the headers then we don't strictly need a
- # RISC-V compiler, so the built-in definitions that are provided
- # along with all RISC-V compiler might not exist. This causes
- # glibc's RISC-V preconfigure script to blow up. Since we're just
- # building the headers any value will actually work here, so just
- # pick the standard one (rv64g/lp64d) to make the build scripts
- # happy for now -- the headers are all the same anyway so it
- # doesn't matter.
- headers_only_arch_CPPFLAGS+=(
- -D__riscv_xlen=64
- -D__riscv_flen=64
- -D__riscv_float_abi_double=1
- -D__riscv_atomic=1
- ) ;;
- esac
-
- local myconf=()
- myconf+=(
- --disable-sanity-checks
- --enable-hacker-mode
- --without-cvs
- --disable-werror
- --enable-bind-now
- --build=${CBUILD_OPT:-${CBUILD}}
- --host=${CTARGET_OPT:-${CTARGET}}
- --with-headers=$(build_eprefix)$(alt_build_headers)
- --prefix="$(host_eprefix)/usr"
- ${EXTRA_ECONF}
- )
-
- # Nothing is compiled here which would affect the headers for the target.
- # So forcing CC/CFLAGS is sane.
- local headers_only_CC=$(tc-getBUILD_CC)
- local headers_only_CFLAGS="-O1 -pipe"
- local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
- local headers_only_LDFLAGS=""
- set -- "${S}"/configure "${myconf[@]}"
- echo \
- "CC=${headers_only_CC}" \
- "CFLAGS=${headers_only_CFLAGS}" \
- "CPPFLAGS=${headers_only_CPPFLAGS}" \
- "LDFLAGS=${headers_only_LDFLAGS}" \
- "$@"
- CC=${headers_only_CC} \
- CFLAGS=${headers_only_CFLAGS} \
- CPPFLAGS=${headers_only_CPPFLAGS} \
- LDFLAGS="" \
- "$@" || die "failed to configure glibc"
-}
-
-do_src_configure() {
- if just_headers ; then
- glibc_headers_configure
- else
- glibc_do_configure nptl
- fi
-}
-
-src_configure() {
- foreach_abi do_src_configure
-}
-
-do_src_compile() {
- emake -C "$(builddir nptl)"
-}
-
-src_compile() {
- if just_headers ; then
- return
- fi
-
- foreach_abi do_src_compile
-}
-
-glibc_src_test() {
- cd "$(builddir nptl)"
- emake check
-}
-
-do_src_test() {
- local ret=0
-
- glibc_src_test
- : $(( ret |= $? ))
-
- return ${ret}
-}
-
-src_test() {
- if just_headers ; then
- return
- fi
-
- # Give tests more time to complete.
- export TIMEOUTFACTOR=5
-
- foreach_abi do_src_test || die "tests failed"
-}
-
-run_locale_gen() {
- # if the host locales.gen contains no entries, we'll install everything
- local root="$1"
- local inplace=""
-
- if [[ "${root}" == "--inplace-glibc" ]] ; then
- inplace="--inplace-glibc"
- root="$2"
- fi
-
- local locale_list="${root}/etc/locale.gen"
-
- pushd "${ED}"/$(get_libdir) >/dev/null
-
- if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
- [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
- locale_list="${root}/usr/share/i18n/SUPPORTED"
- fi
-
- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \
- --destdir "${root}"
-
- popd >/dev/null
-}
-
-glibc_do_src_install() {
- local builddir=$(builddir nptl)
- cd "${builddir}"
-
- emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install
-
- # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support
- # which come without headers etc. Only needed for binary packages since the
- # external net-libs/libnsl has increased soversion. Keep only versioned libraries.
- find "${D}" -name "libnsl.a" -delete
- find "${D}" -name "libnsl.so" -delete
-
- # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need
- # to infer upstream version:
- # '#define VERSION "2.26.90"' -> '2.26.90'
- local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
-
- # Avoid stripping binaries not targeted by ${CHOST}. Or else
- # ${CHOST}-strip would break binaries build for ${CTARGET}.
- is_crosscompile && dostrip -x /
- # gdb thread introspection relies on local libpthreas symbols. stripping breaks it
- # See Note [Disable automatic stripping]
- dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
-
- if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
- # Move versioned .a file out of libdir to evade portage QA checks
- # instead of using gen_usr_ldscript(). We fix ldscript as:
- # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP ( /usr/lib64/glibc-<pv>/libm-<pv>.a ..."
- sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die
- dodir $(alt_usrlibdir)/${P}
- mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
- fi
-
- # We'll take care of the cache ourselves
- rm -f "${ED}"/etc/ld.so.cache
-
- # Everything past this point just needs to be done once ...
- is_final_abi || return 0
-
- # Make sure the non-native interp can be found on multilib systems even
- # if the main library set isn't installed into the right place. Maybe
- # we should query the active gcc for info instead of hardcoding it ?
- local i ldso_abi ldso_name
- local ldso_abi_list=(
- # x86
- amd64 /lib64/ld-linux-x86-64.so.2
- x32 /libx32/ld-linux-x32.so.2
- x86 /lib/ld-linux.so.2
- # mips
- o32 /lib/ld.so.1
- n32 /lib32/ld.so.1
- n64 /lib64/ld.so.1
- # powerpc
- ppc /lib/ld.so.1
- ppc64 /lib64/ld64.so.1
- # riscv
- lp64d /lib/ld-linux-riscv64-lp64d.so.1
- lp64 /lib/ld-linux-riscv64-lp64.so.1
- # s390
- s390 /lib/ld.so.1
- s390x /lib/ld64.so.1
- # sparc
- sparc32 /lib/ld-linux.so.2
- sparc64 /lib64/ld-linux.so.2
- )
- case $(tc-endian) in
- little)
- ldso_abi_list+=(
- # arm
- arm64 /lib/ld-linux-aarch64.so.1
- )
- ;;
- big)
- ldso_abi_list+=(
- # arm
- arm64 /lib/ld-linux-aarch64_be.so.1
- )
- ;;
- esac
- if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
- dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
- fi
- for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
- ldso_abi=${ldso_abi_list[i]}
- has ${ldso_abi} $(get_install_abis) || continue
-
- ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
- if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
- dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
- fi
- done
-
- # With devpts under Linux mounted properly, we do not need the pt_chown
- # binary to be setuid. This is because the default owners/perms will be
- # exactly what we want.
- if ! use suid ; then
- find "${ED}" -name pt_chown -exec chmod -s {} +
- fi
-
- #################################################################
- # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
- # Make sure we install some symlink hacks so that when we build
- # a 2nd stage cross-compiler, gcc finds the target system
- # headers correctly. See gcc/doc/gccinstall.info
- if is_crosscompile ; then
- # We need to make sure that /lib and /usr/lib always exists.
- # gcc likes to use relative paths to get to its multilibs like
- # /usr/lib/../lib64/. So while we don't install any files into
- # /usr/lib/, we do need it to exist.
- keepdir $(alt_prefix)/lib
- keepdir $(alt_prefix)/usr/lib
-
- dosym usr/include $(alt_prefix)/sys-include
- return 0
- fi
-
- # Files for Debian-style locale updating
- dodir /usr/share/i18n
- sed \
- -e "/^#/d" \
- -e "/SUPPORTED-LOCALES=/d" \
- -e "s: \\\\::g" -e "s:/: :g" \
- "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
- || die "generating /usr/share/i18n/SUPPORTED failed"
- cd "${WORKDIR}"/extra/locale
- dosbin locale-gen
- doman *.[0-8]
- insinto /etc
- doins locale.gen
-
- # Make sure all the ABI's can find the locales and so we only
- # have to generate one set
- local a
- keepdir /usr/$(get_libdir)/locale
- for a in $(get_install_abis) ; do
- if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then
- dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale
- fi
- done
-
- # HACK: If we're building for riscv, we need to additionally make sure that
- # we can find the locale archive afterwards
- case ${CTARGET} in
- riscv*)
- if [[ ! -e ${ED}/usr/lib/locale ]] ; then
- dosym ../$(get_libdir)/locale /usr/lib/locale
- fi
- ;;
- *) ;;
- esac
-
- cd "${S}"
-
- # Install misc network config files
- insinto /etc
- doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf
- doins "${WORKDIR}"/extra/etc/*.conf
-
- if use nscd ; then
- doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)"
-
- local nscd_args=(
- -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):"
- )
-
- sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd
-
- systemd_dounit nscd/nscd.service
- systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf
- else
- # Do this since extra/etc/*.conf above might have nscd.conf.
- rm -f "${ED}"/etc/nscd.conf
- fi
-
- echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
- doenvd "${T}"/00glibc
-
- for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do
- [[ -s ${d} ]] && dodoc ${d}
- done
- dodoc -r ChangeLog.old
-
- # Prevent overwriting of the /etc/localtime symlink. We'll handle the
- # creation of the "factory" symlink in pkg_postinst().
- rm -f "${ED}"/etc/localtime
-
- # Generate all locales if this is a native build as locale generation
- if use compile-locales && ! is_crosscompile ; then
- run_locale_gen --inplace-glibc "${ED}/"
- sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
- fi
-}
-
-glibc_headers_install() {
- local builddir=$(builddir "headers")
- cd "${builddir}"
- emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers
-
- insinto $(alt_headers)/gnu
- doins "${S}"/include/gnu/stubs.h
-
- # Make sure we install the sys-include symlink so that when
- # we build a 2nd stage cross-compiler, gcc finds the target
- # system headers correctly. See gcc/doc/gccinstall.info
- dosym usr/include $(alt_prefix)/sys-include
-}
-
-src_install() {
- if just_headers ; then
- export ABI=default
- glibc_headers_install
- return
- fi
-
- foreach_abi glibc_do_src_install
-
- if ! use static-libs ; then
- elog "Not installing static glibc libraries"
- find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete
- fi
-}
-
-# Simple test to make sure our new glibc isn't completely broken.
-# Make sure we don't test with statically built binaries since
-# they will fail. Also, skip if this glibc is a cross compiler.
-#
-# If coreutils is built with USE=multicall, some of these files
-# will just be wrapper scripts, not actual ELFs we can test.
-glibc_sanity_check() {
- cd / #228809
-
- # We enter ${ED} so to avoid trouble if the path contains
- # special characters; for instance if the path contains the
- # colon character (:), then the linker will try to split it
- # and look for the libraries in an unexpected place. This can
- # lead to unsafe code execution if the generated prefix is
- # within a world-writable directory.
- # (e.g. /var/tmp/portage:${HOSTNAME})
- pushd "${ED}"/$(get_libdir) >/dev/null
-
- local x striptest
- for x in cal date env free ls true uname uptime ; do
- x=$(type -p ${x})
- [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue
- striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue
- case ${striptest} in
- *"statically linked"*) continue;;
- *"ASCII text"*) continue;;
- esac
- # We need to clear the locale settings as the upgrade might want
- # incompatible locale data. This test is not for verifying that.
- LC_ALL=C \
- ./ld-*.so --library-path . ${x} > /dev/null \
- || die "simple run test (${x}) failed"
- done
-
- popd >/dev/null
-}
-
-pkg_preinst() {
- # nothing to do if just installing headers
- just_headers && return
-
- # prepare /etc/ld.so.conf.d/ for files
- mkdir -p "${EROOT}"/etc/ld.so.conf.d
-
- # Default /etc/hosts.conf:multi to on for systems with small dbs.
- if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then
- sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf
- einfo "Defaulting /etc/host.conf:multi to on"
- fi
-
- [[ -n ${ROOT} ]] && return 0
- [[ -d ${ED}/$(get_libdir) ]] || return 0
- [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check
-}
-
-pkg_postinst() {
- # nothing to do if just installing headers
- just_headers && return
-
- if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
- # Generate fastloading iconv module configuration file.
- "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/"
- fi
-
- if ! is_crosscompile && [[ -z ${ROOT} ]] ; then
- use compile-locales || run_locale_gen "${EROOT}/"
- fi
-
- # Check for sanity of /etc/nsswitch.conf, take 2
- if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then
- local entry
- for entry in passwd group shadow; do
- if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then
- ewarn ""
- ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been"
- ewarn "removed from glibc and is now provided by the package"
- ewarn " sys-auth/libnss-nis"
- ewarn "Install it now to keep your NIS setup working."
- ewarn ""
- fi
- done
- fi
-}
next reply other threads:[~2020-03-20 15:30 UTC|newest]
Thread overview: 1103+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-20 15:30 Andreas K. Hüttel [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-01-28 7:22 [gentoo-commits] repo/gentoo:master commit in: sys-libs/glibc/ Sam James
2025-01-24 6:31 Arthur Zamarin
2025-01-24 6:31 Arthur Zamarin
2025-01-24 6:31 Arthur Zamarin
2025-01-24 6:29 Arthur Zamarin
2025-01-24 3:30 Sam James
2025-01-24 3:30 Sam James
2025-01-23 14:00 Andreas K. Hüttel
2025-01-23 9:15 Andreas K. Hüttel
2025-01-23 9:15 Andreas K. Hüttel
2025-01-23 9:15 Andreas K. Hüttel
2025-01-22 23:30 Andreas K. Hüttel
2025-01-20 15:26 Andreas K. Hüttel
2025-01-20 13:33 Andreas K. Hüttel
2025-01-19 19:27 Andreas K. Hüttel
2025-01-18 21:51 James Le Cuirot
2025-01-02 13:29 James Le Cuirot
2024-12-28 17:38 Sam James
2024-12-25 10:01 Sam James
2024-12-19 16:44 Andreas K. Hüttel
2024-12-06 18:55 Andreas K. Hüttel
2024-12-06 18:55 Andreas K. Hüttel
2024-12-06 15:28 Andreas K. Hüttel
2024-12-05 13:12 Andreas K. Hüttel
2024-12-05 0:05 Andreas K. Hüttel
2024-12-04 16:47 Andreas K. Hüttel
2024-12-01 9:03 Sam James
2024-11-21 15:04 Sam James
2024-11-21 15:04 Sam James
2024-11-21 15:04 Sam James
2024-11-21 15:04 Sam James
2024-11-21 15:04 Sam James
2024-11-21 15:04 Sam James
2024-11-03 17:27 Andreas K. Hüttel
2024-11-03 4:40 Sam James
2024-11-03 4:40 Sam James
2024-11-02 11:23 Arthur Zamarin
2024-11-02 11:23 Arthur Zamarin
2024-11-02 8:49 Michał Górny
2024-11-02 8:49 Michał Górny
2024-11-02 3:47 Sam James
2024-11-02 3:47 Sam James
2024-11-02 3:23 Sam James
2024-11-02 3:23 Sam James
2024-10-10 7:11 Andreas K. Hüttel
2024-10-10 1:13 Andreas K. Hüttel
2024-10-09 9:16 Andreas K. Hüttel
2024-10-09 6:57 Andreas K. Hüttel
2024-10-09 6:57 Andreas K. Hüttel
2024-10-07 15:56 Sam James
2024-10-03 16:43 Andreas K. Hüttel
2024-10-03 12:35 Andreas K. Hüttel
2024-10-03 9:29 Andreas K. Hüttel
2024-10-01 16:23 Andreas K. Hüttel
2024-10-01 16:23 Andreas K. Hüttel
2024-09-12 22:08 Sam James
2024-09-12 10:47 Andreas K. Hüttel
2024-09-11 23:56 Andreas K. Hüttel
2024-09-10 10:01 Andreas K. Hüttel
2024-09-09 10:59 Andreas K. Hüttel
2024-08-31 0:33 Sam James
2024-08-26 16:33 Sam James
2024-07-28 3:35 Sam James
2024-07-27 15:42 Sam James
2024-07-22 20:46 Andreas K. Hüttel
2024-07-22 15:37 Andreas K. Hüttel
2024-06-28 18:05 Sam James
2024-06-26 14:59 Mike Gilbert
2024-06-24 1:28 Sam James
2024-06-14 12:46 Andreas K. Hüttel
2024-06-13 13:56 Andreas K. Hüttel
2024-06-12 23:29 Sam James
2024-06-12 23:29 Sam James
2024-06-12 23:16 Andreas K. Hüttel
2024-06-11 20:16 Andreas K. Hüttel
2024-05-30 12:00 Andreas K. Hüttel
2024-05-29 22:46 Andreas K. Hüttel
2024-05-25 19:03 Arthur Zamarin
2024-05-25 19:03 Arthur Zamarin
2024-05-19 17:37 Arthur Zamarin
2024-05-17 18:26 Sam James
2024-05-17 16:01 Sam James
2024-05-17 14:59 Arthur Zamarin
2024-05-17 14:59 Arthur Zamarin
2024-05-14 14:36 Andreas K. Hüttel
2024-05-12 14:28 Andreas K. Hüttel
2024-05-12 10:26 Andreas K. Hüttel
2024-05-11 1:42 Sam James
2024-05-06 5:28 Sam James
2024-05-05 1:14 Andreas K. Hüttel
2024-05-04 14:10 Andreas K. Hüttel
2024-05-04 13:59 Andreas K. Hüttel
2024-05-04 13:58 Andreas K. Hüttel
2024-05-04 12:00 Sam James
2024-05-04 12:00 Sam James
2024-05-01 23:48 Andreas K. Hüttel
2024-05-01 23:18 Ionen Wolkens
2024-05-01 23:18 Ionen Wolkens
2024-04-30 5:54 Sam James
2024-04-26 19:36 Sam James
2024-04-26 18:46 Arthur Zamarin
2024-04-26 18:40 Arthur Zamarin
2024-04-26 18:37 Arthur Zamarin
2024-04-26 18:16 Sam James
2024-04-26 13:42 Andreas K. Hüttel
2024-04-26 10:02 Andreas K. Hüttel
2024-04-24 15:02 Sam James
2024-04-23 14:40 Sam James
2024-04-20 18:08 Arthur Zamarin
2024-04-20 18:08 Arthur Zamarin
2024-04-20 9:42 Michał Górny
2024-04-20 9:42 Michał Górny
2024-04-20 9:42 Michał Górny
2024-04-19 10:47 Andreas K. Hüttel
2024-04-18 2:42 Sam James
2024-04-18 2:42 Sam James
2024-04-18 0:39 Andreas K. Hüttel
2024-04-13 18:41 Sam James
2024-04-13 18:41 Sam James
2024-04-06 6:51 Arthur Zamarin
2024-04-06 6:51 Arthur Zamarin
2024-04-06 6:51 Arthur Zamarin
2024-04-06 6:51 Arthur Zamarin
2024-03-22 4:14 Sam James
2024-03-18 14:59 Sam James
2024-03-11 19:20 Sam James
2024-03-03 17:17 Andreas K. Hüttel
2024-03-03 2:00 Andreas K. Hüttel
2024-02-24 20:45 Andreas K. Hüttel
2024-02-23 23:07 Andreas K. Hüttel
2024-02-23 12:13 Andreas K. Hüttel
2024-02-23 7:14 Sam James
2024-02-19 16:59 Andreas K. Hüttel
2024-02-19 5:44 Andreas K. Hüttel
2024-02-05 23:09 Andreas K. Hüttel
2024-02-05 23:09 Andreas K. Hüttel
2024-02-02 2:34 Sam James
2024-02-02 2:34 Sam James
2024-02-02 2:34 Sam James
2024-02-02 2:34 Sam James
2024-02-02 2:34 Sam James
2024-01-31 23:23 Andreas K. Hüttel
2024-01-31 22:08 Sam James
2024-01-31 22:05 Sam James
2024-01-31 22:05 Sam James
2024-01-31 22:02 Andreas K. Hüttel
2024-01-31 16:35 Andreas K. Hüttel
2024-01-31 1:36 Andreas K. Hüttel
2024-01-30 19:16 Andreas K. Hüttel
2024-01-23 18:28 Andreas K. Hüttel
2024-01-23 18:13 Andreas K. Hüttel
2024-01-11 18:55 Andreas K. Hüttel
2024-01-11 0:05 Andreas K. Hüttel
2024-01-09 15:21 Andreas K. Hüttel
2024-01-09 2:57 Sam James
2024-01-07 14:25 Arthur Zamarin
2024-01-07 14:25 Arthur Zamarin
2024-01-07 12:43 Arthur Zamarin
2024-01-07 12:43 Arthur Zamarin
2024-01-07 12:43 Arthur Zamarin
2024-01-07 12:43 Arthur Zamarin
2024-01-07 12:43 Arthur Zamarin
2024-01-07 12:43 Arthur Zamarin
2024-01-07 12:42 Arthur Zamarin
2024-01-07 12:42 Arthur Zamarin
2024-01-07 12:42 Arthur Zamarin
2024-01-07 12:42 Arthur Zamarin
2024-01-07 9:53 Sam James
2024-01-07 9:53 Sam James
2024-01-03 21:56 Sam James
2024-01-03 21:54 Sam James
2023-12-25 20:03 Andreas K. Hüttel
2023-12-25 20:03 Andreas K. Hüttel
2023-12-23 22:03 Andreas K. Hüttel
2023-12-23 18:22 Sam James
2023-12-23 17:09 Andreas K. Hüttel
2023-10-28 15:47 Andreas K. Hüttel
2023-10-28 15:47 Andreas K. Hüttel
2023-10-27 20:12 Andreas K. Hüttel
2023-10-26 20:49 Andreas K. Hüttel
2023-10-19 8:14 Andreas K. Hüttel
2023-10-19 8:12 Andreas K. Hüttel
2023-10-18 19:13 Andreas K. Hüttel
2023-10-18 19:13 Andreas K. Hüttel
2023-10-18 19:13 Andreas K. Hüttel
2023-10-18 10:02 Sam James
2023-10-15 15:23 Sam James
2023-10-13 15:11 Sam James
2023-10-04 18:32 Arthur Zamarin
2023-10-03 23:07 Sam James
2023-10-03 23:04 Sam James
2023-10-03 22:28 Andreas K. Hüttel
2023-10-03 22:15 Sam James
2023-10-03 21:45 Sam James
2023-10-03 21:41 Sam James
2023-10-03 21:13 Andreas K. Hüttel
2023-10-03 18:11 Andreas K. Hüttel
2023-10-03 18:06 Andreas K. Hüttel
2023-09-29 22:07 Andreas K. Hüttel
2023-09-29 22:07 Andreas K. Hüttel
2023-09-29 20:10 Andreas K. Hüttel
2023-09-29 9:26 Andreas K. Hüttel
2023-09-29 8:20 Andreas K. Hüttel
2023-09-28 9:27 Andreas K. Hüttel
2023-09-19 18:10 Sam James
2023-09-18 9:55 WANG Xuerui
2023-09-17 21:28 Andreas K. Hüttel
2023-09-17 11:58 Andreas K. Hüttel
2023-09-16 9:40 Andreas K. Hüttel
2023-09-13 15:03 James Le Cuirot
2023-08-24 14:57 Sam James
2023-08-24 11:23 Andreas K. Hüttel
2023-08-23 22:46 Andreas K. Hüttel
2023-08-23 12:30 Andreas K. Hüttel
2023-08-17 4:48 Sam James
2023-08-17 4:48 Sam James
2023-08-02 22:58 Sam James
2023-08-02 21:55 Sam James
2023-07-31 21:42 Andreas K. Hüttel
2023-07-29 23:43 Andreas K. Hüttel
2023-07-29 12:22 Andreas K. Hüttel
2023-07-24 22:45 Sam James
2023-07-24 22:44 Sam James
2023-07-24 22:32 Andreas K. Hüttel
2023-07-24 22:19 Andreas K. Hüttel
2023-07-17 20:28 Andreas K. Hüttel
2023-07-15 12:12 Arthur Zamarin
2023-07-15 12:12 Arthur Zamarin
2023-07-15 12:12 Arthur Zamarin
2023-07-13 10:08 Sam James
2023-07-09 19:07 Arthur Zamarin
2023-07-09 19:07 Arthur Zamarin
2023-07-09 19:07 Arthur Zamarin
2023-07-04 11:18 Andreas K. Hüttel
2023-07-02 14:57 Sam James
2023-06-30 18:28 Andreas K. Hüttel
2023-06-28 21:23 Sam James
2023-06-26 15:32 Sam James
2023-06-26 11:28 Sam James
2023-06-26 11:28 Sam James
2023-06-26 11:28 Sam James
2023-06-26 11:28 Sam James
2023-06-26 11:28 Sam James
2023-06-26 11:28 Sam James
2023-05-16 20:02 Sam James
2023-05-12 1:14 Sam James
2023-05-10 19:15 Andreas K. Hüttel
2023-05-09 20:59 Andreas K. Hüttel
2023-05-08 21:29 Andreas K. Hüttel
2023-05-07 21:51 Andreas K. Hüttel
2023-05-07 21:31 Andreas K. Hüttel
2023-05-07 16:03 Sam James
2023-05-07 0:02 Andreas K. Hüttel
2023-05-06 22:46 Andreas K. Hüttel
2023-05-06 22:29 Andreas K. Hüttel
2023-05-06 22:21 Andreas K. Hüttel
2023-05-01 14:07 Sam James
2023-04-22 21:14 Andreas K. Hüttel
2023-04-13 22:58 Andreas K. Hüttel
2023-04-11 3:21 Andreas K. Hüttel
2023-04-02 19:30 Arthur Zamarin
2023-04-02 19:30 Arthur Zamarin
2023-04-01 16:34 Arthur Zamarin
2023-04-01 16:34 Arthur Zamarin
2023-04-01 16:34 Arthur Zamarin
2023-04-01 16:34 Arthur Zamarin
2023-03-21 17:47 Andreas K. Hüttel
2023-03-21 17:44 Andreas K. Hüttel
2023-03-21 17:42 Andreas K. Hüttel
2023-03-17 2:37 Sam James
2023-03-11 14:11 Andreas K. Hüttel
2023-03-10 8:08 Sam James
2023-03-10 8:08 Sam James
2023-03-10 7:25 Sam James
2023-02-28 3:33 Sam James
2023-02-25 15:52 Andreas K. Hüttel
2023-02-08 14:59 Andreas K. Hüttel
2023-02-02 15:34 Andreas K. Hüttel
2023-01-30 19:45 James Le Cuirot
2023-01-26 22:06 Andreas K. Hüttel
2023-01-26 21:57 Andreas K. Hüttel
2023-01-21 19:51 Andreas K. Hüttel
2023-01-21 0:46 Andreas K. Hüttel
2023-01-20 23:59 Andreas K. Hüttel
2023-01-10 22:47 James Le Cuirot
2022-12-05 23:17 Andreas K. Hüttel
2022-12-02 19:39 Arthur Zamarin
2022-12-02 19:39 Arthur Zamarin
2022-11-27 16:23 Andreas K. Hüttel
2022-11-19 19:03 Andreas K. Hüttel
2022-11-19 16:09 Arthur Zamarin
2022-11-19 16:09 Arthur Zamarin
2022-11-19 16:09 Arthur Zamarin
2022-11-19 16:09 Arthur Zamarin
2022-11-18 18:01 Arthur Zamarin
2022-11-18 18:01 Arthur Zamarin
2022-11-18 15:42 Arthur Zamarin
2022-11-18 15:42 Arthur Zamarin
2022-11-18 15:42 Arthur Zamarin
2022-11-18 15:42 Arthur Zamarin
2022-11-16 19:22 Sam James
2022-11-16 19:22 Sam James
2022-11-15 20:09 Michał Górny
2022-11-15 14:51 Arthur Zamarin
2022-11-15 14:51 Arthur Zamarin
2022-11-06 19:38 Andreas K. Hüttel
2022-10-16 8:50 Andreas K. Hüttel
2022-10-15 23:23 Andreas K. Hüttel
2022-10-15 19:42 Andreas K. Hüttel
2022-10-15 19:42 Andreas K. Hüttel
2022-10-02 8:40 Andreas K. Hüttel
2022-10-01 20:56 Andreas K. Hüttel
2022-09-25 1:21 Sam James
2022-09-23 20:25 Andreas K. Hüttel
2022-09-23 20:07 Andreas K. Hüttel
2022-09-23 20:00 Andreas K. Hüttel
2022-09-23 15:31 Andreas K. Hüttel
2022-09-23 15:30 Andreas K. Hüttel
2022-09-22 6:45 Andreas K. Hüttel
2022-09-20 20:20 Andreas K. Hüttel
2022-09-20 14:46 Sam James
2022-09-20 6:37 Andreas K. Hüttel
2022-09-18 15:51 Andreas K. Hüttel
2022-09-09 20:32 Andreas K. Hüttel
2022-09-03 20:38 Andreas K. Hüttel
2022-08-27 19:36 Andreas K. Hüttel
2022-08-27 18:05 Arthur Zamarin
2022-08-20 0:59 Sam James
2022-08-20 0:32 Sam James
2022-08-07 8:02 WANG Xuerui
2022-08-02 21:12 Andreas K. Hüttel
2022-08-01 8:05 Agostino Sarubbo
2022-07-31 11:11 Agostino Sarubbo
2022-07-31 11:10 Agostino Sarubbo
2022-07-31 11:09 Agostino Sarubbo
2022-07-31 11:08 Agostino Sarubbo
2022-07-31 11:06 Agostino Sarubbo
2022-07-30 23:46 Sam James
2022-07-28 23:40 Andreas K. Hüttel
2022-07-06 3:07 Andreas K. Hüttel
2022-07-05 4:12 Andreas K. Hüttel
2022-06-25 21:40 Sam James
2022-06-25 21:40 Sam James
2022-06-25 21:40 Sam James
2022-06-08 22:30 Sam James
2022-06-08 10:42 Michał Górny
2022-06-06 18:01 Andreas K. Hüttel
2022-06-06 16:04 Andreas K. Hüttel
2022-06-05 22:07 Andreas K. Hüttel
2022-05-25 0:09 WANG Xuerui
2022-05-18 10:02 Andreas K. Hüttel
2022-05-17 21:18 Andreas K. Hüttel
2022-05-15 17:02 Andreas K. Hüttel
2022-05-15 1:00 Sam James
2022-05-14 9:30 Arthur Zamarin
2022-05-14 9:30 Arthur Zamarin
2022-05-14 1:52 Sam James
2022-05-13 18:36 Sam James
2022-05-13 8:53 Agostino Sarubbo
2022-05-10 9:54 Agostino Sarubbo
2022-05-05 7:45 Arthur Zamarin
2022-05-05 7:45 Arthur Zamarin
2022-05-05 7:33 Arthur Zamarin
2022-05-04 14:40 Sam James
2022-04-26 8:55 Andreas K. Hüttel
2022-04-25 21:21 Andreas K. Hüttel
2022-04-25 21:21 Andreas K. Hüttel
2022-04-24 23:33 Sam James
2022-04-23 23:54 Sam James
2022-04-22 15:13 Andreas K. Hüttel
2022-04-22 10:46 Andreas K. Hüttel
2022-04-20 22:25 Andreas K. Hüttel
2022-04-19 22:09 Sam James
2022-04-10 10:54 Sam James
2022-04-07 19:53 Sam James
2022-04-02 7:33 Arthur Zamarin
2022-04-01 9:29 Arthur Zamarin
2022-04-01 6:39 Arthur Zamarin
2022-03-31 21:17 Arthur Zamarin
2022-03-31 20:54 Andreas K. Hüttel
2022-03-31 19:02 Andreas K. Hüttel
2022-03-30 23:19 Andreas K. Hüttel
2022-03-27 23:26 Sam James
2022-03-27 20:30 Andreas K. Hüttel
2022-03-27 17:06 Arthur Zamarin
2022-03-27 16:14 Andreas K. Hüttel
2022-03-27 16:09 Andreas K. Hüttel
2022-03-27 14:06 Andreas K. Hüttel
2022-03-26 21:40 Sam James
2022-03-26 21:40 Sam James
2022-03-26 20:51 Andreas K. Hüttel
2022-03-26 19:45 Sam James
2022-03-26 19:45 Sam James
2022-03-26 19:45 Sam James
2022-03-26 19:45 Sam James
2022-03-22 16:58 Andreas K. Hüttel
2022-03-21 23:33 Sam James
2022-03-20 21:14 Sam James
2022-03-20 21:14 Sam James
2022-03-08 14:57 Andreas K. Hüttel
2022-03-07 1:09 Andreas K. Hüttel
2022-03-07 1:09 Andreas K. Hüttel
2022-03-06 9:46 Sam James
2022-03-06 9:46 Sam James
2022-03-06 9:46 Sam James
2022-02-23 20:00 Arthur Zamarin
2022-02-23 0:15 Andreas K. Hüttel
2022-02-21 23:30 Andreas K. Hüttel
2022-02-21 22:38 Andreas K. Hüttel
2022-02-12 0:06 Andreas K. Hüttel
2022-02-11 22:44 Andreas K. Hüttel
2022-02-11 0:33 Andreas K. Hüttel
2022-02-07 2:52 Sam James
2022-02-07 2:46 Sam James
2022-02-06 2:13 Andreas K. Hüttel
2022-02-06 1:41 Andreas K. Hüttel
2022-02-05 12:43 Andreas K. Hüttel
2022-02-05 12:43 Andreas K. Hüttel
2022-02-05 12:43 Andreas K. Hüttel
2022-02-05 12:43 Andreas K. Hüttel
2022-02-03 23:49 Andreas K. Hüttel
2022-02-02 0:18 Andreas K. Hüttel
2022-02-01 20:36 Andreas K. Hüttel
2022-01-31 23:03 Andreas K. Hüttel
2022-01-29 17:49 Andreas K. Hüttel
2022-01-29 16:07 Andreas K. Hüttel
2022-01-28 22:34 Andreas K. Hüttel
2022-01-27 14:13 Andreas K. Hüttel
2022-01-25 21:27 Andreas K. Hüttel
2022-01-25 16:10 Andreas K. Hüttel
2022-01-25 13:13 Andreas K. Hüttel
2022-01-24 19:54 Andreas K. Hüttel
2022-01-24 19:53 Andreas K. Hüttel
2022-01-18 22:12 Andreas K. Hüttel
2022-01-15 19:36 Andreas K. Hüttel
2022-01-12 23:00 Andreas K. Hüttel
2022-01-05 21:16 Andreas K. Hüttel
2022-01-05 21:15 Andreas K. Hüttel
2022-01-05 5:24 Sam James
2022-01-04 11:49 Andreas K. Hüttel
2021-12-29 19:31 Andreas K. Hüttel
2021-12-19 11:40 Andreas K. Hüttel
2021-12-19 11:40 Andreas K. Hüttel
2021-12-18 21:58 Sam James
2021-12-18 21:51 Andreas K. Hüttel
2021-12-09 20:55 Andreas K. Hüttel
2021-12-09 6:37 Sam James
2021-12-05 20:32 Andreas K. Hüttel
2021-12-05 15:32 Andreas K. Hüttel
2021-12-05 10:26 Andreas K. Hüttel
2021-12-01 14:53 Sam James
2021-11-29 10:13 Andreas K. Hüttel
2021-11-27 23:47 Sam James
2021-11-26 19:42 Andreas K. Hüttel
2021-11-26 18:52 Mike Frysinger
2021-11-16 23:33 Jason A. Donenfeld
2021-11-15 16:13 Mike Gilbert
2021-11-14 23:05 Sam James
2021-11-13 21:35 Andreas K. Hüttel
2021-11-11 21:04 Sam James
2021-11-07 22:58 Andreas K. Hüttel
2021-11-07 22:58 Andreas K. Hüttel
2021-11-06 2:35 Sam James
2021-11-06 0:52 Sam James
2021-11-03 17:27 Sam James
2021-11-03 0:54 Sam James
2021-10-31 19:18 Sam James
2021-10-31 18:12 Sam James
2021-10-31 18:12 Sam James
2021-10-31 18:12 Sam James
2021-10-31 18:10 Sam James
2021-10-31 18:10 Sam James
2021-10-31 18:10 Sam James
2021-10-30 15:50 Andreas K. Hüttel
2021-10-30 15:42 Andreas K. Hüttel
2021-10-29 17:07 Andreas K. Hüttel
2021-10-01 7:14 Sam James
2021-09-25 19:21 Andreas K. Hüttel
2021-09-08 23:48 Sam James
2021-09-05 5:48 Sam James
2021-09-02 15:26 Andreas K. Hüttel
2021-08-30 17:37 Sam James
2021-08-18 18:01 Andreas K. Hüttel
2021-08-18 18:01 Andreas K. Hüttel
2021-08-18 18:01 Andreas K. Hüttel
2021-08-06 21:26 Andreas K. Hüttel
2021-08-03 15:23 Andreas K. Hüttel
2021-08-03 15:14 Andreas K. Hüttel
2021-08-02 23:10 Andreas K. Hüttel
2021-07-29 16:51 Andreas K. Hüttel
2021-07-27 20:33 Andreas K. Hüttel
2021-07-27 20:27 Andreas K. Hüttel
2021-07-27 20:27 Andreas K. Hüttel
2021-07-27 20:27 Andreas K. Hüttel
2021-07-25 21:54 Andreas K. Hüttel
2021-07-24 14:03 Andreas K. Hüttel
2021-07-24 13:12 Andreas K. Hüttel
2021-07-23 20:31 Andreas K. Hüttel
2021-07-23 12:28 Andreas K. Hüttel
2021-07-22 20:00 Andreas K. Hüttel
2021-07-17 23:33 Andreas K. Hüttel
2021-07-17 23:33 Andreas K. Hüttel
2021-07-17 17:12 Andreas K. Hüttel
2021-07-14 20:46 Andreas K. Hüttel
2021-07-09 4:23 Sam James
2021-07-09 4:23 Sam James
2021-07-08 19:26 Georgy Yakovlev
2021-07-05 6:59 Agostino Sarubbo
2021-07-05 6:06 Sergei Trofimovich
2021-07-05 3:25 Sam James
2021-07-04 10:29 Sergei Trofimovich
2021-06-17 8:15 Sergei Trofimovich
2021-06-13 13:47 Andreas K. Hüttel
2021-06-13 10:46 Sergei Trofimovich
2021-06-12 11:39 Sergei Trofimovich
2021-06-11 18:31 Andreas K. Hüttel
2021-06-11 17:18 Andreas K. Hüttel
2021-06-08 7:19 Sergei Trofimovich
2021-06-08 7:19 Sergei Trofimovich
2021-06-06 8:57 Sergei Trofimovich
2021-06-01 19:58 Sam James
2021-06-01 19:58 Sam James
2021-06-01 17:58 Sam James
2021-06-01 17:58 Sam James
2021-06-01 17:58 Sam James
2021-06-01 17:58 Sam James
2021-06-01 17:58 Sam James
2021-06-01 17:58 Sam James
2021-06-01 13:58 Sam James
2021-06-01 13:58 Sam James
2021-06-01 13:56 Sam James
2021-06-01 13:56 Sam James
2021-05-15 18:43 Georgy Yakovlev
2021-05-15 18:43 Georgy Yakovlev
2021-05-15 18:10 Sergei Trofimovich
2021-05-11 17:04 Sergei Trofimovich
2021-05-10 7:22 Sergei Trofimovich
2021-04-03 9:29 Andreas K. Hüttel
2021-04-02 11:56 Andreas K. Hüttel
2021-03-26 15:06 Agostino Sarubbo
2021-03-09 12:06 Sam James
2021-03-07 11:58 David Seifert
2021-03-03 21:32 Sam James
2021-02-28 21:33 Sam James
2021-02-28 16:00 Sam James
2021-02-28 15:57 Sam James
2021-02-28 11:08 Sergei Trofimovich
2021-02-27 20:50 Andreas K. Hüttel
2021-02-27 20:31 Andreas K. Hüttel
2021-02-27 19:18 Andreas K. Hüttel
2021-02-25 18:17 Andreas K. Hüttel
2021-02-24 22:50 Sam James
2021-02-15 0:38 Sam James
2021-02-11 7:49 Sergei Trofimovich
2021-02-06 18:27 Sergei Trofimovich
2021-02-05 21:44 Sam James
2021-02-05 21:43 Sam James
2021-02-05 21:42 Sam James
2021-02-05 21:39 Sam James
2021-02-03 10:35 Sergei Trofimovich
2021-02-01 21:17 Andreas K. Hüttel
2021-01-24 12:33 Sergei Trofimovich
2021-01-24 12:10 Agostino Sarubbo
2021-01-12 22:41 Sam James
2021-01-12 22:41 Sam James
2021-01-12 22:38 Sam James
2021-01-09 18:00 Sam James
2021-01-09 16:30 Sam James
2021-01-09 16:22 Lars Wendler
2021-01-09 13:12 Sergei Trofimovich
2021-01-07 11:24 Andreas K. Hüttel
2020-12-24 8:05 Sergei Trofimovich
2020-12-23 5:19 Sam James
2020-12-23 5:19 Sam James
2020-12-23 5:19 Sam James
2020-12-14 8:03 Sam James
2020-12-14 0:46 Sam James
2020-12-14 0:46 Sam James
2020-12-13 21:45 Thomas Deutschmann
2020-12-13 7:42 Sam James
2020-12-11 9:09 Sergei Trofimovich
2020-12-08 18:07 Sergei Trofimovich
2020-12-08 14:46 Andreas K. Hüttel
2020-12-08 8:30 Sergei Trofimovich
2020-12-08 8:30 Sergei Trofimovich
2020-12-08 8:30 Sergei Trofimovich
2020-12-08 0:37 Sergei Trofimovich
2020-11-14 9:15 Mikle Kolyada
2020-11-14 9:15 Mikle Kolyada
2020-11-10 19:16 Mike Gilbert
2020-11-05 16:48 Sam James
2020-11-05 16:48 Sam James
2020-11-05 16:48 Sam James
2020-11-05 16:48 Sam James
2020-11-01 10:40 Sam James
2020-11-01 10:40 Sam James
2020-11-01 10:40 Sam James
2020-11-01 10:40 Sam James
2020-10-31 11:07 Mikle Kolyada
2020-10-31 10:09 Andreas K. Hüttel
2020-10-30 22:32 Thomas Deutschmann
2020-10-30 21:45 Andreas K. Hüttel
2020-10-09 20:40 Andreas K. Hüttel
2020-09-30 18:13 Sergei Trofimovich
2020-09-25 19:42 Andreas K. Hüttel
2020-09-25 18:54 Andreas K. Hüttel
2020-09-25 18:54 Andreas K. Hüttel
2020-09-15 22:15 Sergei Trofimovich
2020-09-06 4:11 Sam James
2020-09-06 4:11 Sam James
2020-09-05 2:46 Andreas K. Hüttel
2020-09-05 2:46 Andreas K. Hüttel
2020-09-01 22:26 Andreas K. Hüttel
2020-08-31 8:30 Andreas K. Hüttel
2020-08-23 11:33 Sergei Trofimovich
2020-08-23 10:47 Sergei Trofimovich
2020-08-23 10:19 Sergei Trofimovich
2020-08-23 10:19 Sergei Trofimovich
2020-08-14 8:08 Andreas K. Hüttel
2020-08-12 7:38 Sam James
2020-08-12 7:38 Sam James
2020-08-11 22:29 Sam James
2020-08-11 17:02 Sergei Trofimovich
2020-08-11 17:02 Sergei Trofimovich
2020-08-10 16:43 Mikle Kolyada
2020-08-06 10:28 Andreas K. Hüttel
2020-08-04 15:11 Sam James
2020-08-03 17:58 Sam James
2020-07-27 15:41 Andreas K. Hüttel
2020-07-25 22:11 Andreas K. Hüttel
2020-07-18 16:58 Sergei Trofimovich
2020-07-18 15:59 Andreas K. Hüttel
2020-06-28 22:13 Sergei Trofimovich
2020-06-10 9:16 Andreas K. Hüttel
2020-06-10 9:16 Andreas K. Hüttel
2020-06-10 8:17 Sergei Trofimovich
2020-06-10 8:15 Andreas K. Hüttel
2020-06-09 7:24 Sergei Trofimovich
2020-06-08 22:04 Sergei Trofimovich
2020-05-16 11:30 Sergei Trofimovich
2020-05-16 8:58 Sergei Trofimovich
2020-05-15 23:12 Sergei Trofimovich
2020-05-14 11:48 Andreas K. Hüttel
2020-05-12 16:45 Andreas K. Hüttel
2020-05-12 5:05 Andreas K. Hüttel
2020-05-11 20:53 Sergei Trofimovich
2020-05-06 7:01 Sergei Trofimovich
2020-05-04 18:32 Andreas K. Hüttel
2020-05-04 18:23 Sergei Trofimovich
2020-05-04 18:23 Sergei Trofimovich
2020-05-04 6:16 Mart Raudsepp
2020-05-03 11:01 Sergei Trofimovich
2020-05-02 20:08 Sergei Trofimovich
2020-05-02 19:51 Sergei Trofimovich
2020-04-24 12:11 Agostino Sarubbo
2020-04-24 12:11 Agostino Sarubbo
2020-04-24 12:10 Agostino Sarubbo
2020-04-24 9:00 Agostino Sarubbo
2020-04-24 8:59 Agostino Sarubbo
2020-04-24 8:59 Agostino Sarubbo
2020-04-23 20:39 Andreas K. Hüttel
2020-04-23 20:39 Andreas K. Hüttel
2020-04-23 19:33 Andreas K. Hüttel
2020-04-23 9:02 Mikle Kolyada
2020-04-23 7:45 Andreas K. Hüttel
2020-04-13 17:25 Andreas K. Hüttel
2020-04-10 16:06 Andreas K. Hüttel
2020-04-10 16:06 Andreas K. Hüttel
2020-04-03 22:37 Sergei Trofimovich
2020-04-03 22:29 Sergei Trofimovich
2020-04-02 7:03 Sergei Trofimovich
2020-04-01 17:32 Matt Turner
2020-03-28 0:29 Sergei Trofimovich
2020-03-26 4:37 Matt Turner
2020-03-23 21:11 Andreas K. Hüttel
2020-03-22 19:43 Andreas K. Hüttel
2020-03-22 17:48 Andreas K. Hüttel
2020-03-22 14:54 Andreas K. Hüttel
2020-03-22 10:39 Andreas K. Hüttel
2020-03-22 10:39 Andreas K. Hüttel
2020-03-21 23:17 Andreas K. Hüttel
2020-03-19 20:58 Andreas K. Hüttel
2020-03-16 21:23 Sergei Trofimovich
2020-03-15 15:46 Sergei Trofimovich
2020-03-15 13:50 Sergei Trofimovich
2020-03-15 12:47 Mikle Kolyada
2020-03-14 18:16 Sergei Trofimovich
2020-03-14 9:54 Sergei Trofimovich
2020-03-14 9:54 Sergei Trofimovich
2020-03-12 16:27 Andreas K. Hüttel
2020-03-10 7:35 Sergei Trofimovich
2020-03-09 10:07 Andreas K. Hüttel
2020-02-16 19:25 Sergei Trofimovich
2020-02-16 14:00 Sergei Trofimovich
2020-02-13 21:40 David Seifert
2020-02-03 23:07 Sergei Trofimovich
2020-02-02 13:04 Sergei Trofimovich
2020-01-12 22:36 Sergei Trofimovich
2019-12-28 13:49 Sergei Trofimovich
2019-12-25 10:58 Benda XU
2019-12-24 13:58 Mikle Kolyada
2019-12-15 10:59 Agostino Sarubbo
2019-12-13 7:36 Agostino Sarubbo
2019-12-12 21:52 Sergei Trofimovich
2019-12-12 16:00 Agostino Sarubbo
2019-12-12 13:52 Agostino Sarubbo
2019-12-12 10:59 Agostino Sarubbo
2019-12-11 13:21 Aaron Bauman
2019-12-10 19:03 Mikle Kolyada
2019-12-10 15:52 Mike Gilbert
2019-12-02 23:17 Sergei Trofimovich
2019-11-27 22:51 Andreas K. Hüttel
2019-11-26 23:45 Andreas K. Hüttel
2019-11-26 23:22 Andreas K. Hüttel
2019-11-25 23:49 Andreas K. Hüttel
2019-11-25 1:37 Andreas K. Hüttel
2019-11-21 7:54 Sergei Trofimovich
2019-11-17 10:42 Sergei Trofimovich
2019-11-16 21:42 Sergei Trofimovich
2019-11-16 21:25 Sergei Trofimovich
2019-11-10 22:41 Sergei Trofimovich
2019-11-10 22:41 Sergei Trofimovich
2019-11-10 22:41 Sergei Trofimovich
2019-11-10 22:41 Sergei Trofimovich
2019-11-10 22:41 Sergei Trofimovich
2019-11-08 20:43 Sergei Trofimovich
2019-11-08 20:43 Sergei Trofimovich
2019-11-06 20:10 Sergei Trofimovich
2019-10-22 18:07 Sergei Trofimovich
2019-10-19 9:37 Sergei Trofimovich
2019-10-19 9:37 Sergei Trofimovich
2019-10-19 9:37 Sergei Trofimovich
2019-10-19 9:37 Sergei Trofimovich
2019-10-18 6:47 Sergei Trofimovich
2019-10-17 23:22 Sergei Trofimovich
2019-10-14 6:58 Sergei Trofimovich
2019-10-12 20:03 Sergei Trofimovich
2019-09-25 8:04 Sergei Trofimovich
2019-09-01 21:59 Matt Turner
2019-09-01 16:50 Sergei Trofimovich
2019-08-28 18:28 Sergei Trofimovich
2019-08-27 1:14 Benda XU
2019-08-21 22:35 Sergei Trofimovich
2019-08-14 21:27 Andreas K. Hüttel
2019-08-13 21:36 Andreas K. Hüttel
2019-08-13 20:10 Andreas K. Hüttel
2019-08-12 21:35 Andreas K. Hüttel
2019-08-09 20:07 Andreas K. Hüttel
2019-08-06 0:59 Andreas K. Hüttel
2019-08-05 12:30 Andreas K. Hüttel
2019-08-04 12:13 Andreas K. Hüttel
2019-08-04 0:12 Andreas K. Hüttel
2019-08-03 22:45 Andreas K. Hüttel
2019-08-03 22:40 Andreas K. Hüttel
2019-07-29 9:05 Mikle Kolyada
2019-07-29 9:05 Mikle Kolyada
2019-07-29 9:05 Mikle Kolyada
2019-07-25 22:32 Sergei Trofimovich
2019-07-23 7:14 Sergei Trofimovich
2019-07-21 13:40 James Le Cuirot
2019-07-18 4:08 Benda XU
2019-06-23 14:50 Tobias Klausmann
2019-05-31 8:08 Agostino Sarubbo
2019-05-27 10:09 Agostino Sarubbo
2019-05-27 10:08 Agostino Sarubbo
2019-05-23 13:13 Mikle Kolyada
2019-05-19 9:37 Sergei Trofimovich
2019-05-19 9:15 Sergei Trofimovich
2019-05-19 8:39 Sergei Trofimovich
2019-05-16 23:56 Thomas Deutschmann
2019-05-13 19:14 Aaron Bauman
2019-05-13 12:08 Mikle Kolyada
2019-05-03 21:49 Andreas K. Hüttel
2019-05-02 15:31 Matt Turner
2019-05-01 18:46 Andreas K. Hüttel
2019-05-01 6:22 Matt Turner
2019-05-01 6:22 Matt Turner
2019-04-27 20:50 Sergei Trofimovich
2019-04-23 22:05 Andreas K. Hüttel
2019-04-21 19:06 Andreas K. Hüttel
2019-04-19 7:35 Sergei Trofimovich
2019-04-19 0:01 Andreas K. Hüttel
2019-04-18 23:45 Andreas K. Hüttel
2019-04-14 14:39 Andreas K. Hüttel
2019-04-13 22:13 Andreas K. Hüttel
2019-04-13 16:14 Andreas K. Hüttel
2019-04-10 14:45 Aaron Bauman
2019-04-08 16:07 Andreas K. Hüttel
2019-04-08 16:03 Andreas K. Hüttel
2019-04-08 6:05 Matt Turner
2019-04-08 2:18 Thomas Deutschmann
2019-04-07 16:40 Andreas K. Hüttel
2019-04-02 12:08 Mikle Kolyada
2019-04-02 12:08 Mikle Kolyada
2019-03-30 14:29 Andreas K. Hüttel
2019-03-26 21:08 Andreas K. Hüttel
2019-03-25 21:16 Sergei Trofimovich
2019-03-24 21:06 Andreas K. Hüttel
2019-03-24 17:00 Mikle Kolyada
2019-03-16 14:01 Mikle Kolyada
2019-03-15 10:01 Mikle Kolyada
2019-03-14 19:41 Sergei Trofimovich
2019-03-12 8:45 Sergei Trofimovich
2019-03-09 10:47 Sergei Trofimovich
2019-03-09 10:47 Sergei Trofimovich
2019-02-10 23:47 Sergei Trofimovich
2019-02-07 23:02 Sergei Trofimovich
2019-02-01 10:55 Andreas K. Hüttel
2019-01-14 0:00 Andreas K. Hüttel
2019-01-10 21:18 Andreas K. Hüttel
2019-01-08 23:40 Andreas K. Hüttel
2018-12-30 21:14 Sergei Trofimovich
2018-12-29 22:13 Andreas K. Hüttel
2018-12-21 23:55 Andreas K. Hüttel
2018-12-21 23:55 Andreas K. Hüttel
2018-12-21 16:21 Andreas K. Hüttel
2018-12-21 15:37 Andreas K. Hüttel
2018-12-15 12:28 Andreas K. Hüttel
2018-12-14 21:51 Andreas K. Hüttel
2018-12-14 21:23 Andreas K. Hüttel
2018-12-14 19:10 Andreas K. Hüttel
2018-12-11 22:58 Andreas K. Hüttel
2018-12-09 14:19 Andreas K. Hüttel
2018-12-08 23:45 Matt Turner
2018-12-08 23:45 Matt Turner
2018-12-08 15:10 Mikle Kolyada
2018-11-24 16:00 Mart Raudsepp
2018-11-23 23:51 Andreas K. Hüttel
2018-11-23 23:51 Andreas K. Hüttel
2018-11-09 18:15 Mikle Kolyada
2018-11-02 16:30 Jeroen Roovers
2018-11-02 7:50 Matt Turner
2018-10-27 18:43 Sergei Trofimovich
2018-10-26 22:09 Sergei Trofimovich
2018-10-26 21:21 Andreas Hüttel
2018-10-26 21:21 Andreas Hüttel
2018-10-24 21:41 Sergei Trofimovich
2018-10-21 17:47 Andreas Hüttel
2018-10-21 17:47 Andreas Hüttel
2018-10-21 7:49 Mikle Kolyada
2018-10-21 7:47 Mikle Kolyada
2018-09-11 15:43 Andreas Hüttel
2018-09-11 14:44 Andreas Hüttel
2018-09-11 14:44 Andreas Hüttel
2018-09-05 19:31 Anthony G. Basile
2018-09-05 15:36 Anthony G. Basile
2018-08-24 15:24 Jeroen Roovers
2018-08-06 7:22 Andreas Hüttel
2018-08-05 9:31 Andreas Hüttel
2018-08-03 21:21 Andreas Hüttel
2018-08-03 21:21 Andreas Hüttel
2018-08-03 20:21 Andreas Hüttel
2018-08-03 17:04 Andreas Hüttel
2018-07-19 0:38 Sergei Trofimovich
2018-07-07 18:20 Sergei Trofimovich
2018-07-02 18:27 Markus Meier
2018-06-26 9:48 Sergei Trofimovich
2018-06-26 9:48 Sergei Trofimovich
2018-06-25 16:06 Tobias Klausmann
2018-06-23 8:24 Sergei Trofimovich
2018-06-20 21:58 Andreas Hüttel
2018-06-17 17:27 Andreas Hüttel
2018-06-17 17:27 Andreas Hüttel
2018-06-17 17:22 Andreas Hüttel
2018-06-16 18:01 Andreas Hüttel
2018-06-15 7:02 Sergei Trofimovich
2018-06-13 22:01 Andreas Hüttel
2018-06-13 20:46 Sergei Trofimovich
2018-06-08 20:54 Sergei Trofimovich
2018-06-06 15:25 Thomas Deutschmann
2018-06-05 17:51 Mike Frysinger
2018-06-05 17:25 Mart Raudsepp
2018-06-04 23:40 Andreas Hüttel
2018-06-04 23:40 Andreas Hüttel
2018-06-04 23:40 Andreas Hüttel
2018-06-02 21:48 Sergei Trofimovich
2018-06-02 19:28 Andreas Hüttel
2018-05-22 14:35 Mike Frysinger
2018-05-20 23:47 Andreas Hüttel
2018-05-20 16:06 Andreas Hüttel
2018-05-19 23:38 Andreas Hüttel
2018-05-11 19:54 Andreas Hüttel
2018-05-06 20:49 Andreas Hüttel
2018-05-05 18:24 Andreas Hüttel
2018-05-05 18:18 Andreas Hüttel
2018-05-01 20:19 Andreas Hüttel
2018-04-28 21:23 Andreas Hüttel
2018-04-21 21:51 Andreas Hüttel
2018-04-21 21:25 Andreas Hüttel
2018-04-21 9:52 Mikle Kolyada
2018-04-13 23:22 Aaron Bauman
2018-04-13 20:08 Sergei Trofimovich
2018-04-09 22:38 Sergei Trofimovich
2018-04-09 6:23 Sergei Trofimovich
2018-04-08 10:55 Markus Meier
2018-04-06 19:13 Sergei Trofimovich
2018-04-06 19:13 Sergei Trofimovich
2018-04-06 6:43 Sergei Trofimovich
2018-04-03 20:21 Sergei Trofimovich
2018-04-03 20:21 Sergei Trofimovich
2018-04-01 21:47 Sergei Trofimovich
2018-03-31 14:17 Tobias Klausmann
2018-03-31 10:05 Sergei Trofimovich
2018-03-30 22:37 Sergei Trofimovich
2018-03-30 11:43 Sergei Trofimovich
2018-03-30 11:43 Sergei Trofimovich
2018-03-29 22:32 Mart Raudsepp
2018-03-29 19:39 Sergei Trofimovich
2018-03-29 15:19 Thomas Deutschmann
2018-03-29 0:39 Aaron Bauman
2018-03-22 22:23 Sergei Trofimovich
2018-03-15 13:59 Mikle Kolyada
2018-03-11 9:51 Sergei Trofimovich
2018-03-05 10:37 Tobias Klausmann
2018-03-04 21:54 Andreas Hüttel
2018-03-04 21:40 Andreas Hüttel
2018-03-03 17:56 Sergei Trofimovich
2018-03-02 9:38 Mart Raudsepp
2018-02-14 21:51 Andreas Hüttel
2018-02-10 19:57 Sergei Trofimovich
2018-02-10 19:16 Sergei Trofimovich
2018-02-10 15:39 Andreas Hüttel
2018-02-10 9:25 Sergei Trofimovich
2018-02-10 0:32 Thomas Deutschmann
2018-02-09 21:59 Andreas Hüttel
2018-02-09 9:01 Agostino Sarubbo
2018-02-08 23:50 Andreas Hüttel
2018-02-08 21:48 Andreas Hüttel
2018-02-06 21:37 Sergei Trofimovich
2018-02-03 1:38 Sergei Trofimovich
2018-02-03 1:38 Sergei Trofimovich
2018-02-03 1:38 Sergei Trofimovich
2018-02-03 1:18 Sergei Trofimovich
2018-02-03 0:49 Andreas Hüttel
2018-02-02 14:56 Andreas Hüttel
2018-02-02 14:34 Andreas Hüttel
2018-01-21 21:21 Andreas Hüttel
2018-01-21 10:38 Sergei Trofimovich
2018-01-20 19:26 Andreas Hüttel
2018-01-20 19:14 Andreas Hüttel
2018-01-20 18:13 Andreas Hüttel
2018-01-20 18:13 Andreas Hüttel
2018-01-20 17:36 Andreas Hüttel
2018-01-20 17:16 Andreas Hüttel
2018-01-20 16:57 Andreas Hüttel
2018-01-20 0:51 Andreas Hüttel
2018-01-17 23:09 Andreas Hüttel
2018-01-17 1:04 Andreas Hüttel
2018-01-14 19:17 Andreas Hüttel
2018-01-14 12:36 Andreas Hüttel
2018-01-13 21:25 Andreas Hüttel
2018-01-13 17:14 Andreas Hüttel
2018-01-10 8:09 Mike Frysinger
2018-01-07 19:39 Sergei Trofimovich
2018-01-03 10:47 Andreas Hüttel
2018-01-01 15:10 Andreas Hüttel
2017-12-31 21:26 Sergei Trofimovich
2017-12-24 9:46 Mart Raudsepp
2017-12-21 21:02 Andreas Hüttel
2017-12-20 12:37 Sergei Trofimovich
2017-12-17 22:27 Andreas Hüttel
2017-12-16 19:04 Andreas Hüttel
2017-12-15 21:57 Andreas Hüttel
2017-12-02 16:36 Andreas Hüttel
2017-11-29 5:56 Markus Meier
2017-11-18 20:50 Sergei Trofimovich
2017-11-18 18:34 Andreas Hüttel
2017-11-18 18:34 Andreas Hüttel
2017-11-14 9:36 Sergei Trofimovich
2017-11-14 9:00 Sergei Trofimovich
2017-11-13 23:26 Sergei Trofimovich
2017-11-13 17:11 Manuel Rüger
2017-11-12 14:16 Andreas Hüttel
2017-11-12 14:16 Andreas Hüttel
2017-11-12 1:10 Andreas Hüttel
2017-11-11 23:34 Sergei Trofimovich
2017-11-11 23:23 Matt Turner
2017-11-11 21:23 Andreas Hüttel
2017-11-11 18:00 Thomas Deutschmann
2017-11-11 17:50 Andreas Hüttel
2017-10-30 17:50 Andreas Hüttel
2017-10-29 11:13 Manuel Rüger
2017-10-28 19:47 Sergei Trofimovich
2017-10-27 23:30 Andreas Hüttel
2017-10-27 22:31 Andreas Hüttel
2017-10-26 18:51 Matt Turner
2017-10-25 22:03 Sergei Trofimovich
2017-10-24 21:15 Sergei Trofimovich
2017-10-24 6:24 Sergei Trofimovich
2017-10-23 21:39 Thomas Deutschmann
2017-10-22 19:46 Andreas Hüttel
2017-10-22 12:25 Andreas Hüttel
2017-10-21 12:47 Andreas Hüttel
2017-10-14 21:11 Andreas Hüttel
2017-10-07 22:26 Andreas Hüttel
2017-10-05 16:43 Andreas Hüttel
2017-10-05 9:11 Andreas Hüttel
2017-10-03 19:41 Andreas Hüttel
2017-10-03 16:19 Andreas Hüttel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1584718219.bebea707eeeb62bbee333cb4e4981af8ebd32985.dilfridge@gentoo \
--to=dilfridge@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox