[OE-core] [PATCH] gcc: Enable OpenMP compiling and library

Richard Purdie richard.purdie at linuxfoundation.org
Sun Jan 20 13:22:04 UTC 2013


On Sat, 2013-01-19 at 10:31 +0100, mike.looijmans at topic.nl wrote:
> From: Mike Looijmans <mike.looijmans at topic.nl>
> 
> Multicore embedded systems are getting more and more common.
> 
> Remove "--disable-openmp" from the GCC configuration options and
> always build libgomp. This only creates a "bigger" compiler but
> has no effect on the compiled binaries that don't use openmp.
> 
> Tested a clean build on mips32el and arm7a, no problems encountered.
> 
> Autoconf will not detect OpenMP after this change, because it will
> build and run a target binary on the build system. In order to use
> OpenMP, the variable ac_cv_prog_c_openmp=-fopenmp must be set.
> ---
>  meta/recipes-devtools/gcc/gcc-4.7.inc              |    9 +++------
>  .../recipes-devtools/gcc/gcc-configure-runtime.inc |    4 +---
>  .../recipes-devtools/gcc/gcc-cross-canadian_4.7.bb |    2 +-
>  3 files changed, 5 insertions(+), 10 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-4.7.inc b/meta/recipes-devtools/gcc/gcc-4.7.inc
> index 08a0103..a7aa4a4 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.7.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.7.inc
> @@ -88,7 +88,6 @@ JAVA = ""
>  EXTRA_OECONF_BASE = " --enable-lto \
>  			--enable-libssp \
>  			--disable-bootstrap \
> -			--disable-libgomp \
>  			--disable-libmudflap \
>  			--with-system-zlib \
>  			--with-linker-hash-style=${LINKER_HASH_STYLE} \
> @@ -99,7 +98,6 @@ EXTRA_OECONF_BASE = " --enable-lto \
>  			--enable-cheaders=c_global "
>  
>  EXTRA_OECONF_INITIAL = "--disable-libmudflap \
> -			--disable-libgomp \
>  			--disable-libssp \
>  			--disable-libquadmath \
>  			--with-system-zlib \
> @@ -108,7 +106,6 @@ EXTRA_OECONF_INITIAL = "--disable-libmudflap \
>  			--enable-decimal-float=no"
>  
>  EXTRA_OECONF_INTERMEDIATE = "--disable-libmudflap \
> -				--disable-libgomp \
>  				--disable-libquadmath \
>  				--with-system-zlib \
>  				--disable-lto \


I nearly took this however you still want this disabled in the
INITIAL/INTERMEDIATE versions, you're just wasting compile time there sa
nothing would use it.




> @@ -117,9 +114,9 @@ EXTRA_OECONF_INTERMEDIATE = "--disable-libmudflap \
>  
>  EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
>  
> -EXTRA_OECONF_PATHS = " \ 
> -                      --with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c++ \ 
> -                      --with-sysroot=${STAGING_DIR_TARGET} \ 
> +EXTRA_OECONF_PATHS = " \
> +                      --with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c++ \
> +                      --with-sysroot=${STAGING_DIR_TARGET} \


What changed here?

>                        --with-build-sysroot=${STAGING_DIR_TARGET}"
>  
>  do_configure_prepend () {
> diff --git a/meta/recipes-devtools/gcc/gcc-configure-runtime.inc b/meta/recipes-devtools/gcc/gcc-configure-runtime.inc
> index d40383c..1c9155f 100644
> --- a/meta/recipes-devtools/gcc/gcc-configure-runtime.inc
> +++ b/meta/recipes-devtools/gcc/gcc-configure-runtime.inc
> @@ -7,9 +7,7 @@ EXTRA_OECONF_PATHS = " \
>      --with-sysroot=${STAGING_DIR_TARGET} \
>      --with-build-sysroot=${STAGING_DIR_TARGET}"
>  
> -RUNTIMETARGET = "libssp libstdc++-v3"
> -RUNTIMETARGET_append_powerpc = " libgomp"
> -RUNTIMETARGET_append_powerpc64 = " libgomp"
> +RUNTIMETARGET = "libssp libstdc++-v3 libgomp"
>  #  ?
>  # libiberty
>  # libmudflap
> diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb
> index 53c4632..6c048c0 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb
> +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb
> @@ -13,7 +13,7 @@ SYSTEMLIBS = "${target_base_libdir}/"
>  SYSTEMLIBS1 = "${target_libdir}/"
>  
>  EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
> -		--disable-libgomp --disable-libmudflap \
> +		--disable-libmudflap \


Again, I'm wondering if you mean this here. The library would have been
built as part of the target build? Does the library need gcc support as
well as its presence?

Cheers,

Richard





More information about the Openembedded-core mailing list