https://gcc.gnu.org/g:45c281deb7a2e24a21f2f68a2a3652e30f27f953

commit r15-7941-g45c281deb7a2e24a21f2f68a2a3652e30f27f953
Author: James K. Lowden <jklow...@symas.com>
Date:   Mon Mar 10 16:04:49 2025 +0100

    COBOL: config and build machinery
    
            * Makefile.def: Add libgcobol module and cobol language.
            * Makefile.in: Regenerate.
            * configure.ac: Add libgcobol module and cobol language.
            * configure: Regenerate.

Diff:
---
 Makefile.def |   5 +
 Makefile.in  | 527 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 configure    |  53 ++++++
 configure.ac |  50 ++++++
 4 files changed, 631 insertions(+), 4 deletions(-)

diff --git a/Makefile.def b/Makefile.def
index 19954e7d7318..d2a1cd55b6e6 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -209,6 +209,7 @@ target_modules = { module= libgomp; bootstrap= true; 
lib_path=.libs; };
 target_modules = { module= libitm; lib_path=.libs; };
 target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; };
 target_modules = { module= libgrust; };
+target_modules = { module= libgcobol; };
 
 // 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.
@@ -655,6 +656,7 @@ lang_env_dependencies = { module=libgcc; no_gcc=true; 
no_c=true; };
 // built newlib on some targets (e.g. Cygwin).  It still needs
 // a dependency on libgcc for native targets to configure.
 lang_env_dependencies = { module=libiberty; no_c=true; };
+lang_env_dependencies = { module=libgcobol; cxx=true; };
 
 dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
 dependencies = { module=all-target-fastjar; on=all-target-zlib; };
@@ -690,6 +692,7 @@ dependencies = { module=install-target-libvtv; 
on=install-target-libgcc; };
 dependencies = { module=install-target-libitm; on=install-target-libgcc; };
 dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
 dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; 
};
+dependencies = { module=install-target-libgcobol; 
on=install-target-libstdc++-v3; };
 
 // Target modules in the 'src' repository.
 lang_env_dependencies = { module=libtermcap; };
@@ -727,6 +730,8 @@ languages = { language=d;   gcc-check-target=check-d;
                                lib-check-target=check-target-libphobos; };
 languages = { language=jit;    gcc-check-target=check-jit; };
 languages = { language=rust;   gcc-check-target=check-rust; };
+languages = { language=cobol;  gcc-check-target=check-cobol;
+                               lib-check-target=check-target-libgcobol; };
 
 // Toplevel bootstrap
 bootstrap_stage = { id=1 ; };
diff --git a/Makefile.in b/Makefile.in
index 966d60454960..87880c62ad20 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1162,7 +1162,8 @@ configure-target:  \
     maybe-configure-target-libgomp \
     maybe-configure-target-libitm \
     maybe-configure-target-libatomic \
-    maybe-configure-target-libgrust
+    maybe-configure-target-libgrust \
+    maybe-configure-target-libgcobol
 
 # The target built for a native non-bootstrap build.
 .PHONY: all
@@ -1366,6 +1367,7 @@ all-target: maybe-all-target-libitm
 all-target: maybe-all-target-libatomic
 @endif target-libatomic-no-bootstrap
 all-target: maybe-all-target-libgrust
+all-target: maybe-all-target-libgcobol
 
 # 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
@@ -1464,6 +1466,7 @@ info-target: maybe-info-target-libgomp
 info-target: maybe-info-target-libitm
 info-target: maybe-info-target-libatomic
 info-target: maybe-info-target-libgrust
+info-target: maybe-info-target-libgcobol
 
 .PHONY: do-dvi
 do-dvi:
@@ -1557,6 +1560,7 @@ dvi-target: maybe-dvi-target-libgomp
 dvi-target: maybe-dvi-target-libitm
 dvi-target: maybe-dvi-target-libatomic
 dvi-target: maybe-dvi-target-libgrust
+dvi-target: maybe-dvi-target-libgcobol
 
 .PHONY: do-pdf
 do-pdf:
@@ -1650,6 +1654,7 @@ pdf-target: maybe-pdf-target-libgomp
 pdf-target: maybe-pdf-target-libitm
 pdf-target: maybe-pdf-target-libatomic
 pdf-target: maybe-pdf-target-libgrust
+pdf-target: maybe-pdf-target-libgcobol
 
 .PHONY: do-html
 do-html:
