Merge openembedded@openembedded.bkbits.net:packages
authorGerald Britton <gbritton@doomcom.org>
Fri, 5 Dec 2003 06:54:57 +0000 (06:54 +0000)
committerGerald Britton <gbritton@doomcom.org>
Fri, 5 Dec 2003 06:54:57 +0000 (06:54 +0000)
into doomcom.org:/home/gbritton/devel/OE/packages

2003/12/05 01:54:33-05:00 doomcom.org!gbritton
big toolchain cleanup, mostly uclibc

BKrev: 3fd02bc16TXaLTReYe_27R0jRFcAcw

20 files changed:
binutils/binutils-2.14.90.0.6/binutils-100_cflags_for_build.patch [moved from gcc/gcc-3.3.1/gcc-001-disable-mathf.patch with 100% similarity]
binutils/binutils-cross_2.14.90.0.6.oe
binutils/binutils-uclibc-cross_2.14.90.0.6.oe
binutils/binutils_2.14.90.0.6.oe
gcc/gcc-3.3.1/gcc-006-include-search.patch [deleted file]
gcc/gcc-3.3.1/gcc-810-libstd++-locale.patch [deleted file]
gcc/gcc-cross_3.3.1.oe [deleted file]
gcc/gcc-cross_3.3.2.oe
gcc/gcc-initial-cross_3.3.1.oe [deleted file]
gcc/gcc-initial-cross_3.3.2.oe
gcc/gcc-initial-uclibc-cross_3.3.1.oe [deleted file]
gcc/gcc-initial-uclibc-cross_3.3.2.oe
gcc/gcc-uclibc-cross_3.3.1.oe [deleted file]
gcc/gcc-uclibc-cross_3.3.2.oe
gcc/gcc-uclibc_3.3.1.oe [deleted file]
gcc/gcc-uclibc_3.3.2.oe
gcc/gcc_3.3.1.oe [deleted file]
gcc/gcc_3.3.2.oe
uclibc/uclibc-initial_0.9.21.oe
uclibc/uclibc_0.9.21.oe

index 3ad13e5..7d5e996 100644 (file)
@@ -3,8 +3,28 @@ inherit cross
 PROVIDES = virtual/${TARGET_PREFIX}binutils
 DEPENDS = patcher
 FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}
+PACKAGES =
 
-D=${CROSS_DIR}
-do_install () {
+do_stage () {
        oe_runmake install
+
+       # We don't really need these, so we'll remove them...
+       rm -rf ${CROSS_DIR}/lib/ldscripts
+       rm -rf ${CROSS_DIR}/share/info
+       rm -rf ${CROSS_DIR}/share/locale
+       rm -rf ${CROSS_DIR}/share/man
+       rmdir ${CROSS_DIR}/share || :
+       rmdir ${CROSS_DIR}/usr/lib/gcc-lib || :
+       rmdir ${CROSS_DIR}/usr/lib || :
+       rmdir ${CROSS_DIR}/usr || :
+
+       # We want to move this into the target specific location
+       mkdir -p ${CROSS_DIR}/${TARGET_SYS}/lib
+       mv -f ${CROSS_DIR}/lib/libiberty.a ${CROSS_DIR}/${TARGET_SYS}/lib
+       rmdir ${CROSS_DIR}/lib || :
 }
+
+do_install () {
+       :
+}
+
index feada83..6648d5d 100644 (file)
@@ -3,3 +3,28 @@ inherit cross
 PROVIDES = virtual/${TARGET_PREFIX}binutils
 DEPENDS = patcher
 FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}
+PACKAGES =
+
+do_stage () {
+       oe_runmake install
+
+       # We don't really need these, so we'll remove them...
+       rm -rf ${CROSS_DIR}/lib/ldscripts
+       rm -rf ${CROSS_DIR}/share/info
+       rm -rf ${CROSS_DIR}/share/locale
+       rm -rf ${CROSS_DIR}/share/man
+       rmdir ${CROSS_DIR}/share || :
+       rmdir ${CROSS_DIR}/usr/lib/gcc-lib || :
+       rmdir ${CROSS_DIR}/usr/lib || :
+       rmdir ${CROSS_DIR}/usr || :
+
+       # We want to move this into the target specific location
+       mkdir -p ${CROSS_DIR}/${TARGET_SYS}/lib
+       mv -f ${CROSS_DIR}/lib/libiberty.a ${CROSS_DIR}/${TARGET_SYS}/lib
+       rmdir ${CROSS_DIR}/lib || :
+}
+
+do_install () {
+       :
+}
+
index 99b1f85..19c628e 100644 (file)
@@ -5,16 +5,37 @@ LICENSE := GPL
 MAINTAINER := Gerald Britton <gbritton@doomcom.org>
 
 DEPENDS := virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/libc virtual/libc-headers patcher
+           virtual/libc patcher
 
