fixed libstdc++5 building
authorMarcin Juszkiewicz <hrw@openembedded.org>
Sat, 22 May 2004 23:12:47 +0000 (23:12 +0000)
committerMarcin Juszkiewicz <hrw@openembedded.org>
Sat, 22 May 2004 23:12:47 +0000 (23:12 +0000)
BKrev: 40afde6fznbFcSo7rkeYNxT0JLSAdw

gcc/gcc-cross_3.3.3.oe
gcc/gcc_3.3.3.oe

index 3fbc4d7..6131c30 100644 (file)
@@ -5,7 +5,8 @@ FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
 
-PACKAGES = "libgcc"
+# Files for these are defined in the main gcc.oe
+PACKAGES = "libgcc libstdc++ libg2c"
 INHIBIT_PACKAGE_STRIP = 1
 
 EXTRA_OECONF_PATHS = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \
@@ -80,4 +81,16 @@ do_install () {
        else
                mv -f ${D}/${prefix}/*/lib/libgcc_s.so.* ${D}/lib
        fi
+
+       # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr
+       TGT_LIBDIR=`echo ${libdir} | sed -e 's,${CROSS_DIR},/usr,'`
+       mkdir -p ${D}/${TGT_LIBDIR}
+       mv -f ${D}/${prefix}/*/lib/libstdc++.so.* ${D}/${TGT_LIBDIR}
+       mv -f ${D}/${prefix}/*/lib/libg2c.so.* ${D}/${TGT_LIBDIR}
+
+       # Manually run the target stripper since we won't get it run by
+       # the packaging.
+       ${TARGET_PREFIX}strip ${D}/${TGT_LIBDIR}/libstdc++.so.*
+       ${TARGET_PREFIX}strip ${D}/${TGT_LIBDIR}/libg2c.so.*
+       ${TARGET_PREFIX}strip ${D}/libgcc_s.so.*
 }
index 1f9ae2b..c7e55e1 100644 (file)
@@ -4,9 +4,12 @@ DESCRIPTION = "The GNU cc and gcc C compilers."
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
+# libgcc libstdc++ libg2c are listed in our FILES_*, but are actually
+# packaged in the respective cross packages.
 PACKAGES = "${PN} ${PN}-symlinks \
             ${PN}-c++ ${PN}-c++-symlinks \
-            libgcc libstdc++ libstdc++-dev \
+            ${PN}-f77 ${PN}-f77-symlinks \
+            libstdc++-dev libg2c-dev \
             ${PN}-doc"
 
 FILES_${PN} = "${bindir}/${TARGET_PREFIX}gcc \
@@ -34,7 +37,9 @@ FILES_${PN}-c++-symlinks = "${bindir}/c++ \
 
 FILES_libgcc = "/lib/libgcc_s.so.*"
 
-FILES_libstdc++ = "${libdir}/libstdc++.so.*"
+# Called from within gcc-cross, so libdir is set wrong
+#FILES_libstdc++ = "${libdir}/libstdc++.so.*"
+FILES_libstdc++ = "/usr/lib/libstdc++.so.*"
 
 FILES_libstdc++-dev = "${includedir}/c++/${PV} \
                       ${libdir}/libstdc++.so \
@@ -216,8 +221,10 @@ do_install () {
        rm -f ${TARGET_ARCH}-*${TARGET_ARCH}-*
 
        # Symlinks so we can use these trivially on the target
+       ln -sf ${TARGET_SYS}-g77 g77
        ln -sf ${TARGET_SYS}-g++ g++
        ln -sf ${TARGET_SYS}-gcc gcc
+       ln -sf g77 f77
        ln -sf g++ c++
        ln -sf gcc cc
 }