summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGerald Britton <gbritton@doomcom.org>2003-12-05 06:54:57 +0000
committerGerald Britton <gbritton@doomcom.org>2003-12-05 06:54:57 +0000
commit367362d3ec726a2ff566a6c72702acc8c0f07672 (patch)
tree8a13c73665a75c77629b9decaaf30d827396a9e9 /gcc
parentb9410067120c8f737ba35f886734d707116611e4 (diff)
Merge openembedded@openembedded.bkbits.net:packages
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gcc-3.3.1/gcc-001-disable-mathf.patch0
-rw-r--r--gcc/gcc-3.3.1/gcc-006-include-search.patch0
-rw-r--r--gcc/gcc-3.3.1/gcc-810-libstd++-locale.patch0
-rw-r--r--gcc/gcc-cross_3.3.1.oe53
-rw-r--r--gcc/gcc-cross_3.3.2.oe40
-rw-r--r--gcc/gcc-initial-cross_3.3.1.oe16
-rw-r--r--gcc/gcc-initial-cross_3.3.2.oe15
-rw-r--r--gcc/gcc-initial-uclibc-cross_3.3.1.oe16
-rw-r--r--gcc/gcc-initial-uclibc-cross_3.3.2.oe5
-rw-r--r--gcc/gcc-uclibc-cross_3.3.1.oe54
-rw-r--r--gcc/gcc-uclibc-cross_3.3.2.oe33
-rw-r--r--gcc/gcc-uclibc_3.3.1.oe46
-rw-r--r--gcc/gcc-uclibc_3.3.2.oe89
-rw-r--r--gcc/gcc_3.3.1.oe118
-rw-r--r--gcc/gcc_3.3.2.oe139
15 files changed, 236 insertions, 388 deletions
diff --git a/gcc/gcc-3.3.1/gcc-001-disable-mathf.patch b/gcc/gcc-3.3.1/gcc-001-disable-mathf.patch
deleted file mode 100644
index e69de29bb2..0000000000
--- a/gcc/gcc-3.3.1/gcc-001-disable-mathf.patch
+++ /dev/null
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
}
+