[oe] [PATCH v2] gcc-cross, gcc-cross-sdk: Link libmpfr, libgmp, libmpc and libelf statically into gcc

Tom Rini tom_rini at mentor.com
Tue Sep 21 20:31:51 UTC 2010


Khem Raj wrote:
> * Generate static version of these libraries
> 
> Signed-off-by: Khem Raj <raj.khem at gmail.com>

Acked-by: Tom Rini <tom_rini at mentor.com>

> ---
>  recipes/gcc/gcc-configure-canadian-sdk.inc |    7 +++++++
>  recipes/gcc/gcc-configure-cross.inc        |    7 +++++++
>  recipes/gcc/gcc-configure-sdk.inc          |    8 ++++++++
>  recipes/gmp/gmp.inc                        |    7 +++++++
>  recipes/gmp/gmp_4.2.4.bb                   |   14 +++++++-------
>  recipes/gmp/gmp_5.0.1.bb                   |    5 +----
>  recipes/libelf/libelf_0.8.13.bb            |    2 ++
>  recipes/libmpc/libmpc_0.8.1.bb             |    4 +++-
>  recipes/libmpc/libmpc_0.8.2.bb             |    2 ++
>  recipes/mpfr/mpfr_3.0.0.bb                 |    2 ++
>  recipes/mpfr/mpfr_svn.bb                   |    2 ++
>  11 files changed, 48 insertions(+), 12 deletions(-)
> 
> diff --git a/recipes/gcc/gcc-configure-canadian-sdk.inc b/recipes/gcc/gcc-configure-canadian-sdk.inc
> index 83ae6f5..5e27358 100644
> --- a/recipes/gcc/gcc-configure-canadian-sdk.inc
> +++ b/recipes/gcc/gcc-configure-canadian-sdk.inc
> @@ -71,6 +71,13 @@ EXTRA_OECONF_PATHS = " \
>  
>  do_configure () {
>  	# Work around Hardcoded path assumptions in gcc
> +        # Make sure we use GMP/MPFR statically
> +        sed -i 's/^\(HOST_GMPLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +        sed -i 's/^\(HOST_GMPLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +        sed -i 's/^\(HOST_PPLLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +        sed -i 's/^\(HOST_PPLLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +        sed -i 's/^\(HOST_LIBELFLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +        sed -i 's/^\(HOST_LIBELFLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
>  	(cd ${S} && gnu-configize) || die "failure running gnu-configize"
>  	(cd ${S}/libstdc++-v3 && autoreconf)
>  	canadian_sdk_runconf
> diff --git a/recipes/gcc/gcc-configure-cross.inc b/recipes/gcc/gcc-configure-cross.inc
> index c3c2b66..7041fcf 100644
> --- a/recipes/gcc/gcc-configure-cross.inc
> +++ b/recipes/gcc/gcc-configure-cross.inc
> @@ -17,6 +17,13 @@ do_configure_prepend () {
>  	export OBJCOPY_FOR_TARGET="${TARGET_SYS}-objcopy"
>  	export STRIP_FOR_TARGET="${TARGET_SYS}-strip"
>  	export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc ${TARGET_CC_ARCH}"
> +	# Make sure we use GMP/MPFR statically
> +	sed -i 's/^\(HOST_GMPLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +	sed -i 's/^\(HOST_GMPLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +	sed -i 's/^\(HOST_PPLLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +	sed -i 's/^\(HOST_PPLLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +	sed -i 's/^\(HOST_LIBELFLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +	sed -i 's/^\(HOST_LIBELFLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
>  }
>  
>  LIBGCCS_VAR = "-lgcc_s"
> diff --git a/recipes/gcc/gcc-configure-sdk.inc b/recipes/gcc/gcc-configure-sdk.inc
> index 328e780..c8fae11 100644
> --- a/recipes/gcc/gcc-configure-sdk.inc
> +++ b/recipes/gcc/gcc-configure-sdk.inc
> @@ -35,6 +35,14 @@ do_configure () {
>  	export CPPFLAGS_FOR_BUILD="${BUILD_CPPFLAGS}"
>  	export CXXFLAGS_FOR_BUILD="${BUILD_CXXFLAGS}"
>  	export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}"
> +        # Make sure we use GMP/MPFR statically
> +        sed -i 's/^\(HOST_GMPLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +        sed -i 's/^\(HOST_GMPLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +        sed -i 's/^\(HOST_PPLLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +        sed -i 's/^\(HOST_PPLLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +        sed -i 's/^\(HOST_LIBELFLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.tpl
> +        sed -i 's/^\(HOST_LIBELFLIBS =\) \(.*\)$/\1 -Wl,-Bstatic \2 -Wl,-Bdynamic/' ${S}/Makefile.in
> +
>  	(cd ${S} && gnu-configize) || die "failure running gnu-configize"
>  	oe_runconf
>  }
> diff --git a/recipes/gmp/gmp.inc b/recipes/gmp/gmp.inc
> index 55209f3..522189d 100644
> --- a/recipes/gmp/gmp.inc
> +++ b/recipes/gmp/gmp.inc
> @@ -2,6 +2,7 @@ SECTION = "libs"
>  DESCRIPTION = "GNU multiprecision arithmetic library"
>  HOMEPAGE = "http://www.swox.com/gmp/"
>  LICENSE = "GPL LGPL"
> +INC_PR = "r1"
>  
>  SRC_URI = "${GNU_MIRROR}/gmp/gmp-${PV}.tar.bz2;name=gmp \
>  	   file://configure.patch \
> @@ -11,5 +12,11 @@ inherit autotools
>  
>  ARM_INSTRUCTION_SET = "arm"
>  
> +
> +EXTRA_OECONF_append_virtclass-native = " --enable-static"
> +
> +BBCLASSEXTEND = "native nativesdk"
> +NATIVE_INSTALL_WORKS = "1"
> +
>  acpaths = ""
>  
> diff --git a/recipes/gmp/gmp_4.2.4.bb b/recipes/gmp/gmp_4.2.4.bb
> index af05875..6eb1ecb 100644
> --- a/recipes/gmp/gmp_4.2.4.bb
> +++ b/recipes/gmp/gmp_4.2.4.bb
> @@ -1,13 +1,13 @@
> -INC_PR = "r0"
> +require gmp.inc
> +
> +SRC_URI += "file://sh4-asmfix.patch \
> +            file://use-includedir.patch \
> +            file://dont_use_mips_h_constraint.patch \
> +           "
> +
>  PR = "${INC_PR}.5"
>  
> -SRC_URI_append += "file://sh4-asmfix.patch \
> -                   file://use-includedir.patch \
> -                   file://dont_use_mips_h_constraint.patch \
> -		  "
> -require gmp.inc
>  LICENSE = "GPLv3 LGPLv3"
> -BBCLASSEXTEND = "nativesdk"
>  
>  SRC_URI[gmp.md5sum] = "fc1e3b3a2a5038d4d74138d0b9cf8dbe"
>  SRC_URI[gmp.sha256sum] = "5420b0e558a69a53b36f2b2c70a69f547e075d98366a585fc80cbbcce1efe368"
> diff --git a/recipes/gmp/gmp_5.0.1.bb b/recipes/gmp/gmp_5.0.1.bb
> index 0b117b1..95cb771 100644
> --- a/recipes/gmp/gmp_5.0.1.bb
> +++ b/recipes/gmp/gmp_5.0.1.bb
> @@ -1,8 +1,5 @@
> -INC_PR = "r0"
> +require gmp.inc
>  PR = "${INC_PR}.1"
>  SRC_URI[gmp.md5sum] = "6bac6df75c192a13419dfd71d19240a7"
>  SRC_URI[gmp.sha256sum] = "a2a610f01fd3298dc08c87bf30498c2402590e1bcb227fc40b15ee6d280939fb"
> -require gmp.inc
>  LICENSE = "GPLv3 LGPLv3"
> -NATIVE_INSTALL_WORKS = "1"
> -BBCLASSEXTEND = "native nativesdk"
> diff --git a/recipes/libelf/libelf_0.8.13.bb b/recipes/libelf/libelf_0.8.13.bb
> index 27fee38..ea19b35 100644
> --- a/recipes/libelf/libelf_0.8.13.bb
> +++ b/recipes/libelf/libelf_0.8.13.bb
> @@ -12,6 +12,8 @@ PARALLEL_MAKE = ""
>  
>  TARGET_CC_ARCH += "${LDFLAGS}"
>  
> +EXTRA_OECONF_append_virtclass-native = " --enable-static"
> +
>  do_configure_prepend () {
>  	if test ! -e acinclude.m4; then
>  		cp aclocal.m4 acinclude.m4
> diff --git a/recipes/libmpc/libmpc_0.8.1.bb b/recipes/libmpc/libmpc_0.8.1.bb
> index f79321c..ed7e5bb 100644
> --- a/recipes/libmpc/libmpc_0.8.1.bb
> +++ b/recipes/libmpc/libmpc_0.8.1.bb
> @@ -4,9 +4,11 @@ DEPENDS = "gmp mpfr"
>  S = "${WORKDIR}/mpc-${PV}"
>  NATIVE_INSTALL_WORKS = "1"
>  BBCLASSEXTEND = "native"
> -PR = "1"
> +PR = "r2"
>  
>  SRC_URI = "http://www.multiprecision.org/mpc/download/mpc-${PV}.tar.gz"
>  
> +EXTRA_OECONF_append_virtclass-native = " --enable-static"
> +
>  SRC_URI[md5sum] = "5b34aa804d514cc295414a963aedb6bf"
>  SRC_URI[sha256sum] = "e664603757251fd8a352848276497a4c79b7f8b21fd8aedd5cc0598a38fee3e4"
> diff --git a/recipes/libmpc/libmpc_0.8.2.bb b/recipes/libmpc/libmpc_0.8.2.bb
> index 1d383fa..18a161a 100644
> --- a/recipes/libmpc/libmpc_0.8.2.bb
> +++ b/recipes/libmpc/libmpc_0.8.2.bb
> @@ -4,8 +4,10 @@ DEPENDS = "gmp mpfr"
>  S = "${WORKDIR}/mpc-${PV}"
>  NATIVE_INSTALL_WORKS = "1"
>  BBCLASSEXTEND = "native"
> +PR = "r1"
>  
>  SRC_URI = "http://www.multiprecision.org/mpc/download/mpc-${PV}.tar.gz"
>  
> +EXTRA_OECONF_append_virtclass-native = " --enable-static"
>  SRC_URI[md5sum] = "e98267ebd5648a39f881d66797122fb6"
>  SRC_URI[sha256sum] = "ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7"
> diff --git a/recipes/mpfr/mpfr_3.0.0.bb b/recipes/mpfr/mpfr_3.0.0.bb
> index 97f4970..0dacb1e 100644
> --- a/recipes/mpfr/mpfr_3.0.0.bb
> +++ b/recipes/mpfr/mpfr_3.0.0.bb
> @@ -11,5 +11,7 @@ SRC_URI = "http://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.bz2 \
>  # fix build in thumb mode for armv4t
>  SRC_URI_append_thumb = " file://long-long-thumb.patch"
>  
> +EXTRA_OECONF_append_virtclass-native = " --enable-static"
> +
>  SRC_URI[md5sum] = "f45bac3584922c8004a10060ab1a8f9f"
>  SRC_URI[sha256sum] = "8f4e5f9c53536cb798a30455ac429b1f9fc75a0f8af32d6e0ac31ebf1024821f"
> diff --git a/recipes/mpfr/mpfr_svn.bb b/recipes/mpfr/mpfr_svn.bb
> index c1695b4..da58b37 100644
> --- a/recipes/mpfr/mpfr_svn.bb
> +++ b/recipes/mpfr/mpfr_svn.bb
> @@ -6,3 +6,5 @@ PR = "${INC_PR}.0"
>  
>  SRC_URI = "svn://scm.gforge.inria.fr/svn/mpfr;module=trunk"
>  S = "${WORKDIR}/trunk"
> +
> +EXTRA_OECONF_append_virtclass-native = " --enable-static"


-- 
Tom Rini
Mentor Graphics Corporation




More information about the Openembedded-devel mailing list