diff options
-rw-r--r-- | binutils/binutils-2.14.90.0.6/binutils-100_cflags_for_build.patch (renamed from gcc/gcc-3.3.1/gcc-001-disable-mathf.patch) | 0 | ||||
-rw-r--r-- | binutils/binutils-cross_2.14.90.0.6.oe | 24 | ||||
-rw-r--r-- | binutils/binutils-uclibc-cross_2.14.90.0.6.oe | 25 | ||||
-rw-r--r-- | binutils/binutils_2.14.90.0.6.oe | 48 | ||||
-rw-r--r-- | gcc/gcc-3.3.1/gcc-006-include-search.patch | 0 | ||||
-rw-r--r-- | gcc/gcc-3.3.1/gcc-810-libstd++-locale.patch | 0 | ||||
-rw-r--r-- | gcc/gcc-cross_3.3.1.oe | 53 | ||||
-rw-r--r-- | gcc/gcc-cross_3.3.2.oe | 40 | ||||
-rw-r--r-- | gcc/gcc-initial-cross_3.3.1.oe | 16 | ||||
-rw-r--r-- | gcc/gcc-initial-cross_3.3.2.oe | 15 | ||||
-rw-r--r-- | gcc/gcc-initial-uclibc-cross_3.3.1.oe | 16 | ||||
-rw-r--r-- | gcc/gcc-initial-uclibc-cross_3.3.2.oe | 5 | ||||
-rw-r--r-- | gcc/gcc-uclibc-cross_3.3.1.oe | 54 | ||||
-rw-r--r-- | gcc/gcc-uclibc-cross_3.3.2.oe | 33 | ||||
-rw-r--r-- | gcc/gcc-uclibc_3.3.1.oe | 46 | ||||
-rw-r--r-- | gcc/gcc-uclibc_3.3.2.oe | 89 | ||||
-rw-r--r-- | gcc/gcc_3.3.1.oe | 118 | ||||
-rw-r--r-- | gcc/gcc_3.3.2.oe | 139 | ||||
-rw-r--r-- | uclibc/uclibc-initial_0.9.21.oe | 10 | ||||
-rw-r--r-- | uclibc/uclibc_0.9.21.oe | 7 |
20 files changed, 329 insertions, 409 deletions
diff --git a/gcc/gcc-3.3.1/gcc-001-disable-mathf.patch b/binutils/binutils-2.14.90.0.6/binutils-100_cflags_for_build.patch index e69de29bb2..e69de29bb2 100644 --- a/gcc/gcc-3.3.1/gcc-001-disable-mathf.patch +++ b/binutils/binutils-2.14.90.0.6/binutils-100_cflags_for_build.patch diff --git a/binutils/binutils-cross_2.14.90.0.6.oe b/binutils/binutils-cross_2.14.90.0.6.oe index 3ad13e5cbb..7d5e9967e3 100644 --- a/binutils/binutils-cross_2.14.90.0.6.oe +++ b/binutils/binutils-cross_2.14.90.0.6.oe @@ -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 () { + : +} + diff --git a/binutils/binutils-uclibc-cross_2.14.90.0.6.oe b/binutils/binutils-uclibc-cross_2.14.90.0.6.oe index feada83a3f..6648d5d267 100644 --- a/binutils/binutils-uclibc-cross_2.14.90.0.6.oe +++ b/binutils/binutils-uclibc-cross_2.14.90.0.6.oe @@ -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 () { + : +} + diff --git a/binutils/binutils_2.14.90.0.6.oe b/binutils/binutils_2.14.90.0.6.oe index 99b1f8564f..19c628e99c 100644 --- a/binutils/binutils_2.14.90.0.6.oe +++ b/binutils/binutils_2.14.90.0.6.oe @@ -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 index e69de29bb2..0000000000 --- a/gcc/gcc-3.3.1/gcc-006-include-search.patch +++ /dev/null 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 index e69de29bb2..0000000000 --- a/gcc/gcc-3.3.1/gcc-810-libstd++-locale.patch +++ /dev/null diff --git a/gcc/gcc-cross_3.3.1.oe b/gcc/gcc-cross_3.3.1.oe deleted file mode 100644 index c736672901..0000000000 --- a/gcc/gcc-cross_3.3.1.oe +++ /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 -} diff --git a/gcc/gcc-cross_3.3.2.oe b/gcc/gcc-cross_3.3.2.oe index 0ccdc4ef73..96014176d0 100644 --- a/gcc/gcc-cross_3.3.2.oe +++ b/gcc/gcc-cross_3.3.2.oe @@ -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 index 2afe422cf1..0000000000 --- a/gcc/gcc-initial-cross_3.3.1.oe +++ /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}- diff --git a/gcc/gcc-initial-cross_3.3.2.oe b/gcc/gcc-initial-cross_3.3.2.oe index e69de29bb2..d687401007 100644 --- a/gcc/gcc-initial-cross_3.3.2.oe +++ b/gcc/gcc-initial-cross_3.3.2.oe @@ -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 index 8ed3f74870..0000000000 --- a/gcc/gcc-initial-uclibc-cross_3.3.1.oe +++ /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}- diff --git a/gcc/gcc-initial-uclibc-cross_3.3.2.oe b/gcc/gcc-initial-uclibc-cross_3.3.2.oe index 7fb689e8e7..2705e06540 100644 --- a/gcc/gcc-initial-uclibc-cross_3.3.2.oe +++ b/gcc/gcc-initial-uclibc-cross_3.3.2.oe @@ -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 index 703c1b994d..0000000000 --- a/gcc/gcc-uclibc-cross_3.3.1.oe +++ /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 -} diff --git a/gcc/gcc-uclibc-cross_3.3.2.oe b/gcc/gcc-uclibc-cross_3.3.2.oe index 2c215c380d..1ba6237a66 100644 --- a/gcc/gcc-uclibc-cross_3.3.2.oe +++ b/gcc/gcc-uclibc-cross_3.3.2.oe @@ -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 index 462541e41f..0000000000 --- a/gcc/gcc-uclibc_3.3.1.oe +++ /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) -} - diff --git a/gcc/gcc-uclibc_3.3.2.oe b/gcc/gcc-uclibc_3.3.2.oe index e69de29bb2..bfa276b1c4 100644 --- a/gcc/gcc-uclibc_3.3.2.oe +++ b/gcc/gcc-uclibc_3.3.2.oe @@ -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 index c2ec2c162b..0000000000 --- a/gcc/gcc_3.3.1.oe +++ /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 -} diff --git a/gcc/gcc_3.3.2.oe b/gcc/gcc_3.3.2.oe index 5b31f39908..11c3aff1b4 100644 --- a/gcc/gcc_3.3.2.oe +++ b/gcc/gcc_3.3.2.oe @@ -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 } + diff --git a/uclibc/uclibc-initial_0.9.21.oe b/uclibc/uclibc-initial_0.9.21.oe index cd262fb2ad..821b31fbcb 100644 --- a/uclibc/uclibc-initial_0.9.21.oe +++ b/uclibc/uclibc-initial_0.9.21.oe @@ -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 + : } diff --git a/uclibc/uclibc_0.9.21.oe b/uclibc/uclibc_0.9.21.oe index 30166cd514..b021778837 100644 --- a/uclibc/uclibc_0.9.21.oe +++ b/uclibc/uclibc_0.9.21.oe @@ -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() { |