From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Rh4MS-0004KS-J2 for garchives@archives.gentoo.org; Sat, 31 Dec 2011 19:12:56 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CC51BE00E9; Sat, 31 Dec 2011 19:12:48 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 71CBFE00E9 for ; Sat, 31 Dec 2011 19:12:48 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D5CA11B4003 for ; Sat, 31 Dec 2011 19:12:47 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 2761C80043 for ; Sat, 31 Dec 2011 19:12:47 +0000 (UTC) From: "Anthony G. Basile" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Anthony G. Basile" Message-ID: <0c0b9c2c720b4f1a8ff314a131d2a37365024338.blueness@gentoo> Subject: [gentoo-commits] proj/hardened-dev:uclibc commit in: sys-libs/uclibc/, sys-libs/uclibc/files/ X-VCS-Repository: proj/hardened-dev X-VCS-Files: sys-libs/uclibc/files/uclibc.config sys-libs/uclibc/metadata.xml sys-libs/uclibc/uclibc-0.9.32-r1.ebuild sys-libs/uclibc/uclibc-0.9.32.ebuild X-VCS-Directories: sys-libs/uclibc/ sys-libs/uclibc/files/ X-VCS-Committer: blueness X-VCS-Committer-Name: Anthony G. Basile X-VCS-Revision: 0c0b9c2c720b4f1a8ff314a131d2a37365024338 Date: Sat, 31 Dec 2011 19:12:47 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 1de93496-1c25-40d4-bf8b-d7af21749eb0 X-Archives-Hash: 494fcc9354d8bc005aabaefb47e96951 commit: 0c0b9c2c720b4f1a8ff314a131d2a37365024338 Author: Anthony G. Basile gentoo org> AuthorDate: Sat Dec 31 19:12:42 2011 +0000 Commit: Anthony G. Basile gentoo org> CommitDate: Sat Dec 31 19:12:42 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/hardened-dev.= git;a=3Dcommit;h=3D0c0b9c2c sys-devel/uclibc: use config file from FILESDIR --- sys-libs/uclibc/files/uclibc.config | 265 +++++++++++++++++++++++ sys-libs/uclibc/metadata.xml | 10 +- sys-libs/uclibc/uclibc-0.9.32-r1.ebuild | 57 ----- sys-libs/uclibc/uclibc-0.9.32.ebuild | 358 ++-----------------------= ------ 4 files changed, 284 insertions(+), 406 deletions(-) diff --git a/sys-libs/uclibc/files/uclibc.config b/sys-libs/uclibc/files/= uclibc.config new file mode 100644 index 0000000..f575ca2 --- /dev/null +++ b/sys-libs/uclibc/files/uclibc.config @@ -0,0 +1,265 @@ +# +# Automatically generated make config: don't edit +# Version: 0.9.32 +# Sat Dec 31 16:47:23 2011 +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +TARGET_i386=3Dy +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set +# TARGET_c6x is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH=3D"i386" +FORCE_OPTIONS_FOR_ARCH=3Dy +# CONFIG_GENERIC_386 is not set +# CONFIG_386 is not set +# CONFIG_486 is not set +CONFIG_586=3Dy +# CONFIG_586MMX is not set +# CONFIG_686 is not set +# CONFIG_PENTIUMII is not set +# CONFIG_PENTIUMIII is not set +# CONFIG_PENTIUM4 is not set +# CONFIG_K6 is not set +# CONFIG_K7 is not set +# CONFIG_ELAN is not set +# CONFIG_CRUSOE is not set +# CONFIG_WINCHIPC6 is not set +# CONFIG_WINCHIP2 is not set +# CONFIG_CYRIXIII is not set +# CONFIG_NEHEMIAH is not set +TARGET_SUBARCH=3D"i586" + +# +# Using ELF file format +# +ARCH_LITTLE_ENDIAN=3Dy + +# +# Using Little Endian +# +ARCH_HAS_MMU=3Dy +ARCH_USE_MMU=3Dy +UCLIBC_HAS_FLOATS=3Dy +UCLIBC_HAS_FPU=3Dy +DO_C99_MATH=3Dy +DO_XSI_MATH=3Dy +UCLIBC_HAS_FENV=3Dy +UCLIBC_HAS_LONG_DOUBLE_MATH=3Dy +KERNEL_HEADERS=3D"/usr/include" +HAVE_DOT_CONFIG=3Dy + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=3Dy +# ARCH_HAS_NO_SHARED is not set +# ARCH_HAS_NO_LDSO is not set +HAVE_SHARED=3Dy +FORCE_SHAREABLE_TEXT_SEGMENTS=3Dy +LDSO_LDD_SUPPORT=3Dy +LDSO_CACHE_SUPPORT=3Dy +LDSO_PRELOAD_ENV_SUPPORT=3Dy +LDSO_PRELOAD_FILE_SUPPORT=3Dy +LDSO_BASE_FILENAME=3D"ld.so" +UCLIBC_STATIC_LDCONFIG=3Dy +LDSO_RUNPATH=3Dy +LDSO_SEARCH_INTERP_PATH=3Dy +UCLIBC_CTOR_DTOR=3Dy +LDSO_GNU_HASH_SUPPORT=3Dy +# HAS_NO_THREADS is not set +LINUXTHREADS_OLD=3Dy +# LINUXTHREADS_NEW is not set +# UCLIBC_HAS_THREADS_NATIVE is not set +UCLIBC_HAS_THREADS=3Dy +PTHREADS_DEBUG_SUPPORT=3Dy +UCLIBC_HAS_SYSLOG=3Dy +UCLIBC_HAS_LFS=3Dy +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=3Dy +MALLOC_GLIBC_COMPAT=3Dy +UCLIBC_DYNAMIC_ATEXIT=3Dy +COMPAT_ATEXIT=3Dy +UCLIBC_SUSV3_LEGACY=3Dy +UCLIBC_SUSV3_LEGACY_MACROS=3Dy +UCLIBC_SUSV4_LEGACY=3Dy +UCLIBC_STRICT_HEADERS=3Dy +UCLIBC_HAS_STUBS=3Dy +UCLIBC_HAS_SHADOW=3Dy +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=3Dy +UCLIBC_HAS___PROGNAME=3Dy +UCLIBC_HAS_PTY=3Dy +ASSUME_DEVPTS=3Dy +UNIX98PTY_ONLY=3Dy +UCLIBC_HAS_GETPT=3Dy +UCLIBC_HAS_LIBUTIL=3Dy +UCLIBC_HAS_TM_EXTENSIONS=3Dy +UCLIBC_HAS_TZ_CACHING=3Dy +UCLIBC_HAS_TZ_FILE=3Dy +UCLIBC_HAS_TZ_FILE_READ_MANY=3Dy +UCLIBC_TZ_FILE_PATH=3D"/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=3Dy + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=3D256 +UCLIBC_GRP_BUFFER_SIZE=3D256 + +# +# Support various families of functions +# +UCLIBC_LINUX_MODULE_24=3Dy +UCLIBC_LINUX_SPECIFIC=3Dy +UCLIBC_HAS_GNU_ERROR=3Dy +UCLIBC_BSD_SPECIFIC=3Dy +UCLIBC_HAS_BSD_ERR=3Dy +# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +# UCLIBC_SV4_DEPRECATED is not set +UCLIBC_HAS_REALTIME=3Dy +UCLIBC_HAS_ADVANCED_REALTIME=3Dy +UCLIBC_HAS_EPOLL=3Dy +UCLIBC_HAS_XATTR=3Dy +# UCLIBC_HAS_PROFILING is not set +UCLIBC_HAS_CRYPT_IMPL=3Dy +UCLIBC_HAS_CRYPT=3Dy +UCLIBC_HAS_NETWORK_SUPPORT=3Dy +UCLIBC_HAS_SOCKET=3Dy +UCLIBC_HAS_IPV4=3Dy +UCLIBC_HAS_IPV6=3Dy +UCLIBC_HAS_RPC=3Dy +UCLIBC_HAS_FULL_RPC=3Dy +UCLIBC_HAS_REENTRANT_RPC=3Dy +UCLIBC_USE_NETLINK=3Dy +UCLIBC_SUPPORT_AI_ADDRCONFIG=3Dy +UCLIBC_HAS_BSD_RES_CLOSE=3Dy +UCLIBC_HAS_COMPAT_RES_STATE=3Dy +UCLIBC_HAS_EXTRA_COMPAT_RES_STATE=3Dy +UCLIBC_HAS_LIBRESOLV_STUB=3Dy +UCLIBC_HAS_LIBNSL_STUB=3Dy + +# +# String and Stdio Support +# +UCLIBC_HAS_STRING_GENERIC_OPT=3Dy +UCLIBC_HAS_STRING_ARCH_OPT=3Dy +UCLIBC_HAS_CTYPE_TABLES=3Dy +UCLIBC_HAS_CTYPE_SIGNED=3Dy +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=3Dy +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=3Dy +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=3Dy +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=3Dy +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=3D9 +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=3Dy +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=3Dy +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=3Dy +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +UCLIBC_HAS_STDIO_GETC_MACRO=3Dy +UCLIBC_HAS_STDIO_PUTC_MACRO=3Dy +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=3Dy +UCLIBC_HAS_FOPEN_LARGEFILE_MODE=3Dy +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=3Dy +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=3Dy +UCLIBC_HAS_PRINTF_M_SPEC=3Dy +UCLIBC_HAS_ERRNO_MESSAGES=3Dy +UCLIBC_HAS_SYS_ERRLIST=3Dy +UCLIBC_HAS_SIGNUM_MESSAGES=3Dy +UCLIBC_HAS_SYS_SIGLIST=3Dy +UCLIBC_HAS_GNU_GETOPT=3Dy +UCLIBC_HAS_GNU_GETSUBOPT=3Dy + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=3Dy +UCLIBC_HAS_REGEX_OLD=3Dy +UCLIBC_HAS_FNMATCH=3Dy +UCLIBC_HAS_FNMATCH_OLD=3Dy +UCLIBC_HAS_WORDEXP=3Dy +UCLIBC_HAS_NFTW=3Dy +UCLIBC_HAS_FTW=3Dy +UCLIBC_HAS_FTS=3Dy +UCLIBC_HAS_GLOB=3Dy +UCLIBC_HAS_GNU_GLOB=3Dy +UCLIBC_HAS_UTMPX=3Dy + +# +# Library Installation Options +# +RUNTIME_PREFIX=3D"/" +DEVEL_PREFIX=3D"/usr" +MULTILIB_DIR=3D"lib" +HARDWIRED_ABSPATH=3Dy + +# +# Security options +# +UCLIBC_BUILD_PIE=3Dy +UCLIBC_HAS_ARC4RANDOM=3Dy +# HAVE_NO_SSP is not set +UCLIBC_HAS_SSP=3Dy +# UCLIBC_HAS_SSP_COMPAT is not set +# SSP_QUICK_CANARY is not set +# PROPOLICE_BLOCK_ABRT is not set +PROPOLICE_BLOCK_SEGV=3Dy +UCLIBC_BUILD_SSP=3Dy +UCLIBC_BUILD_RELRO=3Dy +UCLIBC_BUILD_NOW=3Dy +UCLIBC_BUILD_NOEXECSTACK=3Dy + +# +# uClibc development/debugging options +# +CROSS_COMPILER_PREFIX=3D"i386-gentoo-linux-uclibc-" +UCLIBC_EXTRA_CFLAGS=3D"" +# DODEBUG is not set +# DODEBUG_PT is not set +DOSTRIP=3Dy +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS=3D"-Wall" +# EXTRA_WARNINGS is not set +# DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set diff --git a/sys-libs/uclibc/metadata.xml b/sys-libs/uclibc/metadata.xml index bcb329d..e217c37 100644 --- a/sys-libs/uclibc/metadata.xml +++ b/sys-libs/uclibc/metadata.xml @@ -2,10 +2,8 @@ hardened - - Force the use of ssp to be built into a hardened uc= libc setup - Adds support for user defined configs - Build uclibc with backwards compatible op= tions - Add support for word expansion (wordexp.h) - + + blueness@gentoo.org + Anthony G. Basile + diff --git a/sys-libs/uclibc/uclibc-0.9.32-r1.ebuild b/sys-libs/uclibc/uc= libc-0.9.32-r1.ebuild deleted file mode 100644 index 42b99f4..0000000 --- a/sys-libs/uclibc/uclibc-0.9.32-r1.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/uclibc/uclibc-0.9.30.1-r1.eb= uild,v 1.9 2011/04/20 18:10:38 ulm Exp $ - -EAPI=3D"4" - -inherit eutils savedconfig - -MY_P=3DuClibc-0.9.32 -DESCRIPTION=3D"C library for developing embedded Linux systems" -HOMEPAGE=3D"http://www.uclibc.org/" -SRC_URI=3D"http://uclibc.org/downloads/${MY_P}.tar.bz2" - -LICENSE=3D"LGPL-2" -SLOT=3D"0" -KEYWORDS=3D"-* ~amd64 ~x86" -IUSE=3D"savedconfig" -RESTRICT=3D"strip" - -RDEPEND=3D"" -DEPEND=3D"" - -S=3D${WORKDIR}/${MY_P} - -src_prepare() { - epatch "${FILESDIR}"/${P}-BJA-sandbox.patch - epatch "${FILESDIR}"/${P}-fix_epoll.patch -} - -src_configure() { - use savedconfig && restore_config .config -} - -src_compile() { - emake headers || die "make headers failed" - emake || die "make failed" - emake utils || die "make utils failed" -} - -src_install() { - emake DESTDIR=3D"${D}" install || die "install failed" - - use savedconfig && save_config .config - - # remove files coming from kernel-headers - rm -rf "${D}"/usr/include/{linux,asm*} - - emake DESTDIR=3D"${D}" install_utils || die "install-utils failed" - dobin extra/scripts/getent - dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3 -} - -pkg_postinst() { - echo "UTC" > "${ROOT}"/etc/TZ - /sbin/ldconfig - [[ -x /sbin/telinit ]] && /sbin/telinit U &> /dev/null -} diff --git a/sys-libs/uclibc/uclibc-0.9.32.ebuild b/sys-libs/uclibc/uclib= c-0.9.32.ebuild index 97990b7..4bfac8d 100644 --- a/sys-libs/uclibc/uclibc-0.9.32.ebuild +++ b/sys-libs/uclibc/uclibc-0.9.32.ebuild @@ -2,383 +2,55 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-libs/uclibc/uclibc-0.9.30.1-r1.eb= uild,v 1.9 2011/04/20 18:10:38 ulm Exp $ =20 -#ESVN_REPO_URI=3D"svn://uclibc.org/trunk/uClibc" -#inherit subversion -inherit eutils flag-o-matic toolchain-funcs savedconfig +EAPI=3D"4" =20 -export CBUILD=3D${CBUILD:-${CHOST}} -export CTARGET=3D${CTARGET:-${CHOST}} -if [[ ${CTARGET} =3D=3D ${CHOST} ]] ; then - if [[ ${CATEGORY/cross-} !=3D ${CATEGORY} ]] ; then - export CTARGET=3D${CATEGORY/cross-} - fi -fi -# Handle the case where we want uclibc on glibc ... -if [[ ${CTARGET} =3D=3D ${CHOST} ]] && [[ ${CHOST} !=3D *-uclibc* ]] ; t= hen - export UCLIBC_AND_GLIBC=3D"sitting in a tree" - export CTARGET=3D${CHOST%%-*}-pc-linux-uclibc -fi +inherit eutils =20 MY_P=3DuClibc-0.9.32 -PATCH_VER=3D"" -SVN_VER=3D"" DESCRIPTION=3D"C library for developing embedded Linux systems" HOMEPAGE=3D"http://www.uclibc.org/" SRC_URI=3D"http://uclibc.org/downloads/${MY_P}.tar.bz2" =20 -[[ -z ${SVN_VER} ]] || \ - SRC_URI=3D"${SRC_URI} mirror://gentoo/${MY_P}-svn-update-${SVN_VER}.pat= ch.bz2" -[[ -z ${PATCH_VER} ]] || \ - SRC_URI=3D"${SRC_URI} mirror://gentoo/${MY_P}-patches-${PATCH_VER}.tar.= bz2" - LICENSE=3D"LGPL-2" SLOT=3D"0" -KEYWORDS=3D"-* amd64 x86" -IUSE=3D"build uclibc-compat debug hardened ssp ipv6 minimal nptl wordexp= crosscompile_opts_headers-only" +KEYWORDS=3D"-* ~amd64 ~x86" +IUSE=3D"savedconfig" RESTRICT=3D"strip" =20 RDEPEND=3D"" -if [[ -n $CTARGET && ${CTARGET} !=3D ${CHOST} ]]; then - DEPEND=3D">=3Dcross-${CTARGET}/binutils-2.21.51.0.7" - SLOT=3D"${CTARGET}" -else - DEPEND=3D"virtual/os-headers app-misc/pax-utils" - SLOT=3D"0" -fi +DEPEND=3D"" =20 S=3D${WORKDIR}/${MY_P} =20 -alt_build_kprefix() { - if [[ ${CBUILD} =3D=3D ${CHOST} && ${CTARGET} =3D=3D ${CHOST} ]] \ - || [[ -n ${UCLIBC_AND_GLIBC} ]] - then - echo /usr/include - else - echo /usr/${CTARGET}/usr/include - fi -} - -just_headers() { - use crosscompile_opts_headers-only && [[ ${CHOST} !=3D ${CTARGET} ]] -} - -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() { - just_headers && return 0 - has_version ${CATEGORY}/uclibc || return 0 - [[ -n ${UCLIBC_AND_GLIBC} ]] && return 0 - [[ ${ROOT} !=3D "/" ]] && return 0 - [[ ${CATEGORY} =3D=3D cross-* ]] && return 0 - -} - -PIE_STABLE=3D"arm mips ppc x86" - -CPU_ALPHA=3D"" -CPU_AMD64=3D"" -CPU_ARM=3D"GENERIC_ARM ARM{610,710,7TDMI,720T,920T,922T,926T,10T,1136JF_= S,1176JZ{_,F_}S,_{SA110,SA1100,XSCALE,IWMMXT},_CORTEX_{M3,M1}}" -CPU_IA64=3D"" -CPU_M68K=3D"" -CPU_MIPS=3D"MIPS_ISA_{1,2,3,4,MIPS{32{,R2},64}} MIPS_{N64,O32,N32}_ABI" -CPU_PPC=3D"" -CPU_SH=3D"SH{2,2A,3,4,5}" -CPU_SPARC=3D"SPARC_V{7,8,9,9B}" -CPU_X86=3D"GENERIC_386 {3,4,5,6}86 586MMX PENTIUM{II,III,4} K{6,7} ELAN = CRUSOE WINCHIP{C6,2} CYRIXIII NEHEMIAH" -IUSE_UCLIBC_CPU=3D"${CPU_ARM} ${CPU_MIPS} ${CPU_PPC} ${CPU_SH} ${CPU_SPA= RC} ${CPU_X86}" - -check_cpu_opts() { - local cpu_var=3D"CPU_$(echo $(tc-arch) | tr [a-z] [A-Z])" - [[ -z ${!cpu_var} ]] && return 0 - - if [[ -z ${UCLIBC_CPU} ]] ; then - ewarn "You really should consider setting UCLIBC_CPU" - ewarn "Otherwise, the build will be generic (read: slow)." - ewarn "Available CPU options:" - UCLIBC_CPU=3D$(eval echo ${!cpu_var}) - echo ${UCLIBC_CPU} - case ${CTARGET} in - mips[1234]*) export UCLIBC_CPU=3D"MIPS_ISA_${CTARGET:4:1}";; - sh[2345]*) export UCLIBC_CPU=3D"SH${CTARGET:2:1}";; - i[456]86*) export UCLIBC_CPU=3D"${CTARGET:1:1}86";; - *) export UCLIBC_CPU=3D${UCLIBC_CPU%% *};; - esac - else - local cpu found=3D0 - for cpu in $(eval echo ${!cpu_var}) ; do - [[ ${UCLIBC_CPU} =3D=3D "${cpu}" ]] && found=3D1 && break - done - if [[ ${found} -eq 0 ]] ; then - ewarn "UCLIBC_CPU choice '${UCLIBC_CPU}' not supported" - ewarn "Valid choices:" - eval echo ${!cpu_var} - die "pick a supported cpu type" - fi - fi -} - -set_opt() { - sed -i -e "/^\# $1 is not set/d" -e "/^$1=3D.*/d" .config - echo "$1=3D$2" >> .config -} -get_opt() { - ( - unset $1 - . ${2:-"${S}"/.config} - echo ${!1} - ) -} - -src_unpack() { - [[ -n ${ESVN_REPO_URI} ]] \ - && subversion_src_unpack \ - || unpack ${A} - cd "${S}" - - 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 - - ########## PATCHES ########## - - [[ -n ${SVN_VER} ]] && \ - epatch "${WORKDIR}"/${MY_P}-cvs-update-${SVN_VER}.patch - - if [[ -n ${PATCH_VER} ]] ; then - unpack ${MY_P}-patches-${PATCH_VER}.tar.bz2 - EPATCH_SUFFIX=3D"patch" - epatch "${WORKDIR}"/patch - fi - +src_prepare() { epatch "${FILESDIR}"/${P}-BJA-sandbox.patch epatch "${FILESDIR}"/${P}-fix_epoll.patch +} =20 - ########## CPU SELECTION ########## - - local target config_target - case $(tc-arch) in - alpha) target=3D"alpha"; config_target=3D"no cpu-specific options";; - amd64) target=3D"x86_64"; config_target=3D"no cpu-specific options";; - arm) target=3D"arm"; config_target=3D"GENERIC_ARM";; - avr) target=3D"avr32"; config_target=3D"no cpu-specific options";; - ia64) target=3D"ia64"; config_target=3D"no cpu-specific options";; - m68k) target=3D"m68k"; config_target=3D"no cpu-specific options";; - mips) target=3D"mips"; config_target=3D"MIPS_ISA_1";; - ppc) target=3D"powerpc"; config_target=3D"no cpu-specific options";; - sh) target=3D"sh"; config_target=3D"SH4";; - sparc) target=3D"sparc"; config_target=3D"no cpu-specific options";; - x86) target=3D"i386"; config_target=3D"GENERIC_386";; - *) die "$(tc-arch) lists no defaults :/";; - esac - sed -i -e "s:default CONFIG_${config_target}:default CONFIG_${UCLIBC_CP= U:-${config_target}}:" \ - extra/Configs/Config.${target} - sed -i -e "s:^HOSTCC.*=3D.*:HOSTCC=3D$(tc-getBUILD_CC):" Rules.mak - - ########## CONFIG SETUP ########## - - make ARCH=3D${target} defconfig >/dev/null || die "could not config" - - for def in DO{DEBUG{,_PT},ASSERTS} SUPPORT_LD_DEBUG{,_EARLY} UCLIBC_HAS= _PROFILING; do - sed -i -e "s:${def}=3Dy:# ${def} is not set:" .config - done - if use debug ; then - set_opt SUPPORT_LD_DEBUG y - set_opt DODEBUG y - fi - - sed -i -e '/ARCH_.*_ENDIAN/d' .config - set_opt "ARCH_WANTS_$(uclibc_endian | tr [a-z] [A-Z])_ENDIAN" y - - if [[ $(tc-is-softfloat) !=3D "no" ]] ; then - set_opt UCLIBC_HAS_FPU n - fi - - if [[ ${CTARGET/eabi} !=3D ${CTARGET} ]] ; then - set_opt CONFIG_ARM_OABI n - set_opt CONFIG_ARM_EABI y - fi - - local moredefs=3D"COMPAT_ATEXIT" - local compat_sym=3Datexit - - # We need todo this for a few months. .30 is a major upgrade. - # Don't do it from cross-compiling case though - if ! use uclibc-compat ; then - if [[ -z ${UCLIBC_AND_GLIBC} ]] && [[ -z ${UCLIBC_SCANNED_COMPAT} ]] &= & \ - ! just_headers && [[ ${CHOST} =3D=3D ${CTARGET} ]] ; then - local fnames=3D"" - einfo "Doing a scanelf in paths for bins containing the ${compat_sym}= symbol" - fnames=3D$(scanelf -pyqs${compat_sym} -F%F#s) - if [[ -z ${fnames} ]] ; then - einfo "This system is clean." - einfo "To prevent the scanning of files again in the future you can = export UCLIBC_SCANNED_COMPAT=3D1" - moredefs=3D"" - else - ewarn "You need to remerge the packages that contain the following f= iles before you can remerge ${P} without USE=3Duclibc-compat enabled." - ewarn "qfile -Cq $(echo ${fnames}) | sort | uniq" - echo - ewarn "Leaving on ${moredefs}" - fi - else - moredefs=3D"" - fi - fi - for def in ${moredefs} MALLOC_GLIBC_COMPAT DO_C99_MATH UCLIBC_HAS_{RPC,= FULL_RPC,CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN= _EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC,FTW} UCLIBC_HAS_REENTR= ANT_RPC UCLIBC_HAS_GNU_GLOB PTHREADS_DEBUG_SUPPORT UCLIBC_HAS_TZ_FILE_RE= AD_MANY UCLIBC_HAS_FENV UCLIBC_SUSV3_LEGACY UCLIBC_SUSV3_LEGACY_MACROS UC= LIBC_HAS_PROGRAM_INVOCATION_NAME ; do - set_opt "${def}" y - done - set_opt UCLIBC_HAS_CTYPE_UNSAFE n - set_opt UCLIBC_HAS_LOCALE n - set_opt HAS_NO_THREADS n - - use nptl && set_opt LINUXTHREADS_NEW y - - use ipv6 && set_opt UCLIBC_HAS_IPV6 y - - use wordexp && set_opt UCLIBC_HAS_WORDEXP y - - # we need to do it independently of hardened to get ssp.c built into li= bc - set_opt UCLIBC_HAS_SSP y - set_opt UCLIBC_HAS_SSP_COMPAT y - set_opt UCLIBC_HAS_ARC4RANDOM y - set_opt PROPOLICE_BLOCK_ABRT n - set_opt PROPOLICE_BLOCK_SEGV y - - # 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 - set_opt UCLIBC_BUILD_NOEXECSTACK y - else - set_opt UCLIBC_BUILD_NOEXECSTACK n - fi - set_opt UCLIBC_BUILD_RELRO y - if use hardened ; then - if has $(tc-arch) ${PIE_STABLE} ; then - set_opt UCLIBC_BUILD_PIE y - else - set_opt UCLIBC_BUILD_PIE n - fi - set_opt UCLIBC_BUILD_NOW y - use ssp && { - set_opt SSP_QUICK_CANARY n - set_opt UCLIBC_BUILD_SSP y - } - else - set_opt UCLIBC_BUILD_PIE n - set_opt SSP_QUICK_CANARY y - set_opt UCLIBC_BUILD_SSP n - set_opt UCLIBC_BUILD_NOW n - fi - - restore_config .config - - # setup build and run paths - local cross=3D${CTARGET}- - type -p ${cross}ar > /dev/null || cross=3D"" - sed -i \ - -e "/^CROSS_COMPILER_PREFIX/s:=3D.*:=3D\"${cross}\":" \ - -e "/^KERNEL_HEADERS/s:=3D.*:=3D\"$(alt_build_kprefix)\":" \ - -e "/^SHARED_LIB_LOADER_PREFIX/s:=3D.*:=3D\"/$(get_libdir)\":" \ - -e "/^DEVEL_PREFIX/s:=3D.*:=3D\"/usr\":" \ - -e "/^RUNTIME_PREFIX/s:=3D.*:=3D\"/\":" \ - -e "/^UCLIBC_EXTRA_CFLAGS/s:=3D.*:=3D\"${UCLIBC_EXTRA_CFLAGS}\":" \ - .config || die - +src_configure() { + cp $"{FILESDIR}"/uclibc.config .config yes "" 2> /dev/null | make -s oldconfig > /dev/null || die "could not m= ake oldconfig" - - cp .config myconfig - - emake -s clean > /dev/null || die "could not clean" } =20 src_compile() { - cp myconfig .config - emake headers || die "make headers failed" - just_headers && return 0 - emake || die "make failed" - if [[ ${CTARGET} !=3D ${CHOST} ]] ; then - emake -C utils hostutils || die "make hostutils failed" - elif [[ ${CHOST} =3D=3D *-uclibc* ]] ; then - emake utils || die "make utils failed" - fi -} - -src_test() { - [[ ${CHOST} !=3D ${CTARGET} ]] && return 0 - [[ ${CBUILD} !=3D ${CHOST} ]] && return 0 - - # assert test fails on pax/grsec enabled kernels - normal - # vfork test fails in sandbox (both glibc/uclibc) - make UCLIBC_ONLY=3D1 check || die "test failed" + emake utils || die "make utils failed" } =20 src_install() { - local sysroot=3D${D} - [[ ${CHOST} !=3D ${CTARGET} ]] && sysroot=3D"${sysroot}/usr/${CTARGET}" - - local target=3D"install" - just_headers && target=3D"install_headers" - emake DESTDIR=3D"${sysroot}" ${target} || die "install failed" - - save_config .config + emake DESTDIR=3D"${D}" install || die "install failed" =20 # 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 [[ ${CTARGET} !=3D ${CHOST} ]] ; 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 - - if [[ ${CHOST} =3D=3D *-uclibc* ]] ; then - emake DESTDIR=3D"${D}" install_utils || die "install-utils failed" - dobin extra/scripts/getent - fi + rm -rf "${D}"/usr/include/{linux,asm*} =20 + emake DESTDIR=3D"${D}" install_utils || die "install-utils failed" + dobin extra/scripts/getent dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3 } =20 pkg_postinst() { - [[ ${CTARGET} !=3D ${CHOST} ]] && return 0 - [[ ${CHOST} !=3D *-uclibc* ]] && return 0 - - if [[ ! -e ${ROOT}/etc/TZ ]] ; then - ewarn "Please remember to set your timezone in /etc/TZ" - [[ ! -d ${ROOT}/etc ]] && mkdir -p "${ROOT}"/etc - echo "UTC" > "${ROOT}"/etc/TZ - fi - [[ ${ROOT} !=3D "/" ]] && return 0 - # update cache before reloading init + echo "UTC" > "${ROOT}"/etc/TZ /sbin/ldconfig - # reload init ... [[ -x /sbin/telinit ]] && /sbin/telinit U &> /dev/null }