diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-10-22 11:09:47 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-10-22 11:09:47 +0100 |
commit | 64e107b9b6058580ff0432107eb37cefb0b2a7d8 (patch) | |
tree | 9a44e603e2ae365e2b1fe35ac37f73e830cdee1d /sys-libs/uclibc | |
parent | 957235cf19a691360c720f7913672adda4258ed0 (diff) |
gentoo resync : 22.10.2018
Diffstat (limited to 'sys-libs/uclibc')
-rw-r--r-- | sys-libs/uclibc/Manifest | 6 | ||||
-rw-r--r-- | sys-libs/uclibc/metadata.xml | 28 | ||||
-rw-r--r-- | sys-libs/uclibc/uclibc-0.9.33.2-r15.ebuild | 355 | ||||
-rw-r--r-- | sys-libs/uclibc/uclibc-0.9.33.9999.ebuild | 354 | ||||
-rw-r--r-- | sys-libs/uclibc/uclibc-9999.ebuild | 353 |
5 files changed, 0 insertions, 1096 deletions
diff --git a/sys-libs/uclibc/Manifest b/sys-libs/uclibc/Manifest deleted file mode 100644 index 8c1290f51547..000000000000 --- a/sys-libs/uclibc/Manifest +++ /dev/null @@ -1,6 +0,0 @@ -DIST uClibc-0.9.33.2-patches-17.tar.bz2 32437 BLAKE2B c051e8acf4f7d8da219918a5cd7b465865da7e64307b2a1c64b6b86f8381340edf03745301f0b3b358403d56712964c3d57f330b88a3e8ff2da22d898a35c909 SHA512 6a6ad8aef862f742e60965c447e5abee2349886f01bf5e44111b2a6c21e59e4644195cf36e85b8ce0dabbf7b92dc2c36ae27f0b7a02b0f9f4278e46ec5fb5a76 -DIST uClibc-0.9.33.2.tar.bz2 2834029 BLAKE2B a23e7b3a1a8142ef08349179e27f2d47765757829c2a88d4937d02314bc7c07bd36a21d815213f1478b24075bb029112738161bb1be383df08cec5e786aae260 SHA512 1cf18fe5418e12ae12ce995d7455d465bc4737f225afc49512ec69858771e099bead7b18408b01c7e6f845dcc80c3b4f875332eeffdcc04ae4b48474fb29a8dd -EBUILD uclibc-0.9.33.2-r15.ebuild 9386 BLAKE2B ac8aa826c8b51d9bc6d3a54b35105af17fa3d735cbeeca5283ef1a6312aad80e405100af6078658b51037bbeba3a873846d6244753dcd8c08027eab2f56af19a SHA512 7bdf5a54c1fe8a781c655ec44a8b4f50f7f758b4b7547de0d2a44a2c321291282c427e6d140de581ebb471a377009eec77d8c27f432617b91863bb780ad37d1d -EBUILD uclibc-0.9.33.9999.ebuild 9348 BLAKE2B 0889fa7e2bc7c86f5a461ad43bfde8b7968e3ab7624ee881da04b11000164f6586683095fcd0773eb6e47d195b48b041450999da67f226939c1ecef6a724fbf5 SHA512 f9f97e41563be062974547c6945c45716edf16433c308bee9593ee051e6fb0d5ce786348d76acc8318db7d48ed27e451eba16a121538ed658218503492938e34 -EBUILD uclibc-9999.ebuild 9329 BLAKE2B c833b8f34dd30ef29c0d843731ded7b8778b9a60c675b5e8c009ed82bd827a9ed3355b7fd613e99b7fa2655f49cefe04147b5b3075e4691a2c74231fb75b7ac7 SHA512 ea49b5e167e624328efa4a145183e500ac916a979216d38e7d642ee3aaad704da70cb0b957bb0161242ce3709d123d701664a43717e38cb172c5b09ff5ef41d8 -MISC metadata.xml 1388 BLAKE2B 2c031c5d87aefe90b83a2d0de01ee836b978bf1e89a8b16cbbf71acbc5366a57c3d15423a4beb6a6c51ad6adecc45731b949591fdf6faa5de7a6516ea04d5ce9 SHA512 59111cac2b1c0e2df5ed96d01e6913307915281c8d24019f5a12213dabd0621adfb52e87d344e1de484e1b6dd19014ce695f00b96f27ce26d7632e825863beeb diff --git a/sys-libs/uclibc/metadata.xml b/sys-libs/uclibc/metadata.xml deleted file mode 100644 index d5ebc1b71d8d..000000000000 --- a/sys-libs/uclibc/metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>blueness@gentoo.org</email> - <name>Anthony G. Basile</name> - </maintainer> - <maintainer type="project"> - <email>embedded@gentoo.org</email> - <name>Embedded Gentoo</name> - </maintainer> - <longdescription> - uClibc pronounced yew-see-lib-see is a 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. Porting applications from glibc to uClibc - typically involves just recompiling the source code. uClibc even supports shared libraries - and threading. It currently runs on standard Linux and MMU-less (also known as uClinux) - systems with support for alpha, ARM, cris, i386, i960, h8300, m68k, mips/mipsel, PowerPC, - SH, SPARC, and v850 processors. - </longdescription> - <use> - <flag name="rpc">Enable sun nis/rpc support (you should use libtirpc though)</flag> - <flag name="ssp">Force the use of ssp to be built into a hardened uclibc setup</flag> - <flag name="savedconfig">Adds support for user defined configs</flag> - <flag name="uclibc-compat">Build uclibc with backwards compatible options</flag> - <flag name="wordexp">Add support for word expansion (wordexp.h)</flag> - </use> -</pkgmetadata> diff --git a/sys-libs/uclibc/uclibc-0.9.33.2-r15.ebuild b/sys-libs/uclibc/uclibc-0.9.33.2-r15.ebuild deleted file mode 100644 index 32bb54180854..000000000000 --- a/sys-libs/uclibc/uclibc-0.9.33.2-r15.ebuild +++ /dev/null @@ -1,355 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -inherit eutils flag-o-matic multilib toolchain-funcs savedconfig -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.busybox.net/uClibc" - inherit git-2 -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -MY_P=uClibc-${PV} -DESCRIPTION="C library for developing embedded Linux systems" -HOMEPAGE="https://www.uclibc.org/" -if [[ ${PV} != "9999" ]] ; then - PATCH_VER="17" - SRC_URI="https://uclibc.org/downloads/${MY_P}.tar.bz2 - ${PATCH_VER:+mirror://gentoo/${MY_P}-patches-${PATCH_VER}.tar.bz2}" - KEYWORDS="-* amd64 arm m68k ~mips ppc sh sparc x86" -fi - -LICENSE="LGPL-2" -SLOT="0" -IUSE="debug hardened iconv ipv6 nptl rpc ssp uclibc-compat wordexp headers-only" -RESTRICT="strip" - -# We cannot migrate between uclibc and uclibc-ng because as soon as portage -# updates the ld.so sym link, the system breaks. Ideally this should be a -# hard blocker, but EAPI=0 doesn't allow hard blockers. -RDEPEND="!sys-libs/uclibc-ng" - -S=${WORKDIR}/${MY_P} - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} -alt_build_kprefix() { - if [[ ${CBUILD} == ${CHOST} && ${CTARGET} == ${CHOST} ]] ; 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} -} - -pkg_setup() { - if [ ${CTARGET} = ${CHOST} ] ; then - case ${CHOST} in - *-uclinux*|*-uclibc*) ;; - *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;; - esac - fi -} - -check_cpu_opts() { - case ${CTARGET} in - # Need to handle $ABI here w/mips. - mips[1234]*) export UCLIBC_CPU="MIPS_ISA_${CTARGET:4:1}";; - sh[2345]*) export UCLIBC_CPU="SH${CTARGET:2:1}";; - i[3456]86*) export UCLIBC_CPU="${CTARGET:1:1}86";; - # XXX: Should figure out how to handle sparc. - esac - - if use nptl ; then - case ${CTARGET} in - i386*) - die "Your target has no support for NPTL" - ;; - esac - fi -} - -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} - ) -} - -src_oldconfig() { - yes "" 2>/dev/null | emake -s oldconfig >/dev/null -} -src_config() { - restore_config .config - if [ -f .config ]; then - src_oldconfig - return 0 - else - ewarn "Could not locate user configfile, so we will save a default one" - fi - - emake ARCH=${target} defconfig >/dev/null || die - - local defs_{y,n} defs - - defs=( - DO{DEBUG_PT,ASSERTS} - SUPPORT_LD_DEBUG_EARLY - UCLIBC_HAS_PROFILING - ) - kconfig_q_opt n "${defs[@]}" - kconfig_q_opt debug DODEBUG SUPPORT_LD_DEBUG - - sed -i -e '/ARCH_.*_ENDIAN/d' .config - kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN" - - if [[ ${CTARGET} == arm* ]] ; then - kconfig_q_opt n CONFIG_ARM_OABI - kconfig_q_opt y CONFIG_ARM_EABI - fi - - defs=( - LDSO_GNU_HASH_SUPPORT - MALLOC_GLIBC_COMPAT - DO_C99_MATH - UCLIBC_HAS_{CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN_EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC} - UCLIBC_HAS_FENV - UCLIBC_HAS_{N,}FTW - UCLIBC_HAS_GNU_GLOB - UCLIBC_HAS_LIBUTIL - UCLIBC_HAS_PROGRAM_INVOCATION_NAME - UCLIBC_HAS_RESOLVER_SUPPORT - UCLIBC_HAS_SHA256_CRYPT_IMPL - UCLIBC_HAS_SHA512_CRYPT_IMPL - UCLIBC_HAS_TZ_FILE_READ_MANY - UCLIBC_HAS_UTMPX - UCLIBC_SUPPORT_AI_ADDRCONFIG - UCLIBC_SUSV3_LEGACY - UCLIBC_SUSV3_LEGACY_MACROS - UCLIBC_SUSV4_LEGACY - UCLIBC_USE_NETLINK - PTHREADS_DEBUG_SUPPORT - ) - kconfig_q_opt y "${defs[@]}" - kconfig_q_opt n UCLIBC_HAS_CTYPE_UNSAFE - kconfig_q_opt n UCLIBC_HAS_LOCALE - kconfig_q_opt n HAS_NO_THREADS - kconfig_q_opt ipv6 UCLIBC_HAS_IPV6 - kconfig_q_opt nptl UCLIBC_HAS_THREADS_NATIVE - kconfig_q_opt !nptl LINUXTHREADS_OLD - kconfig_q_opt rpc UCLIBC_HAS_{,{FULL,REENTRANT}_}RPC - kconfig_q_opt wordexp UCLIBC_HAS_WORDEXP - kconfig_q_opt uclibc-compat UCLIBC_HAS_LIB{NSL,RESOLV}_STUB COMPAT_ATEXIT - - # we need to do it independently of hardened to get ssp.c built into libc - kconfig_q_opt y UCLIBC_HAS_SSP - kconfig_q_opt n UCLIBC_HAS_SSP_COMPAT - kconfig_q_opt y UCLIBC_HAS_ARC4RANDOM - kconfig_q_opt n PROPOLICE_BLOCK_ABRT - kconfig_q_opt y PROPOLICE_BLOCK_SEGV - - # arm/mips do not emit PT_GNU_STACK, but if we enable this here - # it will be emitted as RWE, ppc has to be checked, x86 needs it - # this option should be used independently of hardened - if has $(tc-arch) x86 || has $(tc-arch) ppc ; then - kconfig_q_opt y UCLIBC_BUILD_NOEXECSTACK - else - kconfig_q_opt n UCLIBC_BUILD_NOEXECSTACK - fi - kconfig_q_opt y UCLIBC_BUILD_RELRO - kconfig_q_opt hardened UCLIBC_BUILD_PIE - kconfig_q_opt hardened UCLIBC_BUILD_NOW - kconfig_q_opt !ssp SSP_QUICK_CANARY - kconfig_q_opt ssp UCLIBC_BUILD_SSP - - local def - for def 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 - src_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 - - src_oldconfig -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - git-2_src_unpack - else - unpack ${A} - fi - cd "${S}" - if [[ -n ${PATCH_VER} ]] ; then - EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch - fi - - epatch_user - - check_cpu_opts - - echo - einfo "Runtime Prefix: /" - einfo "Devel Prefix: /usr" - einfo "Kernel Prefix: $(alt_build_kprefix)" - einfo "CBUILD: ${CBUILD}" - einfo "CHOST: ${CHOST}" - einfo "CTARGET: ${CTARGET}" - einfo "CPU: ${UCLIBC_CPU:-default}" - einfo "ENDIAN: $(uclibc_endian)" - echo - - ########## CPU SELECTION ########## - - local target=$(tc-arch) config_target - case ${target} in - amd64) target="x86_64";; - arm) target="arm"; config_target="GENERIC_ARM";; - avr) target="avr32";; - mips) target="mips"; config_target="MIPS_ISA_1";; - ppc) target="powerpc";; - sh) target="sh"; config_target="SH4";; - x86) target="i386"; config_target="486";; - esac - if [[ -n ${config_target} ]] ; then - sed -i -e "s:default CONFIG_${config_target}:default CONFIG_${UCLIBC_CPU:-${config_target}}:" \ - extra/Configs/Config.${target} || die - fi - sed -i -e "s:^HOSTCC.*=.*:HOSTCC=$(tc-getBUILD_CC):" Rules.mak - - src_config - - if use iconv ; then - # Run after make clean, otherwise files removed - find ./extra/locale/charmaps -name "*.pairs" > extra/locale/codesets.txt - if [[ ! -f /etc/locale.gen ]] ; then - # See ./extra/locale/LOCALES for examples - die "Please create an appropriate /etc/locale.gen for locale support" - fi - echo -e "@euro e\n@cyrillic c\n#---\nUTF-8 yes\n8-BIT yes\n#---\n\n" > ./extra/locale/locales.txt - cat /etc/locale.gen >> ./extra/locale/locales.txt - fi -} - -src_compile() { - emake headers || die - just_headers && return 0 - - emake || die - if is_crosscompile ; then - emake -C utils hostutils || die - else - emake utils || die - 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 || die -} - -src_install() { - local sysroot=${D} - is_crosscompile && sysroot+="/usr/${CTARGET}" - - local target="install" - just_headers && target="install_headers" - emake DESTDIR="${sysroot}" ${target} || die - - 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 || die - newbin utils/ldd.host ${CTARGET}-ldd || die - fi - return 0 - fi - - emake DESTDIR="${D}" install_utils || die - dobin extra/scripts/getent - dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3 -} - -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/uclibc-0.9.33.9999.ebuild b/sys-libs/uclibc/uclibc-0.9.33.9999.ebuild deleted file mode 100644 index fbc8a60a1fc9..000000000000 --- a/sys-libs/uclibc/uclibc-0.9.33.9999.ebuild +++ /dev/null @@ -1,354 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -inherit eutils flag-o-matic multilib toolchain-funcs savedconfig -if [[ ${PV} == *9999 ]] ; then - EGIT_BRANCH="0.9.33" - EGIT_REPO_URI="git://git.busybox.net/uClibc" - inherit git-2 -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -MY_P=uClibc-${PV} -DESCRIPTION="C library for developing embedded Linux systems" -HOMEPAGE="https://www.uclibc.org/" -if [[ ${PV} != *9999 ]] ; then - PATCH_VER="" - SRC_URI="https://uclibc.org/downloads/${MY_P}.tar.bz2 - ${PATCH_VER:+mirror://gentoo/${MY_P}-patches-${PATCH_VER}.tar.bz2}" - KEYWORDS="-* ~amd64 ~arm ~m68k ~mips ~ppc ~sh ~sparc ~x86" -fi - -LICENSE="LGPL-2" -SLOT="0" -IUSE="debug hardened iconv ipv6 nptl rpc ssp uclibc-compat wordexp headers-only" -RESTRICT="strip" - -# We cannot migrate between uclibc and uclibc-ng because as soon as portage -# updates the ld.so sym link, the system breaks. Ideally this should be a -# hard blocker, but EAPI=0 doesn't allow hard blockers. -RDEPEND="!sys-libs/uclibc-ng" - -S=${WORKDIR}/${MY_P} - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} -alt_build_kprefix() { - if [[ ${CBUILD} == ${CHOST} && ${CTARGET} == ${CHOST} ]] ; 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} -} - -pkg_setup() { - if [ ${CTARGET} = ${CHOST} ] ; then - case ${CHOST} in - *-uclinux*|*-uclibc*) ;; - *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;; - esac - fi -} - -check_cpu_opts() { - case ${CTARGET} in - # Need to handle $ABI here w/mips. - mips[1234]*) export UCLIBC_CPU="MIPS_ISA_${CTARGET:4:1}";; - sh[2345]*) export UCLIBC_CPU="SH${CTARGET:2:1}";; - i[3456]86*) export UCLIBC_CPU="${CTARGET:1:1}86";; - # XXX: Should figure out how to handle sparc. - esac - - if use nptl ; then - case ${CTARGET} in - i386*) - die "Your target has no support for NPTL" - ;; - esac - fi -} - -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} - ) -} - -src_oldconfig() { - yes "" 2>/dev/null | emake -s oldconfig >/dev/null -} -src_config() { - restore_config .config - if [ -f .config ]; then - src_oldconfig - return 0 - else - ewarn "Could not locate user configfile, so we will save a default one" - fi - - emake ARCH=${target} defconfig >/dev/null || die - - local defs_{y,n} defs - - defs=( - DO{DEBUG_PT,ASSERTS} - SUPPORT_LD_DEBUG_EARLY - UCLIBC_HAS_PROFILING - ) - kconfig_q_opt n "${defs[@]}" - kconfig_q_opt debug DODEBUG SUPPORT_LD_DEBUG - - sed -i -e '/ARCH_.*_ENDIAN/d' .config - kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN" - - if [[ ${CTARGET} == arm* ]] ; then - kconfig_q_opt n CONFIG_ARM_OABI - kconfig_q_opt y CONFIG_ARM_EABI - fi - - defs=( - LDSO_GNU_HASH_SUPPORT - MALLOC_GLIBC_COMPAT - DO_C99_MATH - UCLIBC_HAS_{CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN_EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC} - UCLIBC_HAS_FENV - UCLIBC_HAS_{N,}FTW - UCLIBC_HAS_GNU_GLOB - UCLIBC_HAS_LIBUTIL - UCLIBC_HAS_PROGRAM_INVOCATION_NAME - UCLIBC_HAS_RESOLVER_SUPPORT - UCLIBC_HAS_TZ_FILE_READ_MANY - UCLIBC_HAS_UTMPX - UCLIBC_SUPPORT_AI_ADDRCONFIG - UCLIBC_SUSV3_LEGACY - UCLIBC_SUSV3_LEGACY_MACROS - UCLIBC_SUSV4_LEGACY - UCLIBC_USE_NETLINK - PTHREADS_DEBUG_SUPPORT - ) - kconfig_q_opt y "${defs[@]}" - kconfig_q_opt n UCLIBC_HAS_CTYPE_UNSAFE - kconfig_q_opt n UCLIBC_HAS_LOCALE - kconfig_q_opt n HAS_NO_THREADS - kconfig_q_opt ipv6 UCLIBC_HAS_IPV6 - kconfig_q_opt nptl UCLIBC_HAS_THREADS_NATIVE - kconfig_q_opt !nptl LINUXTHREADS_OLD - kconfig_q_opt rpc UCLIBC_HAS_{,{FULL,REENTRANT}_}RPC - kconfig_q_opt wordexp UCLIBC_HAS_WORDEXP - kconfig_q_opt uclibc-compat UCLIBC_HAS_LIB{NSL,RESOLV}_STUB COMPAT_ATEXIT - - # we need to do it independently of hardened to get ssp.c built into libc - kconfig_q_opt y UCLIBC_HAS_SSP - kconfig_q_opt n UCLIBC_HAS_SSP_COMPAT - kconfig_q_opt y UCLIBC_HAS_ARC4RANDOM - kconfig_q_opt n PROPOLICE_BLOCK_ABRT - kconfig_q_opt y PROPOLICE_BLOCK_SEGV - - # arm/mips do not emit PT_GNU_STACK, but if we enable this here - # it will be emitted as RWE, ppc has to be checked, x86 needs it - # this option should be used independently of hardened - if has $(tc-arch) x86 || has $(tc-arch) ppc ; then - kconfig_q_opt y UCLIBC_BUILD_NOEXECSTACK - else - kconfig_q_opt n UCLIBC_BUILD_NOEXECSTACK - fi - kconfig_q_opt y UCLIBC_BUILD_RELRO - kconfig_q_opt hardened UCLIBC_BUILD_PIE - kconfig_q_opt hardened UCLIBC_BUILD_NOW - kconfig_q_opt !ssp SSP_QUICK_CANARY - kconfig_q_opt ssp UCLIBC_BUILD_SSP - - local def - for def 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 - src_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 - - src_oldconfig -} - -src_unpack() { - if [[ ${PV} == *9999 ]] ; then - git-2_src_unpack - else - unpack ${A} - fi - cd "${S}" - if [[ -n ${PATCH_VER} ]] ; then - EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch - fi - - epatch_user - - check_cpu_opts - - echo - einfo "Runtime Prefix: /" - einfo "Devel Prefix: /usr" - einfo "Kernel Prefix: $(alt_build_kprefix)" - einfo "CBUILD: ${CBUILD}" - einfo "CHOST: ${CHOST}" - einfo "CTARGET: ${CTARGET}" - einfo "CPU: ${UCLIBC_CPU:-default}" - einfo "ENDIAN: $(uclibc_endian)" - echo - - ########## CPU SELECTION ########## - - local target=$(tc-arch) config_target - case ${target} in - amd64) target="x86_64";; - arm) target="arm"; config_target="GENERIC_ARM";; - avr) target="avr32";; - mips) target="mips"; config_target="MIPS_ISA_1";; - ppc) target="powerpc";; - sh) target="sh"; config_target="SH4";; - x86) target="i386"; config_target="486";; - esac - if [[ -n ${config_target} ]] ; then - sed -i -e "s:default CONFIG_${config_target}:default CONFIG_${UCLIBC_CPU:-${config_target}}:" \ - extra/Configs/Config.${target} || die - fi - sed -i -e "s:^HOSTCC.*=.*:HOSTCC=$(tc-getBUILD_CC):" Rules.mak - - src_config - - if use iconv ; then - # Run after make clean, otherwise files removed - find ./extra/locale/charmaps -name "*.pairs" > extra/locale/codesets.txt - if [[ ! -f /etc/locale.gen ]] ; then - # See ./extra/locale/LOCALES for examples - die "Please create an appropriate /etc/locale.gen for locale support" - fi - echo -e "@euro e\n@cyrillic c\n#---\nUTF-8 yes\n8-BIT yes\n#---\n\n" > ./extra/locale/locales.txt - cat /etc/locale.gen >> ./extra/locale/locales.txt - fi -} - -src_compile() { - emake headers || die - just_headers && return 0 - - emake || die - if is_crosscompile ; then - emake -C utils hostutils || die - else - emake utils || die - 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 || die -} - -src_install() { - local sysroot=${D} - is_crosscompile && sysroot+="/usr/${CTARGET}" - - local target="install" - just_headers && target="install_headers" - emake DESTDIR="${sysroot}" ${target} || die - - 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 || die - newbin utils/ldd.host ${CTARGET}-ldd || die - fi - return 0 - fi - - emake DESTDIR="${D}" install_utils || die - dobin extra/scripts/getent - dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3 -} - -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/uclibc-9999.ebuild b/sys-libs/uclibc/uclibc-9999.ebuild deleted file mode 100644 index f5cec3749e75..000000000000 --- a/sys-libs/uclibc/uclibc-9999.ebuild +++ /dev/null @@ -1,353 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -inherit eutils flag-o-matic multilib toolchain-funcs savedconfig -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.busybox.net/uClibc" - inherit git-2 -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -MY_P=uClibc-${PV} -DESCRIPTION="C library for developing embedded Linux systems" -HOMEPAGE="https://www.uclibc.org/" -if [[ ${PV} != "9999" ]] ; then - PATCH_VER="" - SRC_URI="https://uclibc.org/downloads/${MY_P}.tar.bz2 - ${PATCH_VER:+mirror://gentoo/${MY_P}-patches-${PATCH_VER}.tar.bz2}" - KEYWORDS="-* ~amd64 ~arm ~m68k ~mips ~ppc ~sh ~sparc ~x86" -fi - -LICENSE="LGPL-2" -SLOT="0" -IUSE="debug hardened iconv ipv6 nptl rpc ssp uclibc-compat wordexp headers-only" -RESTRICT="strip" - -# We cannot migrate between uclibc and uclibc-ng because as soon as portage -# updates the ld.so sym link, the system breaks. Ideally this should be a -# hard blocker, but EAPI=0 doesn't allow hard blockers. -RDEPEND="!sys-libs/uclibc-ng" - -S=${WORKDIR}/${MY_P} - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} -alt_build_kprefix() { - if [[ ${CBUILD} == ${CHOST} && ${CTARGET} == ${CHOST} ]] ; 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} -} - -pkg_setup() { - if [ ${CTARGET} = ${CHOST} ] ; then - case ${CHOST} in - *-uclinux*|*-uclibc*) ;; - *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;; - esac - fi -} - -check_cpu_opts() { - case ${CTARGET} in - # Need to handle $ABI here w/mips. - mips[1234]*) export UCLIBC_CPU="MIPS_ISA_${CTARGET:4:1}";; - sh[2345]*) export UCLIBC_CPU="SH${CTARGET:2:1}";; - i[3456]86*) export UCLIBC_CPU="${CTARGET:1:1}86";; - # XXX: Should figure out how to handle sparc. - esac - - if use nptl ; then - case ${CTARGET} in - i386*) - die "Your target has no support for NPTL" - ;; - esac - fi -} - -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} - ) -} - -src_oldconfig() { - yes "" 2>/dev/null | emake -s oldconfig >/dev/null -} -src_config() { - restore_config .config - if [ -f .config ]; then - src_oldconfig - return 0 - else - ewarn "Could not locate user configfile, so we will save a default one" - fi - - emake ARCH=${target} defconfig >/dev/null || die - - local defs_{y,n} defs - - defs=( - DO{DEBUG_PT,ASSERTS} - SUPPORT_LD_DEBUG_EARLY - UCLIBC_HAS_PROFILING - ) - kconfig_q_opt n "${defs[@]}" - kconfig_q_opt debug DODEBUG SUPPORT_LD_DEBUG - - sed -i -e '/ARCH_.*_ENDIAN/d' .config - kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN" - - if [[ ${CTARGET} == arm* ]] ; then - kconfig_q_opt n CONFIG_ARM_OABI - kconfig_q_opt y CONFIG_ARM_EABI - fi - - defs=( - LDSO_GNU_HASH_SUPPORT - MALLOC_GLIBC_COMPAT - DO_C99_MATH - UCLIBC_HAS_{CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN_EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC} - UCLIBC_HAS_FENV - UCLIBC_HAS_{N,}FTW - UCLIBC_HAS_GNU_GLOB - UCLIBC_HAS_LIBUTIL - UCLIBC_HAS_PROGRAM_INVOCATION_NAME - UCLIBC_HAS_RESOLVER_SUPPORT - UCLIBC_HAS_TZ_FILE_READ_MANY - UCLIBC_HAS_UTMPX - UCLIBC_SUPPORT_AI_ADDRCONFIG - UCLIBC_SUSV3_LEGACY - UCLIBC_SUSV3_LEGACY_MACROS - UCLIBC_SUSV4_LEGACY - UCLIBC_USE_NETLINK - PTHREADS_DEBUG_SUPPORT - ) - kconfig_q_opt y "${defs[@]}" - kconfig_q_opt n UCLIBC_HAS_CTYPE_UNSAFE - kconfig_q_opt n UCLIBC_HAS_LOCALE - kconfig_q_opt n HAS_NO_THREADS - kconfig_q_opt ipv6 UCLIBC_HAS_IPV6 - kconfig_q_opt nptl UCLIBC_HAS_THREADS_NATIVE - kconfig_q_opt !nptl LINUXTHREADS_OLD - kconfig_q_opt rpc UCLIBC_HAS_{,{FULL,REENTRANT}_}RPC - kconfig_q_opt wordexp UCLIBC_HAS_WORDEXP - kconfig_q_opt uclibc-compat UCLIBC_HAS_LIB{NSL,RESOLV}_STUB COMPAT_ATEXIT - - # we need to do it independently of hardened to get ssp.c built into libc - kconfig_q_opt y UCLIBC_HAS_SSP - kconfig_q_opt n UCLIBC_HAS_SSP_COMPAT - kconfig_q_opt y UCLIBC_HAS_ARC4RANDOM - kconfig_q_opt n PROPOLICE_BLOCK_ABRT - kconfig_q_opt y PROPOLICE_BLOCK_SEGV - - # arm/mips do not emit PT_GNU_STACK, but if we enable this here - # it will be emitted as RWE, ppc has to be checked, x86 needs it - # this option should be used independently of hardened - if has $(tc-arch) x86 || has $(tc-arch) ppc ; then - kconfig_q_opt y UCLIBC_BUILD_NOEXECSTACK - else - kconfig_q_opt n UCLIBC_BUILD_NOEXECSTACK - fi - kconfig_q_opt y UCLIBC_BUILD_RELRO - kconfig_q_opt hardened UCLIBC_BUILD_PIE - kconfig_q_opt hardened UCLIBC_BUILD_NOW - kconfig_q_opt !ssp SSP_QUICK_CANARY - kconfig_q_opt ssp UCLIBC_BUILD_SSP - - local def - for def 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 - src_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 - - src_oldconfig -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - git-2_src_unpack - else - unpack ${A} - fi - cd "${S}" - if [[ -n ${PATCH_VER} ]] ; then - EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch - fi - - epatch_user - - check_cpu_opts - - echo - einfo "Runtime Prefix: /" - einfo "Devel Prefix: /usr" - einfo "Kernel Prefix: $(alt_build_kprefix)" - einfo "CBUILD: ${CBUILD}" - einfo "CHOST: ${CHOST}" - einfo "CTARGET: ${CTARGET}" - einfo "CPU: ${UCLIBC_CPU:-default}" - einfo "ENDIAN: $(uclibc_endian)" - echo - - ########## CPU SELECTION ########## - - local target=$(tc-arch) config_target - case ${target} in - amd64) target="x86_64";; - arm) target="arm"; config_target="GENERIC_ARM";; - avr) target="avr32";; - mips) target="mips"; config_target="MIPS_ISA_1";; - ppc) target="powerpc";; - sh) target="sh"; config_target="SH4";; - x86) target="i386"; config_target="486";; - esac - if [[ -n ${config_target} ]] ; then - sed -i -e "s:default CONFIG_${config_target}:default CONFIG_${UCLIBC_CPU:-${config_target}}:" \ - extra/Configs/Config.${target} || die - fi - sed -i -e "s:^HOSTCC.*=.*:HOSTCC=$(tc-getBUILD_CC):" Rules.mak - - src_config - - if use iconv ; then - # Run after make clean, otherwise files removed - find ./extra/locale/charmaps -name "*.pairs" > extra/locale/codesets.txt - if [[ ! -f /etc/locale.gen ]] ; then - # See ./extra/locale/LOCALES for examples - die "Please create an appropriate /etc/locale.gen for locale support" - fi - echo -e "@euro e\n@cyrillic c\n#---\nUTF-8 yes\n8-BIT yes\n#---\n\n" > ./extra/locale/locales.txt - cat /etc/locale.gen >> ./extra/locale/locales.txt - fi -} - -src_compile() { - emake headers || die - just_headers && return 0 - - emake || die - if is_crosscompile ; then - emake -C utils hostutils || die - else - emake utils || die - 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 || die -} - -src_install() { - local sysroot=${D} - is_crosscompile && sysroot+="/usr/${CTARGET}" - - local target="install" - just_headers && target="install_headers" - emake DESTDIR="${sysroot}" ${target} || die - - 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 || die - newbin utils/ldd.host ${CTARGET}-ldd || die - fi - return 0 - fi - - emake DESTDIR="${D}" install_utils || die - dobin extra/scripts/getent - dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3 -} - -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 -} |