summaryrefslogtreecommitdiff
path: root/uclibc-binutils
diff options
context:
space:
mode:
authorGerald Britton <gbritton@doomcom.org>2003-09-28 23:34:12 +0000
committerGerald Britton <gbritton@doomcom.org>2003-09-28 23:34:12 +0000
commit99d28f01bfe62d99542159378744bfe08f866dc4 (patch)
tree5e0f3f998f9411637a5acc132daae4b7d5cb6904 /uclibc-binutils
parentf1326d679eb0e0f2ed52b49c7e36950db9b6694c (diff)
uclibc toolchain build updates
BKrev: 3f776ff4Ke3EKFXIlHJTaSTFYTBOrQ
Diffstat (limited to 'uclibc-binutils')
-rw-r--r--uclibc-binutils/uclibc-binutils-2.14.90.0.6.oe70
-rw-r--r--uclibc-binutils/uclibc-binutils-cross-2.14.90.0.6.oe41
2 files changed, 111 insertions, 0 deletions
diff --git a/uclibc-binutils/uclibc-binutils-2.14.90.0.6.oe b/uclibc-binutils/uclibc-binutils-2.14.90.0.6.oe
index e69de29bb2..995d2cafce 100644
--- a/uclibc-binutils/uclibc-binutils-2.14.90.0.6.oe
+++ b/uclibc-binutils/uclibc-binutils-2.14.90.0.6.oe
@@ -0,0 +1,70 @@
+inherit autotools
+
+DESCRIPTION := A GNU collection of binary utilities
+LICENSE := GPL
+MAINTAINER := Gerald Britton <gbritton@doomcom.org>
+
+DEPENDS := virtual/${CROSS}binutils virtual/${CROSS}gcc \
+ virtual/libc virtual/libc-headers patcher
+
+PACKAGES = ${PN} ${PN}-doc
+FILES_${PN} = ${includedir} ${libdir} ${bindir}/*
+
+SRC_URI := http://ftp.kernel.org/pub/linux/devel/binutils/binutils-${PV}.tar.bz2 \
+ file://${FILESDIR}/binutils-001_ld_makefile.patch;patch=1 \
+ file://${FILESDIR}/binutils-006_better_file_error.patch;patch=1 \
+ file://${FILESDIR}/binutils-009_signed_char_fix.patch;patch=1 \
+ file://${FILESDIR}/binutils-012_check_ldrunpath_length.patch;patch=1 \
+ file://${FILESDIR}/binutils-906-hjl_libtool_dso.patch;patch=1
+
+S := ${WORKDIR}/binutils-${PV}
+B := ${S}/build.${HOST_SYS}.${TARGET_SYS}
+
+EXTRA_OECONF := --enable-targets=${TARGET_SYS} \
+ --with-sysroot=${prefix} \
+ --with-lib-path=${prefix}/lib:/lib \
+ --enable-multilib \
+ --program-prefix=${TARGET_SYS}-
+
+# This is necessary due to a bug in the binutils Makefiles
+EXTRA_OEMAKE = configure-build-libiberty all
+
+export AR = ${CROSS}ar
+export AS = ${CROSS}as
+export LD = ${CROSS}ld
+export NM = ${CROSS}nm
+export RANLIB = ${CROSS}ranlib
+export OBJCOPY = ${CROSS}objcopy
+export OBJDUMP = ${CROSS}objdump
+
+export AR_FOR_TARGET = ${TARGET_SYS}-ar
+export AS_FOR_TARGET = ${TARGET_SYS}-as
+export LD_FOR_TARGET = ${TARGET_SYS}-ld
+export NM_FOR_TARGET = ${TARGET_SYS}-nm
+export RANLIB_FOR_TARGET = ${TARGET_SYS}-ranlib
+
+export CC_FOR_HOST = ${CCACHE} ${CROSS}gcc
+export CXX_FOR_HOST = ${CCACHE} ${CROSS}gcc
+
+export CC_FOR_BUILD = ${BUILD_CC}
+
+export CC = ${CCACHE} ${CROSS}gcc
+
+binutilsbuild_do_patch () {
+ oenote IN binutils patch
+ perl -i -p -e 's,#.*define.*ELF_DYNAMIC_INTERPRETER.*".*",#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0",;' `grep -lr ELF_DYNAMIC_INTERPRETER *`
+}
+
+python do_patch () {
+ oe.build.exec_func('base_do_patch', d)
+ oe.build.exec_func('binutilsbuild_do_patch', d)
+}
+
+do_install_append () {
+ cd ${D}/${bindir}
+ # Symlinks for if this is intended to be the only compiler
+ for p in ${TARGET_SYS}-* ; do
+ ln -s $p `echo $p | sed -e s,${TARGET_SYS}-,,`
+ done
+}
+
diff --git a/uclibc-binutils/uclibc-binutils-cross-2.14.90.0.6.oe b/uclibc-binutils/uclibc-binutils-cross-2.14.90.0.6.oe
index e69de29bb2..7a1642ecad 100644
--- a/uclibc-binutils/uclibc-binutils-cross-2.14.90.0.6.oe
+++ b/uclibc-binutils/uclibc-binutils-cross-2.14.90.0.6.oe
@@ -0,0 +1,41 @@
+inherit cross
+include uclibc-binutils-${PV}.oe
+PN := ${PN}-cross
+
+DEPENDS := patcher
+PROVIDES := virtual/${TARGET_SYS}-binutils
+
+PACKAGES =
+
+EXTRA_OECONF := --enable-targets=${TARGET_SYS} \
+ --with-sysroot=${prefix} \
+ --with-lib-path=${prefix}/usr/lib:${prefix}/lib \
+ --enable-multilib \
+ --program-prefix=${TARGET_SYS}-
+
+EXTRA_OEMAKE :=
+
+export CPPFLAGS =
+export CXXFLAGS =
+export CFLAGS =
+export LDFLAGS =
+
+prefix:=${CROSS_DIR}
+exec_prefix:=${CROSS_DIR}
+sysconfdir=${CROSS_DIR}/etc
+localstatedir=${CROSS_DIR}/var/lib
+
+do_stage () {
+ cd ${B}
+ make install
+ ${CROSS_DIR}/bin/${TARGET_SYS}-ar rv \
+ ${CROSS_DIR}/${TARGET_SYS}/lib/libg.a
+ for d in info man share/doc share/locale; do
+ rm -rf ${CROSS_DIR}/$d
+ done
+}
+
+do_install () {
+ true
+}
+