OSDN Git Service

PR libstdc++/36101, PR libstdc++/42813
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Jan 2010 13:35:38 +0000 (13:35 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Jan 2010 13:35:38 +0000 (13:35 +0000)
[toplevel]:
* configure.ac (target_configdirs): Substitute.
* Makefile.def: Bootstrap target module libgomp.
Add dependency of all-target-libstdc++-v3 on configure-target-libgomp.
* Makefile.tpl (TARGET_CONFIGDIRS): New makefile variable.
(BASE_TARGET_EXPORTS): Export TARGET_CONFIGDIRS.
* configure, Makefile.in: Regenerate.
libstdc++-v3:
* acinclude.m4: (enable_parallel): Test ${TARGET_CONFIGDIRS} instead of
loking for omp.h .
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156172 138bc75d-0d04-0410-961f-82ee72b054a4

ChangeLog
Makefile.def
Makefile.in
Makefile.tpl
configure
configure.ac
libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/configure

index e970d97..c72501b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
+
+       PR libstdc++/36101, PR libstdc++/42813
+       * configure.ac (target_configdirs): Substitute.
+       * Makefile.def: Bootstrap target module libgomp.
+       Add dependency of all-target-libstdc++-v3 on configure-target-libgomp.
+       * Makefile.tpl (TARGET_CONFIGDIRS): New makefile variable.
+       (BASE_TARGET_EXPORTS): Export TARGET_CONFIGDIRS.
+       * configure, Makefile.in: Regenerate.
+
 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        * MAINTAINERS: Adjust my details.
index 5a05469..7dce699 100644 (file)
@@ -174,7 +174,7 @@ target_modules = { module= boehm-gc; };
 target_modules = { module= qthreads; };
 target_modules = { module= rda; };
 target_modules = { module= libada; };
-target_modules = { module= libgomp; lib_path=.libs; };
+target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
 
 // These are (some of) the make targets to be done in each subdirectory.
 // Not all; these are the ones which don't have special options.
@@ -547,6 +547,10 @@ dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
 dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
 dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
+// parallel_list.o and parallel_settings.o depend on omp.h, which is
+// generated by the libgomp configure.  Unfortunately, due to the use of
+//  recursive make, we can't be that specific.
+dependencies = { module=all-target-libstdc++-v3; on=configure-target-libgomp; };
 
 // Target modules in the 'src' repository.
 lang_env_dependencies = { module=examples; };
index c02436d..e34d71b 100644 (file)
@@ -173,6 +173,7 @@ EXTRA_BUILD_FLAGS = \
 
 # This is the list of directories to built for the host system.
 SUBDIRS = @configdirs@
+TARGET_CONFIGDIRS = @target_configdirs@
 # This is set by the configure script to the arguments to use when configuring
 # directories built for the host system.
 HOST_CONFIGARGS = @host_configargs@
@@ -284,7 +285,8 @@ BASE_TARGET_EXPORTS = \
 @if gcc-bootstrap
        $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
 @endif gcc-bootstrap
-       $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
+       $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
+       TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS;
 
 RAW_CXX_TARGET_EXPORTS = \
        $(BASE_TARGET_EXPORTS) \
@@ -1120,7 +1122,9 @@ all-target: maybe-all-target-boehm-gc
 all-target: maybe-all-target-qthreads
 all-target: maybe-all-target-rda
 all-target: maybe-all-target-libada
+@if target-libgomp-no-bootstrap
 all-target: maybe-all-target-libgomp
+@endif target-libgomp-no-bootstrap
 
 # Do a target for all the subdirectories.  A ``make do-X'' will do a
 # ``make X'' in all subdirectories (because, in general, there is a
@@ -54629,7 +54633,6 @@ configure-target-libgomp: stage_current
 @if target-libgomp
 maybe-configure-target-libgomp: configure-target-libgomp
 configure-target-libgomp: 
-       @: $(MAKE); $(unstage)
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        echo "Checking multilib configuration for libgomp..."; \
@@ -54666,6 +54669,276 @@ configure-target-libgomp:
 
 
 
+.PHONY: configure-stage1-target-libgomp maybe-configure-stage1-target-libgomp
+maybe-configure-stage1-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-configure-stage1-target-libgomp: configure-stage1-target-libgomp
+configure-stage1-target-libgomp:
+       @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
+       @$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE1_TFLAGS)"; \
+       echo "Checking multilib configuration for libgomp..."; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null ; \
+       if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
+           mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
+       $(NORMAL_TARGET_EXPORTS) \
+       CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+       LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
+       echo Configuring stage 1 in $(TARGET_SUBDIR)/libgomp ; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp ; \
+       cd $(TARGET_SUBDIR)/libgomp || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       srcdiroption="--srcdir=$${topdir}/libgomp"; \
+       libsrcdir="$$s/libgomp"; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias} $${srcdiroption} \
+         $(STAGE1_CONFIGURE_FLAGS)
+@endif target-libgomp-bootstrap
+
+.PHONY: configure-stage2-target-libgomp maybe-configure-stage2-target-libgomp
+maybe-configure-stage2-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-configure-stage2-target-libgomp: configure-stage2-target-libgomp
+configure-stage2-target-libgomp:
+       @[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
+       @$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE2_TFLAGS)"; \
+       echo "Checking multilib configuration for libgomp..."; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null ; \
+       if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
+           mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
+       $(NORMAL_TARGET_EXPORTS) \
+        \
+       CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+       LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
+       echo Configuring stage 2 in $(TARGET_SUBDIR)/libgomp ; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp ; \
+       cd $(TARGET_SUBDIR)/libgomp || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       srcdiroption="--srcdir=$${topdir}/libgomp"; \
+       libsrcdir="$$s/libgomp"; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias} $${srcdiroption} \
+         --with-build-libsubdir=$(HOST_SUBDIR) \
+         $(STAGE2_CONFIGURE_FLAGS)
+@endif target-libgomp-bootstrap
+
+.PHONY: configure-stage3-target-libgomp maybe-configure-stage3-target-libgomp
+maybe-configure-stage3-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-configure-stage3-target-libgomp: configure-stage3-target-libgomp
+configure-stage3-target-libgomp:
+       @[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
+       @$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE3_TFLAGS)"; \
+       echo "Checking multilib configuration for libgomp..."; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null ; \
+       if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
+           mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
+       $(NORMAL_TARGET_EXPORTS) \
+        \
+       CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+       LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
+       echo Configuring stage 3 in $(TARGET_SUBDIR)/libgomp ; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp ; \
+       cd $(TARGET_SUBDIR)/libgomp || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       srcdiroption="--srcdir=$${topdir}/libgomp"; \
+       libsrcdir="$$s/libgomp"; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias} $${srcdiroption} \
+         --with-build-libsubdir=$(HOST_SUBDIR) \
+         $(STAGE3_CONFIGURE_FLAGS)
+@endif target-libgomp-bootstrap
+
+.PHONY: configure-stage4-target-libgomp maybe-configure-stage4-target-libgomp
+maybe-configure-stage4-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-configure-stage4-target-libgomp: configure-stage4-target-libgomp
+configure-stage4-target-libgomp:
+       @[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
+       @$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE4_TFLAGS)"; \
+       echo "Checking multilib configuration for libgomp..."; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null ; \
+       if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
+           mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
+       $(NORMAL_TARGET_EXPORTS) \
+        \
+       CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+       LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
+       echo Configuring stage 4 in $(TARGET_SUBDIR)/libgomp ; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp ; \
+       cd $(TARGET_SUBDIR)/libgomp || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       srcdiroption="--srcdir=$${topdir}/libgomp"; \
+       libsrcdir="$$s/libgomp"; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias} $${srcdiroption} \
+         --with-build-libsubdir=$(HOST_SUBDIR) \
+         $(STAGE4_CONFIGURE_FLAGS)
+@endif target-libgomp-bootstrap
+
+.PHONY: configure-stageprofile-target-libgomp maybe-configure-stageprofile-target-libgomp
+maybe-configure-stageprofile-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-configure-stageprofile-target-libgomp: configure-stageprofile-target-libgomp
+configure-stageprofile-target-libgomp:
+       @[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
+       @$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGEprofile_TFLAGS)"; \
+       echo "Checking multilib configuration for libgomp..."; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null ; \
+       if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
+           mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
+       $(NORMAL_TARGET_EXPORTS) \
+        \
+       CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+       LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
+       echo Configuring stage profile in $(TARGET_SUBDIR)/libgomp ; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp ; \
+       cd $(TARGET_SUBDIR)/libgomp || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       srcdiroption="--srcdir=$${topdir}/libgomp"; \
+       libsrcdir="$$s/libgomp"; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias} $${srcdiroption} \
+         --with-build-libsubdir=$(HOST_SUBDIR) \
+         $(STAGEprofile_CONFIGURE_FLAGS)
+@endif target-libgomp-bootstrap
+
+.PHONY: configure-stagefeedback-target-libgomp maybe-configure-stagefeedback-target-libgomp
+maybe-configure-stagefeedback-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-configure-stagefeedback-target-libgomp: configure-stagefeedback-target-libgomp
+configure-stagefeedback-target-libgomp:
+       @[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
+       @$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGEfeedback_TFLAGS)"; \
+       echo "Checking multilib configuration for libgomp..."; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null ; \
+       if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
+           mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
+       $(NORMAL_TARGET_EXPORTS) \
+        \
+       CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+       LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
+       echo Configuring stage feedback in $(TARGET_SUBDIR)/libgomp ; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp ; \
+       cd $(TARGET_SUBDIR)/libgomp || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       srcdiroption="--srcdir=$${topdir}/libgomp"; \
+       libsrcdir="$$s/libgomp"; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias} $${srcdiroption} \
+         --with-build-libsubdir=$(HOST_SUBDIR) \
+         $(STAGEfeedback_CONFIGURE_FLAGS)
+@endif target-libgomp-bootstrap
+
+
+
 
 
 .PHONY: all-target-libgomp maybe-all-target-libgomp
