[oe] [PATCH 12/13] gcc-canadian-sdk_4.2.2.bb

eha at doredevelopment.dk eha at doredevelopment.dk
Tue Oct 7 12:51:45 UTC 2008


From: Esben Haabendal <eha at doredevelopment.dk>


Signed-off-by: Esben Haabendal <eha at doredevelopment.dk>
---
 .../canadian-build-modules-configure.patch         |   22 +++++
 packages/gcc/gcc-canadian-sdk-build.inc            |   81 ++++++++++++++++++++
 packages/gcc/gcc-canadian-sdk-package.inc          |   36 +++++++++
 packages/gcc/gcc-canadian-sdk_4.2.2.bb             |   27 +++++++
 4 files changed, 166 insertions(+), 0 deletions(-)
 create mode 100644 packages/gcc/gcc-4.2.2/canadian-build-modules-configure.patch
 create mode 100644 packages/gcc/gcc-canadian-sdk-build.inc
 create mode 100644 packages/gcc/gcc-canadian-sdk-package.inc
 create mode 100644 packages/gcc/gcc-canadian-sdk_4.2.2.bb

diff --git a/packages/gcc/gcc-4.2.2/canadian-build-modules-configure.patch b/packages/gcc/gcc-4.2.2/canadian-build-modules-configure.patch
new file mode 100644
index 0000000..8aede10
--- /dev/null
+++ b/packages/gcc/gcc-4.2.2/canadian-build-modules-configure.patch
@@ -0,0 +1,22 @@
+diff -urN gcc-4.2.2-orig/gcc/configure gcc-4.2.2/gcc/configure
+--- gcc-4.2.2-orig/gcc/configure	2008-08-31 23:10:56.000000000 +0200
++++ gcc-4.2.2/gcc/configure	2008-08-31 23:03:02.000000000 +0200
+@@ -12716,6 +12716,7 @@
+ 	esac
+ 	saved_CFLAGS="${CFLAGS}"
+ 	CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
++	CPP="${CPP_FOR_BUILD}" CPPFLAGS="${CPPFLAGS_FOR_BUILD}" \
+ 	CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
+ 		--enable-languages=${enable_languages-all} \
+ 		--target=$target_alias --host=$build_alias --build=$build_alias
+diff -urN gcc-4.2.2-orig/gcc/configure.ac gcc-4.2.2/gcc/configure.ac
+--- gcc-4.2.2-orig/gcc/configure.ac	2008-08-31 23:10:53.000000000 +0200
++++ gcc-4.2.2/gcc/configure.ac	2008-08-31 23:03:29.000000000 +0200
+@@ -1490,6 +1490,7 @@
+ 	esac
+ 	saved_CFLAGS="${CFLAGS}"
+ 	CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
++	CPP="${CPP_FOR_BUILD}" CPPFLAGS="${CPPFLAGS_FOR_BUILD}" \
+ 	${realsrcdir}/configure \
+ 		--enable-languages=${enable_languages-all} \
+ 		--target=$target_alias --host=$build_alias --build=$build_alias
diff --git a/packages/gcc/gcc-canadian-sdk-build.inc b/packages/gcc/gcc-canadian-sdk-build.inc
new file mode 100644
index 0000000..aba2067
--- /dev/null
+++ b/packages/gcc/gcc-canadian-sdk-build.inc
@@ -0,0 +1,81 @@
+USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
+USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}'
+
+ARCH_FLAGS_FOR_TARGET=""
+
+# Tools for build
+export CC_FOR_BUILD="${BUILD_CC}"
+export CFLAGS_FOR_BUILD="${BUILD_CFLAGS}"
+export CPP_FOR_BUILD="${BUILD_CPP}"
+export CPPFLAGS_FOR_BUILD="${BUILD_CPPFLAGS}"
+export CXX_FOR_BUILD="${BUILD_CXX}"
+export CXXFLAGS_FOR_BUILD="${BUILD_CXXFLAGS}"
+export LD_FOR_BUILD="${BUILD_LD}"
+export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}"
+export AS_FOR_BUILD="${BUILD_PREFIX}as"
+export AR_FOR_BUILD="${BUILD_PREFIX}ar"
+export NM_FOR_BUILD="${BUILD_PREFIX}nm"
+export RANLIB_FOR_BUILD="${BUILD_PREFIX}ranlib"
+export GCJ_FOR_BUILD="${BUILD_PREFIX}gcj"
+export GFORTRAN_FOR_BUILD="${BUILD_PREFIX}gfortran"
+export DLLTOOL_FOR_BUILD="${BUILD_PREFIX}dlltool"
+export WINDRES_FOR_BUILD="${BUILD_PREFIX}windres"
+
+# Tools for host
+#CC
+#CFLAGS
+#CXX
+#CXXFLAGS
+#LD
+LDFLAGS=""
+#AS
+#AR
+#NM
+#RANLIB
+#GCJ
+#GFORTRAN
+export DLLTOOL="${HOST_PREFIX}dlltool"
+export WINDRES="${HOST_PREFIX}windres"
+
+# Tools for target
+export CC_FOR_TARGET="${TARGET_CC}"
+export CFLAGS_FOR_TARGET="${TARGET_CFLAGS}"
+export CXX_FOR_TARGET="${TARGET_CXX}"
+export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
+export LD_FOR_TARGET="${TARGET_LD}"
+export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
+export AS_FOR_TARGET="${TARGET_PREFIX}as"
+export AR_FOR_TARGET="${TARGET_PREFIX}ar"
+export NM_FOR_TARGET="${TARGET_PREFIX}nm"
+export RANLIB_FOR_TARGET="${TARGET_PREFIX}ranlib"
+export GCJ_FOR_TARGET="${TARGET_PREFIX}gcj"
+export GFORTRAN_FOR_TARGET="${TARGET_PREFIX}gfortran"
+export DLLTOOL_FOR_TARGET="${TARGET_PREFIX}dlltool"
+export WINDRES_FOR_TARGET="${TARGET_PREFIX}windres"
+
+EXTRA_OECONF_DEP ?= ""
+
+SYSROOT = "${WORKDIR}/sysroot"
+EXTRA_OECONF += ""
+EXTRA_OECONF_PATHS = " \
+	--with-local-prefix=$dollar{prefix}/local \
+	--with-gxx-include-dir=$dollar{prefix}/${TARGET_SYS}/usr/include/c++/${BINV} \
+	--with-build-sysroot=${SYSROOT} \
+	--with-sysroot=${SDK_REALPATH}/${TARGET_SYS} \
+"
+
+do_configure () {
+	# Work around Hardcoded path assumptions in gcc
+	mkdir -p ${SYSROOT}/usr
+	ln -sf ${STAGING_DIR_SDK}${layout_includedir} \
+		${SYSROOT}/usr/include
+	ln -sf ${STAGING_DIR_SDK}${layout_libdir} \
+		${SYSROOT}/usr/lib
+	(cd ${S} && gnu-configize) || die "failure running gnu-configize"
+	(cd ${S}/libstdc++-v3 && autoreconf)
+	canadian_sdk_runconf
+}
+
+do_compile () {
+	oe_runmake
+}
diff --git a/packages/gcc/gcc-canadian-sdk-package.inc b/packages/gcc/gcc-canadian-sdk-package.inc
new file mode 100644
index 0000000..5889821
--- /dev/null
+++ b/packages/gcc/gcc-canadian-sdk-package.inc
@@ -0,0 +1,36 @@
+# Packages emitted by our gcc-cross builds.
+#
+INHIBIT_PACKAGE_STRIP ?= ""
+OLD_INHIBIT_PACKAGE_STRIP := "${INHIBIT_PACKAGE_STRIP}"
+INHIBIT_PACKAGE_STRIP = "1"
+
+python do_package() {
+	if bb.data.getVar('DEBIAN_NAMES', d, 1):
+		bb.data.setVar('PKG_libgcc', 'libgcc1', d)
+	bb.build.exec_func('package_do_package', d)
+}
+
+do_install () {
+	oe_runmake 'DESTDIR=${D}' 'prefix=${SDK_PATH}' install
+
+	# Manually run the target stripper since we won't get it run by
+	# the packaging.
+	if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then
+		${TARGET_PREFIX}strip ${D}${prefix}/${TARGET_SYS}/lib/libstdc++.so.*
+		${TARGET_PREFIX}strip ${D}${prefix}/${TARGET_SYS}/lib/libg2c.so.* || true
+		${TARGET_PREFIX}strip ${D}${prefix}/${TARGET_SYS}/lib/libgcc_s.so.*
+	fi
+}
+
+FILES_libgcc = "${prefix}/${TARGET_SYS}/lib/libgcc*.so.*"
+FILES_libgcc-dev = "${prefix}/${TARGET_SYS}/lib/libgcc*.so"
+
+FILES_libstdc++ = "${prefix}/${TARGET_SYS}/lib/libstdc++.so.*"
+FILES_libstdc++-dev = "${prefix}/${TARGET_SYS}/usr/include/c++/${BINV} \
+                       ${prefix}/${TARGET_SYS}/lib/libstdc++.so \
+                       ${prefix}/${TARGET_SYS}/lib/libstdc++.a \
+                       ${prefix}/${TARGET_SYS}/lib/libsupc++.a"
+
+FILES_libmudflap = "${prefix}/${TARGET_SYS}/lib/libmudflap*.so.*"
+FILES_libmudflap-dev = "${prefix}/${TARGET_SYS}/lib/libmudflap*.so \
+                        ${prefix}/${TARGET_SYS}/lib/libmudflap*.a"
diff --git a/packages/gcc/gcc-canadian-sdk_4.2.2.bb b/packages/gcc/gcc-canadian-sdk_4.2.2.bb
new file mode 100644
index 0000000..f94863f
--- /dev/null
+++ b/packages/gcc/gcc-canadian-sdk_4.2.2.bb
@@ -0,0 +1,27 @@
+inherit canadian-sdk
+
+DEPENDS="\
+	virtual/${HOST_PREFIX}binutils \
+	virtual/${HOST_PREFIX}gcc \
+	virtual/${TARGET_PREFIX}binutils \
+	virtual/${TARGET_PREFIX}gcc \
+	virtual/${TARGET_PREFIX}libc-for-gcc \
+	gmp-native mpfr-native \
+"
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
+
+PACKAGES = "${PN}"
+
+require gcc_${PV}.bb
+
+SRC_URI_append =+ "\
+	file://canadian-build-modules-configure.patch;patch=1 \
+"
+
+require gcc-canadian-sdk-build.inc
+require gcc-canadian-sdk-package.inc
+
+EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
+		--disable-libgomp --disable-libmudflap \
+		--with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
-- 
1.5.4.3





More information about the Openembedded-devel mailing list