@@ -1743,6 +1748,7 @@ html-target: maybe-html-target-libgomp
 html-target: maybe-html-target-libitm
 html-target: maybe-html-target-libatomic
 html-target: maybe-html-target-libgrust
+html-target: maybe-html-target-libgcobol
 
 .PHONY: do-TAGS
 do-TAGS:
@@ -1836,6 +1842,7 @@ TAGS-target: maybe-TAGS-target-libgomp
 TAGS-target: maybe-TAGS-target-libitm
 TAGS-target: maybe-TAGS-target-libatomic
 TAGS-target: maybe-TAGS-target-libgrust
+TAGS-target: maybe-TAGS-target-libgcobol
 
 .PHONY: do-install-info
 do-install-info:
@@ -1929,6 +1936,7 @@ install-info-target: maybe-install-info-target-libgomp
 install-info-target: maybe-install-info-target-libitm
 install-info-target: maybe-install-info-target-libatomic
 install-info-target: maybe-install-info-target-libgrust
+install-info-target: maybe-install-info-target-libgcobol
 
 .PHONY: do-install-dvi
 do-install-dvi:
@@ -2022,6 +2030,7 @@ install-dvi-target: maybe-install-dvi-target-libgomp
 install-dvi-target: maybe-install-dvi-target-libitm
 install-dvi-target: maybe-install-dvi-target-libatomic
 install-dvi-target: maybe-install-dvi-target-libgrust
+install-dvi-target: maybe-install-dvi-target-libgcobol
 
 .PHONY: do-install-pdf
 do-install-pdf:
@@ -2115,6 +2124,7 @@ install-pdf-target: maybe-install-pdf-target-libgomp
 install-pdf-target: maybe-install-pdf-target-libitm
 install-pdf-target: maybe-install-pdf-target-libatomic
 install-pdf-target: maybe-install-pdf-target-libgrust
+install-pdf-target: maybe-install-pdf-target-libgcobol
 
 .PHONY: do-install-html
 do-install-html:
@@ -2208,6 +2218,7 @@ install-html-target: maybe-install-html-target-libgomp
 install-html-target: maybe-install-html-target-libitm
 install-html-target: maybe-install-html-target-libatomic
 install-html-target: maybe-install-html-target-libgrust
+install-html-target: maybe-install-html-target-libgcobol
 
 .PHONY: do-installcheck
 do-installcheck:
@@ -2301,6 +2312,7 @@ installcheck-target: maybe-installcheck-target-libgomp
 installcheck-target: maybe-installcheck-target-libitm
 installcheck-target: maybe-installcheck-target-libatomic
 installcheck-target: maybe-installcheck-target-libgrust
+installcheck-target: maybe-installcheck-target-libgcobol
 
 .PHONY: do-mostlyclean
 do-mostlyclean:
@@ -2394,6 +2406,7 @@ mostlyclean-target: maybe-mostlyclean-target-libgomp
 mostlyclean-target: maybe-mostlyclean-target-libitm
 mostlyclean-target: maybe-mostlyclean-target-libatomic
 mostlyclean-target: maybe-mostlyclean-target-libgrust
+mostlyclean-target: maybe-mostlyclean-target-libgcobol
 
 .PHONY: do-clean
 do-clean:
@@ -2487,6 +2500,7 @@ clean-target: maybe-clean-target-libgomp
 clean-target: maybe-clean-target-libitm
 clean-target: maybe-clean-target-libatomic
 clean-target: maybe-clean-target-libgrust
+clean-target: maybe-clean-target-libgcobol
 
 .PHONY: do-distclean
 do-distclean:
@@ -2580,6 +2594,7 @@ distclean-target: maybe-distclean-target-libgomp
 distclean-target: maybe-distclean-target-libitm
 distclean-target: maybe-distclean-target-libatomic
 distclean-target: maybe-distclean-target-libgrust
+distclean-target: maybe-distclean-target-libgcobol
 
 .PHONY: do-maintainer-clean
 do-maintainer-clean:
@@ -2673,6 +2688,7 @@ maintainer-clean-target: 
maybe-maintainer-clean-target-libgomp
 maintainer-clean-target: maybe-maintainer-clean-target-libitm
 maintainer-clean-target: maybe-maintainer-clean-target-libatomic
 maintainer-clean-target: maybe-maintainer-clean-target-libgrust
