[oe-commits] Khem Raj : gcc: Package libstdc++ gdb python helpers into dev package

git version control git at git.openembedded.org
Thu Jul 28 12:51:37 UTC 2011


Module: openembedded.git
Branch: sledz/maintenance
Commit: 105d881227d06f31c180dffb777ee63361b2f2b8
URL:    http://git.openembedded.org/?p=openembedded.git&a=commit;h=105d881227d06f31c180dffb777ee63361b2f2b8

Author: Khem Raj <raj.khem at gmail.com>
Date:   Thu Jun  9 12:27:32 2011 -0700

gcc: Package libstdc++ gdb python helpers into dev package

People are seeing these errrors from ldconfig
libstdc++.so.6.0.14-gdb.py is not an ELF file - it has the wrong magic
bytes at the start.

this file is moved into gdb's autoload directory
if it exists there then gdb will find it when debugging
and it wont be in the paths where ldconfig looks for
libraries.

Signed-off-by: Khem Raj <raj.khem at gmail.com>
Tested-by: Philip Balister <philip at balister.org>
Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>

---

 recipes/gcc/gcc-4.3.3.inc          |    2 +-
 recipes/gcc/gcc-4.5.inc            |    3 +--
 recipes/gcc/gcc-package-cross.inc  |    8 +++++++-
 recipes/gcc/gcc-package-target.inc |    4 ++++
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/recipes/gcc/gcc-4.3.3.inc b/recipes/gcc/gcc-4.3.3.inc
index 649fdfe..8b6ffe5 100644
--- a/recipes/gcc/gcc-4.3.3.inc
+++ b/recipes/gcc/gcc-4.3.3.inc
@@ -8,7 +8,7 @@ LICENSE = "GPLv3"
 DEPENDS = "mpfr gmp"
 NATIVEDEPS = "mpfr-native gmp-native"
 
-INC_PR = "r23"
+INC_PR = "r24"
 
 SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \
 	file://fedora/gcc43-c++-builtin-redecl.patch;striplevel=0 \
diff --git a/recipes/gcc/gcc-4.5.inc b/recipes/gcc/gcc-4.5.inc
index 0a43bc7..dbd9693 100644
--- a/recipes/gcc/gcc-4.5.inc
+++ b/recipes/gcc/gcc-4.5.inc
@@ -7,8 +7,7 @@ LICENSE = "GPLv3"
 DEPENDS = "mpfr gmp libmpc libelf"
 NATIVEDEPS = "mpfr-native gmp-native libmpc-native"
 
-
-INC_PR = "r33"
+INC_PR = "r37"
 
 SRCREV = "170443"
 PV = "4.5"
diff --git a/recipes/gcc/gcc-package-cross.inc b/recipes/gcc/gcc-package-cross.inc
index f9a7eeb..1533069 100644
--- a/recipes/gcc/gcc-package-cross.inc
+++ b/recipes/gcc/gcc-package-cross.inc
@@ -4,7 +4,7 @@ PACKAGE_STRIP = "no"
 
 SHLIBSDIR = "${STAGING_DIR_TARGET}/shlibs"
 
-PACKAGES = "libgcc libssp libstdc++ libg2c libgfortran"
+PACKAGES = "libgcc libssp libstdc++ libg2c libgfortran libstdc++-dev libgcc-dev"
 
 # Called from within gcc-cross, so libdir is set wrong
 FILES_libg2c = "${target_libdir}/libg2c.so.*"
@@ -18,6 +18,7 @@ FILES_libgcc-dev = "${target_libdir}/libgcc_s.so"
 
 FILES_libstdc++ = "${target_libdir}/libstdc++.so.*"
 
+FILES_libstdc++-dev = "${target_datadir}/gdb/auto-load/${libdir}/libstdc++.so.*-gdb.py*"
 do_install () {
 	oe_runmake 'DESTDIR=${D}' install
 	install -d ${D}${target_base_libdir}
@@ -68,5 +69,10 @@ GROUP ( libgcc_s.so.1 libgcc.a )" > ${D}${target_libdir}/libgcc_s.so
 	# We use libiberty from binutils or binutils-cross
 	rm -f ${D}${libdir}/libiberty.a
 	rm -f ${D}${target_libdir}/libiberty.a
+	if [ -f ${D}${target_libdir}/libstdc++.so.*-gdb.py ]; then
+		# move the gdb python helpers to gdb auto-load directory
+		install -d ${D}${target_datadir}/gdb/auto-load${target_libdir}
+		mv -f ${D}${target_libdir}/libstdc++.so.*-gdb.py* ${D}${target_datadir}/gdb/auto-load${target_libdir}
+	fi
 }
 
diff --git a/recipes/gcc/gcc-package-target.inc b/recipes/gcc/gcc-package-target.inc
index 438c314..33567da 100644
--- a/recipes/gcc/gcc-package-target.inc
+++ b/recipes/gcc/gcc-package-target.inc
@@ -82,6 +82,7 @@ FILES_libstdc++-dev = "\
   ${libdir}/libstdc++.a \
   ${libdir}/libsupc++.la \
   ${libdir}/libsupc++.a \
+  ${datadir}/gdb/auto-load${libdir}/libstdc++.so.*-gdb.py* \
 "
 
 FILES_libgfortran-dev = "${libdir}/libgfortran.a \
@@ -168,4 +169,7 @@ GROUP ( libgcc_s.so.1 libgcc.a )" > ${D}${libdir}/libgcc_s.so
 
 	# Remove precompiled c++ headers as they are really big
 	rm -rf ${D}${includedir}/c++/${BINV}/${TARGET_SYS}/bits/*.gch
+	# move the gdb python helpers to gdb auto-load directory
+	install -d ${D}${datadir}/gdb/auto-load/${libdir}
+	mv ${D}${libdir}/libstdc++.so.*-gdb.py* ${D}${datadir}/gdb/auto-load${libdir}
 }





More information about the Openembedded-commits mailing list