-PACKAGES = ${PN} ${PN}-doc
-FILES_${PN} = ${includedir} ${libdir} ${bindir}/*
+PACKAGES = ${PN} ${PN}-dev ${PN}-doc ${PN}-symlinks
+
+FILES_${PN} =  \
+       ${bindir}/${TARGET_PREFIX}*
+
+FILES_${PN}-dev = \
+       ${includedir} \
+       ${libdir}/*.a
+
+FILES_${PN}-symlinks = \
+       ${bindir}/addr2line \
+       ${bindir}/ar \
+       ${bindir}/as \
+       ${bindir}/ld \
+       ${bindir}/nm \
+       ${bindir}/objcopy \
+       ${bindir}/objdump \
+       ${bindir}/ranlib \
+       ${bindir}/readelf \
+       ${bindir}/size \
+       ${bindir}/strings \
+       ${bindir}/strip
 
 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-100_cflags_for_build.patch;patch=1 \
            file://${FILESDIR}/binutils-906-hjl_libtool_dso.patch;patch=1 \
            file://${FILESDIR}/configure.patch;patch=1
 
@@ -24,6 +45,7 @@ B := ${S}/build.${HOST_SYS}.${TARGET_SYS}
 EXTRA_OECONF := --enable-targets=${TARGET_SYS} \
                 --with-sysroot=${prefix} \
                 --with-lib-path=${prefix}/lib:/lib \
+                --disable-shared \
                 --enable-multilib \
                 --program-prefix=${TARGET_PREFIX}
 
@@ -57,12 +79,18 @@ do_configure () {
 
 do_install () {
        autotools_do_install
+
+       # We don't really need these, so we'll remove them...
+       rm -rf ${D}/${libdir}/ldscripts
+
+       # Install the libiberty header
+       install -m 644 ${S}/include/ansidecl.h ${D}/${includedir}
+       install -m 644 ${S}/include/libiberty.h ${D}/${includedir}
+
        cd ${D}/${bindir}
-       # Symlinks for if this is intended to be the only compiler
-       (
-               for p in ${TARGET_SYS}-* ; do
-                       ln -sf $p `echo $p | sed -e s,${TARGET_SYS}-,,`
-               done
-               true
-       )
+
+       # Symlinks for ease of running these on the native target
+       for p in ${TARGET_SYS}-* ; do
+               ln -sf $p `echo $p | sed -e s,${TARGET_SYS}-,,`
+       done
 }
diff --git a/gcc/gcc-3.3.1/gcc-006-include-search.patch b/gcc/gcc-3.3.1/gcc-006-include-search.patch
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/gcc/gcc-3.3.1/gcc-810-libstd++-locale.patch b/gcc/gcc-3.3.1/gcc-810-libstd++-locale.patch
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/gcc/gcc-cross_3.3.1.oe b/gcc/gcc-cross_3.3.1.oe
deleted file mode 100644 (file)
index c736672..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-include gcc_${PV}.oe
-inherit cross
-FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}
-
-DEPENDS := virtual/${TARGET_SYS}-binutils \
-           virtual/glibc virtual/glibc-headers patcher
-PROVIDES := virtual/${TARGET_SYS}-gcc \
-            virtual/${TARGET_SYS}-g++
-
-PACKAGES =
-
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
-                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
-                --enable-target-optspace \
-                --with-gnu-ld \
-                --enable-languages=c,c++ \
-                --enable-shared \
-                --enable-multilib \
-                --program-prefix=${TARGET_SYS}-
-
-export CPPFLAGS =
-export CXXFLAGS =
-export CFLAGS =
-export LDFLAGS =
-
-do_configure_prepend () {
-       export CC="${BUILD_CC}"
-       export AR="${TARGET_SYS}-ar"
-       export RANLIB="${TARGET_SYS}-ranlib"
-       export LD="${TARGET_SYS}-ld"
-       export NM="${TARGET_SYS}-nm"
-}
-
-do_compile_prepend () {
-       export CC="${BUILD_CC}"
-       export AR_FOR_TARGET="${TARGET_SYS}-ar"
-       export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib"
-       export LD_FOR_TARGET="${TARGET_SYS}-ld"
-       export NM_FOR_TARGET="${TARGET_SYS}-nm"
-       export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc"
-}
-
-do_stage_append () {
-#      # Cleanup after gcc's --program-prefix failing..
-#      ( cd ${CROSS_DIR}/bin ; for p in ${TARGET_SYS}-* ; do
-#              mv $p `echo $p | sed -e s,${TARGET_SYS},${TARGET_ARCH}-uclibc,`
-#      done )
-
-       rm -f ${CROSS_DIR}/bin/gccbug ${CROSS_DIR}/bin/gcov
-       for d in info man share/doc share/locale ; do
-               rm -rf ${CROSS_DIR}/$d
-       done
-}
index 0ccdc4e..9601417 100644 (file)
@@ -2,14 +2,12 @@ include gcc_${PV}.oe
 inherit cross
 FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}
 
-DEPENDS := virtual/${TARGET_SYS}-binutils \
-           virtual/glibc virtual/glibc-headers patcher
-PROVIDES := virtual/${TARGET_SYS}-gcc \
-            virtual/${TARGET_SYS}-g++
+DEPENDS := virtual/${TARGET_PREFIX}binutils glibc patcher
+PROVIDES := virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++
 
 PACKAGES =
 
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
+EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/local \
                 --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
                 --enable-target-optspace \
                 --with-gnu-ld \
@@ -42,13 +40,33 @@ do_compile_prepend () {
 }
 
 do_stage_append () {
-#      # Cleanup after gcc's --program-prefix failing..
-#      ( cd ${CROSS_DIR}/bin ; for p in ${TARGET_SYS}-* ; do
-#              mv $p `echo $p | sed -e s,${TARGET_SYS},${TARGET_ARCH}-uclibc,`
-#      done )
-
-       rm -f ${CROSS_DIR}/bin/gccbug ${CROSS_DIR}/bin/gcov
        for d in info man share/doc share/locale ; do
                rm -rf ${CROSS_DIR}/$d
        done
+
+       # These aren't useful on the cross toolchain
+       rm -f ${CROSS_DIR}/bin/*gcov
+       rm -f ${CROSS_DIR}/bin/*gccbug
+
+       # Fix a few include links so cross builds are happier
+       if [ ! -e ${STAGING_DIR}/target/include/c++ ]; then
+               mkdir -p ${STAGING_DIR}/target/include
+               ln -s ${CROSS_DIR}/${TARGET_SYS}/include/c++ \
+                       ${STAGING_DIR}/target/include/
+       fi
+
+       # We use libiberty from binutils
+       rm -f ${CROSS_DIR}/lib/libiberty.a
+
+       # We probably don't need these
+       rmdir ${CROSS_DIR}/include || :
+
+       # We don't really need to keep this around
+       rm -rf ${CROSS_DIR}/share
+}
+
+# Kill the install so we get no packages (we're the cross compiler)
+do_install () {
+       :
 }
+
diff --git a/gcc/gcc-initial-cross_3.3.1.oe b/gcc/gcc-initial-cross_3.3.1.oe
deleted file mode 100644 (file)
index 2afe422..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-include gcc-cross_${PV}.oe
-
-DEPENDS := virtual/${TARGET_SYS}-binutils \
-           virtual/glibc-headers patcher
-PROVIDES := virtual/${TARGET_SYS}-gcc-initial
-
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
-                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
-                --enable-target-optspace \
-                --disable-nls \
-                --with-gnu-ld \
-                --enable-languages=c \
-                --disable-shared \
-               --disable-threads \
-                --enable-multilib \
-                --program-prefix=${TARGET_SYS}-
index e69de29..d687401 100644 (file)
@@ -0,0 +1,15 @@
+include gcc-cross_${PV}.oe
+
+DEPENDS := virtual/${TARGET_PREFIX}binutils glibc-initial patcher
+PROVIDES := virtual/${TARGET_PREFIX}gcc-initial
+
+EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/local \
+                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
+                --enable-target-optspace \
+                --disable-nls \
+                --with-gnu-ld \
+                --enable-languages=c \
+                --disable-shared \
+               --disable-threads \
+                --enable-multilib \
+                --program-prefix=${TARGET_SYS}-
diff --git a/gcc/gcc-initial-uclibc-cross_3.3.1.oe b/gcc/gcc-initial-uclibc-cross_3.3.1.oe
deleted file mode 100644 (file)
index 8ed3f74..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-include gcc-uclibc-cross_${PV}.oe
-
-DEPENDS := virtual/${TARGET_SYS}-binutils \
-           virtual/uclibc-headers patcher
-PROVIDES := virtual/${TARGET_SYS}-gcc-initial
-
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
-                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
-                --enable-target-optspace \
-                --disable-nls \
-                --with-gnu-ld \
-                --disable-__cxa_atexit \
-                --enable-languages=c \
-                --disable-shared \
-                --enable-multilib \
-                --program-prefix=${TARGET_SYS}-
index 7fb689e..2705e06 100644 (file)
@@ -1,10 +1,9 @@
 include gcc-uclibc-cross_${PV}.oe
 
-DEPENDS := virtual/${TARGET_PREFIX}binutils \
-           virtual/uclibc-headers-initial patcher
+DEPENDS := virtual/${TARGET_PREFIX}binutils uclibc-initial patcher
 PROVIDES := virtual/${TARGET_PREFIX}gcc-initial
 
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
+EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/local \
                 --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
                 --enable-target-optspace \
                 --disable-nls \
diff --git a/gcc/gcc-uclibc-cross_3.3.1.oe b/gcc/gcc-uclibc-cross_3.3.1.oe
deleted file mode 100644 (file)
index 703c1b9..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-inherit cross
-include gcc-uclibc_${PV}.oe
-
-DEPENDS := virtual/${TARGET_SYS}-binutils \
-           virtual/uclibc virtual/uclibc-headers patcher
-PROVIDES := virtual/${TARGET_SYS}-gcc \
-            virtual/${TARGET_SYS}-g++
-
-PACKAGES =
-
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
-                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
-                --enable-target-optspace \
-                --disable-nls \
-                --with-gnu-ld \
-                --disable-__cxa_atexit \
-                --enable-languages=c,c++ \
-                --enable-shared \
-                --enable-multilib \
-                --program-prefix=${TARGET_SYS}-
-
-export CPPFLAGS =
-export CXXFLAGS =
-export CFLAGS =
-export LDFLAGS =
-
-do_configure_prepend () {
-       export CC="${BUILD_CC}"
-       export AR="${TARGET_SYS}-ar"
-       export RANLIB="${TARGET_SYS}-ranlib"
-       export LD="${TARGET_SYS}-ld"
-       export NM="${TARGET_SYS}-nm"
-}
-
-do_compile_prepend () {
-       export CC="${BUILD_CC}"
-       export AR_FOR_TARGET="${TARGET_SYS}-ar"
-       export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib"
-       export LD_FOR_TARGET="${TARGET_SYS}-ld"
-       export NM_FOR_TARGET="${TARGET_SYS}-nm"
-       export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc"
-}
-
-do_stage_append () {
-#      # Cleanup after gcc's --program-prefix failing..
-#      ( cd ${CROSS_DIR}/bin ; for p in ${TARGET_SYS}-* ; do
-#              mv $p `echo $p | sed -e s,${TARGET_SYS},${TARGET_ARCH}-uclibc,`
-#      done )
-
-       rm -f ${CROSS_DIR}/bin/gccbug ${CROSS_DIR}/bin/gcov
-       for d in info man share/doc share/locale ; do
-               rm -rf ${CROSS_DIR}/$d
-       done
-}
index 2c215c3..1ba6237 100644 (file)
@@ -1,14 +1,12 @@
 inherit cross
 include gcc-uclibc_${PV}.oe
 
-DEPENDS := virtual/${TARGET_PREFIX}binutils \
-           virtual/uclibc virtual/uclibc-headers patcher
-PROVIDES := virtual/${TARGET_PREFIX}gcc \
-            virtual/${TARGET_PREFIX}g++
+DEPENDS := virtual/${TARGET_PREFIX}binutils uclibc patcher
+PROVIDES := virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++
 
 PACKAGES =
 
-EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
+EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/local \
                 --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
                 --enable-target-optspace \
                 --disable-nls \
@@ -43,20 +41,33 @@ do_compile_prepend () {
 }
 
 do_stage_append () {
-#      # Cleanup after gcc's --program-prefix failing..
-#      ( cd ${CROSS_DIR}/bin ; for p in ${TARGET_SYS}-* ; do
-#              mv $p `echo $p | sed -e s,${TARGET_SYS},${TARGET_ARCH}-uclibc,`
-#      done )
-
-       rm -f ${CROSS_DIR}/bin/gccbug ${CROSS_DIR}/bin/gcov
        for d in info man share/doc share/locale ; do
                rm -rf ${CROSS_DIR}/$d
        done
 
+       # These aren't useful on the cross toolchain
+       rm -f ${CROSS_DIR}/bin/*gcov
+       rm -f ${CROSS_DIR}/bin/*gccbug
+
        # Fix a few include links so cross builds are happier
        if [ ! -e ${STAGING_DIR}/target/include/c++ ]; then
                mkdir -p ${STAGING_DIR}/target/include
                ln -s ${CROSS_DIR}/${TARGET_SYS}/include/c++ \
                        ${STAGING_DIR}/target/include/
        fi
+
+       # We use libiberty from binutils
+       rm -f ${CROSS_DIR}/lib/libiberty.a
+
+       # We probably don't need this
+       rmdir ${CROSS_DIR}/include || :
+
+       # We don't really need to keep this around
+       rm -rf ${CROSS_DIR}/share
+}
+
+# Kill the install so we get no packages (we're the cross compiler)
+do_install () {
+       :
 }
+
diff --git a/gcc/gcc-uclibc_3.3.1.oe b/gcc/gcc-uclibc_3.3.1.oe
deleted file mode 100644 (file)
index 462541e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-include gcc_${PV}.oe
-FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}
-
-gccbuild_do_patch () {
-       #
-       # Hack things to use the correct shared lib loader
-       #
-       LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" .`
-       if [ -n "$LIST" ] ; then
-               perl -i -p -e "s,-dynamic-linker.*\.so[\.0-9]*},-dynamic-linker /lib/ld-uClibc.so.0},;" $LIST
-       fi
-
-       #
-       # Prevent system glibc start files from leaking in uninvited...
-       #
-       perl -i -p -e "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 = \"${CROSS_DIR}/${TARGET_SYS}/lib/\";,;" gcc/gcc.c
-       perl -i -p -e "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 = \"${CROSS_DIR}/${TARGET_SYS}/usr/lib/\";,;" gcc/gcc.c
-
-       #
-       # Prevent system glibc include files from leaking in uninvited...
-       #
-       perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in
-       perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in
-       perl -i -p -e "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \"${CROSS_DIR}/${TARGET_SYS}/include\",;" gcc/cppdefault.h
-
-       #
-       # Prevent system glibc libraries from being found by collect2 
-       # when it calls locatelib() and rummages about the system looking 
-       # for libraries with the correct name...
-       #
-       perl -i -p -e "s,\"/lib,\"${CROSS_DIR}/${TARGET_SYS}/lib,g;" \
-               gcc/collect2.c
-       perl -i -p -e "s,\"/usr/,\"${CROSS_DIR}/${TARGET_SYS}/usr/,g;" \
-               gcc/collect2.c
-
-       #
-       # Prevent gcc from using the unwind-dw2-fde-glibc code
-       #
-       perl -i -p -e "s,^#ifndef inhibit_libc,#define inhibit_libc\n#ifndef inhibit_libc,g;" gcc/unwind-dw2-fde-glibc.c
-}
-
-python do_patch () {
-       oe.build.exec_func('base_do_patch', d)
-       oe.build.exec_func('gccbuild_do_patch', d)
-}
-
index e69de29..bfa276b 100644 (file)
@@ -0,0 +1,89 @@
+include gcc_${PV}.oe
+FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}
+
+DESCRIPTION := The GNU cc and gcc C compilers (uclibc).
+LICENSE := GPL
+MAINTAINER := Gerald Britton <gbritton@doomcom.org>
+
+# This will ONLY build to this target
+TARGET_VENDOR := -uclibc
+TARGET_SYS := ${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}
+TARGET_PREFIX := ${TARGET_SYS}-
+
+DEPENDS := virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \
+           uclibc patcher
+
+PACKAGES = ${PN} ${PN}-symlinks \
+           ${PN}-c++ ${PN}-c++-symlinks \
+           uclibc-libgcc uclibc-libstdc++ uclibc-libstdc++-dev \
+           ${PN}-doc
+
+# The rest of these are properly defined in gcc_${PV}.oe
+FILES_uclibc-libgcc = ${FILES_libgcc}
+FILES_uclibc-libstdc++ = ${FILES_libstdc++}
+FILES_uclibc-libstdc++-dev = \
+       ${includedir}/c++/${PV}-uclibc \
+       ${libdir}/libstdc++.so \
+       ${libdir}/libstdc++.la \
+       ${libdir}/libstdc++.a \
+       ${libdir}/libsupc++.la \
+       ${libdir}/libsupc++.a
+
+SRC_URI_append = " file://${FILESDIR}/gcc-001-disable-mathf.patch;patch=1 \
+                   file://${FILESDIR}/gcc-006-include-search.patch;patch=1 \
+                   file://${FILESDIR}/gcc-810-libstd++-locale.patch;patch=1"
+
+EXTRA_OECONF := --with-local-prefix=/usr/local \
+                --with-gxx-include-dir=${includedir}/c++/${PV}-uclibc \
+                --enable-target-optspace \
+                --disable-nls \
+                --with-gnu-ld \
+                --disable-__cxa_atexit \
+                --enable-languages=c,c++ \
+                --enable-shared \
+                --enable-multilib \
+                --program-prefix=${TARGET_PREFIX}
+
+gccbuild_do_patch () {
+       #
+       # Hack things to use the correct shared lib loader
+       #
+       LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" .`
+       if [ -n "$LIST" ] ; then
+               perl -i -p -e "s,-dynamic-linker.*\.so[\.0-9]*},-dynamic-linker /lib/ld-uClibc.so.0},;" $LIST
+       fi
+
+       #
+       # Prevent system glibc start files from leaking in uninvited...
+       #
+       perl -i -p -e "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 = \"${CROSS_DIR}/${TARGET_SYS}/lib/\";,;" gcc/gcc.c
+       perl -i -p -e "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 = \"${CROSS_DIR}/${TARGET_SYS}/usr/lib/\";,;" gcc/gcc.c
+
+       #
+       # Prevent system glibc include files from leaking in uninvited...
+       #
+       perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in
+       perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in
+       perl -i -p -e "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \"${CROSS_DIR}/${TARGET_SYS}/include\",;" gcc/cppdefault.h
+
+       #
+       # Prevent system glibc libraries from being found by collect2 
+       # when it calls locatelib() and rummages about the system looking 
+       # for libraries with the correct name...
+       #
+       perl -i -p -e "s,\"/lib,\"${CROSS_DIR}/${TARGET_SYS}/lib,g;" \
+               gcc/collect2.c
+       perl -i -p -e "s,\"/usr/,\"${CROSS_DIR}/${TARGET_SYS}/usr/,g;" \
+               gcc/collect2.c
+
+       #
+       # Prevent gcc from using the unwind-dw2-fde-glibc code
+       #
+       perl -i -p -e "s,^#ifndef inhibit_libc,#define inhibit_libc\n#ifndef inhibit_libc,g;" gcc/unwind-dw2-fde-glibc.c
+}
+
+python do_patch () {
+       oe.build.exec_func('base_do_patch', d)
+       oe.build.exec_func('gccbuild_do_patch', d)
+}
+
diff --git a/gcc/gcc_3.3.1.oe b/gcc/gcc_3.3.1.oe
deleted file mode 100644 (file)
index c2ec2c1..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-inherit autotools
-
-DESCRIPTION := The GNU cc and gcc C compilers.
-LICENSE := GPL
-MAINTAINER := Gerald Britton <gbritton@doomcom.org>
-
-DEPENDS := virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/uclibc virtual/uclibc-headers patcher
-
-PACKAGES = ${PN} ${PN}-cplusplus \
-           uclibc-libgcc uclibc-libstdcplusplus \
-           ${PN}-doc
-
-FILES_${PN} = ${bindir}/${TARGET_SYS}-gcc \
-              ${bindir}/${TARGET_SYS}-cpp \
-              ${bindir}/${TARGET_SYS}-gcov \
-              ${bindir}/${TARGET_SYS}-gccbug \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1 \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/collect2 \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/crt* \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/specs \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/libgcc* \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include \
-              ${prefix}/${TARGET_SYS}/lib/libgcc_s.so \
-              ${prefix}/${TARGET_SYS}/lib/libiberty.a \
-              ${bindir}/cc ${bindir}/gcc ${bindir}/cpp \
-              ${bindir}/gcov ${bindir}/gccbug
-
-FILES_${PN}-cplusplus = ${bindir}/${TARGET_SYS}-g++ \
-                  ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1plus \
-                  ${prefix}/${TARGET_SYS}/lib/libstdc++.so \
-                  ${prefix}/${TARGET_SYS}/lib/libstdc++.la \
-                  ${prefix}/${TARGET_SYS}/lib/libstdc++.a \
-                  ${prefix}/${TARGET_SYS}/lib/libsupc++.la \
-                  ${prefix}/${TARGET_SYS}/lib/libsupc++.a \
-                  ${includedir}/c++ \
-                  ${bindir}/c++ ${bindir}/g++
-
-FILES_uclibc-libgcc = /lib/libgcc_s.so.*
-
-FILES_uclibc-libstdcplusplus = ${prefix}/${TARGET_SYS}/lib/libstdc++.so.*
-
-FILES_${PN}-doc = ${infodir} ${mandir} \
-                  ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include/README
-
-SRC_URI := http://gcc.get-software.com/releases/gcc-${PV}/gcc-${PV}.tar.bz2 \
-           file://${FILESDIR}/gcc-001-disable-mathf.patch;patch=1 \
-           file://${FILESDIR}/gcc-006-include-search.patch;patch=1 \
-           file://${FILESDIR}/gcc-810-libstd++-locale.patch;patch=1
-
-S := ${WORKDIR}/gcc-${PV}
-B := ${S}/build.${HOST_SYS}.${TARGET_SYS}
-
-EXTRA_OECONF := --with-local-prefix=/usr/local \
-                --with-gxx-include-dir=${includedir}/c++ \
-                --enable-target-optspace \
-                --disable-nls \
-                --with-gnu-ld \
-                --disable-__cxa_atexit \
-                --enable-languages=c,c++ \
-                --enable-shared \
-                --enable-multilib \
-                --program-prefix=${TARGET_SYS}-
-
-do_configure_prepend () {
-       # Setup these vars for cross building only
-       if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
-               export CC_FOR_TARGET="${CCACHE} ${TARGET_PREFIX}gcc"
-               export GCC_FOR_TARGET="${CCACHE} ${TARGET_PREFIX}gcc"
-               export CXX_FOR_TARGET="${CCACHE} ${TARGET_PREFIX}g++"
-               export AS_FOR_TARGET="${TARGET_PREFIX}as"
-               export LD_FOR_TARGET="${TARGET_PREFIX}ld"
-               export NM_FOR_TARGET="${TARGET_PREFIX}nm"
-               export AR_FOR_TARGET="${TARGET_PREFIX}ar"
-               export RANLIB_FOR_TARGET="${TARGET_PREFIX}ranlib"
-       fi
-}
-
-do_install () {
-       autotools_do_install
-       # Cleanup some of the gcc-lib stuff
-       rm -rf ${D}/${libdir}/gcc-lib/${TARGET_SYS}/${PV}/install-tools
-
-       # Move libgcc_s into /lib
-       mkdir -p ${D}/lib
-       mv -f ${D}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so.* ${D}/lib
-       rm -f ${D}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so
-       ln -s ../../../lib/libgcc_s.so.? \
-             ${D}/${prefix}/${TARGET_SYS}/libgcc_s.so
-
-       # Cleanup manpages..
-       rm -rf ${D}/${mandir}/man7
-       mv ${D}/${mandir}/man1/cpp.1 \
-          ${D}/${mandir}/man1/${TARGET_SYS}-cpp.1
-       mv ${D}/${mandir}/man1/gcov.1 \
-          ${D}/${mandir}/man1/${TARGET_SYS}-gcov.1
-
-       cd ${D}/${bindir}
-
-       # We care about g++ not c++
-       rm -f *c++
-
-       # We don't care about the gcc-<version> ones for this
-       rm -f *gcc-?.?*
-
-#      # Cleanup after gcc's --program-prefix failing..
-#      rm -f ${TARGET_SYS}-${TARGET_ARCH}-uclibc-*
-
-#      # Symlinks for if this is intended to be the only compiler
-#      for p in ${TARGET_ARCH}-uclibc-* ; do
-#              ln -s $p `echo $p | sed -e s,${TARGET_ARCH}-uclibc-,,`
-#              ln -s $p `echo $p | sed -e s,uclibc,linux,`
-#      done
-       ln -s ${TARGET_SYS}-g++ g++
-       ln -s ${TARGET_SYS}-gcc gcc
-       ln -s g++ c++
-       ln -s gcc cc
-}
index 5b31f39..11c3aff 100644 (file)
@@ -4,55 +4,72 @@ DESCRIPTION := The GNU cc and gcc C compilers.
 LICENSE := GPL
 MAINTAINER := Gerald Britton <gbritton@doomcom.org>
 
-DEPENDS := virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/uclibc virtual/uclibc-headers patcher
+# This will ONLY build to this target
+TARGET_VENDOR :=
+TARGET_SYS := ${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}
+TARGET_PREFIX := ${TARGET_SYS}-
 
-PACKAGES = ${PN} ${PN}-cplusplus \
-           uclibc-libgcc uclibc-libstdcplusplus \
+DEPENDS := virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \
+           glibc patcher
+
+PACKAGES = ${PN} ${PN}-symlinks \
+           ${PN}-c++ ${PN}-c++-symlinks \
+           libgcc libstdc++ libstdc++-dev \
            ${PN}-doc
 
-FILES_${PN} = ${bindir}/${TARGET_PREFIX}gcc \
-              ${bindir}/${TARGET_PREFIX}cpp \
-              ${bindir}/${TARGET_PREFIX}gcov \
-              ${bindir}/${TARGET_PREFIX}gccbug \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1 \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/collect2 \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/crt* \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/specs \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/libgcc* \
-              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include \
-              ${prefix}/${TARGET_SYS}/lib/libgcc_s.so \
-              ${prefix}/${TARGET_SYS}/lib/libiberty.a \
-              ${bindir}/cc ${bindir}/gcc ${bindir}/cpp \
-              ${bindir}/gcov ${bindir}/gccbug
-
-FILES_${PN}-cplusplus = ${bindir}/${TARGET_PREFIX}g++ \
-                  ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1plus \
-                  ${prefix}/${TARGET_SYS}/lib/libstdc++.so \
-                  ${prefix}/${TARGET_SYS}/lib/libstdc++.la \
-                  ${prefix}/${TARGET_SYS}/lib/libstdc++.a \
-                  ${prefix}/${TARGET_SYS}/lib/libsupc++.la \
-                  ${prefix}/${TARGET_SYS}/lib/libsupc++.a \
-                  ${includedir}/c++ \
-                  ${bindir}/c++ ${bindir}/g++
-
-FILES_uclibc-libgcc = /lib/libgcc_s.so.*
-
-FILES_uclibc-libstdcplusplus = ${prefix}/${TARGET_SYS}/lib/libstdc++.so.*
-
-FILES_${PN}-doc = ${infodir} ${mandir} \
-                  ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include/README
-
-SRC_URI := http://gcc.get-software.com/releases/gcc-${PV}/gcc-${PV}.tar.bz2 \
-           file://${FILESDIR}/gcc-001-disable-mathf.patch;patch=1 \
-           file://${FILESDIR}/gcc-006-include-search.patch;patch=1 \
-           file://${FILESDIR}/gcc-810-libstd++-locale.patch;patch=1
+FILES_${PN} = \
+       ${bindir}/${TARGET_PREFIX}gcc \
+       ${bindir}/${TARGET_PREFIX}cpp \
+       ${bindir}/${TARGET_PREFIX}gcov \
+       ${bindir}/${TARGET_PREFIX}gccbug \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1 \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/collect2 \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/crt* \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/specs \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/lib* \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include
+
+FILES_${PN}-symlinks = \
+       ${bindir}/cc \
+       ${bindir}/gcc \
+       ${bindir}/cpp \
+       ${bindir}/gcov \
+       ${bindir}/gccbug
+
+FILES_${PN}-c++ = \
+       ${bindir}/${TARGET_PREFIX}g++ \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1plus \
+
+FILES_${PN}-c++-symlinks = \
+       ${bindir}/c++ \
+       ${bindir}/g++
+
+FILES_libgcc = \
+       /lib/libgcc_s.so.*
+
+FILES_libstdc++ = \
+       ${libdir}/libstdc++.so.*
+
+FILES_libstdc++-dev = \
+       ${includedir}/c++/${PV} \
+       ${libdir}/libstdc++.so \
+       ${libdir}/libstdc++.la \
+       ${libdir}/libstdc++.a \
+       ${libdir}/libsupc++.la \
+       ${libdir}/libsupc++.a
+
+FILES_${PN}-doc = \
+       ${infodir} \
+       ${mandir} \
+       ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include/README
+
+SRC_URI := http://gcc.get-software.com/releases/gcc-${PV}/gcc-${PV}.tar.bz2
 
 S := ${WORKDIR}/gcc-${PV}
 B := ${S}/build.${HOST_SYS}.${TARGET_SYS}
 
 EXTRA_OECONF := --with-local-prefix=/usr/local \
-                --with-gxx-include-dir=${includedir}/c++ \
+                --with-gxx-include-dir=${includedir}/c++/${PV} \
                 --enable-target-optspace \
                 --disable-nls \
                 --with-gnu-ld \
@@ -65,29 +82,31 @@ EXTRA_OECONF := --with-local-prefix=/usr/local \
 do_configure () {
        # Setup these vars for cross building only
        if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
-               export CC_FOR_TARGET="${CCACHE} ${TARGET_PREFIX}gcc"
-               export GCC_FOR_TARGET="${CCACHE} ${TARGET_PREFIX}gcc"
-               export CXX_FOR_TARGET="${CCACHE} ${TARGET_PREFIX}g++"
-               export AS_FOR_TARGET="${TARGET_PREFIX}as"
-               export LD_FOR_TARGET="${TARGET_PREFIX}ld"
-               export NM_FOR_TARGET="${TARGET_PREFIX}nm"
-               export AR_FOR_TARGET="${TARGET_PREFIX}ar"
-               export RANLIB_FOR_TARGET="${TARGET_PREFIX}ranlib"
+               export CC_FOR_TARGET="${CCACHE} ${HOST_PREFIX}gcc"
+               export GCC_FOR_TARGET="${CCACHE} ${HOST_PREFIX}gcc"
+               export CXX_FOR_TARGET="${CCACHE} ${HOST_PREFIX}g++"
+               export AS_FOR_TARGET="${HOST_PREFIX}as"
+               export LD_FOR_TARGET="${HOST_PREFIX}ld"
+               export NM_FOR_TARGET="${HOST_PREFIX}nm"
+               export AR_FOR_TARGET="${HOST_PREFIX}ar"
+               export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib"
        fi
        oe_runconf
 }
 
 do_install () {
        autotools_do_install
+
        # Cleanup some of the gcc-lib stuff
        rm -rf ${D}/${libdir}/gcc-lib/${TARGET_SYS}/${PV}/install-tools
 
        # Move libgcc_s into /lib
        mkdir -p ${D}/lib
-       mv -f ${D}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so.* ${D}/lib
-       rm -f ${D}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so
-       ln -s ../../../lib/libgcc_s.so.? \
-             ${D}/${prefix}/${TARGET_SYS}/libgcc_s.so
+       mv -f ${D}/${libdir}/libgcc_s.so.* ${D}/lib
+       rm -f ${D}/${libdir}/libgcc_s.so
+       ln -s `echo ${libdir}/gcc-lib/${TARGET_SYS}/${PV} | tr -s / |
+               sed -e 's,^/,,' -e 's,[^/]*,..,g'`/lib/libgcc_s.so.? \
+               ${D}/${libdir}/gcc-lib/${TARGET_SYS}/${PV}/libgcc_s.so
 
        # Cleanup manpages..
        rm -rf ${D}/${mandir}/man7
@@ -96,6 +115,9 @@ do_install () {
        mv ${D}/${mandir}/man1/gcov.1 \
           ${D}/${mandir}/man1/${TARGET_SYS}-gcov.1
 
+       # We use libiberty from binutils
+       rm -f ${D}/${libdir}/libiberty.a
+
        cd ${D}/${bindir}
 
        # We care about g++ not c++
@@ -104,16 +126,13 @@ do_install () {
        # We don't care about the gcc-<version> ones for this
        rm -f *gcc-?.?*
 
-#      # Cleanup after gcc's --program-prefix failing..
-#      rm -f ${TARGET_SYS}-${TARGET_ARCH}-uclibc-*
+       # These sometimes show up, they are strange, we remove them
+       rm -f ${TARGET_ARCH}-*${TARGET_ARCH}-*
 
-#      # Symlinks for if this is intended to be the only compiler
-#      for p in ${TARGET_ARCH}-uclibc-* ; do
-#              ln -s $p `echo $p | sed -e s,${TARGET_ARCH}-uclibc-,,`
-#              ln -s $p `echo $p | sed -e s,uclibc,linux,`
-#      done
+       # Symlinks so we can use these trivially on the target
        ln -s ${TARGET_SYS}-g++ g++
        ln -s ${TARGET_SYS}-gcc gcc
        ln -s g++ c++
        ln -s gcc cc
 }
+
index cd262fb..821b31f 100644 (file)
@@ -3,7 +3,6 @@ include uclibc_${PV}.oe
 FILESDIR := ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/uclibc-${PV}
 
 DEPENDS :=
-PROVIDES := virtual/uclibc-headers-initial
 
 PACKAGES =
 
@@ -13,17 +12,14 @@ do_stage() {
        mkdir -p ${CROSS_DIR}/${TARGET_SYS}/include
        mkdir -p ${CROSS_DIR}/${TARGET_SYS}/lib
        ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
-       mkdir -p ${CROSS_DIR}/lib/gcc-lib
-       mkdir -p ${CROSS_DIR}/usr/lib
-       cd ${CROSS_DIR}/usr/lib
-       ln -sf ../../lib/gcc-lib
+       rm -rf ${CROSS_DIR}/${TARGET_SYS}/usr
 }
 
 do_install() {
-       true
+       :
 }
 
 do_compile () {
-       true
+       :
 }
 
index 30166cd..b021778 100644 (file)
@@ -7,8 +7,7 @@ MAINTAINER := Gerald Britton <gbritton@doomcom.org>
 FILESDIR := ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/uclibc-${PV}
 
 DEPENDS := virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc-initial
-PROVIDES := virtual/libc virtual/uclibc \
-            virtual/libc-headers virtual/uclibc-headers
+PROVIDES := virtual/libc
 
 SRC_URI := http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2 \
            http://www.uclibc.org/downloads/toolchain/kernel-headers-2.4.21.tar.bz2
@@ -64,6 +63,10 @@ do_stage() {
        for f in ${CROSS_DIR}/${TARGET_SYS}/include/*; do
                ln -s $f ${STAGING_DIR}/target/include/
        done
+
+       # We don't really need these
+       rmdir ${CROSS_DIR}/${TARGET_SYS}/usr/lib || :
+       rmdir ${CROSS_DIR}/${TARGET_SYS}/usr || :
 }
 
 do_install() {