@@ -54677,7 +54950,6 @@ all-target-libgomp: stage_current
 TARGET-target-libgomp=all
 maybe-all-target-libgomp: all-target-libgomp
 all-target-libgomp: configure-target-libgomp
-       @: $(MAKE); $(unstage)
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(NORMAL_TARGET_EXPORTS)  \
@@ -54688,6 +54960,264 @@ all-target-libgomp: configure-target-libgomp
 
 
 
+.PHONY: all-stage1-target-libgomp maybe-all-stage1-target-libgomp
+.PHONY: clean-stage1-target-libgomp maybe-clean-stage1-target-libgomp
+maybe-all-stage1-target-libgomp:
+maybe-clean-stage1-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-all-stage1-target-libgomp: all-stage1-target-libgomp
+all-stage1: all-stage1-target-libgomp
+TARGET-stage1-target-libgomp = $(TARGET-target-libgomp)
+all-stage1-target-libgomp: configure-stage1-target-libgomp
+       @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE1_TFLAGS)"; \
+       $(NORMAL_TARGET_EXPORTS)  \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(BASE_FLAGS_TO_PASS) \
+               CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
+               CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+               $(EXTRA_TARGET_FLAGS)   \
+               TFLAGS="$(STAGE1_TFLAGS)" \
+               $(TARGET-stage1-target-libgomp)
+
+maybe-clean-stage1-target-libgomp: clean-stage1-target-libgomp
+clean-stage1: clean-stage1-target-libgomp
+clean-stage1-target-libgomp:
+       @if [ $(current_stage) = stage1 ]; then \
+         [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+       else \
+         [ -f $(TARGET_SUBDIR)/stage1-libgomp/Makefile ] || exit 0; \
+         $(MAKE) stage1-start; \
+       fi; \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(EXTRA_TARGET_FLAGS)  \
+                clean
+@endif target-libgomp-bootstrap
+
+
+.PHONY: all-stage2-target-libgomp maybe-all-stage2-target-libgomp
+.PHONY: clean-stage2-target-libgomp maybe-clean-stage2-target-libgomp
+maybe-all-stage2-target-libgomp:
+maybe-clean-stage2-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-all-stage2-target-libgomp: all-stage2-target-libgomp
+all-stage2: all-stage2-target-libgomp
+TARGET-stage2-target-libgomp = $(TARGET-target-libgomp)
+all-stage2-target-libgomp: configure-stage2-target-libgomp
+       @[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE2_TFLAGS)"; \
+       $(NORMAL_TARGET_EXPORTS) \
+         \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(BASE_FLAGS_TO_PASS) \
+               CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
+               CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+               $(EXTRA_TARGET_FLAGS)   \
+               TFLAGS="$(STAGE2_TFLAGS)" \
+               $(TARGET-stage2-target-libgomp)
+
+maybe-clean-stage2-target-libgomp: clean-stage2-target-libgomp
+clean-stage2: clean-stage2-target-libgomp
+clean-stage2-target-libgomp:
+       @if [ $(current_stage) = stage2 ]; then \
+         [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+       else \
+         [ -f $(TARGET_SUBDIR)/stage2-libgomp/Makefile ] || exit 0; \
+         $(MAKE) stage2-start; \
+       fi; \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(EXTRA_TARGET_FLAGS)  \
+                 \
+                clean
+@endif target-libgomp-bootstrap
+
+
+.PHONY: all-stage3-target-libgomp maybe-all-stage3-target-libgomp
+.PHONY: clean-stage3-target-libgomp maybe-clean-stage3-target-libgomp
+maybe-all-stage3-target-libgomp:
+maybe-clean-stage3-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-all-stage3-target-libgomp: all-stage3-target-libgomp
+all-stage3: all-stage3-target-libgomp
+TARGET-stage3-target-libgomp = $(TARGET-target-libgomp)
+all-stage3-target-libgomp: configure-stage3-target-libgomp
+       @[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE3_TFLAGS)"; \
+       $(NORMAL_TARGET_EXPORTS) \
+         \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(BASE_FLAGS_TO_PASS) \
+               CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
+               CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+               $(EXTRA_TARGET_FLAGS)   \
+               TFLAGS="$(STAGE3_TFLAGS)" \
+               $(TARGET-stage3-target-libgomp)
+
+maybe-clean-stage3-target-libgomp: clean-stage3-target-libgomp
+clean-stage3: clean-stage3-target-libgomp
+clean-stage3-target-libgomp:
+       @if [ $(current_stage) = stage3 ]; then \
+         [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+       else \
+         [ -f $(TARGET_SUBDIR)/stage3-libgomp/Makefile ] || exit 0; \
+         $(MAKE) stage3-start; \
+       fi; \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(EXTRA_TARGET_FLAGS)  \
+                 \
+                clean
+@endif target-libgomp-bootstrap
+
+
+.PHONY: all-stage4-target-libgomp maybe-all-stage4-target-libgomp
+.PHONY: clean-stage4-target-libgomp maybe-clean-stage4-target-libgomp
+maybe-all-stage4-target-libgomp:
+maybe-clean-stage4-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-all-stage4-target-libgomp: all-stage4-target-libgomp
+all-stage4: all-stage4-target-libgomp
+TARGET-stage4-target-libgomp = $(TARGET-target-libgomp)
+all-stage4-target-libgomp: configure-stage4-target-libgomp
+       @[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGE4_TFLAGS)"; \
+       $(NORMAL_TARGET_EXPORTS) \
+         \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(BASE_FLAGS_TO_PASS) \
+               CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
+               CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+               $(EXTRA_TARGET_FLAGS)   \
+               TFLAGS="$(STAGE4_TFLAGS)" \
+               $(TARGET-stage4-target-libgomp)
+
+maybe-clean-stage4-target-libgomp: clean-stage4-target-libgomp
+clean-stage4: clean-stage4-target-libgomp
+clean-stage4-target-libgomp:
+       @if [ $(current_stage) = stage4 ]; then \
+         [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+       else \
+         [ -f $(TARGET_SUBDIR)/stage4-libgomp/Makefile ] || exit 0; \
+         $(MAKE) stage4-start; \
+       fi; \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(EXTRA_TARGET_FLAGS)  \
+                 \
+                clean
+@endif target-libgomp-bootstrap
+
+
+.PHONY: all-stageprofile-target-libgomp maybe-all-stageprofile-target-libgomp
+.PHONY: clean-stageprofile-target-libgomp maybe-clean-stageprofile-target-libgomp
+maybe-all-stageprofile-target-libgomp:
+maybe-clean-stageprofile-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-all-stageprofile-target-libgomp: all-stageprofile-target-libgomp
+all-stageprofile: all-stageprofile-target-libgomp
+TARGET-stageprofile-target-libgomp = $(TARGET-target-libgomp)
+all-stageprofile-target-libgomp: configure-stageprofile-target-libgomp
+       @[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGEprofile_TFLAGS)"; \
+       $(NORMAL_TARGET_EXPORTS) \
+         \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(BASE_FLAGS_TO_PASS) \
+               CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
+               CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+               $(EXTRA_TARGET_FLAGS)   \
+               TFLAGS="$(STAGEprofile_TFLAGS)" \
+               $(TARGET-stageprofile-target-libgomp)
+
+maybe-clean-stageprofile-target-libgomp: clean-stageprofile-target-libgomp
+clean-stageprofile: clean-stageprofile-target-libgomp
+clean-stageprofile-target-libgomp:
+       @if [ $(current_stage) = stageprofile ]; then \
+         [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+       else \
+         [ -f $(TARGET_SUBDIR)/stageprofile-libgomp/Makefile ] || exit 0; \
+         $(MAKE) stageprofile-start; \
+       fi; \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(EXTRA_TARGET_FLAGS)  \
+                 \
+                clean
+@endif target-libgomp-bootstrap
+
+
+.PHONY: all-stagefeedback-target-libgomp maybe-all-stagefeedback-target-libgomp
+.PHONY: clean-stagefeedback-target-libgomp maybe-clean-stagefeedback-target-libgomp
+maybe-all-stagefeedback-target-libgomp:
+maybe-clean-stagefeedback-target-libgomp:
+@if target-libgomp-bootstrap
+maybe-all-stagefeedback-target-libgomp: all-stagefeedback-target-libgomp
+all-stagefeedback: all-stagefeedback-target-libgomp
+TARGET-stagefeedback-target-libgomp = $(TARGET-target-libgomp)
+all-stagefeedback-target-libgomp: configure-stagefeedback-target-libgomp
+       @[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       TFLAGS="$(STAGEfeedback_TFLAGS)"; \
+       $(NORMAL_TARGET_EXPORTS) \
+         \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(BASE_FLAGS_TO_PASS) \
+               CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
+               CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+               CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+               LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+               $(EXTRA_TARGET_FLAGS)   \
+               TFLAGS="$(STAGEfeedback_TFLAGS)" \
+               $(TARGET-stagefeedback-target-libgomp)
+
+maybe-clean-stagefeedback-target-libgomp: clean-stagefeedback-target-libgomp
+clean-stagefeedback: clean-stagefeedback-target-libgomp
+clean-stagefeedback-target-libgomp:
+       @if [ $(current_stage) = stagefeedback ]; then \
+         [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+       else \
+         [ -f $(TARGET_SUBDIR)/stagefeedback-libgomp/Makefile ] || exit 0; \
+         $(MAKE) stagefeedback-start; \
+       fi; \
+       cd $(TARGET_SUBDIR)/libgomp && \
+       $(MAKE) $(EXTRA_TARGET_FLAGS)  \
+                 \
+                clean
+@endif target-libgomp-bootstrap
+
+
+
+
 
 
 .PHONY: check-target-libgomp maybe-check-target-libgomp
@@ -57133,7 +57663,12 @@ configure-target-boehm-gc: stage_last
 configure-target-qthreads: stage_last
 configure-target-rda: stage_last
 configure-target-libada: stage_last
-configure-target-libgomp: stage_last
+configure-stage1-target-libgomp: maybe-all-stage1-gcc
+configure-stage2-target-libgomp: maybe-all-stage2-gcc
+configure-stage3-target-libgomp: maybe-all-stage3-gcc
+configure-stage4-target-libgomp: maybe-all-stage4-gcc
+configure-stageprofile-target-libgomp: maybe-all-stageprofile-gcc
+configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-gcc
 @endif gcc-bootstrap
 
 @if gcc-no-bootstrap
@@ -57874,6 +58409,21 @@ all-target-libobjc: maybe-all-target-libiberty
 all-target-libobjc: maybe-all-target-boehm-gc
 all-target-libstdc++-v3: maybe-all-target-libiberty
 configure-target-libstdc++-v3: maybe-configure-target-libgomp
+
+configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
+configure-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp
+configure-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp
+configure-stage4-target-libstdc++-v3: maybe-configure-stage4-target-libgomp
+configure-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
+configure-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
+all-target-libstdc++-v3: maybe-configure-target-libgomp
+
+all-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
+all-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp
+all-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp
+all-stage4-target-libstdc++-v3: maybe-configure-stage4-target-libgomp
+all-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
+all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
 all-target-libgloss: maybe-all-target-newlib
 all-target-winsup: maybe-all-target-libiberty
 all-target-winsup: maybe-all-target-libtermcap
@@ -57895,6 +58445,12 @@ configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libgcc
 configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libgcc
 configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libgcc
 configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libgcc
+configure-stage1-target-libgomp: maybe-all-stage1-target-libgcc
+configure-stage2-target-libgomp: maybe-all-stage2-target-libgcc
+configure-stage3-target-libgomp: maybe-all-stage3-target-libgcc
+configure-stage4-target-libgomp: maybe-all-stage4-target-libgcc
+configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libgcc
+configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libgcc
 @endif gcc-bootstrap
 
 @if gcc-no-bootstrap
index ac62666..889c040 100644 (file)
@@ -176,6 +176,7 @@ EXTRA_BUILD_FLAGS = \
 
 # This is the list of directories to built for the host system.
 SUBDIRS = @configdirs@
+TARGET_CONFIGDIRS = @target_configdirs@
 # This is set by the configure script to the arguments to use when configuring
 # directories built for the host system.
 HOST_CONFIGARGS = @host_configargs@
@@ -287,7 +288,8 @@ BASE_TARGET_EXPORTS = \
 @if gcc-bootstrap
        $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
 @endif gcc-bootstrap
-       $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
+       $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
+       TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS;
 
 RAW_CXX_TARGET_EXPORTS = \
        $(BASE_TARGET_EXPORTS) \
index 103863d..23c1eb7 100755 (executable)
--- a/configure
+++ b/configure
@@ -656,6 +656,7 @@ CC_FOR_BUILD
 AS_FOR_BUILD
 AR_FOR_BUILD
 target_configargs
+target_configdirs
 configdirs
 host_configargs
 build_configdirs
@@ -7949,6 +7950,7 @@ done
 
 
 
+
 # Target module lists & subconfigure args.
 
 
index a4d5f9e..c99fffc 100644 (file)
@@ -3086,6 +3086,7 @@ AC_SUBST(build_configdirs)
 # Host module lists & subconfigure args.
 AC_SUBST(host_configargs)
 AC_SUBST(configdirs)
+AC_SUBST(target_configdirs)
 
 # Target module lists & subconfigure args.
 AC_SUBST(target_configargs)
index c0558f8..bfdf16a 100644 (file)
@@ -1,3 +1,10 @@
+2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
+
+       PR libstdc++/36101, PR libstdc++/42813
+       * acinclude.m4: (enable_parallel): Test ${TARGET_CONFIGDIRS} instead of
+       loking for omp.h .
+       * configure: Regenerate.
+
 2010-01-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
         PR libstdc++/42201
index 1eaf4ba..94b53b8 100644 (file)
@@ -2023,10 +2023,10 @@ AC_DEFUN([GLIBCXX_ENABLE_PARALLEL], [
 
   # See if configured libgomp/omp.h exists. (libgomp may be in
   # noconfigdirs but not explicitly disabled.)
-  if test -f $glibcxx_builddir/../libgomp/omp.h; then
+  if echo " ${TARGET_CONFIGDIRS} " | grep " libgomp " > /dev/null 2>&1 ; then
     enable_parallel=yes;
   else
-    AC_MSG_NOTICE([$glibcxx_builddir/../libgomp/omp.h not found])
+    AC_MSG_NOTICE([target-libgomp not built])
   fi
 
   AC_MSG_CHECKING([for parallel mode support])
index 1c6bec4..ed611d6 100755 (executable)
@@ -17056,11 +17056,11 @@ $as_echo "$enable_libstdcxx_debug" >&6; }
 
   # See if configured libgomp/omp.h exists. (libgomp may be in
   # noconfigdirs but not explicitly disabled.)
-  if test -f $glibcxx_builddir/../libgomp/omp.h; then
+  if echo " ${TARGET_CONFIGDIRS} " | grep " libgomp " > /dev/null 2>&1 ; then
     enable_parallel=yes;
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: $glibcxx_builddir/../libgomp/omp.h not found" >&5
-$as_echo "$as_me: $glibcxx_builddir/../libgomp/omp.h not found" >&6;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: target-libgomp not built" >&5
+$as_echo "$as_me: target-libgomp not built" >&6;}
   fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for parallel mode support" >&5