summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Ludd <solar@gentoo.org>2004-01-08 07:31:43 +0000
committerNed Ludd <solar@gentoo.org>2004-01-08 07:31:43 +0000
commit00b2cb866f9a21f83f10a8268f3bd8fb44c90d6c (patch)
tree73620a0ffac9a1f8e1f04ae0e4cc708c07941553 /dev-libs
parentfirebird is x86 only on linux at the moment (diff)
downloadgentoo-2-00b2cb866f9a21f83f10a8268f3bd8fb44c90d6c.tar.gz
gentoo-2-00b2cb866f9a21f83f10a8268f3bd8fb44c90d6c.tar.bz2
gentoo-2-00b2cb866f9a21f83f10a8268f3bd8fb44c90d6c.zip
Attached is one patch needed to really enable FORCE_SHAREABLE_SEGMENTS
option, the other is to build uclibc against the installed kernel-headers (not kernel-source) - Peter S. Mazinger gentoo-embedded mailing list.
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/uclibc/ChangeLog11
-rw-r--r--dev-libs/uclibc/Manifest8
-rw-r--r--dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-Makefile.patch38
-rw-r--r--dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-pie-option.patch18
-rw-r--r--dev-libs/uclibc/files/digest-uclibc-0.9.26-r11
-rw-r--r--dev-libs/uclibc/uclibc-0.9.26-r1.ebuild72
6 files changed, 145 insertions, 3 deletions
diff --git a/dev-libs/uclibc/ChangeLog b/dev-libs/uclibc/ChangeLog
index 8f48a201d3ce..2e60a84c12d1 100644
--- a/dev-libs/uclibc/ChangeLog
+++ b/dev-libs/uclibc/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-libs/uclibc
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/uclibc/ChangeLog,v 1.17 2004/01/04 06:04:53 solar Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/uclibc/ChangeLog,v 1.18 2004/01/08 07:31:43 solar Exp $
+
+*uclibc-0.9.26-r1 (08 Jan 2004)
+
+ 08 Jan 2004; <solar@gentoo.org> uclibc-0.9.26-r1.ebuild,
+ files/0.9.26/uClibc-0.9.26-Makefile.patch,
+ files/0.9.26/uClibc-0.9.26-pie-option.patch:
+ Attached is one patch needed to really enable FORCE_SHAREABLE_SEGMENTS
+ option, the other is to build uclibc against the installed kernel-headers
+ (not kernel-source) - Peter S. Mazinger gentoo-embedded mailing list.
*uclibc-0.9.26 (04 Jan 2004)
diff --git a/dev-libs/uclibc/Manifest b/dev-libs/uclibc/Manifest
index 0a8c65c7b649..6f124e897403 100644
--- a/dev-libs/uclibc/Manifest
+++ b/dev-libs/uclibc/Manifest
@@ -1,12 +1,16 @@
-MD5 a7eea09b74d1f60ea630123de8234afa ChangeLog 3356
+MD5 f257b27e3209f4f32b155f910bf1e156 ChangeLog 3764
MD5 f694d40cf09e6c5511ae52f755a5ffe5 metadata.xml 998
MD5 54cc65ccbad794d94d98e2bdbd4bf891 uclibc-0.9.23.ebuild 1396
-MD5 016c81b475f0e47a8a529412a17a3adb uclibc-0.9.21.ebuild 1083
+MD5 ad1ca4c1d436f889095d3c53590a8c95 uclibc-0.9.26-r1.ebuild 1923
MD5 2dfccab5a9f72e0c8ae685859bef4c6f uclibc-0.9.26.ebuild 1653
+MD5 016c81b475f0e47a8a529412a17a3adb uclibc-0.9.21.ebuild 1083
MD5 d16f404e56abc9f0ab5c372b88a6905d files/Makefile-cp-order-fix.patch 897
MD5 799adc7fb6ec9ffd653831cea1d32dd5 files/digest-uclibc-0.9.21 67
+MD5 cf4a11cd99eb78be459f253cf9c53030 files/digest-uclibc-0.9.26-r1 67
MD5 cf4a11cd99eb78be459f253cf9c53030 files/digest-uclibc-0.9.26 67
MD5 36a9b2869403944131702c133e2f0fd3 files/digest-uclibc-0.9.23 67
+MD5 2416f5e954ccb8b39b1c0d6a3cf5e827 files/0.9.26/uClibc-0.9.26-Makefile.patch 1478
+MD5 bdd1e91ee48fb8be0d28cabdfcfdf3ff files/0.9.26/uClibc-0.9.26-pie-option.patch 863
MD5 17ecd222df47b5253f35787097440a5a files/0.9.23/uClibc-0.9.23-etdyn.patch 5832
MD5 298b7b42f80e1f8ae395df81c47eb213 files/0.9.23/uClibc-0.9.23-flipturn.patch 1821
MD5 4216cdf86d54f45fa04cb44a5425b3ff files/0.9.23/uClibc-0.9.23-pax.patch 3607
diff --git a/dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-Makefile.patch b/dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-Makefile.patch
new file mode 100644
index 000000000000..965ace9c0cb3
--- /dev/null
+++ b/dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-Makefile.patch
@@ -0,0 +1,38 @@
+--- extra/scripts/fix_includes.sh.mps 2004-01-05 11:14:05.000000000 +0100
++++ extra/scripts/fix_includes.sh 2004-01-05 12:25:11.000000000 +0100
+@@ -59,10 +59,10 @@
+ esac;
+ done;
+
+-if [ ! -f "$KERNEL_SOURCE/Makefile" ]; then
++if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
+ echo "";
+ echo "";
+- echo "The file $KERNEL_SOURCE/Makefile is missing!";
++ echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!";
+ echo "Perhaps your kernel source is broken?"
+ echo "";
+ echo "";
+@@ -78,8 +78,21 @@
+ exit 1;
+ fi;
+
+-# set current VERSION, PATCHLEVEL, SUBLEVEL, EXTERVERSION
++if [ -f "$KERNEL_SOURCE/Makefile" ] ; then
++# set current VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION
+ eval `sed -n -e 's/^\([A-Z]*\) = \([0-9]*\)$/\1=\2/p' -e 's/^\([A-Z]*\) = \(-[-a-z0-9]*\)$/\1=\2/p' $KERNEL_SOURCE/Makefile`
++else
++ver=`grep UTS_RELEASE $KERNEL_SOURCE/include/linux/version.h | cut -d '"' -f 2`
++VERSION=`echo "$ver" | cut -d '.' -f 1`
++PATCHLEVEL=`echo "$ver" | cut -d '.' -f 2`
++if echo "$ver" | grep -q '-' ; then
++SUBLEVEL=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.//" | cut -d '-' -f 1`
++EXTRAVERSION=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-//"`
++else
++SUBLEVEL=`echo "$ver" | cut -d '.' -f 3`
++#EXTRAVERSION=
++fi
++fi
+ if [ -z "$VERSION" -o -z "$PATCHLEVEL" -o -z "$SUBLEVEL" ]
+ then
+ echo "Unable to determine version for kernel headers"
diff --git a/dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-pie-option.patch b/dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-pie-option.patch
new file mode 100644
index 000000000000..41beaea78abc
--- /dev/null
+++ b/dev-libs/uclibc/files/0.9.26/uClibc-0.9.26-pie-option.patch
@@ -0,0 +1,18 @@
+--- extra/Configs/Config.in.mps 2004-01-05 11:07:27.000000000 +0100
++++ extra/Configs/Config.in 2004-01-05 11:10:58.000000000 +0100
+@@ -180,13 +180,14 @@
+ config UCLIBC_PIE_SUPPORT
+ bool "Support ET_DYN in shared library loader"
+ select FORCE_SHAREABLE_TEXT_SEGMENTS
++ select UCLIBC_COMPLETELY_PIC
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ support ET_DYN/PIE executables.
+ It requires binutils-2.14.90.0.6 or later and the usage of the
+ -pie option.
+- More about ET_DYN/PIE binaries on <http://pageexec.virtualave.net/> .
++ More about ET_DYN/PIE binaries on <http://pax.grsecurity.net/> .
+ WARNING: This option also enables FORCE_SHAREABLE_TEXT_SEGMENTS, so all
+ libraries have to be built with -fPIC or -fpic, and all assembler
+ functions must be written as position independent code (PIC).
diff --git a/dev-libs/uclibc/files/digest-uclibc-0.9.26-r1 b/dev-libs/uclibc/files/digest-uclibc-0.9.26-r1
new file mode 100644
index 000000000000..a089f9d8c86e
--- /dev/null
+++ b/dev-libs/uclibc/files/digest-uclibc-0.9.26-r1
@@ -0,0 +1 @@
+MD5 7212713c432dd0de6ec2140c2a6212e4 uClibc-0.9.26.tar.bz2 1604543
diff --git a/dev-libs/uclibc/uclibc-0.9.26-r1.ebuild b/dev-libs/uclibc/uclibc-0.9.26-r1.ebuild
new file mode 100644
index 000000000000..974bfe47e89c
--- /dev/null
+++ b/dev-libs/uclibc/uclibc-0.9.26-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/uclibc/uclibc-0.9.26-r1.ebuild,v 1.1 2004/01/08 07:31:43 solar Exp $
+
+inherit eutils
+
+MY_P="${P/ucl/uCl}"
+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"
+IUSE="etdyn"
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~mips"
+
+DEPEND="sys-devel/gcc"
+PROVIDE="virtual/glibc"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+ local PIE=0
+ local SSP=0
+
+ unpack ${A}
+ cd ${S}
+
+ if [ "${PV}" == "0.9.26" ] ; then
+ # patch needed to really enable FORCE_SHAREABLE_SEGMENTS
+ # when building pic code. submitted by Peter S. Mazinger
+ epatch ${FILESDIR}/${PV}/uClibc-${PV}-pie-option.patch
+ epatch ${FILESDIR}/${PV}/uClibc-${PV}-Makefile.patch
+ fi
+
+ # fixup for install perms
+ sed -i -e "s:-fa:-dRf:g" Makefile
+
+ make defconfig >/dev/null || die "could not config"
+ for def in UCLIBC_{HAS_LOCALE,PROFILING} DO{DEBUG,ASSERTS} SUPPORT_LD_DEBUG{,_EARLY} ; do
+ sed -i "s:${def}=y:# ${def} is not set:" .config
+ done
+
+ if [ `use x86` ] ; then
+ use etdyn && PIC=1
+ [ "`is-flag -fPIC`" == "true" ] && PIC=1
+ fi
+
+ [ "`is-flag -fstack-protector`" == "true" ] && SSP=1
+ [ "`is-flag -fstack-protector-all`" == "true" ] && SSP=1
+
+ if [ "${PIC}" == 1 ] ; then
+ einfo "Enable Position Independent Executable support in ${P}"
+ sed -i -e "s:# UCLIBC_PIE_SUPPORT.*:UCLIBC_PIE_SUPPORT=y:" .config
+ fi
+ if [ "${SSP}" == 1 ]; then
+ einfo "Enable Stack Smashing Protections support in ${P}"
+ sed -i -e "s:# UCLIBC_PROPOLICE.*:UCLIBC_PROPOLICE=y:" .config
+ fi
+
+ cp .config myconfig
+
+ emake clean >/dev/null || die "could not clean"
+}
+
+src_compile() {
+ mv myconfig .config
+ emake -j1 || die "could not make"
+}
+
+src_install() {
+ emake PREFIX=${D} install || die "install failed"
+}