[oe] [PATCH] gcc: Package libstdc++ gdb python helpers into dev package

Philip Balister philip at balister.org
Fri Jul 22 17:24:45 UTC 2011


On 06/09/2011 03:35 PM, Khem Raj wrote:
> 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>

Finally,

Tested-by: Philip Balister <philip at balister.org>

No more annoying message when I run ldconfig. Getting this fix in will 
reduce my support emails by a small, but noticeable amount.

Philip


> ---
>   recipes/gcc/gcc-4.5.inc            |    2 +-
>   recipes/gcc/gcc-package-cross.inc  |    8 +++++++-
>   recipes/gcc/gcc-package-target.inc |    4 ++++
>   3 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/recipes/gcc/gcc-4.5.inc b/recipes/gcc/gcc-4.5.inc
> index aa5bb00..69229ef 100644
> --- a/recipes/gcc/gcc-4.5.inc
> +++ b/recipes/gcc/gcc-4.5.inc
> @@ -8,7 +8,7 @@ DEPENDS = "mpfr gmp libmpc libelf"
>   NATIVEDEPS = "mpfr-native gmp-native libmpc-native"
>
>
> -INC_PR = "r36"
> +INC_PR = "r37"
>
>   SRCREV = "170880"
>   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 5cfe47b..959b9ec 100644
> --- a/recipes/gcc/gcc-package-target.inc
> +++ b/recipes/gcc/gcc-package-target.inc
> @@ -83,6 +83,7 @@ FILES_libstdc++-dev = "\
>     ${libdir}/libsupc++.la \
>     ${libdir}/libsupc++.a \
>   "
> +FILES_libstdc++-dev += "${datadir}/gdb/auto-load/${libdir}/libstdc++.so.*-gdb.py*"
>
>   FILES_libgfortran-dev = "${libdir}/libgfortran.a \
>                            ${libdir}/libgfortran.so \
> @@ -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-devel mailing list