+maintainer-clean-target: maybe-maintainer-clean-target-libgcobol
 
 
 # Here are the targets which correspond to the do-X targets.
@@ -2823,7 +2839,8 @@ check-target:  \
     maybe-check-target-libgomp \
     maybe-check-target-libitm \
     maybe-check-target-libatomic \
-    maybe-check-target-libgrust
+    maybe-check-target-libgrust \
+    maybe-check-target-libgcobol
 
 do-check:
        @: $(MAKE); $(unstage)
@@ -3020,7 +3037,8 @@ install-target:  \
     maybe-install-target-libgomp \
     maybe-install-target-libitm \
     maybe-install-target-libatomic \
-    maybe-install-target-libgrust
+    maybe-install-target-libgrust \
+    maybe-install-target-libgcobol
 
 uninstall:
        @echo "the uninstall target is not supported in this tree"
@@ -3133,7 +3151,8 @@ install-strip-target:  \
     maybe-install-strip-target-libgomp \
     maybe-install-strip-target-libitm \
     maybe-install-strip-target-libatomic \
-    maybe-install-strip-target-libgrust
+    maybe-install-strip-target-libgrust \
+    maybe-install-strip-target-libgcobol
 
 
 ### other supporting targets
@@ -63688,6 +63707,491 @@ maintainer-clean-target-libgrust:
 
 
 
