toolchain/gcc: add openmp support option
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Mon, 2 May 2011 18:16:41 +0000 (15:16 -0300)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 2 May 2011 19:15:50 +0000 (21:15 +0200)
Add OpenMP support in gcc as an option instead of dynamically enabling
it when threads are present.
Also fix it up since we never installed libgomp to the target or staging
thus it was never really functional.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
toolchain/gcc/Config.in
toolchain/gcc/gcc-uclibc-4.x.mk

index fcdcc198cf0a3938ac3a1b5984c75a96e435115a..437b86bb7def8e6cc5da0cd411aaba1b4cea95a6 100644 (file)
@@ -109,3 +109,9 @@ config BR2_GCC_ENABLE_TLS
        help
          Enable the compiler to generate code for accessing
          thread local storage variables
+
+config BR2_GCC_ENABLE_OPENMP
+       bool "Enable compiler OpenMP support"
+       depends on !BR2_PTHREADS_NONE && !BR2_avr32
+       help
+         Enable OpenMP support for the compiler
index 568aa1a84ecc918b8fdbd9f0959bf03a272880f2..9b8bf685cc7a4907568332c1eedb26d62b06f930 100644 (file)
@@ -147,6 +147,12 @@ else
 GCC_SHARED_LIBGCC:=--disable-shared
 endif
 
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+GCC_ENABLE_OPENMP:=--enable-libgomp
+else
+GCC_ENABLE_OPENMP:=--disable-libgomp
+endif
+
 ifeq ($(BR2_GCC_ENABLE_TLS),y)
 GCC_TLS:=--enable-tls
 else
@@ -154,7 +160,7 @@ GCC_TLS:=--disable-tls
 endif
 
 ifeq ($(BR2_PTHREADS_NONE),y)
-THREADS:=--disable-threads --disable-libgomp
+THREADS:=--disable-threads
 else
 THREADS:=--enable-threads
 endif
@@ -234,6 +240,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
                --disable-__cxa_atexit \
                $(GCC_OPTSPACE) \
                $(GCC_QUADMATH) \
+               $(GCC_ENABLE_OPENMP) \
                --with-gnu-ld \
                --disable-shared \
                --disable-libssp \
@@ -301,6 +308,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
                --disable-__cxa_atexit \
                $(GCC_OPTSPACE) \
                $(GCC_QUADMATH) \
+               $(GCC_ENABLE_OPENMP) \
                --with-gnu-ld \
                --enable-shared \
                --disable-libssp \
@@ -379,6 +387,7 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
                --disable-__cxa_atexit \
                $(GCC_OPTSPACE) \
                $(GCC_QUADMATH) \
+               $(GCC_ENABLE_OPENMP) \
                --with-gnu-ld \
                --disable-libssp \
                --disable-multilib \
@@ -469,6 +478,11 @@ ifeq ($(BR2_INSTALL_LIBGCJ),y)
        cp -dpf $(HOST_DIR)/usr/lib/security/classpath.security \
                $(TARGET_DIR)/usr/lib/security/
        -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgcj.so*
+endif
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+       cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgomp.so* $(STAGING_DIR)/usr/lib/
+       cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgomp.so* $(TARGET_DIR)/usr/lib/
+       -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgomp.so*
 endif
        mkdir -p $(@D)
        touch $@
@@ -523,6 +537,7 @@ $(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
                --disable-__cxa_atexit \
                $(GCC_OPTSPACE) \
                $(GCC_QUADMATH) \
+               $(GCC_ENABLE_OPENMP) \
                --with-gnu-ld \
                --disable-libssp \
                --disable-multilib \