Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 45632 Details for
Bug 73699
uclibc-0.9.26-r8 update with better hardened support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
updated ebuild (new cvs)
uclibc-0.9.26-r9.ebuild (text/plain), 9.10 KB, created by
Peter S. Mazinger
on 2004-12-09 14:49:44 UTC
(
hide
)
Description:
updated ebuild (new cvs)
Filename:
MIME Type:
Creator:
Peter S. Mazinger
Created:
2004-12-09 14:49:44 UTC
Size:
9.10 KB
patch
obsolete
># Copyright 1999-2004 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 ># $Header: /var/cvsroot/gentoo-x86/dev-libs/uclibc/uclibc-0.9.26-r8.ebuild,v 1.1 2004/11/06 07:07:39 vapier Exp $ > >inherit eutils flag-o-matic gcc > ># To make a new CVS_VER we do. ># wget -O - http://uclibc.org/downloads/snapshots/uClibc-`date +%Y%m%d`.tar.bz2 | tar jxf - ># tar jxf /usr/portage/distfiles/uClibc-0.9.26.tar.bz2 ># diff -urN --exclude .cvsignore --exclude CVS uClibc-0.9.26 uClibc | bzip2 - > uClibc-0.9.26-cvs-update-`date +%Y%m%d`.patch.bz2 ># rm -rf uClibc-0.9.26-cvs-update-`date +%Y%m%d`.patch.bz2 uClibc uClibc-0.9.26 > >MY_P="${P/ucl/uCl}" ># only CVS_VER >= 20041117 is supported >CVS_VER="20041208" >PATCH_VER="1.3" >DESCRIPTION="C library for developing embedded Linux systems" >HOMEPAGE="http://www.uclibc.org/" >SRC_URI="http://www.kernel.org/pub/linux/libs/uclibc/${MY_P}.tar.bz2 > mirror://gentoo/${MY_P}-cvs-update-${CVS_VER}.patch.bz2 > mirror://gentoo/${MY_P}-patches-${PATCH_VER}.tar.bz2" > >LICENSE="LGPL-2" >SLOT="0" >#KEYWORDS="-*" >KEYWORDS="~x86 ~ppc ~sparc ~mips ~arm" >IUSE="build debug hardened ipv6 static" # nls is not supported yet >RESTRICT="nostrip" > ># 2004/11/16 the only binutils w/ relro support for uclibc >DEPEND="sys-devel/gcc" >RDEPEND="" >PROVIDE="virtual/glibc virtual/libc" > >S=${WORKDIR}/${MY_P} > >CPU_ARM="GENERIC_ARM ARM{610,710,720T,920T,922T,926T,_{SA110,SA1100,XSCALE}}" >CPU_MIPS="MIPS_ISA_{1,2,3,4,MIPS{32,64}}" >CPU_PPC="" >CPU_SH="SH{2,3,4,5}" >CPU_X86="GENERIC_386 {3,4,5,6}86 PENTIUM{II,III,4} K{6,7} ELAN CRUSOE WINCHIP{C6,2} CYRIXIII NEHEMIAH" >IUSE_UCLIBC_CPU="${CPU_ARM} ${CPU_MIPS} ${CPU_PPC} ${CPU_SH} ${CPU_X86}" >IUSE_UCLIBC_ENDIAN="LITTLE BIG" > >check_cpu_opts() { > local cpu_var="CPU_$(echo ${ARCH} | tr [a-z] [A-Z])" > 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:" > eval echo ${!cpu_var} > export UCLIBC_CPU="${UCLIBC_CPU_DEFAULT}" > else > local cpu found=0 > for cpu in $(eval echo ${!cpu_var}) ; do > [ "${UCLIBC_CPU}" = "${cpu}" ] && found=1 && 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 > > if [ -z "${UCLIBC_ENDIAN}" ] ; then > ewarn "You really should consider setting UCLIBC_ENDIAN" > ewarn "Otherwise, the build may choose the wrong default." > ewarn "Available CPU endians: little big" > export UCLIBC_ENDIAN="${UCLIBC_ENDIAN_DEFAULT}" > else > export UCLIBC_ENDIAN="$(echo ${UCLIBC_ENDIAN} | tr [a-z] [A-Z])" > if [ "${UCLIBC_ENDIAN}" != "LITTLE" -a "${UCLIBC_ENDIAN}" != "BIG" ] ; then > die "UCLIBC_ENDIAN may only be 'little' or 'big'" > fi > fi >} > >src_unpack() { > unpack ${A} > cd ${S} > check_cpu_opts > > ########## PATCHES ########## > > [ -n "${CVS_VER}" ] && \ > epatch ${DISTDIR}/${MY_P}-cvs-update-${CVS_VER}.patch.bz2 > > if [ -n "${PATCH_VER}" ] ; then > unpack ${MY_P}-patches-${PATCH_VER}.tar.bz2 > epatch ${WORKDIR}/patch > # math functions (sinf,cosf,tanf,atan2f,powf,fabsf,copysignf,scalbnf,rem_pio2f) > use build || epatch ${WORKDIR}/patch/math > fi > > # temporary until not in cvs, incorrect for some arms > epatch ${FILESDIR}/0.9.26/${P}-cvs-page_size.patch > > ########## CPU SELECTION ########## > > local target config_target > case ${ARCH} in > arm) target="arm"; config_target="GENERIC_ARM";; > mips) target="mips"; config_target="MIPS_ISA_1";; > ppc) target="powerpc"; config_target="no cpu-specific options";; > sh) target="sh"; config_target="SH4";; > x86) target="i386"; config_target="GENERIC_386";; > *) die "${ARCH} lists no defaults :/";; > esac > sed -i -e "s:default TARGET_i386:default TARGET_${target}:" \ > extra/Configs/Config.in > sed -i -e "s:default CONFIG_${config_target}:default CONFIG_${UCLIBC_CPU:-${config_target}}:" \ > extra/Configs/Config.${target} > > ########## CONFIG SETUP ########## > > make defconfig >/dev/null || die "could not config" > > for def in UCLIBC_PROFILING DO{DEBUG,ASSERTS} SUPPORT_LD_DEBUG{,_EARLY} ; do > sed -i -e "s:${def}=y:# ${def} is not set:" .config > done > if use debug ; then > echo "SUPPORT_LD_DEBUG=y" >> .config > echo "DODEBUG=y" >> .config > fi > > sed -i -e 's:^ARCH_.*_ENDIAN=y::' .config > echo "ARCH_${UCLIBC_ENDIAN}_ENDIAN=y" >> .config > > for def in DO_C99_MATH UCLIBC_HAS_{RPC,CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN_EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC,FTW} ; do > sed -i -e "s:# ${def} is not set:${def}=y:" .config > done > echo "UCLIBC_HAS_FULL_RPC=y" >> .config > echo "PTHREADS_DEBUG_SUPPORT=y" >> .config > > #if use nls ; then > # sed -i -e "s:# UCLIBC_HAS_LOCALE is not set:UCLIBC_HAS_LOCALE=y:" .config > # echo "UCLIBC_HAS_XLOCALE=n" >> .config > # echo "UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y" >> .config > # echo "UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y" >> .config > # # removed on 20040907 by mjn3 > # echo "UCLIBC_HAS_GETTEXT_AWARENESS=y" >> .config > # # on pax enabled kernels the locale files can't be built > # echo "UCLIBC_PREGENERATED_LOCALE_DATA=n" >> .config > #fi > # we disable LOCALE for any case, gettext has to be used > echo "UCLIBC_HAS_LOCALE=n" >> .config > > use ipv6 && sed -i -e "s:# UCLIBC_HAS_IPV6 is not set:UCLIBC_HAS_IPV6=y:" .config > > # uncomment if you miss wordexp (alsa-lib) > #use build || sed -i -e "s:# UCLIBC_HAS_WORDEXP is not set:UCLIBC_HAS_WORDEXP=y:" .config > > # we need to do it independently of hardened to get ssp.c built into libc > sed -i -e "s:# UCLIBC_SECURITY.*:UCLIBC_SECURITY=y:" .config > einfo "Enable Stack Smashing Protections support in ${P}" > echo "UCLIBC_HAS_SSP=y:" >> .config > echo "PROPOLICE_BLOCK_ABRT=n" >> .config > if use debug ; then > echo "PROPOLICE_BLOCK_SEGV=y" >> .config > echo "PROPOLICE_BLOCK_KILL=n" >> .config > else > echo "PROPOLICE_BLOCK_SEGV=n" >> .config > echo "PROPOLICE_BLOCK_KILL=y" >> .config > fi > > if use hardened ; then > if has ${ARCH} mips ppc x86 ; then > echo "UCLIBC_BUILD_PIE=y" >> .config > else > echo "UCLIBC_BUILD_PIE=n" >> .config > fi > > echo "UCLIBC_BUILD_SSP=y" >> .config > echo "UCLIBC_BUILD_RELRO=y" >> .config > echo "UCLIBC_BUILD_NOW=y" >> .config > echo "UCLIBC_BUILD_NOEXECSTACK=y" >> .config > else > echo "UCLIBC_BUILD_PIE=n" >> .config > echo "UCLIBC_BUILD_SSP=n" >> .config > echo "UCLIBC_BUILD_RELRO=n" >> .config > echo "UCLIBC_BUILD_NOW=n" >> .config > echo "UCLIBC_BUILD_NOEXECSTACK=n" >> .config > fi > > # we are building against system installed kernel headers > sed -i -e 's:KERNEL_SOURCE.*:KERNEL_SOURCE="/usr":' .config > > if [ "${PORTAGE_LIBC}" = "uClibc" ] ; then > sed -i \ > -e 's:SHARED_LIB_LOADER_PREFIX=.*:SHARED_LIB_LOADER_PREFIX="/lib":' \ > -e 's:DEVEL_PREFIX=.*:DEVEL_PREFIX="/usr":' \ > -e 's:RUNTIME_PREFIX=.*:RUNTIME_PREFIX="/":' \ > .config > fi > > yes "" | make -s oldconfig > /dev/null || die "could not make oldconfig" > > chmod +x extra/scripts/relative_path.sh > > cp .config myconfig > > emake clean >/dev/null || die "could not clean" >} > >src_compile() { > # running tests require this > use build || addwrite /dev/ptmx > cp myconfig .config > > #if use nls ; then > # # these can be built only if the build system supports locales (as of 0.9.26) > # emake -j1 headers > # cd extra/locale > # make clean > # find ./charmaps -name "*.pairs" > codesets.txt > # cp LOCALES locales.txt > # emake -j1 || die "could not make locales" > # cd ../.. > #fi > > emake -j1 || die "could not make" > if [ "${PORTAGE_LIBC}" = "uClibc" ] ; then > emake -j1 utils || die "could not make utils" > fi > > if ! use build ; then > if ! hasq maketest $RESTRICT ; then > # assert test fails on pax/grsec enabled kernels - normal > # vfork test fails in sandbox (both glibc/uclibc) > cd test; make; cd .. > fi > fi >} > >src_install() { > emake PREFIX=${D} install || die "install failed" > > # remove files coming from kernel-headers > # scsi is uclibc's own directory since cvs 20040212 > if [ "${PORTAGE_LIBC}" = "uClibc" ] ; then > rm -rf ${D}/usr/include/{asm,linux} > rm -f ${D}/usr/lib/lib*_pic.a > ! use static && use build && rm -f ${D}/usr/lib/lib*.a > > emake PREFIX=${D} install_utils || die "install-utils failed" > dodir /usr/bin > exeinto /usr/bin > doexe extra/scripts/getent > fi > > if ! use build ; then > dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3 > doman debian/*.1 > fi >} > >pkg_postinst() { >if [ "${PORTAGE_LIBC}" = "uClibc" ] ; then > # remove invalid symlinks if any > #local x= > #for x in TZ ld.so.conf ld.so.preload ; do > # [ ! -e "${ROOT}/etc/${x}" ] && rm -f ${ROOT}/etc/${x} > #done > > if [ ! -e "${ROOT}/etc/TZ" ] ; then > echo "Please remember to set your timezone in /etc/TZ." > echo "UTC" > ${ROOT}/etc/TZ > fi > > if [ ! -e "${ROOT}/etc/ld.so.conf" ] ; then > [ -d "${ROOT}/usr/X11R6/lib" \ > && echo "/usr/X11R6/lib" > ${ROOT}/etc/ld.so.conf \ > || > ${ROOT}/etc/ld.so.conf > fi > > # should we create an empty ld.so.preload? > # currently ld.so.preload support is not enabled > #if [ ! -e "${ROOT}/etc/ld.so.preload" ] ; then > # > ${ROOT}/etc/ld.so.preload > #fi > > if [ "${ROOT}" = "/" ] ; then > # update cache before reloading init > /sbin/ldconfig > # reload init ... > [ -x /sbin/init ] && /sbin/init U &> /dev/null > # add entries for alternatives (like minit) > fi >#else >#should we add the libdir on a non-uclibc based system to ld.so.conf? >fi >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 73699
:
45447
|
45449
|
45455
|
45458
|
45632
|
45633
|
45634
|
45635
|
45636
|
45640
|
45641