+
+
+.PHONY: configure-target-libgcobol maybe-configure-target-libgcobol
+maybe-configure-target-libgcobol:
+@if gcc-bootstrap
+configure-target-libgcobol: stage_current
+@endif gcc-bootstrap
+@if target-libgcobol
+maybe-configure-target-libgcobol: configure-target-libgcobol
+configure-target-libgcobol: 
+       @: $(MAKE); $(unstage)
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       echo "Checking multilib configuration for libgcobol..."; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcobol; \
+       $(CC_FOR_TARGET) --print-multi-lib > 
$(TARGET_SUBDIR)/libgcobol/multilib.tmp 2> /dev/null; \
+       if test -r $(TARGET_SUBDIR)/libgcobol/multilib.out; then \
+         if cmp -s $(TARGET_SUBDIR)/libgcobol/multilib.tmp 
$(TARGET_SUBDIR)/libgcobol/multilib.out; then \
+           rm -f $(TARGET_SUBDIR)/libgcobol/multilib.tmp; \
+         else \
+           rm -f $(TARGET_SUBDIR)/libgcobol/Makefile; \
+           mv $(TARGET_SUBDIR)/libgcobol/multilib.tmp 
$(TARGET_SUBDIR)/libgcobol/multilib.out; \
+         fi; \
+       else \
+         mv $(TARGET_SUBDIR)/libgcobol/multilib.tmp 
$(TARGET_SUBDIR)/libgcobol/multilib.out; \
+       fi; \
+       test ! -f $(TARGET_SUBDIR)/libgcobol/Makefile || exit 0; \
+       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcobol; \
+       $(NORMAL_TARGET_EXPORTS)  \
+       echo Configuring in $(TARGET_SUBDIR)/libgcobol; \
+       cd "$(TARGET_SUBDIR)/libgcobol" || exit 1; \
+       case $(srcdir) in \
+         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+         *) topdir=`echo $(TARGET_SUBDIR)/libgcobol/ | \
+               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+       esac; \
+       module_srcdir=libgcobol; \
+       rm -f no-such-file || : ; \
+       CONFIG_SITE=no-such-file $(SHELL) \
+         $$s/$$module_srcdir/configure \
+         --srcdir=$${topdir}/$$module_srcdir \
+         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+         --target=${target_alias}  \
+         || exit 1
+@endif target-libgcobol
+
+
+
+
+
+.PHONY: all-target-libgcobol maybe-all-target-libgcobol
+maybe-all-target-libgcobol:
+@if gcc-bootstrap
+all-target-libgcobol: stage_current
+@endif gcc-bootstrap
+@if target-libgcobol
+TARGET-target-libgcobol=all
+maybe-all-target-libgcobol: all-target-libgcobol
+all-target-libgcobol: configure-target-libgcobol
+       @: $(MAKE); $(unstage)
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS)  \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
+               $(TARGET-target-libgcobol))
+@endif target-libgcobol
+
+
+
+
+
+.PHONY: check-target-libgcobol maybe-check-target-libgcobol
+maybe-check-target-libgcobol:
+@if target-libgcobol
+maybe-check-target-libgcobol: check-target-libgcobol
+
+check-target-libgcobol:
+       @: $(MAKE); $(unstage)
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
+
+@endif target-libgcobol
+
+.PHONY: install-target-libgcobol maybe-install-target-libgcobol
+maybe-install-target-libgcobol:
+@if target-libgcobol
+maybe-install-target-libgcobol: install-target-libgcobol
+
+install-target-libgcobol: installdirs
+       @: $(MAKE); $(unstage)
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
+
+@endif target-libgcobol
+
+.PHONY: install-strip-target-libgcobol maybe-install-strip-target-libgcobol
+maybe-install-strip-target-libgcobol:
+@if target-libgcobol
+maybe-install-strip-target-libgcobol: install-strip-target-libgcobol
+
+install-strip-target-libgcobol: installdirs
+       @: $(MAKE); $(unstage)
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
+
+@endif target-libgcobol
+
+# Other targets (info, dvi, pdf, etc.)
+
+.PHONY: maybe-info-target-libgcobol info-target-libgcobol
+maybe-info-target-libgcobol:
+@if target-libgcobol
+maybe-info-target-libgcobol: info-target-libgcobol
+
+info-target-libgcobol: \
+    configure-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing info in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  info) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-dvi-target-libgcobol dvi-target-libgcobol
+maybe-dvi-target-libgcobol:
+@if target-libgcobol
+maybe-dvi-target-libgcobol: dvi-target-libgcobol
+
+dvi-target-libgcobol: \
+    configure-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing dvi in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  dvi) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-pdf-target-libgcobol pdf-target-libgcobol
+maybe-pdf-target-libgcobol:
+@if target-libgcobol
+maybe-pdf-target-libgcobol: pdf-target-libgcobol
+
+pdf-target-libgcobol: \
+    configure-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing pdf in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  pdf) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-html-target-libgcobol html-target-libgcobol
+maybe-html-target-libgcobol:
+@if target-libgcobol
+maybe-html-target-libgcobol: html-target-libgcobol
+
+html-target-libgcobol: \
+    configure-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing html in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  html) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-TAGS-target-libgcobol TAGS-target-libgcobol
+maybe-TAGS-target-libgcobol:
+@if target-libgcobol
+maybe-TAGS-target-libgcobol: TAGS-target-libgcobol
+
+TAGS-target-libgcobol: \
+    configure-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing TAGS in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  TAGS) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-install-info-target-libgcobol install-info-target-libgcobol
+maybe-install-info-target-libgcobol:
+@if target-libgcobol
+maybe-install-info-target-libgcobol: install-info-target-libgcobol
+
+install-info-target-libgcobol: \
+    configure-target-libgcobol \
+    info-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing install-info in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  install-info) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-install-dvi-target-libgcobol install-dvi-target-libgcobol
+maybe-install-dvi-target-libgcobol:
+@if target-libgcobol
+maybe-install-dvi-target-libgcobol: install-dvi-target-libgcobol
+
+install-dvi-target-libgcobol: \
+    configure-target-libgcobol \
+    dvi-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing install-dvi in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  install-dvi) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-install-pdf-target-libgcobol install-pdf-target-libgcobol
+maybe-install-pdf-target-libgcobol:
+@if target-libgcobol
+maybe-install-pdf-target-libgcobol: install-pdf-target-libgcobol
+
+install-pdf-target-libgcobol: \
+    configure-target-libgcobol \
+    pdf-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing install-pdf in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  install-pdf) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-install-html-target-libgcobol install-html-target-libgcobol
+maybe-install-html-target-libgcobol:
+@if target-libgcobol
+maybe-install-html-target-libgcobol: install-html-target-libgcobol
+
+install-html-target-libgcobol: \
+    configure-target-libgcobol \
+    html-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing install-html in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  install-html) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-installcheck-target-libgcobol installcheck-target-libgcobol
+maybe-installcheck-target-libgcobol:
+@if target-libgcobol
+maybe-installcheck-target-libgcobol: installcheck-target-libgcobol
+
+installcheck-target-libgcobol: \
+    configure-target-libgcobol 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing installcheck in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  installcheck) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-mostlyclean-target-libgcobol mostlyclean-target-libgcobol
+maybe-mostlyclean-target-libgcobol:
+@if target-libgcobol
+maybe-mostlyclean-target-libgcobol: mostlyclean-target-libgcobol
+
+mostlyclean-target-libgcobol: 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  mostlyclean) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-clean-target-libgcobol clean-target-libgcobol
+maybe-clean-target-libgcobol:
+@if target-libgcobol
+maybe-clean-target-libgcobol: clean-target-libgcobol
+
+clean-target-libgcobol: 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing clean in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  clean) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-distclean-target-libgcobol distclean-target-libgcobol
+maybe-distclean-target-libgcobol:
+@if target-libgcobol
+maybe-distclean-target-libgcobol: distclean-target-libgcobol
+
+distclean-target-libgcobol: 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing distclean in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  distclean) \
+         || exit 1
+
+@endif target-libgcobol
+
+.PHONY: maybe-maintainer-clean-target-libgcobol 
maintainer-clean-target-libgcobol
+maybe-maintainer-clean-target-libgcobol:
+@if target-libgcobol
+maybe-maintainer-clean-target-libgcobol: maintainer-clean-target-libgcobol
+
+maintainer-clean-target-libgcobol: 
+       @: $(MAKE); $(unstage)
+       @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(NORMAL_TARGET_EXPORTS) \
+       echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgcobol"; \
+       for flag in $(EXTRA_TARGET_FLAGS); do \
+         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export 
\1|"`; \
+       done; \
+       (cd $(TARGET_SUBDIR)/libgcobol && \
+         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                 "RANLIB=$${RANLIB}" \
+                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" 
"WINDMC=$${WINDMC}" \
+                  maintainer-clean) \
+         || exit 1
+
+@endif target-libgcobol
+
+
+
 @if target-libgomp
 .PHONY: check-target-libgomp-c++
 check-target-libgomp-c++:
@@ -63822,6 +64326,14 @@ check-gcc-rust: gcc-site.exp
        (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-rust);
 check-rust: check-gcc-rust
 
+.PHONY: check-gcc-cobol check-cobol
+check-gcc-cobol: gcc-site.exp
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       $(HOST_EXPORTS) \
+       (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-cobol);
+check-cobol: check-gcc-cobol check-target-libgcobol
+
 
 # The gcc part of install-no-fixedincludes, which relies on an intimate
 # knowledge of how a number of gcc internal targets (inter)operate.  Delegate.
@@ -67383,6 +67895,7 @@ configure-stagefeedback-target-libatomic: 
maybe-all-stagefeedback-gcc
 configure-stageautoprofile-target-libatomic: maybe-all-stageautoprofile-gcc
 configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-gcc
 configure-target-libgrust: stage_last
+configure-target-libgcobol: stage_last
 @endif gcc-bootstrap
 
 @if gcc-no-bootstrap
@@ -67410,6 +67923,7 @@ configure-target-libgomp: maybe-all-gcc
 configure-target-libitm: maybe-all-gcc
 configure-target-libatomic: maybe-all-gcc
 configure-target-libgrust: maybe-all-gcc
+configure-target-libgcobol: maybe-all-gcc
 @endif gcc-no-bootstrap
 
 
@@ -68654,6 +69168,7 @@ install-target-libvtv: maybe-install-target-libgcc
 install-target-libitm: maybe-install-target-libgcc
 install-target-libobjc: maybe-install-target-libgcc
 install-target-libstdc++-v3: maybe-install-target-libgcc
+install-target-libgcobol: maybe-install-target-libstdc++-v3
 all-target-libgloss: maybe-all-target-newlib
 all-target-winsup: maybe-all-target-libtermcap
 configure-target-libgfortran: maybe-all-target-libquadmath
@@ -68873,6 +69388,7 @@ configure-target-libgomp: maybe-all-target-libgcc
 configure-target-libitm: maybe-all-target-libgcc
 configure-target-libatomic: maybe-all-target-libgcc
 configure-target-libgrust: maybe-all-target-libgcc
+configure-target-libgcobol: maybe-all-target-libgcc
 @endif gcc-no-bootstrap
 
 
@@ -68923,6 +69439,9 @@ configure-target-libatomic: maybe-all-target-newlib 
maybe-all-target-libgloss
 
 configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss
 
+configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss
+configure-target-libgcobol: maybe-all-target-libstdc++-v3
+
 
 CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
 GDB_TK = @GDB_TK@
diff --git a/configure b/configure
index e2b143efbba6..2a91458effc0 100755
--- a/configure
+++ b/configure
@@ -2863,6 +2863,7 @@ target_libraries="target-libgcc \
                target-libgfortran \
                target-libffi \
                target-libobjc \
+               target-libgcobol \
                target-libada \
                target-libgm2 \
                target-libgo \
@@ -3537,6 +3538,26 @@ $as_echo "yes" >&6; }
     fi
 fi
 
+# Disable libgcobol on unsupported systems.
+# For testing, you can override this with --enable-libgcobol.
+if test -d ${srcdir}/libgcobol; then
+    if test x$enable_libgcobol = x; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgcobol 
support" >&5
+$as_echo_n "checking for libgcobol support... " >&6; }
+       if (srcdir=${srcdir}/libgcobol; \
+               . ${srcdir}/configure.tgt; \
+               test "$LIBGCOBOL_SUPPORTED" != "yes")
+       then
+           { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+           noconfigdirs="$noconfigdirs target-libgcobol"
+       else
+           { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       fi
+    fi
+fi
+
 # Disable Fortran for some systems.
 case "${target}" in
   mmix-*-*)
@@ -3548,6 +3569,38 @@ case "${target}" in
     ;;
 esac
 
+# Always enable COBOL for --enable-languages=*cobol*
+# Otherwise, enable COBOL only for known architectures
+case ,${enable_languages}, in
+  *,cobol,*)
+    case ,${enable_languages}, in
+      *,c++,*)
+      ;;
+      *)
+        # We have an explicit cobol, but no c++.  We need c++, because cobol
+        # requires libstdc++
+        enable_languages="$enable_languages,c++"
+      ;;
+    esac
+    ;;
+  *)
+    case "${target}" in
+      x86_64-*-*|aarch64-*-*)
+        ;;
+      *-*-*)
+       unsupported_languages="$unsupported_languages cobol"
+       ;;
+    esac
+    case "${host}" in
+      x86_64-*-*|aarch64-*-*)
+        ;;
+      *-*-*)
+    unsupported_languages="$unsupported_languages cobol"
+    ;;
+    esac
+    ;;
+esac
+
 # Disable libffi for some systems.
 case "${target}" in
   powerpc-*-darwin*)
diff --git a/configure.ac b/configure.ac
index af894eda4007..414578566faf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -161,6 +161,7 @@ target_libraries="target-libgcc \
                target-libgfortran \
                target-libffi \
                target-libobjc \
+               target-libgcobol \
                target-libada \
                target-libgm2 \
                target-libgo \
@@ -760,6 +761,23 @@ if test -d ${srcdir}/libphobos; then
     fi
 fi
 
+# Disable libgcobol on unsupported systems.
+# For testing, you can override this with --enable-libgcobol.
+if test -d ${srcdir}/libgcobol; then
+    if test x$enable_libgcobol = x; then
+       AC_MSG_CHECKING([for libgcobol support])
+       if (srcdir=${srcdir}/libgcobol; \
+               . ${srcdir}/configure.tgt; \
+               test "$LIBGCOBOL_SUPPORTED" != "yes")
+       then
+           AC_MSG_RESULT([no])
+           noconfigdirs="$noconfigdirs target-libgcobol"
+       else
+           AC_MSG_RESULT([yes])
+       fi
+    fi
+fi
+
 # Disable Fortran for some systems.
 case "${target}" in
   mmix-*-*)
@@ -771,6 +789,38 @@ case "${target}" in
     ;;
 esac
 
+# Always enable COBOL for --enable-languages=*cobol*
+# Otherwise, enable COBOL only for known architectures
+case ,${enable_languages}, in
+  *,cobol,*)
+    case ,${enable_languages}, in
+      *,c++,*)
+      ;;
+      *)
+        # We have an explicit cobol, but no c++.  We need c++, because cobol
+        # requires libstdc++
+        enable_languages="$enable_languages,c++"
+      ;;
+    esac
+    ;;
+  *)
+    case "${target}" in
+      x86_64-*-*|aarch64-*-*)
+        ;;
+      *-*-*)
+    unsupported_languages="$unsupported_languages cobol"
+    ;;
+    esac
+    case "${host}" in
+      x86_64-*-*|aarch64-*-*)
+        ;;
+      *-*-*)
+    unsupported_languages="$unsupported_languages cobol"
+    ;;
+    esac
+    ;;
+esac
+
 # Disable libffi for some systems.
 case "${target}" in
   powerpc-*-darwin*)

Reply via email to