* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-04-13 8:34 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-04-13 8:34 UTC (permalink / raw
To: gentoo-commits
commit: 469b0c26615647cba1d4184c3d00086cd0e52b39
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 08:41:21 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 08:41:56 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=469b0c26
sys-libs/uclibc-ng: fix HOMEPAGE, bug #579814
Package-Manager: portage-2.2.26
sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild | 2 +-
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild
index aec3523..db115b8 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild
@@ -15,7 +15,7 @@ else
fi
DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc.org/"
+HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index aec3523..db115b8 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -15,7 +15,7 @@ else
fi
DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc.org/"
+HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-04-18 23:00 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-04-18 23:00 UTC (permalink / raw
To: gentoo-commits
commit: 96c8f609f7f4e260a9f9f6b8e3d7f905915fbd96
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 18 22:59:53 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Apr 18 22:59:53 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96c8f609
sys-libs/uclibc-ng: version bump to 1.0.14
Package-Manager: portage-2.2.26
sys-libs/uclibc-ng/Manifest | 2 +-
.../{uclibc-ng-1.0.13.ebuild => uclibc-ng-1.0.14.ebuild} | 9 ++++++---
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 9 ++++++---
3 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 9bef84b..6a0534d 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1 +1 @@
-DIST uClibc-ng-1.0.13.tar.bz2 2950676 SHA256 2d3530fa9321022db30c4576b272d8113efb75393f9b43281bd3b014c75bd2d4 SHA512 aae994d06119756161b9a38eeb8b4a0b8531dfaf13094158218cce2500cd02dcac9067160a5a2764d355e1208ee7cda04f4c1ddf7f6812c794f4680c938e9b22 WHIRLPOOL e612f9a152335c9b89fe6e10dcab0ad44978c205da8230597f3ff3b8adee81a95a71dfcec36afc9c0c262fa56d643de47a705840e841363a13b0af2fee686653
+DIST uClibc-ng-1.0.14.tar.bz2 2859522 SHA256 5e3ed3c217786b238e7e356fae05c75a158d1852e72ddea954787bdcf4d63dfa SHA512 293b9260ca9a62170746e441de161ebfedb171050f168db0131fa1aec1819477ff792204525747aec82c7f473b2f48eb93aedabcd768814ac207b28032112366 WHIRLPOOL 93dce8443c3b6d0b4a616de6084cf5169d24a55e0cf9445d90d24ea66dc51902f1612371747171967431ad30a8129fa3b22830d55d746e013dc2929a0f4d81eb
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild
similarity index 98%
rename from sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild
rename to sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild
index db115b8..e99f8d7 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.13.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild
@@ -254,7 +254,7 @@ pkg_setup() {
}
src_prepare() {
- local version subversion
+ local version subversion extraversion
# uclibc-ng tries to create a two sym link with ld.so,
# ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
@@ -269,11 +269,13 @@ src_prepare() {
version=( $(get_version_components) )
if [[ -z ${version[1]} ]]; then
subversion=0
+ extraversion=0
else
+ subversion=${version[1]}
if [[ -z ${version[2]} ]]; then
- subversion=${version[1]}
+ extraversion=0
else
- subversion=${version[1]}.${version[2]}
+ extraversion=.${version[2]}
fi
fi
@@ -281,6 +283,7 @@ src_prepare() {
-e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
-e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
-e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
Rules.mak || die
eapply_user
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index db115b8..e99f8d7 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -254,7 +254,7 @@ pkg_setup() {
}
src_prepare() {
- local version subversion
+ local version subversion extraversion
# uclibc-ng tries to create a two sym link with ld.so,
# ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
@@ -269,11 +269,13 @@ src_prepare() {
version=( $(get_version_components) )
if [[ -z ${version[1]} ]]; then
subversion=0
+ extraversion=0
else
+ subversion=${version[1]}
if [[ -z ${version[2]} ]]; then
- subversion=${version[1]}
+ extraversion=0
else
- subversion=${version[1]}.${version[2]}
+ extraversion=.${version[2]}
fi
fi
@@ -281,6 +283,7 @@ src_prepare() {
-e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
-e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
-e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
Rules.mak || die
eapply_user
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-05-29 23:10 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-05-29 23:10 UTC (permalink / raw
To: gentoo-commits
commit: 20997e75eee46c973e23085a46d37c14c69351b6
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun May 29 23:11:31 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun May 29 23:11:31 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20997e75
sys-libs/uclibc-ng: version bump to 1.0.15
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild | 406 +++++++++++++++++++++++++++++
2 files changed, 407 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 6a0534d..301a419 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1 +1,2 @@
DIST uClibc-ng-1.0.14.tar.bz2 2859522 SHA256 5e3ed3c217786b238e7e356fae05c75a158d1852e72ddea954787bdcf4d63dfa SHA512 293b9260ca9a62170746e441de161ebfedb171050f168db0131fa1aec1819477ff792204525747aec82c7f473b2f48eb93aedabcd768814ac207b28032112366 WHIRLPOOL 93dce8443c3b6d0b4a616de6084cf5169d24a55e0cf9445d90d24ea66dc51902f1612371747171967431ad30a8129fa3b22830d55d746e013dc2929a0f4d81eb
+DIST uClibc-ng-1.0.15.tar.bz2 2765526 SHA256 89a91aa18909ffb27407cd6f56dfd3ab504f0c415e42410870290b5dc45a1cd9 SHA512 a4f7520fad9b1927d8ca738410b213514c3151822d5c01474ffc71e4cf4e60815bcb3a5fb98f141cf615d0fe57a7f1d3d0d2b1fd217ad5eaf8835d41ea686dc0 WHIRLPOOL 88f481cbac54844c9620de916a22e57dfb15ade01b223712ac679d4224807bdfd47ae4e157a1672e33d38beda618ae970605861d6e18c4a312720eca2e608c93
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild
new file mode 100644
index 0000000..e99f8d7
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild
@@ -0,0 +1,406 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i385 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # For mips
+ if [[ ${target} == "mips" ]]; then
+ sed -i -e "s|default CONFIG_MIPS_O32_ABI|CONFIG_MIPS_${ABI^[on]}_ABI|" \
+ extra/Configs/Config.mips || die
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-02 22:39 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-02 22:39 UTC (permalink / raw
To: gentoo-commits
commit: 0e7ab43cc8a026ab88134ff98d5f4c634289f557
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 2 22:42:24 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jul 2 22:42:24 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e7ab43c
sys-libs/uclibc-ng: version bump to 1.0.16
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild | 406 +++++++++++++++++++++++++++++
2 files changed, 407 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 301a419..305ecc2 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,2 +1,3 @@
DIST uClibc-ng-1.0.14.tar.bz2 2859522 SHA256 5e3ed3c217786b238e7e356fae05c75a158d1852e72ddea954787bdcf4d63dfa SHA512 293b9260ca9a62170746e441de161ebfedb171050f168db0131fa1aec1819477ff792204525747aec82c7f473b2f48eb93aedabcd768814ac207b28032112366 WHIRLPOOL 93dce8443c3b6d0b4a616de6084cf5169d24a55e0cf9445d90d24ea66dc51902f1612371747171967431ad30a8129fa3b22830d55d746e013dc2929a0f4d81eb
DIST uClibc-ng-1.0.15.tar.bz2 2765526 SHA256 89a91aa18909ffb27407cd6f56dfd3ab504f0c415e42410870290b5dc45a1cd9 SHA512 a4f7520fad9b1927d8ca738410b213514c3151822d5c01474ffc71e4cf4e60815bcb3a5fb98f141cf615d0fe57a7f1d3d0d2b1fd217ad5eaf8835d41ea686dc0 WHIRLPOOL 88f481cbac54844c9620de916a22e57dfb15ade01b223712ac679d4224807bdfd47ae4e157a1672e33d38beda618ae970605861d6e18c4a312720eca2e608c93
+DIST uClibc-ng-1.0.16.tar.bz2 2769238 SHA256 f0ded5cb1ff7aac670ca9df931fc820648d91b27085a3efecc1b7f06d65f57f6 SHA512 05110f0b6651862f16b01d1b45d59258b93686a7635815f9e050ab6b8f0eb14581782c95f305649d62aa80e78060865620a5306a657ea7e9ac396c68d61347cb WHIRLPOOL d79830b46d4bcb2f19917da936a35443da95728c25a050e5a313f6a374669be8c29d5df12a6e9ac5efc65416a0206672a70c7b6d75cb3fdc4017220e32222bf3
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
new file mode 100644
index 0000000..e99f8d7
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
@@ -0,0 +1,406 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i385 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # For mips
+ if [[ ${target} == "mips" ]]; then
+ sed -i -e "s|default CONFIG_MIPS_O32_ABI|CONFIG_MIPS_${ABI^[on]}_ABI|" \
+ extra/Configs/Config.mips || die
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-08 8:54 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-08 8:54 UTC (permalink / raw
To: gentoo-commits
commit: ddf91f60cfa918d735d8ec7766111fc07a3c7aac
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 8 08:56:01 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jul 8 08:58:11 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddf91f60
sys-libs/uclibc-ng: fix typo
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
index e99f8d7..2d9c74e 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
@@ -309,7 +309,7 @@ src_configure() {
if [[ ${target} == "i386" ]]; then
[[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i385 || die
+ extra/Configs/Config.i386 || die
fi
# For arm
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-08 8:54 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-08 8:54 UTC (permalink / raw
To: gentoo-commits
commit: a5adfa6966ea8b860bcea4ffae911faa61aaa8c1
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 8 08:56:53 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jul 8 08:58:14 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a5adfa69
sys-libs/uclibc-ng: remove older versions
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/Manifest | 2 -
sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild | 406 -----------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild | 406 -----------------------------
3 files changed, 814 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 305ecc2..dfc48c8 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1 @@
-DIST uClibc-ng-1.0.14.tar.bz2 2859522 SHA256 5e3ed3c217786b238e7e356fae05c75a158d1852e72ddea954787bdcf4d63dfa SHA512 293b9260ca9a62170746e441de161ebfedb171050f168db0131fa1aec1819477ff792204525747aec82c7f473b2f48eb93aedabcd768814ac207b28032112366 WHIRLPOOL 93dce8443c3b6d0b4a616de6084cf5169d24a55e0cf9445d90d24ea66dc51902f1612371747171967431ad30a8129fa3b22830d55d746e013dc2929a0f4d81eb
-DIST uClibc-ng-1.0.15.tar.bz2 2765526 SHA256 89a91aa18909ffb27407cd6f56dfd3ab504f0c415e42410870290b5dc45a1cd9 SHA512 a4f7520fad9b1927d8ca738410b213514c3151822d5c01474ffc71e4cf4e60815bcb3a5fb98f141cf615d0fe57a7f1d3d0d2b1fd217ad5eaf8835d41ea686dc0 WHIRLPOOL 88f481cbac54844c9620de916a22e57dfb15ade01b223712ac679d4224807bdfd47ae4e157a1672e33d38beda618ae970605861d6e18c4a312720eca2e608c93
DIST uClibc-ng-1.0.16.tar.bz2 2769238 SHA256 f0ded5cb1ff7aac670ca9df931fc820648d91b27085a3efecc1b7f06d65f57f6 SHA512 05110f0b6651862f16b01d1b45d59258b93686a7635815f9e050ab6b8f0eb14581782c95f305649d62aa80e78060865620a5306a657ea7e9ac396c68d61347cb WHIRLPOOL d79830b46d4bcb2f19917da936a35443da95728c25a050e5a313f6a374669be8c29d5df12a6e9ac5efc65416a0206672a70c7b6d75cb3fdc4017220e32222bf3
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild
deleted file mode 100644
index e99f8d7..0000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.14.ebuild
+++ /dev/null
@@ -1,406 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i385 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # For mips
- if [[ ${target} == "mips" ]]; then
- sed -i -e "s|default CONFIG_MIPS_O32_ABI|CONFIG_MIPS_${ABI^[on]}_ABI|" \
- extra/Configs/Config.mips || die
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild
deleted file mode 100644
index e99f8d7..0000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.15.ebuild
+++ /dev/null
@@ -1,406 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i385 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # For mips
- if [[ ${target} == "mips" ]]; then
- sed -i -e "s|default CONFIG_MIPS_O32_ABI|CONFIG_MIPS_${ABI^[on]}_ABI|" \
- extra/Configs/Config.mips || die
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-08 8:54 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-08 8:54 UTC (permalink / raw
To: gentoo-commits
commit: 6330ebcf3b97eb45f3bb1c0db59910b17ef7230f
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 8 08:57:45 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jul 8 08:58:16 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6330ebcf
sys-libs/uclibc-ng: fix typo
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index e99f8d7..2d9c74e 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -309,7 +309,7 @@ src_configure() {
if [[ ${target} == "i386" ]]; then
[[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i385 || die
+ extra/Configs/Config.i386 || die
fi
# For arm
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-14 13:28 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-14 13:28 UTC (permalink / raw
To: gentoo-commits
commit: ccbce4d58c33a9d237777e60a7de938efa3abfe0
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 14 13:31:25 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Jul 14 13:31:43 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccbce4d5
sys-libs/uclibc-ng: stable for amd64 and x86
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
index 2d9c74e..d3a5305 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-18 16:00 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-18 16:00 UTC (permalink / raw
To: gentoo-commits
commit: e029a05cf7242e3cdd635eab888190ed4ef6a6c3
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 18 15:59:49 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jul 18 15:59:49 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e029a05c
sys-libs/uclibc-ng: stable on arm
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
index d3a5305..1311c9b 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-07-28 3:12 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-07-28 3:12 UTC (permalink / raw
To: gentoo-commits
commit: b51060dd911d9eea0f46a1c5d907ba0ae6f7ff04
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 28 03:11:52 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Jul 28 03:11:52 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b51060dd
sys-libs/uclibc-ng: drop typo workaround for MIPS
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild | 6 ------
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 6 ------
2 files changed, 12 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
index 1311c9b..fd9adc7 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
@@ -317,12 +317,6 @@ src_configure() {
sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
fi
- # For mips
- if [[ ${target} == "mips" ]]; then
- sed -i -e "s|default CONFIG_MIPS_O32_ABI|CONFIG_MIPS_${ABI^[on]}_ABI|" \
- extra/Configs/Config.mips || die
- fi
-
# We set HOSTCC to the proper tuple rather than just 'gcc'
sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 2d9c74e..2d3a099 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -317,12 +317,6 @@ src_configure() {
sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
fi
- # For mips
- if [[ ${target} == "mips" ]]; then
- sed -i -e "s|default CONFIG_MIPS_O32_ABI|CONFIG_MIPS_${ABI^[on]}_ABI|" \
- extra/Configs/Config.mips || die
- fi
-
# We set HOSTCC to the proper tuple rather than just 'gcc'
sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-08-01 22:43 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-08-01 22:43 UTC (permalink / raw
To: gentoo-commits
commit: 7c3fda3df0131e29418df03db9b93013262d7f70
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 1 22:42:56 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Aug 1 22:42:56 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c3fda3d
sys-libs/uclibc-ng: version bump to 1.0.17
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild | 400 +++++++++++++++++++++++++++++
2 files changed, 401 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index dfc48c8..e8baa7e 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1 +1,2 @@
DIST uClibc-ng-1.0.16.tar.bz2 2769238 SHA256 f0ded5cb1ff7aac670ca9df931fc820648d91b27085a3efecc1b7f06d65f57f6 SHA512 05110f0b6651862f16b01d1b45d59258b93686a7635815f9e050ab6b8f0eb14581782c95f305649d62aa80e78060865620a5306a657ea7e9ac396c68d61347cb WHIRLPOOL d79830b46d4bcb2f19917da936a35443da95728c25a050e5a313f6a374669be8c29d5df12a6e9ac5efc65416a0206672a70c7b6d75cb3fdc4017220e32222bf3
+DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3cf6eae60ed4ad21b2de5cac8c0bf3 SHA512 de6c7bf2168fe76ad0fa3a59c2c4264040383683b4774e846c97c20802d92dc478d3fcf271800f008c5b2ee06d3f50baac47bc5f28b43366e418c65b11d3bdb4 WHIRLPOOL 430fcd6992097bcd995936e36450617d0d9f57182542ffc42f0bdf021a2e7c0a5c9f8bce50c498567e9219379ef80a20e444f872429ab36dc43eda11134a03f6
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
new file mode 100644
index 0000000..2d3a099
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
@@ -0,0 +1,400 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-08-08 1:13 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-08-08 1:13 UTC (permalink / raw
To: gentoo-commits
commit: eeb4cb957280f1ce497a47b19516e77263fc3366
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 8 01:12:51 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Aug 8 01:12:51 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eeb4cb95
sys-libs/uclibc-ng: stable on amd64 and x86
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
index 2d3a099..046f0b8 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-08-13 13:57 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-08-13 13:57 UTC (permalink / raw
To: gentoo-commits
commit: 16409c8ee6886521d1bb39fd799c453fd2ecda54
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 13 13:56:05 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Aug 13 13:56:05 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16409c8e
sys-libs/uclibc-ng: stable on arm and ppc
Package-Manager: portage-2.2.28
sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
index 046f0b8..76ec59e 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-10-03 0:00 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-10-03 0:00 UTC (permalink / raw
To: gentoo-commits
commit: 817823926ee26607d4a89568e1503f8cfc3c9e04
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 3 00:00:27 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Oct 3 00:00:51 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81782392
sys-libs/uclibc-ng: fix restructured libraries in >= 1.0.18
Package-Manager: portage-2.2.28
.../{uclibc-ng-1.0.18.ebuild => uclibc-ng-1.0.18-r1.ebuild} | 9 +++++++++
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.18.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild
similarity index 96%
rename from sys-libs/uclibc-ng/uclibc-ng-1.0.18.ebuild
rename to sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild
index 8635e40..3cb1ea9 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.18.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild
@@ -379,6 +379,15 @@ src_install() {
return 0
fi
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+
emake DESTDIR="${D}" install_utils
dobin extra/scripts/getent
dodoc README docs/*.txt
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 8635e40..3cb1ea9 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -379,6 +379,15 @@ src_install() {
return 0
fi
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+
emake DESTDIR="${D}" install_utils
dobin extra/scripts/getent
dodoc README docs/*.txt
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-10-30 9:41 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-10-30 9:41 UTC (permalink / raw
To: gentoo-commits
commit: f80a3b044ae6edf5b17fd2f7e9c8f251d582ae60
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 30 09:41:24 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Oct 30 09:41:24 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f80a3b04
sys-libs/uclibc-ng: version bump to 1.0.19
Package-Manager: portage-2.3.0
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild | 409 +++++++++++++++++++++++++++++
2 files changed, 410 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 2bf9152..b347a2c 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,4 @@
DIST uClibc-ng-1.0.16.tar.bz2 2769238 SHA256 f0ded5cb1ff7aac670ca9df931fc820648d91b27085a3efecc1b7f06d65f57f6 SHA512 05110f0b6651862f16b01d1b45d59258b93686a7635815f9e050ab6b8f0eb14581782c95f305649d62aa80e78060865620a5306a657ea7e9ac396c68d61347cb WHIRLPOOL d79830b46d4bcb2f19917da936a35443da95728c25a050e5a313f6a374669be8c29d5df12a6e9ac5efc65416a0206672a70c7b6d75cb3fdc4017220e32222bf3
DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3cf6eae60ed4ad21b2de5cac8c0bf3 SHA512 de6c7bf2168fe76ad0fa3a59c2c4264040383683b4774e846c97c20802d92dc478d3fcf271800f008c5b2ee06d3f50baac47bc5f28b43366e418c65b11d3bdb4 WHIRLPOOL 430fcd6992097bcd995936e36450617d0d9f57182542ffc42f0bdf021a2e7c0a5c9f8bce50c498567e9219379ef80a20e444f872429ab36dc43eda11134a03f6
DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb37f3611566e105b39dd034f6ed001c SHA512 579ddf4470d684979ba00b71545e7c34ca48d0ad58767222835f95c1401dea5435b6a945390c992e027cc59f2b419a9d835081d08c9d2e6db8b8ddeeed24f5cd WHIRLPOOL 60cd9cc03668af81988d603edc637a8d3dba8276bc0d71e6e915263119c8cf629d293e2da73a57def5b07732cd37f35527b1bc7d3ef01ff09dd6fcc2cf7d3a59
+DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
new file mode 100644
index 00000000..3cb1ea9
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
@@ -0,0 +1,409 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-10-30 22:57 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-10-30 22:57 UTC (permalink / raw
To: gentoo-commits
commit: 1e102eb71943a8a94d619c9fe141176040c8a608
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 30 22:57:25 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Oct 30 22:57:47 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1e102eb7
sys-libs/uclibc-ng: make compat sym links for libm.so and friends optional
Package-Manager: portage-2.3.0
sys-libs/uclibc-ng/metadata.xml | 2 ++
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 20 +++++++++++---------
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/sys-libs/uclibc-ng/metadata.xml b/sys-libs/uclibc-ng/metadata.xml
index 1e21008..c54e93b 100644
--- a/sys-libs/uclibc-ng/metadata.xml
+++ b/sys-libs/uclibc-ng/metadata.xml
@@ -16,5 +16,7 @@
</longdescription>
<use>
<flag name="rpc">Enable sun nis/rpc support (you should use libtirpc though)</flag>
+ <flag name="symlink-compat">Explicitly add sym links for libdl.so.0, libm.so.0, and
+ friends for backward compatibility with sys-libs/uclibc-ng-1.0.17 and earlier</flag>
</use>
</pkgmetadata>
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 3cb1ea9..15713cf 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -24,7 +24,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -379,14 +379,16 @@ src_install() {
return 0
fi
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
emake DESTDIR="${D}" install_utils
dobin extra/scripts/getent
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-12-02 1:23 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-12-02 1:23 UTC (permalink / raw
To: gentoo-commits
commit: 40524bc7033af4413351b3885c311152a3df9163
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 2 01:23:18 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Dec 2 01:23:55 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40524bc7
sys-libs/uclibc-ng: stable on amd64, arm, ppc and x86
Package-Manager: portage-2.3.0
sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
index 3cb1ea9..a455fce 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-12-05 22:45 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-12-05 22:45 UTC (permalink / raw
To: gentoo-commits
commit: 56c9fcd23b51388f7dd75f9b5df8ce260486a6f9
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 5 22:45:08 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Dec 5 22:45:24 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56c9fcd2
sys-libs/uclibc-ng: version bump to 1.0.20
Package-Manager: portage-2.3.0
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild | 411 +++++++++++++++++++++++++++++
2 files changed, 412 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index b347a2c..4d9b5bd 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -2,3 +2,4 @@ DIST uClibc-ng-1.0.16.tar.bz2 2769238 SHA256 f0ded5cb1ff7aac670ca9df931fc820648d
DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3cf6eae60ed4ad21b2de5cac8c0bf3 SHA512 de6c7bf2168fe76ad0fa3a59c2c4264040383683b4774e846c97c20802d92dc478d3fcf271800f008c5b2ee06d3f50baac47bc5f28b43366e418c65b11d3bdb4 WHIRLPOOL 430fcd6992097bcd995936e36450617d0d9f57182542ffc42f0bdf021a2e7c0a5c9f8bce50c498567e9219379ef80a20e444f872429ab36dc43eda11134a03f6
DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb37f3611566e105b39dd034f6ed001c SHA512 579ddf4470d684979ba00b71545e7c34ca48d0ad58767222835f95c1401dea5435b6a945390c992e027cc59f2b419a9d835081d08c9d2e6db8b8ddeeed24f5cd WHIRLPOOL 60cd9cc03668af81988d603edc637a8d3dba8276bc0d71e6e915263119c8cf629d293e2da73a57def5b07732cd37f35527b1bc7d3ef01ff09dd6fcc2cf7d3a59
DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
+DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
new file mode 100644
index 00000000..15713cf
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
@@ -0,0 +1,411 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-12-26 15:49 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-12-26 15:49 UTC (permalink / raw
To: gentoo-commits
commit: 9dc9db6c21fb87e12713f6e9fb893cf54da04f55
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 26 15:26:29 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Dec 26 15:49:02 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9dc9db6c
sys-libs/uclibc-ng: version bump to 1.0.21
Package-Manager: portage-2.3.0
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild | 411 +++++++++++++++++++++++++++++
2 files changed, 412 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 4d9b5bd..4819a0c 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -3,3 +3,4 @@ DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3
DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb37f3611566e105b39dd034f6ed001c SHA512 579ddf4470d684979ba00b71545e7c34ca48d0ad58767222835f95c1401dea5435b6a945390c992e027cc59f2b419a9d835081d08c9d2e6db8b8ddeeed24f5cd WHIRLPOOL 60cd9cc03668af81988d603edc637a8d3dba8276bc0d71e6e915263119c8cf629d293e2da73a57def5b07732cd37f35527b1bc7d3ef01ff09dd6fcc2cf7d3a59
DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
+DIST uClibc-ng-1.0.21.tar.bz2 2408890 SHA256 106b5c1c56ec5ed3c7d60dc4ce9b30a1f44c1de24ba3af263307a8fee5e90d38 SHA512 bc87999073f3d6f33053f3707ab6d5ac4c0587e0fc5150db17bc620f046f668ff59650da37677776c6fe579692d50db81157d53852311aafb766a38aca29e840 WHIRLPOOL 587cf0199fd0339ed16aa1c8201cc5500195525d3041a923b0e0631d6f7ee0b0e8629013a48ce35c38638d67d1e6b9a4c3df3bc9dfcfe571608cd1fa46a35d33
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild
new file mode 100644
index 00000000..15713cf
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild
@@ -0,0 +1,411 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2016-12-28 9:28 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2016-12-28 9:28 UTC (permalink / raw
To: gentoo-commits
commit: 3b1b97322a1a6cd33183ce91700cb9af325fecec
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 26 18:41:21 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Dec 28 09:28:03 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b1b9732
sys-libs/uclibc-ng: remove 1.0.21, dropping obstack breaks backward compat
Package-Manager: portage-2.3.0
sys-libs/uclibc-ng/Manifest | 1 -
sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild | 411 -----------------------------
2 files changed, 412 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 4819a0c..4d9b5bd 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -3,4 +3,3 @@ DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3
DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb37f3611566e105b39dd034f6ed001c SHA512 579ddf4470d684979ba00b71545e7c34ca48d0ad58767222835f95c1401dea5435b6a945390c992e027cc59f2b419a9d835081d08c9d2e6db8b8ddeeed24f5cd WHIRLPOOL 60cd9cc03668af81988d603edc637a8d3dba8276bc0d71e6e915263119c8cf629d293e2da73a57def5b07732cd37f35527b1bc7d3ef01ff09dd6fcc2cf7d3a59
DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
-DIST uClibc-ng-1.0.21.tar.bz2 2408890 SHA256 106b5c1c56ec5ed3c7d60dc4ce9b30a1f44c1de24ba3af263307a8fee5e90d38 SHA512 bc87999073f3d6f33053f3707ab6d5ac4c0587e0fc5150db17bc620f046f668ff59650da37677776c6fe579692d50db81157d53852311aafb766a38aca29e840 WHIRLPOOL 587cf0199fd0339ed16aa1c8201cc5500195525d3041a923b0e0631d6f7ee0b0e8629013a48ce35c38638d67d1e6b9a4c3df3bc9dfcfe571608cd1fa46a35d33
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild
deleted file mode 100644
index 15713cf..00000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.21.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-02-08 15:22 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-02-08 15:22 UTC (permalink / raw
To: gentoo-commits
commit: 568fb817e2be78887e108bf0594cfdde74517322
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 8 15:22:21 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Feb 8 15:22:40 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=568fb817
sys-libs/uclibc-ng: version bump to 1.0.22, keyword masked
Package-Manager: portage-2.3.3
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild | 412 +++++++++++++++++++++++++++++
2 files changed, 413 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 4d9b5bd98c..b741059944 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -3,3 +3,4 @@ DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3
DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb37f3611566e105b39dd034f6ed001c SHA512 579ddf4470d684979ba00b71545e7c34ca48d0ad58767222835f95c1401dea5435b6a945390c992e027cc59f2b419a9d835081d08c9d2e6db8b8ddeeed24f5cd WHIRLPOOL 60cd9cc03668af81988d603edc637a8d3dba8276bc0d71e6e915263119c8cf629d293e2da73a57def5b07732cd37f35527b1bc7d3ef01ff09dd6fcc2cf7d3a59
DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
+DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db0053b94235e0be5df7eeab7ff19a9e0 SHA512 d29a14813f6b795fbd380a9593742f696cd32ec8fd22001ce092382ca0059357bc921b8eac7d0a6ae2a9cab724b0ddd15f9959ec789b4824a5db820cbd00b6e7 WHIRLPOOL 14336e9e159585472a9a01cb69acc0cb59d8df89769e532c4deec4c1a6a0056d8ff091904163ad9ab29c2c5107fe57f3241c8d4e898fe831f21b1a8e685aaec1
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
new file mode 100644
index 0000000000..53955c73c9
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
@@ -0,0 +1,412 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS=""
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-02-18 20:52 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-02-18 20:52 UTC (permalink / raw
To: gentoo-commits
commit: 4c05c51c24e312d706679c2b737ee6729e984f8d
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 18 20:52:02 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Feb 18 20:52:20 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c05c51c
sys-libs/uclibc-ng: 1.0.20 stable on all arches
Package-Manager: portage-2.3.3
sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
index 15713cff6f..5cf67671cf 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@@ -19,7 +19,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-03-19 15:39 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-03-19 15:39 UTC (permalink / raw
To: gentoo-commits
commit: c0eddfadbd24ea3b7b3d17f121e950d717807936
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 19 15:38:44 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Mar 19 15:39:02 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0eddfad
sys-libs/uclibc-ng: rekeyword 1.0.22
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
index ab2dfbe25ea..c0d6e8d0953 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS=""
+ KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-04-04 1:59 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-04-04 1:59 UTC (permalink / raw
To: gentoo-commits
commit: c528b47d481ff55a3bd0aff8f9f496a3778254db
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 4 01:59:15 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Apr 4 01:59:15 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c528b47d
sys-libs/uclibc-ng: version bump to 1.0.23
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild | 411 +++++++++++++++++++++++++++++
2 files changed, 412 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index b741059944c..1025f878bc7 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -4,3 +4,4 @@ DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb3
DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db0053b94235e0be5df7eeab7ff19a9e0 SHA512 d29a14813f6b795fbd380a9593742f696cd32ec8fd22001ce092382ca0059357bc921b8eac7d0a6ae2a9cab724b0ddd15f9959ec789b4824a5db820cbd00b6e7 WHIRLPOOL 14336e9e159585472a9a01cb69acc0cb59d8df89769e532c4deec4c1a6a0056d8ff091904163ad9ab29c2c5107fe57f3241c8d4e898fe831f21b1a8e685aaec1
+DIST uClibc-ng-1.0.23.tar.bz2 2350186 SHA256 3eeb53a2aa5a32f455fb9d197f7b598f2ff46bbf35d72073f5e554e70c17c782 SHA512 eca892a0773cfbabaf5037347b1969706c040c903c93c612d2e0aca8d66b51d6d1cb7f3811a688898bc7e25ca235cc14b6bbd741c51dc135300a0e1408c6d1c3 WHIRLPOOL 1fb96469fb7860c05660fae7e58e9c60704cd76ad163a4c46e402e98ada35041a2069f6573498cf596a754044c08f30b4e3fd8fcba2d92c48ee7a7af9376af79
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
new file mode 100644
index 00000000000..c0d6e8d0953
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
@@ -0,0 +1,411 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-04-04 2:03 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-04-04 2:03 UTC (permalink / raw
To: gentoo-commits
commit: c03fd9aeed5fb3fae58d6e08121b9369b9f8c458
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 4 02:02:51 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Apr 4 02:02:51 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c03fd9ae
sys-libs/uclibc-ng: remove older versions
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-libs/uclibc-ng/Manifest | 3 -
sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild | 399 -------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild | 399 -------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild | 408 --------------------------
4 files changed, 1209 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 1025f878bc7..ecb210bdedf 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,6 +1,3 @@
-DIST uClibc-ng-1.0.16.tar.bz2 2769238 SHA256 f0ded5cb1ff7aac670ca9df931fc820648d91b27085a3efecc1b7f06d65f57f6 SHA512 05110f0b6651862f16b01d1b45d59258b93686a7635815f9e050ab6b8f0eb14581782c95f305649d62aa80e78060865620a5306a657ea7e9ac396c68d61347cb WHIRLPOOL d79830b46d4bcb2f19917da936a35443da95728c25a050e5a313f6a374669be8c29d5df12a6e9ac5efc65416a0206672a70c7b6d75cb3fdc4017220e32222bf3
-DIST uClibc-ng-1.0.17.tar.bz2 2769872 SHA256 fb4ab60698256d110bf30678a4cb27f14b3cf6eae60ed4ad21b2de5cac8c0bf3 SHA512 de6c7bf2168fe76ad0fa3a59c2c4264040383683b4774e846c97c20802d92dc478d3fcf271800f008c5b2ee06d3f50baac47bc5f28b43366e418c65b11d3bdb4 WHIRLPOOL 430fcd6992097bcd995936e36450617d0d9f57182542ffc42f0bdf021a2e7c0a5c9f8bce50c498567e9219379ef80a20e444f872429ab36dc43eda11134a03f6
-DIST uClibc-ng-1.0.18.tar.bz2 2754404 SHA256 71b2d401025c1235a061cfc80d394760fb37f3611566e105b39dd034f6ed001c SHA512 579ddf4470d684979ba00b71545e7c34ca48d0ad58767222835f95c1401dea5435b6a945390c992e027cc59f2b419a9d835081d08c9d2e6db8b8ddeeed24f5cd WHIRLPOOL 60cd9cc03668af81988d603edc637a8d3dba8276bc0d71e6e915263119c8cf629d293e2da73a57def5b07732cd37f35527b1bc7d3ef01ff09dd6fcc2cf7d3a59
DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db0053b94235e0be5df7eeab7ff19a9e0 SHA512 d29a14813f6b795fbd380a9593742f696cd32ec8fd22001ce092382ca0059357bc921b8eac7d0a6ae2a9cab724b0ddd15f9959ec789b4824a5db820cbd00b6e7 WHIRLPOOL 14336e9e159585472a9a01cb69acc0cb59d8df89769e532c4deec4c1a6a0056d8ff091904163ad9ab29c2c5107fe57f3241c8d4e898fe831f21b1a8e685aaec1
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
deleted file mode 100644
index ef86bc4a36e..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.16.ebuild
+++ /dev/null
@@ -1,399 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ~ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
deleted file mode 100644
index ba63764701e..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.17.ebuild
+++ /dev/null
@@ -1,399 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild
deleted file mode 100644
index f6fc8c5d528..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.18-r1.ebuild
+++ /dev/null
@@ -1,408 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-04-23 11:59 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-04-23 11:59 UTC (permalink / raw
To: gentoo-commits
commit: b30427e37f94f2571d43172f238ee30bb9ea7dfe
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 23 11:59:36 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Apr 23 11:59:36 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b30427e3
sys-libs/uclibc-ng: version bump to 1.0.24
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild | 411 +++++++++++++++++++++++++++++
2 files changed, 412 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index ecb210bdedf..b4d83908027 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -2,3 +2,4 @@ DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff4
DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db0053b94235e0be5df7eeab7ff19a9e0 SHA512 d29a14813f6b795fbd380a9593742f696cd32ec8fd22001ce092382ca0059357bc921b8eac7d0a6ae2a9cab724b0ddd15f9959ec789b4824a5db820cbd00b6e7 WHIRLPOOL 14336e9e159585472a9a01cb69acc0cb59d8df89769e532c4deec4c1a6a0056d8ff091904163ad9ab29c2c5107fe57f3241c8d4e898fe831f21b1a8e685aaec1
DIST uClibc-ng-1.0.23.tar.bz2 2350186 SHA256 3eeb53a2aa5a32f455fb9d197f7b598f2ff46bbf35d72073f5e554e70c17c782 SHA512 eca892a0773cfbabaf5037347b1969706c040c903c93c612d2e0aca8d66b51d6d1cb7f3811a688898bc7e25ca235cc14b6bbd741c51dc135300a0e1408c6d1c3 WHIRLPOOL 1fb96469fb7860c05660fae7e58e9c60704cd76ad163a4c46e402e98ada35041a2069f6573498cf596a754044c08f30b4e3fd8fcba2d92c48ee7a7af9376af79
+DIST uClibc-ng-1.0.24.tar.bz2 2299126 SHA256 d7a3ddc0af8f750abd74e2f677664faafd491f40b62ae0676957e411ca203782 SHA512 4d25035f2355a2b5549fa89cdd7754fc20c6a5a1001a06a81ee47de18855db368e412eb10e38dcbe2e364d3108cefe50029379a3e222972ceced3b693f4ffcc4 WHIRLPOOL 05932258636f041ee12ca2aeec332098e4f61fff92f055a30d024fe7cc953014b93b0ba231cdca2bc0a600e526155734266a71f2f95135dfa305b984f2f2bcd5
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild
new file mode 100644
index 00000000000..c0d6e8d0953
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild
@@ -0,0 +1,411 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-04-25 22:48 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-04-25 22:48 UTC (permalink / raw
To: gentoo-commits
commit: 5098699183e65b667c6d0e6f76531ce1c5065a23
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 25 22:47:57 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Apr 25 22:47:57 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=50986991
sys-libs/uclibc-ng: version 1.0.23 stable on amd64 and x86
Package-Manager: Portage-2.3.3, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
index c0d6e8d0953..2492d87f815 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-05-25 16:55 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-05-25 16:55 UTC (permalink / raw
To: gentoo-commits
commit: 3a73cdfbd09983cb45410777db3bb685e7b5edf6
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu May 25 16:55:02 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu May 25 16:55:24 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a73cdfb
sys-libs/uclibc-ng: version 1.0.23 stable on ppc
Package-Manager: Portage-2.3.5, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
index 2492d87f815..a5231d33810 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 ~arm ~ppc x86"
+ KEYWORDS="-* amd64 ~arm ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-06-07 10:22 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-06-07 10:22 UTC (permalink / raw
To: gentoo-commits
commit: 03ec1fa88bc1f425066e589f5f4ec1f00af02195
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 7 10:22:11 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Jun 7 10:22:11 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03ec1fa8
sys-libs/uclibc-ng: 1.0.23 stable on arm
Package-Manager: Portage-2.3.5, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
index a5231d33810..dc7a25c713c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 ~arm ppc x86"
+ KEYWORDS="-* amd64 arm ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-06-12 21:47 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-06-12 21:47 UTC (permalink / raw
To: gentoo-commits
commit: 0b1493ac5a7f438c9e29a2fc8ee4b74bd2cac9d1
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 12 21:47:26 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jun 12 21:47:48 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b1493ac
sys-libs/uclibc-ng: version bump to 1.0.25
Package-Manager: Portage-2.3.5, Repoman-2.3.1
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild | 411 +++++++++++++++++++++++++++++
2 files changed, 412 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index b4d83908027..b6d152ba1d3 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -3,3 +3,4 @@ DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88
DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db0053b94235e0be5df7eeab7ff19a9e0 SHA512 d29a14813f6b795fbd380a9593742f696cd32ec8fd22001ce092382ca0059357bc921b8eac7d0a6ae2a9cab724b0ddd15f9959ec789b4824a5db820cbd00b6e7 WHIRLPOOL 14336e9e159585472a9a01cb69acc0cb59d8df89769e532c4deec4c1a6a0056d8ff091904163ad9ab29c2c5107fe57f3241c8d4e898fe831f21b1a8e685aaec1
DIST uClibc-ng-1.0.23.tar.bz2 2350186 SHA256 3eeb53a2aa5a32f455fb9d197f7b598f2ff46bbf35d72073f5e554e70c17c782 SHA512 eca892a0773cfbabaf5037347b1969706c040c903c93c612d2e0aca8d66b51d6d1cb7f3811a688898bc7e25ca235cc14b6bbd741c51dc135300a0e1408c6d1c3 WHIRLPOOL 1fb96469fb7860c05660fae7e58e9c60704cd76ad163a4c46e402e98ada35041a2069f6573498cf596a754044c08f30b4e3fd8fcba2d92c48ee7a7af9376af79
DIST uClibc-ng-1.0.24.tar.bz2 2299126 SHA256 d7a3ddc0af8f750abd74e2f677664faafd491f40b62ae0676957e411ca203782 SHA512 4d25035f2355a2b5549fa89cdd7754fc20c6a5a1001a06a81ee47de18855db368e412eb10e38dcbe2e364d3108cefe50029379a3e222972ceced3b693f4ffcc4 WHIRLPOOL 05932258636f041ee12ca2aeec332098e4f61fff92f055a30d024fe7cc953014b93b0ba231cdca2bc0a600e526155734266a71f2f95135dfa305b984f2f2bcd5
+DIST uClibc-ng-1.0.25.tar.bz2 2234505 SHA256 e20d4a2c78cd76554747e58f35220301afb0fb600ed18f8c9096c98179120a8b SHA512 3bc5e3f0626a529a688e56649b34c48d0ddf733c09279c84fad0954880aa7c0ec3440664811196d11bbc3f05cbea99f3ba47efaad7f315a55ba3d8d587d3b313 WHIRLPOOL f422d05e1d9aa6ae0ecfc0b7808dd115614877d5a602effdc815123e61808b43558c9a9a530ef4ef918bbd5793bb77eb690660f563bc1f97120cc2a3c0b3650b
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
new file mode 100644
index 00000000000..c0d6e8d0953
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
@@ -0,0 +1,411 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-07-09 14:40 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-07-09 14:40 UTC (permalink / raw
To: gentoo-commits
commit: cc266df76c23dfb05e34f602378d3a8c5a5419bd
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 9 14:39:57 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 9 14:39:57 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc266df7
sys-libs/uclibc-ng: add keyword ~mips for version 1.0.23
Package-Manager: Portage-2.3.6, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
index dc7a25c713c..d10bebbe0ba 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 arm ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-07-21 11:14 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-07-21 11:14 UTC (permalink / raw
To: gentoo-commits
commit: a7ceb7e3ed317f6d6f572d0f17634fa4743795ff
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 21 11:09:22 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jul 21 11:09:22 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7ceb7e3
sys-libs/uclibc-ng: mark 1.0.25 stable on amd64 and x86
Package-Manager: Portage-2.3.6, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
index c0d6e8d0953..2492d87f815 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-08-04 20:25 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-08-04 20:25 UTC (permalink / raw
To: gentoo-commits
commit: 3b1ea686700359b163703f456dd62427a34261f3
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 4 20:25:11 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Aug 4 20:25:31 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b1ea686
sys-libs/uclibc-ng: version bump to 1.0.26
Package-Manager: Portage-2.3.6, Repoman-2.3.1
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 411 +++++++++++++++++++++++++++++
2 files changed, 412 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index b6d152ba1d3..da52614c3ad 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -4,3 +4,4 @@ DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db00
DIST uClibc-ng-1.0.23.tar.bz2 2350186 SHA256 3eeb53a2aa5a32f455fb9d197f7b598f2ff46bbf35d72073f5e554e70c17c782 SHA512 eca892a0773cfbabaf5037347b1969706c040c903c93c612d2e0aca8d66b51d6d1cb7f3811a688898bc7e25ca235cc14b6bbd741c51dc135300a0e1408c6d1c3 WHIRLPOOL 1fb96469fb7860c05660fae7e58e9c60704cd76ad163a4c46e402e98ada35041a2069f6573498cf596a754044c08f30b4e3fd8fcba2d92c48ee7a7af9376af79
DIST uClibc-ng-1.0.24.tar.bz2 2299126 SHA256 d7a3ddc0af8f750abd74e2f677664faafd491f40b62ae0676957e411ca203782 SHA512 4d25035f2355a2b5549fa89cdd7754fc20c6a5a1001a06a81ee47de18855db368e412eb10e38dcbe2e364d3108cefe50029379a3e222972ceced3b693f4ffcc4 WHIRLPOOL 05932258636f041ee12ca2aeec332098e4f61fff92f055a30d024fe7cc953014b93b0ba231cdca2bc0a600e526155734266a71f2f95135dfa305b984f2f2bcd5
DIST uClibc-ng-1.0.25.tar.bz2 2234505 SHA256 e20d4a2c78cd76554747e58f35220301afb0fb600ed18f8c9096c98179120a8b SHA512 3bc5e3f0626a529a688e56649b34c48d0ddf733c09279c84fad0954880aa7c0ec3440664811196d11bbc3f05cbea99f3ba47efaad7f315a55ba3d8d587d3b313 WHIRLPOOL f422d05e1d9aa6ae0ecfc0b7808dd115614877d5a602effdc815123e61808b43558c9a9a530ef4ef918bbd5793bb77eb690660f563bc1f97120cc2a3c0b3650b
+DIST uClibc-ng-1.0.26.tar.bz2 2285709 SHA256 899e2ae37ba9266d20fc2bf290cece484455555b284140b6442c24a24cddb909 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b WHIRLPOOL 32527dde77f30d1394271978e311fdc6ed69ef47b65d00f19efdf37b700a2dca4e6fc5b126c4cfa05321baf2a47fa1335d8d1843991e78eb1d44f4bfe032f818
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
new file mode 100644
index 00000000000..c0d6e8d0953
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -0,0 +1,411 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-08-06 11:33 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-08-06 11:33 UTC (permalink / raw
To: gentoo-commits
commit: 53b41a4e27936a186e2b76a7984ace6c97e560a5
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 6 11:31:08 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Aug 6 11:31:08 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=53b41a4e
sys-libs/uclibc-ng: mark 1.0.25 stable on ppc
Package-Manager: Portage-2.3.6, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
index 2492d87f815..a5231d33810 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 ~arm ~ppc x86"
+ KEYWORDS="-* amd64 ~arm ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-08-10 10:04 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-08-10 10:04 UTC (permalink / raw
To: gentoo-commits
commit: b23e88568c2e8f87c39cca7a8b2435fdeefe130c
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 10 10:01:02 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Aug 10 10:04:48 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b23e8856
sys-libs/uclibc-ng: 1.0.25 stable on arm and keyworded ~mips
Package-Manager: Portage-2.3.6, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
index a5231d33810..89d2e372716 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
@@ -18,8 +18,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 ~arm ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-09-21 14:03 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-09-21 14:03 UTC (permalink / raw
To: gentoo-commits
commit: ff452420d6d2343af0ff605b03a6a730b90a2129
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 21 14:02:54 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Sep 21 14:02:54 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff452420
sys-libs/uclibc-ng: stable on amd64 and x86
Package-Manager: Portage-2.3.8, Repoman-2.3.1
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index c0d6e8d0953..2492d87f815 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
#KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-11-14 15:33 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-11-14 15:33 UTC (permalink / raw
To: gentoo-commits
commit: adb74d03420b5e38e47d8bced0fb609a453c82ef
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 14 15:33:28 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Nov 14 15:33:28 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=adb74d03
sys-libs/uclibc-ng: 1.0.26 stable for arm ppc, keyword for ~mips
Package-Manager: Portage-2.3.8, Repoman-2.3.3
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index 2492d87f815..89d2e372716 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -18,8 +18,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 ~arm ~ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-11-28 22:02 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-11-28 22:02 UTC (permalink / raw
To: gentoo-commits
commit: 0d3c305bf0f475af324799516beedb809b15a55b
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 28 22:02:21 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Nov 28 22:02:21 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0d3c305b
sys-libs/uclibc-ng: version bump 1.0.27
Package-Manager: Portage-2.3.13, Repoman-2.3.3
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild | 410 +++++++++++++++++++++++++++++
2 files changed, 411 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index da52614c3ad..ed8e9dcd9cc 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -5,3 +5,4 @@ DIST uClibc-ng-1.0.23.tar.bz2 2350186 SHA256 3eeb53a2aa5a32f455fb9d197f7b598f2ff
DIST uClibc-ng-1.0.24.tar.bz2 2299126 SHA256 d7a3ddc0af8f750abd74e2f677664faafd491f40b62ae0676957e411ca203782 SHA512 4d25035f2355a2b5549fa89cdd7754fc20c6a5a1001a06a81ee47de18855db368e412eb10e38dcbe2e364d3108cefe50029379a3e222972ceced3b693f4ffcc4 WHIRLPOOL 05932258636f041ee12ca2aeec332098e4f61fff92f055a30d024fe7cc953014b93b0ba231cdca2bc0a600e526155734266a71f2f95135dfa305b984f2f2bcd5
DIST uClibc-ng-1.0.25.tar.bz2 2234505 SHA256 e20d4a2c78cd76554747e58f35220301afb0fb600ed18f8c9096c98179120a8b SHA512 3bc5e3f0626a529a688e56649b34c48d0ddf733c09279c84fad0954880aa7c0ec3440664811196d11bbc3f05cbea99f3ba47efaad7f315a55ba3d8d587d3b313 WHIRLPOOL f422d05e1d9aa6ae0ecfc0b7808dd115614877d5a602effdc815123e61808b43558c9a9a530ef4ef918bbd5793bb77eb690660f563bc1f97120cc2a3c0b3650b
DIST uClibc-ng-1.0.26.tar.bz2 2285709 SHA256 899e2ae37ba9266d20fc2bf290cece484455555b284140b6442c24a24cddb909 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b WHIRLPOOL 32527dde77f30d1394271978e311fdc6ed69ef47b65d00f19efdf37b700a2dca4e6fc5b126c4cfa05321baf2a47fa1335d8d1843991e78eb1d44f4bfe032f818
+DIST uClibc-ng-1.0.27.tar.bz2 2306274 BLAKE2B 64ad0634ca548960ad3ff003d98981853b0658cad75fcf3b7391b5b965656dc15daa06ae312ca34672caa47a2a3e33fbe6291c94df10547eef5dc395c2cbd0cc SHA512 bf8f56f75465f7b793e0356df495a00a41ed2478ea90e8d686e8591dcb1bb75be27fadedd8adf2494f5053ceefa4b0ba2223758efa2a920ea0f55bf104e433a2
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
new file mode 100644
index 00000000000..3cd7177086e
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
@@ -0,0 +1,410 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ UCLIBC_HAS_SSP_COMPAT
+ )
+
+ # These are forced on
+ defs_y=(
+ COMPAT_ATEXIT
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELINK_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ MALLOC_GLIBC_COMPAT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBNSL_STUB
+ UCLIBC_HAS_LIBRESOLV_STUB
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_OBSTACK
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt rpc UCLIBC_HAS_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
+ kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2017-11-28 22:07 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2017-11-28 22:07 UTC (permalink / raw
To: gentoo-commits
commit: 7d87ccee33c922e1cbc7aba31f25cd75469ff7ce
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 28 22:07:12 2017 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Nov 28 22:07:12 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d87ccee
sys-libs/uclibc-ng: remove older versions
Package-Manager: Portage-2.3.13, Repoman-2.3.3
sys-libs/uclibc-ng/Manifest | 5 -
sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild | 408 -------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild | 410 -------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild | 411 -------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild | 411 -------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.24-r1.ebuild | 412 --------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild | 411 -------------------------
7 files changed, 2468 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index ed8e9dcd9cc..970351c1b28 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,8 +1,3 @@
-DIST uClibc-ng-1.0.19.tar.bz2 2748768 SHA256 139c495d8f71ec31da97e0330b056302ff40f0acba66988fcd737cfb4eb445ed SHA512 d385eca25c4a356b01b6d7acaef63daeeb172769d6306525fb95f62e818aca354cf04fae15af65bc346f19dcfdc601f87e52a8dc95f528d7392648d1b056fe63 WHIRLPOOL 1cc6b64df85df5f9e8c15c9cad3ed5641add20f402657a7d9c6283527ba7feac3c90ce293f2b15578c6d816c19018467336e50cd469a46482c2e4168f2addaf5
-DIST uClibc-ng-1.0.20.tar.bz2 2414313 SHA256 0d0ee9d4df82958f65088f446ffd7548d88deb1f1b949f9ec3e673decb910597 SHA512 c0d4fc442f087d9bf994a7b84fa12cfae96f2980061cbb39b1c2cf243692d44fcab79d4a686ac5a7889b9081682aa13d013da0ad99cb30ad2b7150bdb19de0de WHIRLPOOL 16035dd540629aa453e023b6ea96eab5e577579e7bb940ed3411107ffd12bc78148e7a14222184207ae40633d30871d9e583c3456a04cc28b96dfd40b287e713
-DIST uClibc-ng-1.0.22.tar.bz2 2435181 SHA256 430bebc26545022c5c3e9cebd4ee682db0053b94235e0be5df7eeab7ff19a9e0 SHA512 d29a14813f6b795fbd380a9593742f696cd32ec8fd22001ce092382ca0059357bc921b8eac7d0a6ae2a9cab724b0ddd15f9959ec789b4824a5db820cbd00b6e7 WHIRLPOOL 14336e9e159585472a9a01cb69acc0cb59d8df89769e532c4deec4c1a6a0056d8ff091904163ad9ab29c2c5107fe57f3241c8d4e898fe831f21b1a8e685aaec1
-DIST uClibc-ng-1.0.23.tar.bz2 2350186 SHA256 3eeb53a2aa5a32f455fb9d197f7b598f2ff46bbf35d72073f5e554e70c17c782 SHA512 eca892a0773cfbabaf5037347b1969706c040c903c93c612d2e0aca8d66b51d6d1cb7f3811a688898bc7e25ca235cc14b6bbd741c51dc135300a0e1408c6d1c3 WHIRLPOOL 1fb96469fb7860c05660fae7e58e9c60704cd76ad163a4c46e402e98ada35041a2069f6573498cf596a754044c08f30b4e3fd8fcba2d92c48ee7a7af9376af79
-DIST uClibc-ng-1.0.24.tar.bz2 2299126 SHA256 d7a3ddc0af8f750abd74e2f677664faafd491f40b62ae0676957e411ca203782 SHA512 4d25035f2355a2b5549fa89cdd7754fc20c6a5a1001a06a81ee47de18855db368e412eb10e38dcbe2e364d3108cefe50029379a3e222972ceced3b693f4ffcc4 WHIRLPOOL 05932258636f041ee12ca2aeec332098e4f61fff92f055a30d024fe7cc953014b93b0ba231cdca2bc0a600e526155734266a71f2f95135dfa305b984f2f2bcd5
DIST uClibc-ng-1.0.25.tar.bz2 2234505 SHA256 e20d4a2c78cd76554747e58f35220301afb0fb600ed18f8c9096c98179120a8b SHA512 3bc5e3f0626a529a688e56649b34c48d0ddf733c09279c84fad0954880aa7c0ec3440664811196d11bbc3f05cbea99f3ba47efaad7f315a55ba3d8d587d3b313 WHIRLPOOL f422d05e1d9aa6ae0ecfc0b7808dd115614877d5a602effdc815123e61808b43558c9a9a530ef4ef918bbd5793bb77eb690660f563bc1f97120cc2a3c0b3650b
DIST uClibc-ng-1.0.26.tar.bz2 2285709 SHA256 899e2ae37ba9266d20fc2bf290cece484455555b284140b6442c24a24cddb909 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b WHIRLPOOL 32527dde77f30d1394271978e311fdc6ed69ef47b65d00f19efdf37b700a2dca4e6fc5b126c4cfa05321baf2a47fa1335d8d1843991e78eb1d44f4bfe032f818
DIST uClibc-ng-1.0.27.tar.bz2 2306274 BLAKE2B 64ad0634ca548960ad3ff003d98981853b0658cad75fcf3b7391b5b965656dc15daa06ae312ca34672caa47a2a3e33fbe6291c94df10547eef5dc395c2cbd0cc SHA512 bf8f56f75465f7b793e0356df495a00a41ed2478ea90e8d686e8591dcb1bb75be27fadedd8adf2494f5053ceefa4b0ba2223758efa2a920ea0f55bf104e433a2
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
deleted file mode 100644
index 9069233fee3..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.19.ebuild
+++ /dev/null
@@ -1,408 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
deleted file mode 100644
index 89d2e372716..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.20.ebuild
+++ /dev/null
@@ -1,410 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
deleted file mode 100644
index c0d6e8d0953..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.22.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
deleted file mode 100644
index d10bebbe0ba..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.23.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.24-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.24-r1.ebuild
deleted file mode 100644
index de763355387..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.24-r1.ebuild
+++ /dev/null
@@ -1,412 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
- eapply "${FILESDIR}"/${PN}-update-reboot_h.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild
deleted file mode 100644
index c0d6e8d0953..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.24.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- #KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-01-07 19:39 Sergei Trofimovich
0 siblings, 0 replies; 70+ messages in thread
From: Sergei Trofimovich @ 2018-01-07 19:39 UTC (permalink / raw
To: gentoo-commits
commit: 365914db13540c7580e50a3dc9883587d74f12c8
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 7 18:40:13 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Jan 7 19:39:43 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=365914db
sys-libs/uclibc-ng: Migrate CROSSCOMPILE_OPTS=headers-only -> USE=headers-only
CROSSCOMPILE_OPTS is a USE_EXPAND of a single item: headers-only.
Convert it to a global USE flag instead.
Mechanical ebuild rename done as:
$ sed -e 's@crosscompile_opts_headers-only@headers-only@g' \
-i $(git grep -l headers-only)
'headers-only' flag is used by crossdev to bootstrap stage1 compiler
before libc is available.
crossdev switched to USE=headers-only in =sys-devel/crossdev-20171230.
Bug: https://bugs.gentoo.org/642712
Package-Manager: Portage-2.3.19, Repoman-2.3.6
sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild | 6 +++---
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 6 +++---
sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild | 6 +++---
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 6 +++---
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
index 89d2e372716..5245bd5b23c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -23,7 +23,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -59,7 +59,7 @@ alt_build_kprefix() {
}
just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
+ use headers-only && is_crosscompile
}
uclibc_endian() {
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index 89d2e372716..5245bd5b23c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -23,7 +23,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -59,7 +59,7 @@ alt_build_kprefix() {
}
just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
+ use headers-only && is_crosscompile
}
uclibc_endian() {
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
index 3cd7177086e..9c2e972dc4c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -23,7 +23,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -59,7 +59,7 @@ alt_build_kprefix() {
}
just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
+ use headers-only && is_crosscompile
}
uclibc_endian() {
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index f6ad5129797..9c2e972dc4c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -23,7 +23,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat crosscompile_opts_headers-only"
+IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -59,7 +59,7 @@ alt_build_kprefix() {
}
just_headers() {
- use crosscompile_opts_headers-only && is_crosscompile
+ use headers-only && is_crosscompile
}
uclibc_endian() {
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-01-11 2:08 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-01-11 2:08 UTC (permalink / raw
To: gentoo-commits
commit: dd4c34a499c785675f586e74e10d1ea25b053220
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 11 02:07:10 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Jan 11 02:07:10 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd4c34a4
sys-libs/uclibc-ng: 1.0.27 is broken on mips
Package-Manager: Portage-2.3.13, Repoman-2.3.3
sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
index 9c2e972dc4c..b42ff88c947 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-01-26 19:33 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-01-26 19:33 UTC (permalink / raw
To: gentoo-commits
commit: 09642f6cdb5b3e70896c6cb307d8d80d2adb07e7
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 26 19:33:17 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jan 26 19:33:35 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09642f6c
sys-libs/uclibc-ng: version bump to 1.0.28
Package-Manager: Portage-2.3.13, Repoman-2.3.3
sys-libs/uclibc-ng/Manifest | 1 +
.../{uclibc-ng-9999.ebuild => uclibc-ng-1.0.28.ebuild} | 17 ++++-------------
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 17 ++++-------------
3 files changed, 9 insertions(+), 26 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 6d66c9d7c1a..22d4db1a1ed 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,4 @@
DIST uClibc-ng-1.0.25.tar.bz2 2234505 BLAKE2B c1f352ca0145a473e357f2627b08905ce66d0a1630dd7d62996abc52cf6ec6f51d789fecf59158dd8b425304fab992d4f2fe7290a21966b240cab7fc75fdccd9 SHA512 3bc5e3f0626a529a688e56649b34c48d0ddf733c09279c84fad0954880aa7c0ec3440664811196d11bbc3f05cbea99f3ba47efaad7f315a55ba3d8d587d3b313
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
DIST uClibc-ng-1.0.27.tar.bz2 2306274 BLAKE2B 64ad0634ca548960ad3ff003d98981853b0658cad75fcf3b7391b5b965656dc15daa06ae312ca34672caa47a2a3e33fbe6291c94df10547eef5dc395c2cbd0cc SHA512 bf8f56f75465f7b793e0356df495a00a41ed2478ea90e8d686e8591dcb1bb75be27fadedd8adf2494f5053ceefa4b0ba2223758efa2a920ea0f55bf104e433a2
+DIST uClibc-ng-1.0.28.tar.bz2 2299119 BLAKE2B 1f31b9a98fd669bad42ceeb1b8c33fd65994b0252707b532ad8a71c12f8bd0c4d99bc89ad919a1fbc2526efcf25d2e9f823f889c7c009da98e861269399c97a3 SHA512 9e77fece126b6ba6f9903a2fc5689a9f7efb335e38914a3806a7e0831033f5373a4b07e942d28876ed81a6a80b2d64b0fa122dccc4874db263d2d5fb7fef99ba
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
similarity index 96%
copy from sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
copy to sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
index 9c2e972dc4c..507f8c13ae9 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
@@ -14,7 +14,7 @@ else
fi
DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
+HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
@@ -23,7 +23,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -121,21 +121,19 @@ make_config() {
SUPPORT_LD_DEBUG_EARLY
UCLIBC_HAS_CTYPE_UNSAFE
UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
+ LDSO_SAFE_RUNPATH
)
# These are forced on
defs_y=(
- COMPAT_ATEXIT
DO_C99_MATH
DO_XSI_MATH
FORCE_SHAREABLE_TEXT_SEGMENTS
LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
LDSO_RUNPATH_OF_EXECUTABLE
LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
PROPOLICE_BLOCK_SEGV
PTHREADS_DEBUG_SUPPORT
UCLIBC_HAS_ARC4RANDOM
@@ -155,12 +153,9 @@ make_config() {
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
UCLIBC_HAS_GNU_GLOB
UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
UCLIBC_HAS_LIBUTIL
UCLIBC_HAS_NFTW
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
UCLIBC_HAS_PRINTF_M_SPEC
UCLIBC_HAS_PROGRAM_INVOCATION_NAME
UCLIBC_HAS_RESOLVER_SUPPORT
@@ -194,10 +189,6 @@ make_config() {
kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
kconfig_q_opt hardened UCLIBC_BUILD_NOW
kconfig_q_opt hardened UCLIBC_BUILD_PIE
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 9c2e972dc4c..507f8c13ae9 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -14,7 +14,7 @@ else
fi
DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
+HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
@@ -23,7 +23,7 @@ fi
LICENSE="LGPL-2"
SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
RESTRICT="strip"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
@@ -121,21 +121,19 @@ make_config() {
SUPPORT_LD_DEBUG_EARLY
UCLIBC_HAS_CTYPE_UNSAFE
UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
+ LDSO_SAFE_RUNPATH
)
# These are forced on
defs_y=(
- COMPAT_ATEXIT
DO_C99_MATH
DO_XSI_MATH
FORCE_SHAREABLE_TEXT_SEGMENTS
LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
LDSO_RUNPATH_OF_EXECUTABLE
LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
PROPOLICE_BLOCK_SEGV
PTHREADS_DEBUG_SUPPORT
UCLIBC_HAS_ARC4RANDOM
@@ -155,12 +153,9 @@ make_config() {
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
UCLIBC_HAS_GNU_GLOB
UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
UCLIBC_HAS_LIBUTIL
UCLIBC_HAS_NFTW
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
UCLIBC_HAS_PRINTF_M_SPEC
UCLIBC_HAS_PROGRAM_INVOCATION_NAME
UCLIBC_HAS_RESOLVER_SUPPORT
@@ -194,10 +189,6 @@ make_config() {
kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
kconfig_q_opt hardened UCLIBC_BUILD_NOW
kconfig_q_opt hardened UCLIBC_BUILD_PIE
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-03-03 20:50 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-03-03 20:50 UTC (permalink / raw
To: gentoo-commits
commit: d7be10941db8e8ba0b4d98a26b5bd85ed3f9005d
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 3 20:50:16 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Mar 3 20:50:16 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7be1094
sys-libs/uclibc-ng: bump to 1.0.29
Package-Manager: Portage-2.3.19, Repoman-2.3.6
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild | 401 +++++++++++++++++++++++++++++
2 files changed, 402 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 22d4db1a1ed..4cc4034b82d 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -2,3 +2,4 @@ DIST uClibc-ng-1.0.25.tar.bz2 2234505 BLAKE2B c1f352ca0145a473e357f2627b08905ce6
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
DIST uClibc-ng-1.0.27.tar.bz2 2306274 BLAKE2B 64ad0634ca548960ad3ff003d98981853b0658cad75fcf3b7391b5b965656dc15daa06ae312ca34672caa47a2a3e33fbe6291c94df10547eef5dc395c2cbd0cc SHA512 bf8f56f75465f7b793e0356df495a00a41ed2478ea90e8d686e8591dcb1bb75be27fadedd8adf2494f5053ceefa4b0ba2223758efa2a920ea0f55bf104e433a2
DIST uClibc-ng-1.0.28.tar.bz2 2299119 BLAKE2B 1f31b9a98fd669bad42ceeb1b8c33fd65994b0252707b532ad8a71c12f8bd0c4d99bc89ad919a1fbc2526efcf25d2e9f823f889c7c009da98e861269399c97a3 SHA512 9e77fece126b6ba6f9903a2fc5689a9f7efb335e38914a3806a7e0831033f5373a4b07e942d28876ed81a6a80b2d64b0fa122dccc4874db263d2d5fb7fef99ba
+DIST uClibc-ng-1.0.29.tar.bz2 2290382 BLAKE2B f6968397daaa66d75dff5508bdff4a3d05453a0657474b9ff167d14a0b0d715f22c61708060243efd1064922b4dd1e84987fe9cf1b13aa7bdb85e27b8c65a3b1 SHA512 7ab00f2a1c7a87f8d35b7bc51b7a8ad0f9120d8c117be8c03720c09b17d7f9f8b8a633ef7efa3e69f8d292b0357580f055f1542ad2257cff337056c9d3b5e207
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
new file mode 100644
index 00000000000..507f8c13ae9
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
@@ -0,0 +1,401 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="https://uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ LDSO_SAFE_RUNPATH
+ )
+
+ # These are forced on
+ defs_y=(
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-03-04 1:51 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-03-04 1:51 UTC (permalink / raw
To: gentoo-commits
commit: d6cf67599e2466b39e186334589960f19afe27f7
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 4 01:51:13 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Mar 4 01:51:13 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6cf6759
sys-libs/uclibc-ng: 1.0.28 stable on amd64, arm and x86
Package-Manager: Portage-2.3.19, Repoman-2.3.6
sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
index 507f8c13ae9..6f75777134c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-03-04 1:54 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-03-04 1:54 UTC (permalink / raw
To: gentoo-commits
commit: dcde1607fd3e573861b06252263614264d378c2a
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 4 01:53:45 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Mar 4 01:53:45 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dcde1607
sys-libs/uclibc-ng: remove older versions
Package-Manager: Portage-2.3.19, Repoman-2.3.6
sys-libs/uclibc-ng/Manifest | 2 -
sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild | 410 -----------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 2 +-
sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild | 410 -----------------------------
4 files changed, 1 insertion(+), 823 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 4cc4034b82d..4963350c07d 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,5 +1,3 @@
-DIST uClibc-ng-1.0.25.tar.bz2 2234505 BLAKE2B c1f352ca0145a473e357f2627b08905ce66d0a1630dd7d62996abc52cf6ec6f51d789fecf59158dd8b425304fab992d4f2fe7290a21966b240cab7fc75fdccd9 SHA512 3bc5e3f0626a529a688e56649b34c48d0ddf733c09279c84fad0954880aa7c0ec3440664811196d11bbc3f05cbea99f3ba47efaad7f315a55ba3d8d587d3b313
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
-DIST uClibc-ng-1.0.27.tar.bz2 2306274 BLAKE2B 64ad0634ca548960ad3ff003d98981853b0658cad75fcf3b7391b5b965656dc15daa06ae312ca34672caa47a2a3e33fbe6291c94df10547eef5dc395c2cbd0cc SHA512 bf8f56f75465f7b793e0356df495a00a41ed2478ea90e8d686e8591dcb1bb75be27fadedd8adf2494f5053ceefa4b0ba2223758efa2a920ea0f55bf104e433a2
DIST uClibc-ng-1.0.28.tar.bz2 2299119 BLAKE2B 1f31b9a98fd669bad42ceeb1b8c33fd65994b0252707b532ad8a71c12f8bd0c4d99bc89ad919a1fbc2526efcf25d2e9f823f889c7c009da98e861269399c97a3 SHA512 9e77fece126b6ba6f9903a2fc5689a9f7efb335e38914a3806a7e0831033f5373a4b07e942d28876ed81a6a80b2d64b0fa122dccc4874db263d2d5fb7fef99ba
DIST uClibc-ng-1.0.29.tar.bz2 2290382 BLAKE2B f6968397daaa66d75dff5508bdff4a3d05453a0657474b9ff167d14a0b0d715f22c61708060243efd1064922b4dd1e84987fe9cf1b13aa7bdb85e27b8c65a3b1 SHA512 7ab00f2a1c7a87f8d35b7bc51b7a8ad0f9120d8c117be8c03720c09b17d7f9f8b8a633ef7efa3e69f8d292b0357580f055f1542ad2257cff337056c9d3b5e207
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
deleted file mode 100644
index 5245bd5b23c..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.25.ebuild
+++ /dev/null
@@ -1,410 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index 5245bd5b23c..6ce66393dd4 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
+ KEYWORDS="-* ppc"
fi
LICENSE="LGPL-2"
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
deleted file mode 100644
index b42ff88c947..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.27.ebuild
+++ /dev/null
@@ -1,410 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-03-09 22:57 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-03-09 22:57 UTC (permalink / raw
To: gentoo-commits
commit: 89e5564715199048b5e368cd6530529552c84f11
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 9 22:57:15 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Mar 9 22:57:32 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89e55647
sys-libs/uclibc-ng: fall back on 1.0.26
=dev-lang/python-3.5.4-r1 breaks on later versions
Package-Manager: Portage-2.3.19, Repoman-2.3.6
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 2 +-
sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index 6ce66393dd4..f9471f6e42a 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="http://www.uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ppc"
+ KEYWORDS="-* amd64 arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
index 6f75777134c..507f8c13ae9 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ~ppc x86"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-04-11 9:40 David Seifert
0 siblings, 0 replies; 70+ messages in thread
From: David Seifert @ 2018-04-11 9:40 UTC (permalink / raw
To: gentoo-commits
commit: d1152bec4795f3a2d4af49eb18ea71ac8e52262b
Author: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail <DOT> com>
AuthorDate: Wed Apr 11 08:37:59 2018 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Apr 11 09:40:03 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1152bec
sys-libs/uclibc-ng: use HTTPS
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 4 ++--
sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild | 2 +-
sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild | 2 +-
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index f9471f6e42a..3a53eceae51 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -14,10 +14,10 @@ else
fi
DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="http://www.uclibc-ng.org/"
+HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
KEYWORDS="-* amd64 arm ~mips ~ppc x86"
fi
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
index 507f8c13ae9..3b31357d804 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
@@ -17,7 +17,7 @@ DESCRIPTION="C library for developing embedded Linux systems"
HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
fi
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
index 507f8c13ae9..3b31357d804 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
@@ -17,7 +17,7 @@ DESCRIPTION="C library for developing embedded Linux systems"
HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
fi
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 507f8c13ae9..3b31357d804 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -17,7 +17,7 @@ DESCRIPTION="C library for developing embedded Linux systems"
HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
- SRC_URI="http://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
fi
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-04-28 20:52 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-04-28 20:52 UTC (permalink / raw
To: gentoo-commits
commit: f2a42fd8eacfac0ba29fd6254451044c406d49ef
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 28 20:51:56 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Apr 28 20:51:56 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f2a42fd8
sys-libs/uclibc-ng: version bump to 1.0.30
Package-Manager: Portage-2.3.24, Repoman-2.3.6
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.30.ebuild | 401 +++++++++++++++++++++++++++++
2 files changed, 402 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 4963350c07d..7955023afa7 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,4 @@
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
DIST uClibc-ng-1.0.28.tar.bz2 2299119 BLAKE2B 1f31b9a98fd669bad42ceeb1b8c33fd65994b0252707b532ad8a71c12f8bd0c4d99bc89ad919a1fbc2526efcf25d2e9f823f889c7c009da98e861269399c97a3 SHA512 9e77fece126b6ba6f9903a2fc5689a9f7efb335e38914a3806a7e0831033f5373a4b07e942d28876ed81a6a80b2d64b0fa122dccc4874db263d2d5fb7fef99ba
DIST uClibc-ng-1.0.29.tar.bz2 2290382 BLAKE2B f6968397daaa66d75dff5508bdff4a3d05453a0657474b9ff167d14a0b0d715f22c61708060243efd1064922b4dd1e84987fe9cf1b13aa7bdb85e27b8c65a3b1 SHA512 7ab00f2a1c7a87f8d35b7bc51b7a8ad0f9120d8c117be8c03720c09b17d7f9f8b8a633ef7efa3e69f8d292b0357580f055f1542ad2257cff337056c9d3b5e207
+DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30.ebuild
new file mode 100644
index 00000000000..3b31357d804
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30.ebuild
@@ -0,0 +1,401 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="https://uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ LDSO_SAFE_RUNPATH
+ )
+
+ # These are forced on
+ defs_y=(
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-04-29 19:47 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-04-29 19:47 UTC (permalink / raw
To: gentoo-commits
commit: d49d82a85320d07d8e27d19c5e283b2b8ac6ee83
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 29 19:46:54 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Apr 29 19:47:14 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d49d82a8
sys-libs/uclibc-ng: remove older unstable (and broken) versions
Package-Manager: Portage-2.3.24, Repoman-2.3.6
sys-libs/uclibc-ng/Manifest | 2 -
sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild | 401 -----------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild | 401 -----------------------------
3 files changed, 804 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 7955023afa7..41ecc16a496 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,4 +1,2 @@
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
-DIST uClibc-ng-1.0.28.tar.bz2 2299119 BLAKE2B 1f31b9a98fd669bad42ceeb1b8c33fd65994b0252707b532ad8a71c12f8bd0c4d99bc89ad919a1fbc2526efcf25d2e9f823f889c7c009da98e861269399c97a3 SHA512 9e77fece126b6ba6f9903a2fc5689a9f7efb335e38914a3806a7e0831033f5373a4b07e942d28876ed81a6a80b2d64b0fa122dccc4874db263d2d5fb7fef99ba
-DIST uClibc-ng-1.0.29.tar.bz2 2290382 BLAKE2B f6968397daaa66d75dff5508bdff4a3d05453a0657474b9ff167d14a0b0d715f22c61708060243efd1064922b4dd1e84987fe9cf1b13aa7bdb85e27b8c65a3b1 SHA512 7ab00f2a1c7a87f8d35b7bc51b7a8ad0f9120d8c117be8c03720c09b17d7f9f8b8a633ef7efa3e69f8d292b0357580f055f1542ad2257cff337056c9d3b5e207
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
deleted file mode 100644
index 3b31357d804..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.28.ebuild
+++ /dev/null
@@ -1,401 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="https://uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- LDSO_SAFE_RUNPATH
- )
-
- # These are forced on
- defs_y=(
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
deleted file mode 100644
index 3b31357d804..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.29.ebuild
+++ /dev/null
@@ -1,401 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="https://uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-RESTRICT="strip"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- LDSO_SAFE_RUNPATH
- )
-
- # These are forced on
- defs_y=(
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-05-16 8:41 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-05-16 8:41 UTC (permalink / raw
To: gentoo-commits
commit: 461740d7ac84c9edc01c14b3c8f880fd54f1f5d8
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed May 16 08:41:27 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed May 16 08:41:27 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=461740d7
sys-libs/uclibc-ng: 1.0.30-r1 stable on amd64 and x86
Package-Manager: Portage-2.3.24, Repoman-2.3.6
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
index ca35a2cc5bc..77dc21a58bc 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-06-09 23:56 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-06-09 23:56 UTC (permalink / raw
To: gentoo-commits
commit: 107cd90834242dea31808346c0ac7e13078a31e8
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 9 23:55:21 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jun 9 23:56:01 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=107cd908
sys-libs/uclibc-ng: 1.0.30-r1 stable on ppc
Package-Manager: Portage-2.3.40, Repoman-2.3.9
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
index 77dc21a58bc..4b7f7e366e4 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
+ KEYWORDS="-* amd64 ~arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-10-04 21:41 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-10-04 21:41 UTC (permalink / raw
To: gentoo-commits
commit: 8219d2d6041611b3a7c4f12ab574ef104732bae5
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 4 21:41:07 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Oct 4 21:41:07 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8219d2d6
sys-libs/uclibc-ng: version 1.0.30-r1 stable on arm
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
Package-Manager: Portage-2.3.49, Repoman-2.3.10
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
index 4b7f7e366e4..87c97563169 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-11-17 12:46 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-11-17 12:46 UTC (permalink / raw
To: gentoo-commits
commit: 44e3a4e02ff0450aa321c16a38ce788cdfd1c189
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 17 12:45:59 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Nov 17 12:46:16 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44e3a4e0
sys-libs/uclibc-ng: version bump to 1.0.31
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild | 401 +++++++++++++++++++++++++++++
2 files changed, 402 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 41ecc16a496..646c35652be 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,2 +1,3 @@
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
+DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
new file mode 100644
index 00000000000..4f1d00a3cb4
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
@@ -0,0 +1,401 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="https://uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
+RESTRICT="strip"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ LDSO_SAFE_RUNPATH
+ )
+
+ # These are forced on
+ defs_y=(
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version=( $(get_version_components) )
+ if [[ -z ${version[1]} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version[1]}
+ if [[ -z ${version[2]} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version[2]}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-12-02 12:22 Sergei Trofimovich
0 siblings, 0 replies; 70+ messages in thread
From: Sergei Trofimovich @ 2018-12-02 12:22 UTC (permalink / raw
To: gentoo-commits
commit: 15d22f086aa4663cd9c684e35f5580cbfcbe0bfe
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 2 12:22:28 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 2 12:22:46 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15d22f08
sys-libs/uclibc-ng: RESTRICT=test (missing tests)
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-libs/uclibc-ng/metadata.xml | 2 +-
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 5 +++--
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 5 +++--
sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild | 3 ++-
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 5 +++--
5 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/sys-libs/uclibc-ng/metadata.xml b/sys-libs/uclibc-ng/metadata.xml
index c54e93bc9e0..12420ae8d3b 100644
--- a/sys-libs/uclibc-ng/metadata.xml
+++ b/sys-libs/uclibc-ng/metadata.xml
@@ -12,7 +12,7 @@
<longdescription>
uClibc-ng is a small C library for developing embedded Linux systems. It is much
smaller than the GNU C Library, but nearly all applications supported by glibc
- also work perfectly with uClibc-ng.
+ also work perfectly with uClibc-ng.
</longdescription>
<use>
<flag name="rpc">Enable sun nis/rpc support (you should use libtirpc though)</flag>
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
index 3a53eceae51..572b3800cec 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -24,7 +24,8 @@ fi
LICENSE="LGPL-2"
SLOT="0"
IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
-RESTRICT="strip"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
# will delete the ld.so sym link prematurely and break the system. So we
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
index 87c97563169..c7b7bac0f3e 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -24,7 +24,8 @@ fi
LICENSE="LGPL-2"
SLOT="0"
IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-RESTRICT="strip"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
# will delete the ld.so sym link prematurely and break the system. So we
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
index 4f1d00a3cb4..9e216067cb3 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
@@ -24,7 +24,8 @@ fi
LICENSE="LGPL-2"
SLOT="0"
IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-RESTRICT="strip"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
# will delete the ld.so sym link prematurely and break the system. So we
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 3b31357d804..9e216067cb3 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -24,7 +24,8 @@ fi
LICENSE="LGPL-2"
SLOT="0"
IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-RESTRICT="strip"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
# will delete the ld.so sym link prematurely and break the system. So we
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-12-31 17:55 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-12-31 17:55 UTC (permalink / raw
To: gentoo-commits
commit: d04ac05f36c1fd564b53b88fe5f720490fd44915
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 31 17:55:04 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Dec 31 17:55:04 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d04ac05f
sys-libs/uclibc-ng: 1.0.31 stable on amd64 arm ppc x86
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
index 9e216067cb3..36f1b9db8bb 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2018-12-31 18:24 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2018-12-31 18:24 UTC (permalink / raw
To: gentoo-commits
commit: 45c0e9cd021cb7079fc62a057e8c1402b6be2fbd
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 31 18:24:34 2018 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Dec 31 18:24:34 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45c0e9cd
sys-libs/uclibc-ng: bump 9999 to EAPI=7
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 9e216067cb3..46dcc44af01 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="6"
+EAPI="7"
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+inherit flag-o-matic multilib savedconfig toolchain-funcs
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
@@ -257,22 +257,24 @@ src_prepare() {
# Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
# If we really want the ABI bump, we'll have to hack the gcc
# spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
+ version_0=$(ver_cut 1)
+ version_1=$(ver_cut 2)
+ version_2=$(ver_cut 3)
+ if [[ -z ${version_1} ]]; then
subversion=0
extraversion=0
else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
+ subversion=${version_1}
+ if [[ -z ${version_2} ]]; then
extraversion=0
else
- extraversion=.${version[2]}
+ extraversion=.${version_2}
fi
fi
sed -i \
-e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version_0}|" \
-e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
-e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
Rules.mak || die
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2019-10-27 2:13 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2019-10-27 2:13 UTC (permalink / raw
To: gentoo-commits
commit: db632692f43e79d82ab873f4b1162ea74835f5e7
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 27 02:10:06 2019 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Oct 27 02:12:56 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db632692
sys-libs/uclibc-ng: version bump to 1.0.32
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild | 404 +++++++++++++++++++++++++++++
2 files changed, 405 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 646c35652be..dd21e427d50 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,4 @@
DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372
+DIST uClibc-ng-1.0.32.tar.bz2 2352471 BLAKE2B 887b67f7f03fc8610d8236a18f90584720a78bfc3a036cd6616453bea6e31140f5fd1dfd1d207cc5100854bf3e0c5cc1ca38fe6c31cf97b631892767ae23ec27 SHA512 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
new file mode 100644
index 00000000000..b534fa8966e
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
@@ -0,0 +1,404 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="https://uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ LDSO_SAFE_RUNPATH
+ )
+
+ # These are forced on
+ defs_y=(
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version_0=$(ver_cut 1)
+ version_1=$(ver_cut 2)
+ version_2=$(ver_cut 3)
+ if [[ -z ${version_1} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version_1}
+ if [[ -z ${version_2} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version_2}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version_0}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2019-10-27 2:13 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2019-10-27 2:13 UTC (permalink / raw
To: gentoo-commits
commit: 66063d78eafb7cd8b3d9f09aaad789d531f6f70d
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 27 02:12:00 2019 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Oct 27 02:12:57 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66063d78
sys-libs/uclibc-ng: remove older versions
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/Manifest | 2 -
sys-libs/uclibc-ng/metadata.xml | 1 -
sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 411 --------------------------
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 405 -------------------------
4 files changed, 819 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index dd21e427d50..de7fae1db80 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,4 +1,2 @@
-DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b
-DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372
DIST uClibc-ng-1.0.32.tar.bz2 2352471 BLAKE2B 887b67f7f03fc8610d8236a18f90584720a78bfc3a036cd6616453bea6e31140f5fd1dfd1d207cc5100854bf3e0c5cc1ca38fe6c31cf97b631892767ae23ec27 SHA512 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8
diff --git a/sys-libs/uclibc-ng/metadata.xml b/sys-libs/uclibc-ng/metadata.xml
index 12420ae8d3b..a06e85b4368 100644
--- a/sys-libs/uclibc-ng/metadata.xml
+++ b/sys-libs/uclibc-ng/metadata.xml
@@ -15,7 +15,6 @@
also work perfectly with uClibc-ng.
</longdescription>
<use>
- <flag name="rpc">Enable sun nis/rpc support (you should use libtirpc though)</flag>
<flag name="symlink-compat">Explicitly add sym links for libdl.so.0, libm.so.0, and
friends for backward compatibility with sys-libs/uclibc-ng-1.0.17 and earlier</flag>
</use>
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
deleted file mode 100644
index 572b3800cec..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="https://uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ~ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only"
-# tests fail due to unusual makefile
-RESTRICT="strip test"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- UCLIBC_HAS_SSP_COMPAT
- )
-
- # These are forced on
- defs_y=(
- COMPAT_ATEXIT
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELINK_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- MALLOC_GLIBC_COMPAT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBNSL_STUB
- UCLIBC_HAS_LIBRESOLV_STUB
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_OBSTACK
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt rpc UCLIBC_HAS_RPC
- kconfig_q_opt rpc UCLIBC_HAS_FULL_RPC
- kconfig_q_opt rpc UCLIBC_HAS_REENTRANT_RPC
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
deleted file mode 100644
index c7b7bac0f3e..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ /dev/null
@@ -1,405 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="https://uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-# tests fail due to unusual makefile
-RESTRICT="strip test"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- LDSO_SAFE_RUNPATH
- )
-
- # These are forced on
- defs_y=(
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # Critical fix for ld.so.cache
- eapply "${FILESDIR}"/${P}-fix-ld.so.cache.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2019-11-17 16:29 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2019-11-17 16:29 UTC (permalink / raw
To: gentoo-commits
commit: 6c3900366099220296f7765bd1f0668d980d0d29
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 17 16:29:04 2019 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Nov 17 16:29:04 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c390036
sys-libs/uclibc-ng: 1.0.32 stable on amd64 and x86
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
index b534fa8966e..5e58388e402 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2019-11-18 13:38 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2019-11-18 13:38 UTC (permalink / raw
To: gentoo-commits
commit: 62ae8449047e8efcb669eb6d4602f2ae5073d7f8
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 18 13:38:32 2019 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Nov 18 13:38:32 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=62ae8449
sys-libs/uclibc-ng: 1.0.32 stable on ppc
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
index 5e58388e402..62423b51aec 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
+ KEYWORDS="-* amd64 ~arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-01-14 20:10 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-01-14 20:10 UTC (permalink / raw
To: gentoo-commits
commit: 77da48e5d70ec56909f97fcf04eb69853a4e36c4
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 14 20:10:22 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Jan 14 20:10:22 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77da48e5
sys-libs/uclibc-ng: 1.0.32 stable on arm
Package-Manager: Portage-2.3.79, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
index 62423b51aec..c4498ecfcd3 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ppc x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-01-14 22:26 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-01-14 22:26 UTC (permalink / raw
To: gentoo-commits
commit: 73daa37e54c46f9027b7c02143ac3bfa743136b5
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 14 22:26:04 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Jan 14 22:26:24 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73daa37e
sys-libs/uclibc-ng: 1.0.32 is broken on arm
Package-Manager: Portage-2.3.79, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
index c4498ecfcd3..fae0c97e7b5 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 arm ~mips ppc x86"
+ KEYWORDS="-* amd64 -arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-01-15 0:31 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-01-15 0:31 UTC (permalink / raw
To: gentoo-commits
commit: 4f84e4ab7a18343834b6f9a6966412d37df3b05a
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 15 00:30:57 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Jan 15 00:30:57 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4f84e4ab
sys-libs/uclibc-ng: mark 1.0.30-r1 stable for arm
Package-Manager: Portage-2.3.79, Repoman-2.3.16
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
index ffc8453e07f..a795cffae54 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~arm"
+ KEYWORDS="-* arm"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-02-02 13:04 Sergei Trofimovich
0 siblings, 0 replies; 70+ messages in thread
From: Sergei Trofimovich @ 2020-02-02 13:04 UTC (permalink / raw
To: gentoo-commits
commit: 4c743c383847e1aa27dd928ba9f79575d199a392
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 2 13:03:42 2020 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Feb 2 13:04:48 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c743c38
sys-libs/uclibc-ng: drop 'telinit U' call
Bug: https://bugs.gentoo.org/642784
Package-Manager: Portage-2.3.87, Repoman-2.3.20
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 2 --
sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild | 2 --
sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild | 2 --
sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 4 +---
4 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
index a795cffae54..375d030fc40 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild
@@ -400,6 +400,4 @@ pkg_postinst() {
[ "${ROOT}" != "/" ] && return 0
# update cache before reloading init
ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
index 93b0b01a0fc..48fcf29fa83 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
@@ -397,6 +397,4 @@ pkg_postinst() {
[ "${ROOT}" != "/" ] && return 0
# update cache before reloading init
ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
index 82ccf77573e..fffc7f103fb 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.32.ebuild
@@ -399,6 +399,4 @@ pkg_postinst() {
[ "${ROOT}" != "/" ] && return 0
# update cache before reloading init
ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
}
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 46dcc44af01..5ef7e61a3a9 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -399,6 +399,4 @@ pkg_postinst() {
[ "${ROOT}" != "/" ] && return 0
# update cache before reloading init
ldconfig
- # reload init ...
- /sbin/telinit U 2>/dev/null
}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-04-24 16:18 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-04-24 16:18 UTC (permalink / raw
To: gentoo-commits
commit: 18624d5d3da05bd6de7cd2b45fc212f70fc2d4d4
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 24 16:18:17 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Apr 24 16:18:43 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18624d5d
sys-libs/uclibc-ng: drop 1.0.31
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/Manifest | 1 -
sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild | 400 -----------------------------
2 files changed, 401 deletions(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 1e76a46780d..ce1d01823f9 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,4 +1,3 @@
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
-DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372
DIST uClibc-ng-1.0.32.tar.bz2 2352471 BLAKE2B 887b67f7f03fc8610d8236a18f90584720a78bfc3a036cd6616453bea6e31140f5fd1dfd1d207cc5100854bf3e0c5cc1ca38fe6c31cf97b631892767ae23ec27 SHA512 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8
DIST uClibc-ng-1.0.33.tar.bz2 2531571 BLAKE2B abc4f0eb5585a1c29b2fbf2edae4387c12ba00298f2a6ef43e7a3e5df6d8fcd537e73fef4af3d15acc53930e6499e7ba7c60992b337c409b656951d032ccf7be SHA512 379f2ebc0f5e2abb60bbfc17a4ce65da09555d6177b634688f6cd4d3f4bdd44fade8120429c81364eb94feda68baed9e7846f4162367bffa6eedf44744ebb33c
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
deleted file mode 100644
index 48fcf29fa83..00000000000
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
+++ /dev/null
@@ -1,400 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
- inherit git-r3
- MY_P=uclibc-ng-${PV}
-else
- MY_P=uClibc-ng-${PV}
-fi
-
-DESCRIPTION="C library for developing embedded Linux systems"
-HOMEPAGE="https://uclibc-ng.org/"
-if [[ ${PV} != "9999" ]] ; then
- PATCH_VER=""
- SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~mips ppc x86"
-fi
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
-# tests fail due to unusual makefile
-RESTRICT="strip test"
-
-# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
-# will delete the ld.so sym link prematurely and break the system. So we
-# will hard block and give manual migration instructions.
-# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
-# the breakout library. The disadvantage here is that we have to sprinkle
-# LDFAGS=-liconv on build systems that need to link against libiconv.
-RDEPEND="
- !!sys-libs/uclibc
- iconv? ( dev-libs/libiconv )"
-
-S=${WORKDIR}/${MY_P}
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CHOST} == ${CTARGET} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-alt_build_kprefix() {
- if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
- echo /usr/include
- else
- echo /usr/${CTARGET}/usr/include
- fi
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-uclibc_endian() {
- # XXX: this wont work for a toolchain which is bi-endian, but we
- # dont have any such thing at the moment, so not a big deal
- touch "${T}"/endian.s
- $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
- case $(file "${T}"/endian.o) in
- *" MSB "*) echo "BIG";;
- *" LSB "*) echo "LITTLE";;
- *) echo "NFC";;
- esac
- rm -f "${T}"/endian.{s,o}
-}
-
-kconfig_q_opt() {
- local flag=$1; shift
- case ${flag} in
- y|n) ;;
- *) flag=$(usex ${flag} y n) ;;
- esac
-
- local var="defs_${flag}"
- eval "${var}+=( $* )"
-}
-
-get_opt() {
- (
- unset ${1}
- . ${2:-"${S}"/.config}
- echo ${!1}
- )
-}
-
-make_oldconfig() {
- yes "" 2>/dev/null | emake -s oldconfig >/dev/null
-}
-
-make_config() {
- restore_config .config
- if [ -f .config ]; then
- make_oldconfig
- return 0
- else
- ewarn "Could not locate user configfile, so we will save a default one"
- fi
-
- emake ARCH=$1 defconfig >/dev/null
-
- local defs_{y,n}
-
- # These are forced off
- defs_n=(
- DOASSERTS
- DODEBUG_PT
- HAS_NO_THREADS
- PROPOLICE_BLOCK_ABRT
- SSP_QUICK_CANARY
- SUPPORT_LD_DEBUG_EARLY
- UCLIBC_HAS_CTYPE_UNSAFE
- UCLIBC_HAS_LOCALE
- LDSO_SAFE_RUNPATH
- )
-
- # These are forced on
- defs_y=(
- DO_C99_MATH
- DO_XSI_MATH
- FORCE_SHAREABLE_TEXT_SEGMENTS
- LDSO_GNU_HASH_SUPPORT
- LDSO_PRELOAD_FILE_SUPPORT
- LDSO_RUNPATH
- LDSO_RUNPATH_OF_EXECUTABLE
- LDSO_STANDALONE_SUPPORT
- PROPOLICE_BLOCK_SEGV
- PTHREADS_DEBUG_SUPPORT
- UCLIBC_HAS_ARC4RANDOM
- UCLIBC_HAS_BACKTRACE
- UCLIBC_HAS_BSD_RES_CLOSE
- UCLIBC_HAS_CONTEXT_FUNCS
- UCLIBC_HAS_CTYPE_CHECKED
- UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
- UCLIBC_HAS_FENV
- UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- UCLIBC_HAS_FTS
- UCLIBC_HAS_FTW
- UCLIBC_HAS_GETPT
- UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- UCLIBC_HAS_GNU_GLOB
- UCLIBC_HAS_HEXADECIMAL_FLOATS
- UCLIBC_HAS_LIBUTIL
- UCLIBC_HAS_NFTW
- UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
- UCLIBC_HAS_PRINTF_M_SPEC
- UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- UCLIBC_HAS_RESOLVER_SUPPORT
- UCLIBC_HAS_SHA256_CRYPT_IMPL
- UCLIBC_HAS_SHA512_CRYPT_IMPL
- UCLIBC_HAS_SSP
- UCLIBC_HAS_STUBS
- UCLIBC_HAS_SYS_ERRLIST
- UCLIBC_HAS_SYS_SIGLIST
- UCLIBC_HAS_THREADS_NATIVE
- UCLIBC_HAS_TZ_FILE_READ_MANY
- UCLIBC_HAS_UTMP
- UCLIBC_HAS_UTMPX
- UCLIBC_HAS_WCHAR
- UCLIBC_HAS_WORDEXP
- UCLIBC_NTP_LEGACY
- UCLIBC_SUPPORT_AI_ADDRCONFIG
- UCLIBC_SUSV2_LEGACY
- UCLIBC_SUSV3_LEGACY
- UCLIBC_SUSV3_LEGACY_MACROS
- UCLIBC_SUSV4_LEGACY
- UCLIBC_USE_NETLINK
- )
-
- sed -i -e '/ARCH_.*_ENDIAN/d' .config
- kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
-
- kconfig_q_opt debug DODEBUG
- kconfig_q_opt debug SUPPORT_LD_DEBUG
- kconfig_q_opt debug UCLIBC_HAS_PROFILING
-
- kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
-
- kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
- kconfig_q_opt hardened UCLIBC_BUILD_NOW
- kconfig_q_opt hardened UCLIBC_BUILD_PIE
- kconfig_q_opt hardened UCLIBC_BUILD_RELRO
- kconfig_q_opt hardened UCLIBC_BUILD_SSP
-
- local count def
- for count in 1 2 ; do
- # Run twice as some config opts depend on others being enabled first.
- for def in ${defs_y[@]} ; do
- sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
- done
- for def in ${defs_n[@]} ; do
- sed -i -e "s|${def}=y|# ${def} is not set|g" .config
- done
- make_oldconfig
- done
-
- einfo "Enabled options:"
- for def in ${defs_y[@]} ; do
- einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
- done
- einfo "Disabled options:"
- for def in ${defs_n[@]} ; do
- einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
- done
-
- # setup build and run paths
- sed -i \
- -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
- -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
- -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
- -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
- -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
- -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
- .config || die
-
- make_oldconfig
-}
-
-pkg_setup() {
- # Make sure our CHOST is a uclibc toolchain for native compiling
- if [[ ${CHOST} == ${CTARGET} ]]; then
- case ${CHOST} in
- *-uclinux*|*-uclibc*) ;;
- *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
- esac
- fi
-
- # uClibc-ng doesn't carry old Linux threads, and since we force
- # threading our only choice is NPTL which requires i486 and later.
- [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
-}
-
-src_prepare() {
- local version subversion extraversion
-
- # uclibc-ng tries to create a two sym link with ld.so,
- # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
- # where MAJOR_VERSION != 0 indicates the ABI verison.
- # We want to get rid of this and just have ABI = 0.
- eapply "${FILESDIR}"/uclibc-compat-r1.patch
-
- # We need to change the major.minor.sublevel of uclibc-ng.
- # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
- # If we really want the ABI bump, we'll have to hack the gcc
- # spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
- subversion=0
- extraversion=0
- else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
- extraversion=0
- else
- extraversion=.${version[2]}
- fi
- fi
-
- sed -i \
- -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
- -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
- -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
- Rules.mak || die
-
- eapply_user
-}
-
-src_configure() {
- # Map our toolchain arch name to the name expected by uClibc-ng.
- local target=$(tc-arch)
- case ${target} in
- amd64) target="x86_64";;
- arm) target="arm";;
- mips) target="mips";;
- ppc) target="powerpc";;
- x86) target="i386";;
- esac
-
- # Do arch specific configuration by changing the defaults in
- # extra/Configs/Config.<arch>. If these are not overridden
- # by an save .config, they will be selected by default.
-
- # For i386, i486, i586 and i686
- local cpu
- if [[ ${target} == "i386" ]]; then
- [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
- sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
- extra/Configs/Config.i386 || die
- fi
-
- # For arm
- if [[ ${target} == "arm" ]]; then
- sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
- fi
-
- # We set HOSTCC to the proper tuple rather than just 'gcc'
- sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
-
- make_config ${target}
-
- einfo
- einfo "Runtime Prefix: /"
- einfo "Devel Prefix: /usr"
- einfo "Kernel Prefix: $(alt_build_kprefix)"
- einfo "CBUILD: ${CBUILD}"
- einfo "CHOST: ${CHOST}"
- einfo "CTARGET: ${CTARGET}"
- einfo "ABI: ${ABI}"
- einfo "ENDIAN: $(uclibc_endian)"
- einfo
-}
-
-src_compile() {
- emake headers
- just_headers && return 0
-
- emake
- if is_crosscompile ; then
- emake -C utils hostutils
- else
- emake utils
- fi
-}
-
-src_test() {
- is_crosscompile && return 0
-
- # assert test fails on pax/grsec enabled kernels
- # normal vfork test fails in sandbox (both glibc/uclibc)
- emake UCLIBC_ONLY=1 check
-}
-
-src_install() {
- local sysroot=${D}
- is_crosscompile && sysroot+="/usr/${CTARGET}"
-
- local target="install"
- just_headers && target="install_headers"
- emake DESTDIR="${sysroot}" ${target}
-
- save_config .config
-
- # remove files coming from kernel-headers
- rm -rf "${sysroot}"/usr/include/{linux,asm*}
-
- # 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
- if is_crosscompile ; then
- dosym usr/include /usr/${CTARGET}/sys-include
- if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
- newbin utils/ldconfig.host ${CTARGET}-ldconfig
- newbin utils/ldd.host ${CTARGET}-ldd
- fi
- return 0
- fi
-
- if use symlink-compat; then
- dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
- dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
- fi
-
- emake DESTDIR="${D}" install_utils
- dobin extra/scripts/getent
- dodoc README docs/*.txt
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- if [ ! -e "${ROOT}"/etc/TZ ] ; then
- ewarn "Please remember to set your timezone in /etc/TZ"
- mkdir -p "${ROOT}"/etc
- echo "UTC" > "${ROOT}"/etc/TZ
- fi
- [ "${ROOT}" != "/" ] && return 0
- # update cache before reloading init
- ldconfig
-}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-04-24 16:18 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-04-24 16:18 UTC (permalink / raw
To: gentoo-commits
commit: 1f2b9ab05542aa5323d174be9a21327bba67a737
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 24 16:16:55 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Apr 24 16:18:42 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f2b9ab0
sys-libs/uclibc-ng: version bump to 1.0.33
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild | 402 +++++++++++++++++++++++++++++
2 files changed, 403 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 5d5669a9a97..1e76a46780d 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,4 @@
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372
DIST uClibc-ng-1.0.32.tar.bz2 2352471 BLAKE2B 887b67f7f03fc8610d8236a18f90584720a78bfc3a036cd6616453bea6e31140f5fd1dfd1d207cc5100854bf3e0c5cc1ca38fe6c31cf97b631892767ae23ec27 SHA512 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8
+DIST uClibc-ng-1.0.33.tar.bz2 2531571 BLAKE2B abc4f0eb5585a1c29b2fbf2edae4387c12ba00298f2a6ef43e7a3e5df6d8fcd537e73fef4af3d15acc53930e6499e7ba7c60992b337c409b656951d032ccf7be SHA512 379f2ebc0f5e2abb60bbfc17a4ce65da09555d6177b634688f6cd4d3f4bdd44fade8120429c81364eb94feda68baed9e7846f4162367bffa6eedf44744ebb33c
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
new file mode 100644
index 00000000000..5ef7e61a3a9
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
@@ -0,0 +1,402 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="https://uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ LDSO_SAFE_RUNPATH
+ )
+
+ # These are forced on
+ defs_y=(
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version_0=$(ver_cut 1)
+ version_1=$(ver_cut 2)
+ version_2=$(ver_cut 3)
+ if [[ -z ${version_1} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version_1}
+ if [[ -z ${version_2} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version_2}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version_0}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-04-24 18:44 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-04-24 18:44 UTC (permalink / raw
To: gentoo-commits
commit: 7408af53f05999c2b20675d716848d0ada9e001d
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 24 18:44:35 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Apr 24 18:44:49 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7408af53
sys-libs/uclibc-ng: 1.0.33 stable on amd64
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
index 5ef7e61a3a9..6f884b80c8c 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~mips ~ppc ~x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-05-06 1:44 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-05-06 1:44 UTC (permalink / raw
To: gentoo-commits
commit: f6052335bc0a6abbeda482056b60701612e179f3
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed May 6 01:43:56 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed May 6 01:43:56 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f6052335
sys-libs/uclibc-ng: fix manifest for 1.0.33, bug #721146
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/Manifest | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index ce1d01823f9..e1e3317ae7c 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,3 @@
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
DIST uClibc-ng-1.0.32.tar.bz2 2352471 BLAKE2B 887b67f7f03fc8610d8236a18f90584720a78bfc3a036cd6616453bea6e31140f5fd1dfd1d207cc5100854bf3e0c5cc1ca38fe6c31cf97b631892767ae23ec27 SHA512 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8
-DIST uClibc-ng-1.0.33.tar.bz2 2531571 BLAKE2B abc4f0eb5585a1c29b2fbf2edae4387c12ba00298f2a6ef43e7a3e5df6d8fcd537e73fef4af3d15acc53930e6499e7ba7c60992b337c409b656951d032ccf7be SHA512 379f2ebc0f5e2abb60bbfc17a4ce65da09555d6177b634688f6cd4d3f4bdd44fade8120429c81364eb94feda68baed9e7846f4162367bffa6eedf44744ebb33c
+DIST uClibc-ng-1.0.33.tar.bz2 2399235 BLAKE2B c20fd767487b2f24a0af432a1366bfb6ddf02243495d2f1c3fa95db25551a8d6215be184608528ee544661ec2ddbc2f439299245ff3dff4597b376dc7a4658ec SHA512 cab89fb6a6e314c6cc8ac964604bdfae01d2e45dc71678bbb6a8985871f625ac680fec3ddc1cb29f6d15585b7fcb782eaf40fa6c89207cde2a04286c3d610169
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-05-30 15:34 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-05-30 15:34 UTC (permalink / raw
To: gentoo-commits
commit: db145202cebf184b2f8131a4e3be5da7ba577765
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat May 30 15:34:30 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat May 30 15:34:30 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db145202
sys-libs/uclibc-ng: 1.0.33 stable on x86
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
index 6f884b80c8c..4dd7db70cc0 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.33.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 ~arm ~mips ~ppc x86"
fi
LICENSE="LGPL-2"
^ permalink raw reply related [flat|nested] 70+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/
@ 2020-09-04 16:50 Anthony G. Basile
0 siblings, 0 replies; 70+ messages in thread
From: Anthony G. Basile @ 2020-09-04 16:50 UTC (permalink / raw
To: gentoo-commits
commit: efff22eefacf8ee517dd5bab475e504896e21334
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 4 16:50:08 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Sep 4 16:50:18 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=efff22ee
sys-libs/uclibc-ng: version bump to 1.0.35
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
sys-libs/uclibc-ng/Manifest | 1 +
sys-libs/uclibc-ng/uclibc-ng-1.0.35.ebuild | 402 +++++++++++++++++++++++++++++
2 files changed, 403 insertions(+)
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index e1e3317ae7c..cd8ee877e8b 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -1,3 +1,4 @@
DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742
DIST uClibc-ng-1.0.32.tar.bz2 2352471 BLAKE2B 887b67f7f03fc8610d8236a18f90584720a78bfc3a036cd6616453bea6e31140f5fd1dfd1d207cc5100854bf3e0c5cc1ca38fe6c31cf97b631892767ae23ec27 SHA512 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8
DIST uClibc-ng-1.0.33.tar.bz2 2399235 BLAKE2B c20fd767487b2f24a0af432a1366bfb6ddf02243495d2f1c3fa95db25551a8d6215be184608528ee544661ec2ddbc2f439299245ff3dff4597b376dc7a4658ec SHA512 cab89fb6a6e314c6cc8ac964604bdfae01d2e45dc71678bbb6a8985871f625ac680fec3ddc1cb29f6d15585b7fcb782eaf40fa6c89207cde2a04286c3d610169
+DIST uClibc-ng-1.0.35.tar.bz2 2396789 BLAKE2B b4e08ccb2bbf15d6a63e279f80792520edba78a9b95cde0432a2dbfc10d4830a621d71af97d4f2bbd867e6367182847c35b62f3c315dff85ecf0c680122238e0 SHA512 da2a1bc6e4a9ce1e3f436b9987fc5f6bb968e52f09508bef6588b409b861ece29d9c1411ffb88863de3a700cb19ad52a8d38596955d3b7bbfb3b0d3745daa25f
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.35.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.35.ebuild
new file mode 100644
index 00000000000..5ef7e61a3a9
--- /dev/null
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.35.ebuild
@@ -0,0 +1,402 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic multilib savedconfig toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
+ inherit git-r3
+ MY_P=uclibc-ng-${PV}
+else
+ MY_P=uClibc-ng-${PV}
+fi
+
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="https://uclibc-ng.org/"
+if [[ ${PV} != "9999" ]] ; then
+ PATCH_VER=""
+ SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug hardened iconv ipv6 symlink-compat headers-only"
+# tests fail due to unusual makefile
+RESTRICT="strip test"
+
+# 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage
+# will delete the ld.so sym link prematurely and break the system. So we
+# will hard block and give manual migration instructions.
+# 2) Currently uclibc and uclibc-ng's iconv are in bad shape. We've been using
+# the breakout library. The disadvantage here is that we have to sprinkle
+# LDFAGS=-liconv on build systems that need to link against libiconv.
+RDEPEND="
+ !!sys-libs/uclibc
+ iconv? ( dev-libs/libiconv )"
+
+S=${WORKDIR}/${MY_P}
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CHOST} == ${CTARGET} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CHOST} == ${CTARGET} ]] ; then
+ echo /usr/include
+ else
+ echo /usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use headers-only && is_crosscompile
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "BIG";;
+ *" LSB "*) echo "LITTLE";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+kconfig_q_opt() {
+ local flag=$1; shift
+ case ${flag} in
+ y|n) ;;
+ *) flag=$(usex ${flag} y n) ;;
+ esac
+
+ local var="defs_${flag}"
+ eval "${var}+=( $* )"
+}
+
+get_opt() {
+ (
+ unset ${1}
+ . ${2:-"${S}"/.config}
+ echo ${!1}
+ )
+}
+
+make_oldconfig() {
+ yes "" 2>/dev/null | emake -s oldconfig >/dev/null
+}
+
+make_config() {
+ restore_config .config
+ if [ -f .config ]; then
+ make_oldconfig
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ emake ARCH=$1 defconfig >/dev/null
+
+ local defs_{y,n}
+
+ # These are forced off
+ defs_n=(
+ DOASSERTS
+ DODEBUG_PT
+ HAS_NO_THREADS
+ PROPOLICE_BLOCK_ABRT
+ SSP_QUICK_CANARY
+ SUPPORT_LD_DEBUG_EARLY
+ UCLIBC_HAS_CTYPE_UNSAFE
+ UCLIBC_HAS_LOCALE
+ LDSO_SAFE_RUNPATH
+ )
+
+ # These are forced on
+ defs_y=(
+ DO_C99_MATH
+ DO_XSI_MATH
+ FORCE_SHAREABLE_TEXT_SEGMENTS
+ LDSO_GNU_HASH_SUPPORT
+ LDSO_PRELOAD_FILE_SUPPORT
+ LDSO_RUNPATH
+ LDSO_RUNPATH_OF_EXECUTABLE
+ LDSO_STANDALONE_SUPPORT
+ PROPOLICE_BLOCK_SEGV
+ PTHREADS_DEBUG_SUPPORT
+ UCLIBC_HAS_ARC4RANDOM
+ UCLIBC_HAS_BACKTRACE
+ UCLIBC_HAS_BSD_RES_CLOSE
+ UCLIBC_HAS_CONTEXT_FUNCS
+ UCLIBC_HAS_CTYPE_CHECKED
+ UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ UCLIBC_HAS_FENV
+ UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE
+ UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ UCLIBC_HAS_FTS
+ UCLIBC_HAS_FTW
+ UCLIBC_HAS_GETPT
+ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ UCLIBC_HAS_GNU_GLOB
+ UCLIBC_HAS_HEXADECIMAL_FLOATS
+ UCLIBC_HAS_LIBUTIL
+ UCLIBC_HAS_NFTW
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ UCLIBC_HAS_PRINTF_M_SPEC
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ UCLIBC_HAS_RESOLVER_SUPPORT
+ UCLIBC_HAS_SHA256_CRYPT_IMPL
+ UCLIBC_HAS_SHA512_CRYPT_IMPL
+ UCLIBC_HAS_SSP
+ UCLIBC_HAS_STUBS
+ UCLIBC_HAS_SYS_ERRLIST
+ UCLIBC_HAS_SYS_SIGLIST
+ UCLIBC_HAS_THREADS_NATIVE
+ UCLIBC_HAS_TZ_FILE_READ_MANY
+ UCLIBC_HAS_UTMP
+ UCLIBC_HAS_UTMPX
+ UCLIBC_HAS_WCHAR
+ UCLIBC_HAS_WORDEXP
+ UCLIBC_NTP_LEGACY
+ UCLIBC_SUPPORT_AI_ADDRCONFIG
+ UCLIBC_SUSV2_LEGACY
+ UCLIBC_SUSV3_LEGACY
+ UCLIBC_SUSV3_LEGACY_MACROS
+ UCLIBC_SUSV4_LEGACY
+ UCLIBC_USE_NETLINK
+ )
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"
+
+ kconfig_q_opt debug DODEBUG
+ kconfig_q_opt debug SUPPORT_LD_DEBUG
+ kconfig_q_opt debug UCLIBC_HAS_PROFILING
+
+ kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
+
+ kconfig_q_opt hardened UCLIBC_BUILD_NOEXECSTACK
+ kconfig_q_opt hardened UCLIBC_BUILD_NOW
+ kconfig_q_opt hardened UCLIBC_BUILD_PIE
+ kconfig_q_opt hardened UCLIBC_BUILD_RELRO
+ kconfig_q_opt hardened UCLIBC_BUILD_SSP
+
+ local count def
+ for count in 1 2 ; do
+ # Run twice as some config opts depend on others being enabled first.
+ for def in ${defs_y[@]} ; do
+ sed -i -e "s|.*\<${def}\>.*set|${def}=y|g" .config
+ done
+ for def in ${defs_n[@]} ; do
+ sed -i -e "s|${def}=y|# ${def} is not set|g" .config
+ done
+ make_oldconfig
+ done
+
+ einfo "Enabled options:"
+ for def in ${defs_y[@]} ; do
+ einfo " " $(grep "^${def}=y" .config || echo "could not find ${def}")
+ done
+ einfo "Disabled options:"
+ for def in ${defs_n[@]} ; do
+ einfo " " $(grep "^# ${def} is not set" .config || echo "could not find ${def}")
+ done
+
+ # setup build and run paths
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s|=.*|=\"${CTARGET}-\"|" \
+ -e "/^KERNEL_HEADERS/s|=.*|=\"$(alt_build_kprefix)\"|" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s|=.*|=\"/$(get_libdir)\"|" \
+ -e "/^DEVEL_PREFIX/s|=.*|=\"/usr\"|" \
+ -e "/^RUNTIME_PREFIX/s|=.*|=\"/\"|" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s|=.*|=\"${UCLIBC_EXTRA_CFLAGS}\"|" \
+ .config || die
+
+ make_oldconfig
+}
+
+pkg_setup() {
+ # Make sure our CHOST is a uclibc toolchain for native compiling
+ if [[ ${CHOST} == ${CTARGET} ]]; then
+ case ${CHOST} in
+ *-uclinux*|*-uclibc*) ;;
+ *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
+ esac
+ fi
+
+ # uClibc-ng doesn't carry old Linux threads, and since we force
+ # threading our only choice is NPTL which requires i486 and later.
+ [[ ${CTARGET} == i386* ]] && die "i386 can't support Native Posix Threads (NPTL)."
+}
+
+src_prepare() {
+ local version subversion extraversion
+
+ # uclibc-ng tries to create a two sym link with ld.so,
+ # ld-uClibc.so.{0,MAJOR_VERSION} -> ld-uClibc-<version>.so
+ # where MAJOR_VERSION != 0 indicates the ABI verison.
+ # We want to get rid of this and just have ABI = 0.
+ eapply "${FILESDIR}"/uclibc-compat-r1.patch
+
+ # We need to change the major.minor.sublevel of uclibc-ng.
+ # Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
+ # If we really want the ABI bump, we'll have to hack the gcc
+ # spec file and change the '*link:' rule.
+ version_0=$(ver_cut 1)
+ version_1=$(ver_cut 2)
+ version_2=$(ver_cut 3)
+ if [[ -z ${version_1} ]]; then
+ subversion=0
+ extraversion=0
+ else
+ subversion=${version_1}
+ if [[ -z ${version_2} ]]; then
+ extraversion=0
+ else
+ extraversion=.${version_2}
+ fi
+ fi
+
+ sed -i \
+ -e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version_0}|" \
+ -e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
+ -e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
+ Rules.mak || die
+
+ eapply_user
+}
+
+src_configure() {
+ # Map our toolchain arch name to the name expected by uClibc-ng.
+ local target=$(tc-arch)
+ case ${target} in
+ amd64) target="x86_64";;
+ arm) target="arm";;
+ mips) target="mips";;
+ ppc) target="powerpc";;
+ x86) target="i386";;
+ esac
+
+ # Do arch specific configuration by changing the defaults in
+ # extra/Configs/Config.<arch>. If these are not overridden
+ # by an save .config, they will be selected by default.
+
+ # For i386, i486, i586 and i686
+ local cpu
+ if [[ ${target} == "i386" ]]; then
+ [[ ${CTARGET} == i[456]86* ]] && cpu="${CTARGET:1:1}86"
+ sed -i -e "s|default CONFIG_686|default CONFIG_${cpu:-486}|" \
+ extra/Configs/Config.i386 || die
+ fi
+
+ # For arm
+ if [[ ${target} == "arm" ]]; then
+ sed -i -e '/Build for EABI/a \\tdefault y' extra/Configs/Config.arm
+ fi
+
+ # We set HOSTCC to the proper tuple rather than just 'gcc'
+ sed -i -e "s|^HOSTCC.*=.*|HOSTCC=$(tc-getBUILD_CC)|" Rules.mak
+
+ make_config ${target}
+
+ einfo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "ABI: ${ABI}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ einfo
+}
+
+src_compile() {
+ emake headers
+ just_headers && return 0
+
+ emake
+ if is_crosscompile ; then
+ emake -C utils hostutils
+ else
+ emake utils
+ fi
+}
+
+src_test() {
+ is_crosscompile && return 0
+
+ # assert test fails on pax/grsec enabled kernels
+ # normal vfork test fails in sandbox (both glibc/uclibc)
+ emake UCLIBC_ONLY=1 check
+}
+
+src_install() {
+ local sysroot=${D}
+ is_crosscompile && sysroot+="/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target}
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # 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
+ if is_crosscompile ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig
+ newbin utils/ldd.host ${CTARGET}-ldd
+ fi
+ return 0
+ fi
+
+ if use symlink-compat; then
+ dosym libc.so.0 "${DESTDIR}"/lib/libcrypt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libdl.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libm.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libpthread.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/librt.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libresolv.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libubacktrace.so.0
+ dosym libc.so.0 "${DESTDIR}"/lib/libutil.so.0
+ fi
+
+ emake DESTDIR="${D}" install_utils
+ dobin extra/scripts/getent
+ dodoc README docs/*.txt
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ if [ ! -e "${ROOT}"/etc/TZ ] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ mkdir -p "${ROOT}"/etc
+ echo "UTC" > "${ROOT}"/etc/TZ
+ fi
+ [ "${ROOT}" != "/" ] && return 0
+ # update cache before reloading init
+ ldconfig
+}
^ permalink raw reply related [flat|nested] 70+ messages in thread
end of thread, other threads:[~2020-09-04 16:50 UTC | newest]
Thread overview: 70+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-29 19:47 [gentoo-commits] repo/gentoo:master commit in: sys-libs/uclibc-ng/ Anthony G. Basile
-- strict thread matches above, loose matches on Subject: below --
2020-09-04 16:50 Anthony G. Basile
2020-05-30 15:34 Anthony G. Basile
2020-05-06 1:44 Anthony G. Basile
2020-04-24 18:44 Anthony G. Basile
2020-04-24 16:18 Anthony G. Basile
2020-04-24 16:18 Anthony G. Basile
2020-02-02 13:04 Sergei Trofimovich
2020-01-15 0:31 Anthony G. Basile
2020-01-14 22:26 Anthony G. Basile
2020-01-14 20:10 Anthony G. Basile
2019-11-18 13:38 Anthony G. Basile
2019-11-17 16:29 Anthony G. Basile
2019-10-27 2:13 Anthony G. Basile
2019-10-27 2:13 Anthony G. Basile
2018-12-31 18:24 Anthony G. Basile
2018-12-31 17:55 Anthony G. Basile
2018-12-02 12:22 Sergei Trofimovich
2018-11-17 12:46 Anthony G. Basile
2018-10-04 21:41 Anthony G. Basile
2018-06-09 23:56 Anthony G. Basile
2018-05-16 8:41 Anthony G. Basile
2018-04-28 20:52 Anthony G. Basile
2018-04-11 9:40 David Seifert
2018-03-09 22:57 Anthony G. Basile
2018-03-04 1:54 Anthony G. Basile
2018-03-04 1:51 Anthony G. Basile
2018-03-03 20:50 Anthony G. Basile
2018-01-26 19:33 Anthony G. Basile
2018-01-11 2:08 Anthony G. Basile
2018-01-07 19:39 Sergei Trofimovich
2017-11-28 22:07 Anthony G. Basile
2017-11-28 22:02 Anthony G. Basile
2017-11-14 15:33 Anthony G. Basile
2017-09-21 14:03 Anthony G. Basile
2017-08-10 10:04 Anthony G. Basile
2017-08-06 11:33 Anthony G. Basile
2017-08-04 20:25 Anthony G. Basile
2017-07-21 11:14 Anthony G. Basile
2017-07-09 14:40 Anthony G. Basile
2017-06-12 21:47 Anthony G. Basile
2017-06-07 10:22 Anthony G. Basile
2017-05-25 16:55 Anthony G. Basile
2017-04-25 22:48 Anthony G. Basile
2017-04-23 11:59 Anthony G. Basile
2017-04-04 2:03 Anthony G. Basile
2017-04-04 1:59 Anthony G. Basile
2017-03-19 15:39 Anthony G. Basile
2017-02-18 20:52 Anthony G. Basile
2017-02-08 15:22 Anthony G. Basile
2016-12-28 9:28 Anthony G. Basile
2016-12-26 15:49 Anthony G. Basile
2016-12-05 22:45 Anthony G. Basile
2016-12-02 1:23 Anthony G. Basile
2016-10-30 22:57 Anthony G. Basile
2016-10-30 9:41 Anthony G. Basile
2016-10-03 0:00 Anthony G. Basile
2016-08-13 13:57 Anthony G. Basile
2016-08-08 1:13 Anthony G. Basile
2016-08-01 22:43 Anthony G. Basile
2016-07-28 3:12 Anthony G. Basile
2016-07-18 16:00 Anthony G. Basile
2016-07-14 13:28 Anthony G. Basile
2016-07-08 8:54 Anthony G. Basile
2016-07-08 8:54 Anthony G. Basile
2016-07-08 8:54 Anthony G. Basile
2016-07-02 22:39 Anthony G. Basile
2016-05-29 23:10 Anthony G. Basile
2016-04-18 23:00 Anthony G. Basile
2016-04-13 8:34 Anthony G. Basile
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox