On Sat, Feb 15, 2025 at 10:20 PM Sam James <s...@gentoo.org> wrote:
>
> "James K. Lowden" <jklow...@schemamania.org> writes:
>
> > From 5d53920602e234e4d99ae2d502e662ee3699978e 4 Oct 2024 12:01:22 -0400
> > From: "James K. Lowden" <jklow...@symas.com>
> > Date: Sat 15 Feb 2025 12:50:52 PM EST
> > Subject: [PATCH] Add 'cobol' to 17 files
>
> The commit message summary (first line) should say something like the
> email title, so 'cobol: bld: config and build machinery'.
> >
> > ChangeLog
> >       * Makefile.def: Add libgcobol module and cobol language.
> >       * Makefile.in: Add libgcobol module and cobol language.
> >       * configure: Regenerate.
> >       * configure.ac: Add libgcobol module and cobol language.
> >
> > gcc/ChangeLog
> >       * common.opt: New file.
> >       * dwarf2out.cc: Add cobol language.
> >
> > gcc/cobol/ChangeLog
> >       * LICENSE: New file.
> >       * Make-lang.in: New file.
> >       * config-lang.in: New file.
> >       * lang.opt: New file.
> >       * lang.opt.urls: New file.
> >
> > libgcobol/ChangeLog
> >       * Makefile.in: New file.
> >       * acinclude.m4: New file.
> >       * aclocal.m4: New file.
> >       * configure.ac: New file.
> >       * configure.tgt: New file.
> >
> > maintainer-scripts/ChangeLog
> >       * update_web_docs_git: Add libgcobol module and cobol language.
> >
> > ---
> > Makefile.def | ++++++-
> > Makefile.in | 
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
> > configure | 
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > configure.ac | ++++++++++++++++++++++++++++++++++++++++++++++++-
> > gcc/cobol/LICENSE | +++++++++++++++++++++++++++++-
> > gcc/cobol/Make-lang.in | 
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > gcc/cobol/config-lang.in | ++++++++++++++++++++++++++++++++++++++-
> > gcc/cobol/lang.opt | 
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > gcc/cobol/lang.opt.urls | +++++++++++++++++++++++++++++-
> > gcc/common.opt | ++++-
> > gcc/dwarf2out.cc | +++++-
> > libgcobol/Makefile.in | 
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > libgcobol/acinclude.m4 | ++++++++++++++++++++++++++-
> > libgcobol/aclocal.m4 | 
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > libgcobol/configure.ac | 
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > libgcobol/configure.tgt | 
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > maintainer-scripts/update_web_docs_git | +++++++++++++++++++++++++++++
> > 17 files changed, 2244 insertions(+), 22 deletions(-)
> > diff --git a/Makefile.def b/Makefile.def
> > index 19954e7d731..1192e852c7a 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.
> > @@ -324,6 +325,7 @@ flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
> >  flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
> >  flags_to_pass = { flag= DSYMUTIL_FOR_TARGET ; };
> >  flags_to_pass = { flag= FLAGS_FOR_TARGET ; };
> > +flags_to_pass = { flag= GCOBOL_FOR_TARGET ; };
> >  flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; };
> >  flags_to_pass = { flag= GOC_FOR_TARGET ; };
> >  flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
> > @@ -655,6 +657,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 +693,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 +731,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 966d6045496..bd59dc81c4e 100644
> > --- a/Makefile.in
> > +++ b/Makefile.in
> > @@ -896,6 +896,7 @@ BASE_FLAGS_TO_PASS = \
> >       "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
> >       "DSYMUTIL_FOR_TARGET=$(DSYMUTIL_FOR_TARGET)" \
> >       "FLAGS_FOR_TARGET=$(FLAGS_FOR_TARGET)" \
> > +     "GCOBOL_FOR_TARGET=$(GCOBOL_FOR_TARGET)" \
> >       "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \
> >       "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \
> >       "GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \
> > @@ -1162,7 +1163,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 +1368,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 +1467,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 +1561,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 +1655,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 +1749,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 +1843,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 +1937,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 +2031,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 +2125,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 +2219,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 +2313,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 +2407,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 +2501,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 +2595,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 +2689,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 +2840,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 +3038,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 +3152,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 +63708,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 +64327,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 +67896,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 +67924,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 +69169,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 +69389,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 +69440,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 4ae8e1242af..bd1903f3583 100755
> > --- a/configure
> > +++ b/configure
> > @@ -776,6 +776,7 @@ infodir
> >  docdir
> >  oldincludedir
> >  includedir
> > +runstatedir
> >  localstatedir
> >  sharedstatedir
> >  sysconfdir
> > @@ -951,6 +952,7 @@ datadir='${datarootdir}'
> >  sysconfdir='${prefix}/etc'
> >  sharedstatedir='${prefix}/com'
> >  localstatedir='${prefix}/var'
> > +runstatedir='${localstatedir}/run'
> >  includedir='${prefix}/include'
> >  oldincludedir='/usr/include'
> >  docdir='${datarootdir}/doc/${PACKAGE}'
> > @@ -1203,6 +1205,15 @@ do
> >    | -silent | --silent | --silen | --sile | --sil)
> >      silent=yes ;;
> >
> > +  -runstatedir | --runstatedir | --runstatedi | --runstated \
> > +  | --runstate | --runstat | --runsta | --runst | --runs \
> > +  | --run | --ru | --r)
> > +    ac_prev=runstatedir ;;
> > +  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
> > +  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
> > +  | --run=* | --ru=* | --r=*)
> > +    runstatedir=$ac_optarg ;;
> > +
> >    -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
> >      ac_prev=sbindir ;;
> >    -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
> > @@ -1340,7 +1351,7 @@ fi
> >  for ac_var in        exec_prefix prefix bindir sbindir libexecdir 
> > datarootdir \
> >               datadir sysconfdir sharedstatedir localstatedir includedir \
> >               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
> > -             libdir localedir mandir
> > +             libdir localedir mandir runstatedir
> >  do
> >    eval ac_val=\$$ac_var
> >    # Remove trailing slashes.
> > @@ -1500,6 +1511,7 @@ Fine tuning of the installation directories:
> >    --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
> >    --sharedstatedir=DIR    modifiable architecture-independent data 
> > [PREFIX/com]
> >    --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
> > +  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
> >    --libdir=DIR            object code libraries [EPREFIX/lib]
>
> Please generate these files with vanilla autoconf-2.69, not
> distro-patched autoconf.
>
> >    --includedir=DIR        C header files [PREFIX/include]
> >    --oldincludedir=DIR     C header files for non-gcc [/usr/include]
> > @@ -2863,6 +2875,7 @@ target_libraries="target-libgcc \
> >               target-libgfortran \
> >               target-libffi \
> >               target-libobjc \
> > +             target-libgcobol \
> >               target-libada \
> >               target-libgm2 \
> >               target-libgo \
> > @@ -3512,6 +3525,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-*-*)
> > @@ -10213,6 +10246,36 @@ fi
> >    stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
> >    new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e 
> > "s/,$//"`
> >
> > +# It's early days for COBOL, and it is known to compile on only some host 
> > and
> > +# target systems.  We remove COBOL from other builds with a warning.
> > +
> > +cobol_is_okay_host="no"
> > +cobol_is_okay_target="no"
> > +
> > +case "${host}" in
> > +  x86_64-*-*)
> > +    cobol_is_okay_host="yes"
> > +    ;;
> > +  aarch64-*-*)
> > +    cobol_is_okay_host="yes"
> > +    ;;
> > +esac
> > +case "${target}" in
> > +  x86_64-*-*)
> > +    cobol_is_okay_target="yes"
> > +    ;;
> > +  aarch64-*-*)
> > +    cobol_is_okay_target="yes"
> > +    ;;
> > +esac
> > +
> > +if test "$cobol_is_okay_host" = "no" || test "$cobol_is_okay_target" = 
> > "no"; then
> > +   if echo "${new_enable_languages}" | grep "cobol" >/dev/null 2>&1; then
> > +   echo "WARNING: cobol is not available on this host or target"
> > +   new_enable_languages=`echo "${new_enable_languages}" | sed s/,cobol//g`
> > +   fi
> > +fi
> > +
> >    if test "x$missing_languages" != x; then
> >      as_fn_error $? "
> >  The following requested languages could not be built: ${missing_languages}
> > diff --git a/configure.ac b/configure.ac
> > index 9a72b2311bd..f521fd410ec 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 \
> > @@ -735,6 +736,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-*-*)
> > @@ -2525,6 +2543,36 @@ directories, to avoid imposing the performance cost 
> > of
> >    missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e 
> > "s/,$//"`
> >    stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
> >    new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e 
> > "s/,$//"`
> > +
> > +# It's early days for COBOL, and it is known to compile on only some host 
> > and
> > +# target systems.  We remove COBOL from other builds with a warning.
> > +
> > +cobol_is_okay_host="no"
> > +cobol_is_okay_target="no"
> > +
> > +case "${host}" in
> > +  x86_64-*-*)
> > +    cobol_is_okay_host="yes"
> > +    ;;
> > +  aarch64-*-*)
> > +    cobol_is_okay_host="yes"
> > +    ;;
> > +esac
> > +case "${target}" in
> > +  x86_64-*-*)
> > +    cobol_is_okay_target="yes"
> > +    ;;
> > +  aarch64-*-*)
> > +    cobol_is_okay_target="yes"
> > +    ;;
> > +esac
> > +
> > +if test "$cobol_is_okay_host" = "no" || test "$cobol_is_okay_target" = 
> > "no"; then
> > +   if echo "${new_enable_languages}" | grep "cobol" >/dev/null 2>&1; then
> > +   echo "WARNING: cobol is not available on this host or target"
> > +   new_enable_languages=`echo "${new_enable_languages}" | sed s/,cobol//g`
> > +   fi
> > +fi
> >
> >    if test "x$missing_languages" != x; then
> >      AC_MSG_ERROR([
> > diff --git a/gcc/cobol/LICENSE b/gcc/cobol/LICENSE
> > new file mode 100644
> > index 00000000000..266a56a8345
> > --- /dev/null
> > +++ b/gcc/cobol/LICENSE
> > @@ -0,0 +1,29 @@
> > +#########################################################################
> > +#
> > +# Copyright (c) 2021-2024 Symas Corporation
> > +#
> > +# Redistribution and use in source and binary forms, with or without
> > +# modification, are permitted provided that the following conditions are
> > +# met:
> > +#
> > +# * Redistributions of source code must retain the above copyright
> > +#   notice, this list of conditions and the following disclaimer.
> > +# * Redistributions in binary form must reproduce the above
> > +#   copyright notice, this list of conditions and the following disclaimer
> > +#   in the documentation and/or other materials provided with the
> > +#   distribution.
> > +# * Neither the name of the Symas Corporation nor the names of its
> > +#   contributors may be used to endorse or promote products derived from
> > +#   this software without specific prior written permission.
> > +#
> > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> > +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> > +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> > +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> > +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> > +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> > +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> > diff --git a/gcc/cobol/Make-lang.in b/gcc/cobol/Make-lang.in
> > new file mode 100644
> > index 00000000000..7e60abe8d9b
> > --- /dev/null
> > +++ b/gcc/cobol/Make-lang.in
> > @@ -0,0 +1,361 @@
> > +# Top level -*- makefile -*- fragment for Cobol
> > +#   Copyright (C) 2021-2024 Free Software Foundation, Inc.
> > +
> > +# This file is part of GCC.
> > +
> > +# GCC is free software; you can redistribute it and/or modify
> > +# it under the terms of the GNU General Public License as published by
> > +# the Free Software Foundation; either version 3, or (at your option)
> > +# any later version.
> > +
> > +# GCC is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > +# GNU General Public License for more details.
> > +
> > +# You should have received a copy of the GNU General Public License
> > +# along with GCC; see the file COPYING3.  If not see
> > +# <http://www.gnu.org/licenses/>.
> > +
> > +# This file provides the language dependent support in the main Makefile.
> > +# Each language makefile fragment must provide the following targets:
> > +#
> > +# foo.all.cross, foo.start.encap, foo.rest.encap,
> > +# foo.install-common, foo.install-man, foo.install-info, foo.install-pdf,
> > +# foo.install-html, foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall,
> > +# foo.mostlyclean, foo.clean, foo.distclean,
> > +# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
> > +#
> > +# where `foo' is the name of the language.
> > +#
> > +# It should also provide rules for:
> > +#
> > +# - making any compiler driver (eg: g++)
> > +# - the compiler proper (eg: cc1plus)
> > +# - define the names for selecting the language in LANGUAGES.
> > +
> > +gcobol_INSTALL_NAME := $(shell echo gcobol|sed '$(program_transform_name)')
> > +gcobol_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo 
> > gcobol|sed '$(program_transform_name)')
> > +
> > +cobol: cobol1$(exeext)
> > +.PHONY: cobol
> > +
> > +BINCLUDE ?= ./gcc
> > +LIB_INCLUDE ?= $(srcdir)/../libgcobol
> > +LIB_SOURCE ?= $(srcdir)/../libgcobol
> > +
> > +#
> > +# At this point, as of 2022-10-21, CPPFLAGS is an empty string and can be
> > +# altered.  CFLAGS and CXXFLAGS are being established upstream, and thus
> > +# cannot, at this point, be changed.
> > +#
> > +CPPFLAGS =                                   \
> > + -std=c++17                                  \
>
> The rest of the compiler is in C++14 (as of August or so). Not sure if
> this is fine or not -- I think it might be as long as it's only in your
> FE and not in core bits. Defer to others.

This would mean a need to document a C++17 compiler requirement for
gcobol in install.texi - but this also means that gcobol shouldn't be in the
set of stage1_languages.  I don't see the patch adding gcobol as
stage1_language, so it should be fine when bootstrapping.

Note passing -std=c++17 shouldn't be done though, for bootstrapping
GCCs default itself should be OK (it's C++17), and when not bootstrapping
the flag to specify to get a C++17 compiler need to be figured via
configury, likewise Whether -Wno-cpp or -Wno-missing-field-initializers
works.

git shows a few trailing whitespace chars for me, it would be nice to fix those.

Are you sure you need the GCOBOL_FOR_TARGET variable?  Is part of
libgcobol written in cobol?

I'm rubber-stamping the rest, I'm sure issues will be fixed up when people
try porting to their systems.

Thanks,
Richard.

> > + $(MAX_ERRORS)                                       \
> > + -Iinclude                                   \
> > + -I$(BINCLUDE)                                       \
> > + -I$(LIB_INCLUDE)                            \
> > + -Wno-cpp                                    \
> > + -Wno-missing-field-initializers             \
> > + -DEXEC_LIB=\"$(PREFIX)/$(libdir)\"          \
> > + $(END)
> > +
> > +YFLAGS = -Werror -Wmidrule-values -Wno-yacc \
> > +     --debug --verbose
>
> Unconditional -Werror here looks off, should be based on the configure
> flag (--debug looks odd too).
>
> > +
> > +LFLAGS = -d -Ca
> > +
> > +#
> > +# These are the object files for creating the cobol1.exe compiler:
> > +#
> > +cobol1_OBJS =    \
> > + cobol/cdf.o        \
> > + cobol/cdf-copy.o   \
> > + cobol/cobol1.o     \
> > + cobol/convert.o    \
> > + cobol/except.o     \
> > + cobol/genutil.o    \
> > + cobol/genapi.o     \
> > + cobol/genmath.o    \
> > + cobol/gengen.o     \
> > + cobol/lexio.o      \
> > + cobol/parse.o      \
> > + cobol/scan.o       \
> > + cobol/structs.o    \
> > + cobol/symbols.o    \
> > + cobol/symfind.o    \
> > + cobol/util.o       \
> > + cobol/charmaps-dupe.o   \
> > + cobol/valconv-dupe.o    \
> > + $(END)
> > +
> > +#
> > +# There is source code in libgcobol/charmaps.cc and libgcobol/valconv.cc
> > +# that needs to be compiled into both libgcobol and cobol1.  The following
> > +# recipes make copies of those two source code files from libgcobol to 
> > here in
> > +# the gcc/cobol build tree.  This avoids the nightmare of one file 
> > appearing in
> > +# more than one place.
> > +#
> > +$(srcdir)/cobol/charmaps-dupe.cc: $(LIB_SOURCE)/charmaps.cc
> > +     echo "// DO NOT EDIT THIS FILE.  It was copied from the libgcobol 
> > directory." > $@
> > +     tail -n +2 $< >> $@
> > +
> > +$(srcdir)/cobol/valconv-dupe.cc: $(LIB_SOURCE)/valconv.cc
> > +     echo "// DO NOT EDIT THIS FILE.  It was copied from the libgcobol 
> > directory." > $@
> > +     tail -n +2 $< >> $@
> > +
> > +#
> > +# These are the object files for creating the gcobol.exe "driver"
> > +#
> > +GCOBOL_D_OBJS = $(GCC_OBJS) cobol/gcobolspec.o
> > +
> > +#
> > +# These get combined to provide a dependency relationship that ensures all
> > +# of the "generated-files" are generated before we need them.  See the root
> > +# Makefile.in code that looks like this:
> > +#       ALL_HOST_FRONTEND_OBJS = $(foreach 
> > v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
> > +#
> > +cobol_OBJS = \
> > +   $(cobol1_OBJS) \
> > +   cobol/gcobolspec.o \
> > +   $(END)
> > +
> > +#
> > +# Frankly, I can't figure out what this does:
> > +#
> > +CFLAGS-cobol/gcobolspec.o += $(DRIVER_DEFINES)
> > +
> > +#
> > +# This controls the build of the gcobol.exe "driver"
> > +#
> > +gcobol$(exeext): \
> > +      $(GCOBOL_D_OBJS) \
> > +      $(EXTRA_GCC_OBJS) \
> > +     libcommon-target.a \
> > +     $(LIBDEPS)
> > +     +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@          \
> > +      $(GCOBOL_D_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a  \
> > +      $(EXTRA_GCC_LIBS) $(LIBS)
> > +
> > +#
> > +# These control the build of the cobol1.exe source-to-GENERIC converter
> > +#
> > +
> > +# First, files needed for parsing:
> > +
> > +cobol/parse.c: cobol/parse.y
> > +     $(BISON) -o $@ $(YFLAGS)                                \
> > +             --defines=cobol/parse.h                 \
> > +             --report-file=cobol/parser.out $<
> > +
> > +cobol/cdf.c: cobol/cdf.y
> > +     $(BISON) -o $@ $(YFLAGS)                                              
> >   \
> > +             --defines=cobol/cdf.h --report-file=cobol/cdf.out $<
> > +
> > +# See "Trailing context is getting confused with trailing optional 
> > patterns"
> > +# in Flex manual. We suppress those messages, as a convenience.
> > +FLEX_WARNING = warning, dangerous trailing context
> > +
> > +cobol/scan.c: cobol/scan.l
> > +     $(FLEX) -o$@ $(LFLAGS) $< >$@~ 2>&1
> > +     awk  '! /$(FLEX_WARNING)/ {print > "/dev/stderr"; nerr++}       \
> > +          END {print "$(FLEX):", NR, "messages" > "/dev/stderr";     \
> > +               exit nerr}' $@~
> > +     @rm $@~
> > +
> > +
> > +# To establish prerequisites for parse.o, cdf.o, and scan.o,
> > +#   1. capture the "make -n" output
> > +#   2. eliminate compiler options, leaving only preprocessor options (-D 
> > and -I)
> > +#   3. add -E -MM
> > +#
> > +# The below lists of include files for the the generated files is
> > +# postprocessed: the files are one per line, used "realpath
> > +# --relative-to=$PWD" to rationalize them, and sorted.  We include
> > +# parse.c in the list for scan.o because that's the one make(1) knows 
> > about.
> > +
> > +cobol/cdf.o: cobol/cdf.c                     \
> > +     $(srcdir)/cobol/cbldiag.h               \
> > +     $(srcdir)/cobol/cdfval.h                \
> > +     $(srcdir)/cobol/copybook.h              \
> > +     $(srcdir)/cobol/exceptg.h               \
> > +     $(srcdir)/cobol/symbols.h               \
> > +     $(srcdir)/cobol/util.h                  \
> > +     $(srcdir)/../libgcobol/common-defs.h    \
> > +     $(srcdir)/../libgcobol/ec.h             \
> > +     $(srcdir)/../libgcobol/exceptl.h
> > +
> > +cobol/parse.o: cobol/parse.c                 \
> > +     $(srcdir)/cobol/cbldiag.h               \
> > +     $(srcdir)/cobol/cdfval.h                \
> > +     $(srcdir)/cobol/cobol-system.h          \
> > +     $(srcdir)/cobol/exceptg.h               \
> > +     $(srcdir)/cobol/genapi.h                \
> > +     $(srcdir)/cobol/inspect.h               \
> > +     $(srcdir)/cobol/parse_ante.h            \
> > +     $(srcdir)/cobol/parse_util.h            \
> > +     $(srcdir)/cobol/symbols.h               \
> > +     $(srcdir)/cobol/util.h                  \
> > +     $(srcdir)/hwint.h                       \
> > +     $(srcdir)/system.h                      \
> > +     $(srcdir)/../include/ansidecl.h         \
> > +     $(srcdir)/../include/filenames.h        \
> > +     $(srcdir)/../include/hashtab.h          \
> > +     $(srcdir)/../include/libiberty.h        \
> > +     $(srcdir)/../include/safe-ctype.h       \
> > +     $(srcdir)/../libgcobol/common-defs.h    \
> > +     $(srcdir)/../libgcobol/ec.h             \
> > +     $(srcdir)/../libgcobol/exceptl.h        \
> > +     $(srcdir)/../libgcobol/io.h             \
> > +     auto-host.h                             \
> > +     config.h
> > +
> > +cobol/scan.o: cobol/scan.c                   \
> > +     $(srcdir)/cobol/cbldiag.h               \
> > +     $(srcdir)/cobol/cdfval.h                \
> > +     $(srcdir)/cobol/cobol-system.h          \
> > +     $(srcdir)/cobol/copybook.h              \
> > +     $(srcdir)/cobol/dts.h                   \
> > +     $(srcdir)/cobol/exceptg.h               \
> > +     $(srcdir)/cobol/inspect.h               \
> > +     $(srcdir)/cobol/lexio.h                 \
> > +     $(srcdir)/cobol/scan_ante.h             \
> > +     $(srcdir)/cobol/scan_post.h             \
> > +     $(srcdir)/cobol/symbols.h               \
> > +     $(srcdir)/cobol/util.h                  \
> > +     $(srcdir)/hwint.h                       \
> > +     $(srcdir)/system.h                      \
> > +     $(srcdir)/../include/ansidecl.h         \
> > +     $(srcdir)/../include/filenames.h        \
> > +     $(srcdir)/../include/hashtab.h          \
> > +     $(srcdir)/../include/libiberty.h        \
> > +     $(srcdir)/../include/safe-ctype.h       \
> > +     $(srcdir)/../libgcobol/common-defs.h    \
> > +     $(srcdir)/../libgcobol/ec.h             \
> > +     $(srcdir)/../libgcobol/exceptl.h        \
> > +     $(srcdir)/../libgcobol/io.h             \
> > +     auto-host.h                             \
> > +     config.h                                \
> > +     cobol/cdf.c                             \
> > +     cobol/parse.c
> > +
> > +#
> > +# The src<foo> targets are executed if
> > +# ?--enable-generated-files-in-srcdir? was specified as a configure
> > +# option.
> > +#
> > +# srcextra copies generated dependencies into the source
> > +# directory. This is used for files such as Flex/Bison output: files
> > +# that are not version-controlled but should be included in any
> > +# release tarballs.
> > +#
> > +# Although versioned snapshots require Flex to be installed, they do
> > +# not require Bison.  Release tarballs always include Flex/Bison
> > +# output, and do not require those tools to be installed.
> > +#
> > +cobol.srcextra: cobol/parse.c cobol/cdf.c cobol/scan.c
> > +     ln -f $^ cobol/parse.h cobol/cdf.h $(srcdir)/cobol/
> > +
> > +
> > +# And the cobol1.exe front end
> > +
> > +cobol1$(exeext): $(cobol1_OBJS)      $(BACKEND) $(LIBDEPS) attribs.o
> > +     +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) attribs.o -o $@       \
> > +           $(cobol1_OBJS) $(BACKEND) $(LIBS) $(BACKENDLIBS)
> > +
> > +# FIXME
> > +cobol.all.cross:
> > +
> > +cobol.start.encap: gcobol$(exeext)
> > +
> > +cobol.rest.encap:
> > +
> > +cobol.install-common: installdirs
> > +     $(INSTALL_PROGRAM) gcobol$(exeext)      $(DESTDIR)$(bindir)/
> > +     $(INSTALL_PROGRAM) cobol1$(exeext)      $(DESTDIR)$(libexecsubdir)/
> > +     $(INSTALL) -m 755 $(srcdir)/cobol/gcobc $(DESTDIR)$(bindir)/
> > +     mkdir -p $(DESTDIR)$(datadir)/gcobol/udf
> > +     $(INSTALL_DATA) $(srcdir)/cobol/udf/*   
> > $(DESTDIR)$(datadir)/gcobol/udf/
> > +
> > +cobol.install-man: installdirs
> > +     $(INSTALL_DATA) $(srcdir)/cobol/gcobol.1 $(DESTDIR)$(man1dir)/
> > +     $(INSTALL_DATA) $(srcdir)/cobol/gcobol.3 $(DESTDIR)$(man3dir)/
> > +
> > +cobol.install-info:
> > +
> > +cobol.install-pdf: installdirs gcobol.pdf gcobol-io.pdf
> > +     mkdir -p $(DESTDIR)$(datadir)/gcobol/pdf
> > +     $(INSTALL_DATA) gcobol.pdf gcobol-io.pdf $(DESTDIR)$(pdfdir)/
> > +
> > +cobol.install-plugin:
> > +
> > +cobol.install-html: installdirs gcobol.html gcobol-io.html
> > +     $(INSTALL_DATA) gcobol.html gcobol-io.html $(DESTDIR)$(htmldir)/
> > +
> > +cobol.info:
> > +cobol.srcinfo:
> > +
> > +cobol.dvi:
> > +cobol.srcdvi:
> > +
> > +cobol.pdf: gcobol.pdf gcobol-io.pdf
> > +cobol.srcpdf: gcobol.pdf gcobol-io.pdf
> > +     ln $^ $(srcdir)/cobol/
> > +
> > +gcobol.pdf: $(srcdir)/cobol/gcobol.1
> > +     groff -mdoc -T pdf  $^ > $@~
> > +     @mv $@~ $@
> > +gcobol-io.pdf: $(srcdir)/cobol/gcobol.3
> > +     groff -mdoc -T pdf  $^ > $@~
> > +     @mv $@~ $@
> > +
> > +cobol.html: gcobol.html gcobol-io.html
> > +cobol.srchtml: gcobol.html gcobol-io.html
> > +     ln $^ $(srcdir)/cobol/
> > +
> > +gcobol.html: $(srcdir)/cobol/gcobol.1
> > +     mandoc -T html $^ > $@~
> > +     @mv $@~ $@
> > +gcobol-io.html: $(srcdir)/cobol/gcobol.3
> > +     mandoc -T html $^ > $@~
> > +     @mv $@~ $@
>
> This may need tweaking -- I think there's a more portable way to do this
> than depending on mandoc, but not sure.
>
> > +
> > +# "make uninstall" is not expected to work.  It's not clear how to name
> > +# the installed location of the cobol1 compiler.
> > +cobol.uninstall:
> > +     rm -rf  $(DESTDIR)$(bindir)/$(gcobol_INSTALL_NAME)$(exeext)     \
> > +             $(DESTDIR)$(bindir)/gcobc                               \
> > +             $(DESTDIR)$(datadir)/gcobol/                            \
> > +             $(DESTDIR)$(man1dir)/gcobol.1                           \
> > +             $(DESTDIR)$(man3dir)/gcobol.3
> > +
> > +cobol.man:
> > +cobol.srcman:
> > +
> > +cobol.mostlyclean:
> > +
> > +cobol.clean:                                 \
> > +     rm -fr gcobol cobol1 cobol/*            \
> > +     ../*/libgcobol/*                        \
> > +     $(srcdir)/cobol/charmaps-dupe.cc        \
> > +     $(srcdir)/cobol/valconv-dupe.cc
> > +
> > +cobol.distclean:
> > +
> > +cobol.maintainer-clean:
> > +
> > +# The main makefile has already created stage?/cobol.
> > +cobol.stage1: stage1-start
> > +     -mv cobol/*$(objext) stage1/cobol
> > +cobol.stage2: stage2-start
> > +     -mv cobol/*$(objext) stage2/cobol
> > +cobol.stage3: stage3-start
> > +     -mv cobol/*$(objext) stage3/cobol
> > +cobol.stage4: stage4-start
> > +     -mv cobol/*$(objext) stage4/cobol
> > +cobol.stageprofile: stageprofile-start
> > +     -mv cobol/*$(objext) stageprofile/cobol
> > +cobol.stagefeedback: stagefeedback-start
> > +     -mv cobol/*$(objext) stagefeedback/cobol
> > +
> > +selftest-cobol:
> > diff --git a/gcc/cobol/config-lang.in b/gcc/cobol/config-lang.in
> > new file mode 100644
> > index 00000000000..ef35dcd58be
> > --- /dev/null
> > +++ b/gcc/cobol/config-lang.in
> > @@ -0,0 +1,38 @@
> > +# Copyright (C) 2004-2025 Free Software Foundation, Inc.
> > +#
> > +# This file is part of GCC.
> > +#
> > +# GCC is free software; you can redistribute it and/or modify
> > +# it under the terms of the GNU General Public License as published by
> > +# the Free Software Foundation; either version 3, or (at your option)
> > +# any later version.
> > +#
> > +# GCC is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > +# GNU General Public License for more details.
> > +#
> > +# You should have received a copy of the GNU General Public License
> > +# along with GCC; see the file COPYING3.  If not see
> > +# <http://www.gnu.org/licenses/>.
> > +
> > +# Configure looks for the existence of this file to auto-config each 
> > language.
> > +# We define several parameters used by configure:
> > +#
> > +# language   - name of language as it would appear in $(LANGUAGES)
> > +# compilers  - value to add to $(COMPILERS)
> > +# diff_excludes      - files to ignore when building diffs between two 
> > versions.
> > +
> > +language="cobol"
> > +
> > +compilers="cobol1\$(exeext)"
> > +
> > +target_libs="target-libgcobol"
> > +
> > +# Files that should be scanned by gengtype.c to generate the garbage
> > +# collection tables.
> > +
> > +gtfiles="\$(srcdir)/cobol/cobol1.cc"
> > +
> > +# Do not build by default
> > +build_by_default="no"
> > diff --git a/gcc/cobol/lang.opt b/gcc/cobol/lang.opt
> > new file mode 100644
> > index 00000000000..1739dd9fdf3
> > --- /dev/null
> > +++ b/gcc/cobol/lang.opt
> > @@ -0,0 +1,144 @@
> > +; lang.opt -- Options for the gcc Cobol front end.
> > +
> > +; Copyright (C) 2021-2024 Free Software Foundation, Inc.
> > +;
> > +; This file is part of GCC.
> > +;
> > +; GCC is free software; you can redistribute it and/or modify it under
> > +; the terms of the GNU General Public License as published by the Free
> > +; Software Foundation; either version 3, or (at your option) any later
> > +; version.
> > +;
> > +; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
> > +; WARRANTY; without even the implied warranty of MERCHANTABILITY or
> > +; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
> > +; for more details.
> > +;
> > +; You should have received a copy of the GNU General Public License
> > +; along with GCC; see the file COPYING3.  If not see
> > +; <http://www.gnu.org/licenses/>.
> > +
> > +; See the GCC internals manual for a description of this file's format.
> > +
> > +; Please try to keep this file in ASCII collating order.
> > +
> > +Language
> > +Cobol
> > +
> > +D
> > +Cobol Joined Separate
> > +; Documented in c.opt
> > +
> > +E
> > +Cobol
> > +; Documented in c.opt
> > +
> > +I
> > +Cobol Joined Separate
> > +;;  -I <dir> Add copybook search directory
> > +; Documented in c.opt
> > +
> > +dialect
> > +Cobol Joined Separate Enum(dialect_type) EnumBitSet Var(cobol_dialect)
> > +Accept COBOL constructs used by non-ISO compilers
> > +
> > +Enum
> > +Name(dialect_type) Type(int) UnknownError(Unrecognized COBOL dialect name: 
> > %qs)
> > +
> > +EnumValue
> > +Enum(dialect_type) String(gcc) Value(0x04) Canonical
> > +
> > +EnumValue
> > +Enum(dialect_type) String(ibm) Value(0x01)
> > +
> > +EnumValue
> > +Enum(dialect_type) String(mf)  Value(0x02)
> > +
> > +EnumValue
> > +Enum(dialect_type) String(gnu) Value(0x04)
> > +
> > +fcobol-exceptions
> > +Cobol Joined Separate Var(cobol_exceptions)
> > +-fcobol-exceptions=<n>       Enable some exceptions by default
> > +
> > +copyext
> > +Cobol Joined Separate Var(cobol_copyext) Init(0)
> > +Define alternative implicit copybook filename extension
> > +
> > +fdefaultbyte
> > +Cobol RejectNegative Joined Separate UInteger Var(cobol_default_byte)
> > +Set Working-Storage data items to the supplied value
> > +
> > +fflex-debug
> > +Cobol Var(yy_flex_debug, 1) Init(0)
> > +Enable Cobol lex debugging
> > +
> > +ffixed-form
> > +Cobol RejectNegative
> > +Assume that the source file is fixed form.
> > +
> > +fsyntax-only
> > +Cobol RejectNegative
> > +; Documented in c.opt
> > +
> > +ffree-form
> > +Cobol RejectNegative
> > +Assume that the source file is free form.
> > +
> > +findicator-column
> > +Cobol RejectNegative Joined Separate UInteger Var(indicator_column) 
> > Init(0) IntegerRange(0, 8)
> > +-findicator-column=<n>       Column after which Region A begins
> > +
> > +finternal-ebcdic
> > +Cobol Var(cobol_ebcdic, 1) Init(0)
> > +-finternal-ebcdic    Internal processing is in EBCDIC Code Page 1140
> > +
> > +fmax-errors
> > +Cobol Joined Separate
> > +; Documented in C
> > +
> > +fstatic-call
> > +Cobol Var(cobol_static_call, 1) Init(1)
> > +Enable/disable static linkage for CALL literals
> > +
> > +ftrace-debug
> > +Cobol Var(cobol_trace_debug, 1) Init(0)
> > +Enable Cobol parser debugging
> > +
> > +fyacc-debug
> > +Cobol Var(yy_debug, 1) Init(0)
> > +Enable Cobol yacc debugging
> > +
> > +preprocess
> > +Cobol Joined Separate Var(cobol_preprocess)
> > +preprocess <source_filter> before compiling
> > +
> > +iprefix
> > +Cobol Joined Separate
> > +; Documented in C
> > +
> > +include
> > +Cobol Joined Separate Var(cobol_include)
> > +; Documented in C
> > +
> > +isysroot
> > +Cobol Joined Separate
> > +; Documented in C
> > +
> > +isystem
> > +Cobol Joined Separate
> > +; Documented in C
> > +
> > +main
> > +Cobol
> > +-main        The first program-id in the next source file is called by a 
> > generated main() entry point
> > +
> > +main=
> > +Cobol Joined Var(cobol_main_string)
> > +-main=<source_file> source_file/PROGRAM-ID is called by the generated 
> > main()
> > +
> > +nomain
> > +Cobol
> > +-nomain      No main() function is created from COBOL source files
> > +
> > +; This comment is to ensure we retain the blank line above.
> > diff --git a/gcc/cobol/lang.opt.urls b/gcc/cobol/lang.opt.urls
> > new file mode 100644
> > index 00000000000..a0e1f1944fe
> > --- /dev/null
> > +++ b/gcc/cobol/lang.opt.urls
> > @@ -0,0 +1,29 @@
> > +; Autogenerated by regenerate-opt-urls.py from gcc/cobol/lang.opt and 
> > generated HTML
> > +
> > +D
> > +UrlSuffix(gcc/Preprocessor-Options.html#index-D-1)
> > +
> > +; skipping UrlSuffix for 'E' due to multiple URLs:
> > +;   duplicate: 'gcc/Link-Options.html#index-E-1'
> > +;   duplicate: 'gcc/Overall-Options.html#index-E'
> > +
> > +I
> > +UrlSuffix(gcc/Directory-Options.html#index-I) 
> > LangUrlSuffix_D(gdc/Directory-Options.html#index-I)
> > +
> > +fsyntax-only
> > +UrlSuffix(gcc/Warning-Options.html#index-fsyntax-only) 
> > LangUrlSuffix_D(gdc/Warnings.html#index-fno-syntax-only)
> > +
> > +fmax-errors
> > +UrlSuffix(gcc/Warning-Options.html#index-fmax-errors) 
> > LangUrlSuffix_D(gdc/Warnings.html#index-fmax-errors)
> > +
> > +iprefix
> > +UrlSuffix(gcc/Directory-Options.html#index-iprefix) 
> > LangUrlSuffix_D(gdc/Directory-Options.html#index-iprefix)
> > +
> > +include
> > +UrlSuffix(gcc/Preprocessor-Options.html#index-include)
> > +
> > +isysroot
> > +UrlSuffix(gcc/Directory-Options.html#index-isysroot)
> > +
> > +isystem
> > +UrlSuffix(gcc/Directory-Options.html#index-isystem)
> > diff --git a/gcc/common.opt b/gcc/common.opt
> > index 4c2560a0632..c533ca331b8 100644
> > --- a/gcc/common.opt
> > +++ b/gcc/common.opt
> > @@ -3892,6 +3892,10 @@ static-libgfortran
> >  Driver
> >  ; Documented for Fortran, but always accepted by driver.
> >
> > +static-libgcobol
> > +Driver
> > +; Documented for COBOL, but always accepted by driver.
> > +
> >  static-libgm2
> >  Driver
> >  ; Documented for Modula-2, but always accepted by driver.
> > diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
> > index 43884f206c0..accbf73d821 100644
> > --- a/gcc/dwarf2out.cc
> > +++ b/gcc/dwarf2out.cc
> > @@ -25448,6 +25448,8 @@ gen_compile_unit_die (const char *filename)
> >      }
> >    else if (strcmp (language_string, "GNU F77") == 0)
> >      language = DW_LANG_Fortran77;
> > +  else if (strcmp (language_string, "Cobol") == 0)
> > +    language = DW_LANG_Cobol85;
> >    else if (strcmp (language_string, "GNU Modula-2") == 0)
> >      language = DW_LANG_Modula2;
> >    else if (dwarf_version >= 3 || !dwarf_strict)
> > @@ -25504,6 +25506,9 @@ gen_compile_unit_die (const char *filename)
> >        lowercases everything.  */
> >        add_AT_unsigned (die, DW_AT_identifier_case, DW_ID_down_case);
> >        break;
> > +    case DW_LANG_Cobol85:
> > +      add_AT_unsigned (die, DW_AT_identifier_case, DW_ID_case_insensitive);
> > +      break;
> >      default:
> >        /* The default DW_ID_case_sensitive doesn't need to be specified.  */
> >        break;
> > diff --git a/libgcobol/Makefile.in b/libgcobol/Makefile.in
> > new file mode 100644
> > index 00000000000..a9c35deff44
> > --- /dev/null
> > +++ b/libgcobol/Makefile.in
> > @@ -0,0 +1,296 @@
> > +# Makefile for the GCOBOL runtime library.
> > +
> > +# Copyright (C) 2021-2024 Free Software Foundation, Inc.
> > +# Modifications made by the Symas Corporation, 2022
> > +
> > +# This file is part of GCC.
> > +
> > +# GCC is free software; you can redistribute it and/or modify
> > +# it under the terms of the GNU General Public License as published by
> > +# the Free Software Foundation; either version 3, or (at your option)
> > +# any later version.
> > +
> > +# GCC is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > +# GNU General Public License for more details.
> > +
> > +# You should have received a copy of the GNU General Public License
> > +# along with GCC; see the file COPYING3.  If not see
> > +# <http://www.gnu.org/licenses/>.
> > +
> > +# This was cribbed from the libchill, libiberty, libstdc++, and
> > +# libobjc Makefile.in files.  Some of this stuff may be unnecessary.
> > +
> > +SHELL = @SHELL@
> > +MAKEOVERRIDES=
> > +
> > +#### Start of system configuration section. ####
> > +
> > +srcdir = @glibcpp_srcdir@
> > +VPATH = @glibcpp_srcdir@
> > +prefix = @prefix@
> > +exec_prefix = @exec_prefix@
> > +target_noncanonical = @target_noncanonical@
> > +gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER)
> > +host_subdir = @host_subdir@
> > +top_srcdir = @top_srcdir@
> > +multi_basedir = @multi_basedir@
> > +toolexecdir = @toolexecdir@
> > +# Toolexecdir is used only by toolexeclibdir
> > +
> > +#toolexeclibdir = @toolexeclibdir@
> > +toolexeclibdir = @libdir@
> > +
> > +includedirname = @includedirname@
> > +libsuffix = @libsuffix@
> > +
> > +lt_host_flags = @lt_host_flags@
> > +extra_ldflags_libgcobol = @extra_ldflags_libgcobol@
> > +
> > +top_builddir = .
> > +
> > +install_sh_DATA = $(install_sh) -c -m 644
> > +install_sh_PROGRAM = $(install_sh) -c
> > +install_sh_SCRIPT = $(install_sh) -c
> > +install_sh = @install_sh@
> > +libdir = $(exec_prefix)/lib
> > +libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
> > +
> > +# Multilib support variables.
> > +MULTISRCTOP =
> > +MULTIBUILDTOP =
> > +MULTIDIRS =
> > +MULTISUBDIR =
> > +MULTIDO = true
> > +MULTICLEAN = true
> > +
> > +# Not configured per top-level version, since that doesn't get passed
> > +# down at configure time, but overrridden by the top-level install
> > +# target.
> > +INSTALL = @INSTALL@
> > +INSTALL_PROGRAM = @INSTALL_PROGRAM@
> > +INSTALL_DATA = @INSTALL_DATA@
> > +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
> > +install_sh_PROGRAM = $(install_sh) -c
> > +
> > +AR = @AR@
> > +AR_FLAGS = rc
> > +
> > +RANLIB = @RANLIB@
> > +
> > +ifeq ("$(USER)","bob")
> > +     MAX_ERRORS := -fmax-errors=1
> > +endif
> > +
> > +CC = @CC@
> > +CFLAGS = @CFLAGS@
> > +XCFLAGS = @XCFLAGS@
> > +WARN_CFLAGS = -W -Wall -Wwrite-strings # -Wstrict-prototypes
> > +ALL_CFLAGS = -I. -I$(srcdir) $(CPPFLAGS) $(DEFS) \
> > +     $(XCFLAGS) $(CFLAGS) $(WARN_CFLAGS) $(MAX_ERRORS)\
> > +     -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions
> > +
> > +
> > +# Libtool
> > +# The following strings describe the version of the COBOL library
> > +# begin compiled and compatibility issues.
> > +# Please refer to Libtool documentation about how to manage these
> > +# numbers.
> > +LIBGCOBOL_VERSION = @VERSION@
> > +LIBTOOL = @LIBTOOL@ $(LIBTOOLFLAGS)
> > +LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile
> > +LIBTOOL_LINK    = $(LIBTOOL) --mode=link
> > +LIBTOOL_INSTALL = $(LIBTOOL) --mode=install
> > +LIBTOOL_CLEAN   = $(LIBTOOL) --mode=clean
> > +#LIBTOOL_UNINSTALL = $(LIBTOOL) --mode=uninstall
> > +
> > +GCOBOL_HFILES=$(wildcard *.h)
> > +
> > +VERSION_SUFFIX = $(shell echo $(LIBGCOBOL_VERSION) | tr  ':' '.' )
> > +
> > +INCLUDES =                                                   \
> > +  $(END)
> > +
> > +##
> > +## The list of header/source files
> > +##
> > +
> > +# User-visible header files, from the gcobol/ directory
> > +GCOBOL_H = \
> > +   $(END)
> > +
> > +# C source files to compile
> > +C_SOURCE_FILES = \
> > +  charmaps.cc    \
> > +  constants.cc   \
> > +  gfileio.cc     \
> > +  gmath.cc       \
> > +  intrinsic.cc   \
> > +  io.cc          \
> > +  libgcobol.cc   \
> > +  valconv.cc     \
> > +  $(END)
> > +
> > +# Object files to link (when the library is linked with no GC (Garbage
> > +# Collection))
> > +OBJS = \
> > +  $(patsubst %.c,%.lo,$(C_SOURCE_FILES)) \
> > +  $(patsubst %.cc,%.lo,$(C_SOURCE_FILES))
> > +
> > +
> > +# $(OBJS) : $(GCOBOL_HFILES)
> > +
> > +##
> > +## The rules to build
> > +##
> > +
> > +# Flags to pass to a recursive make.
> > +FLAGS_TO_PASS = \
> > +     "AR=$(AR)" \
> > +     "AR_FLAGS=$(AR_FLAGS)" \
> > +     "CC=$(CC)" \
> > +     "CXX=$(CXX)" \
> > +     "CFLAGS=$(CFLAGS)" \
> > +     "DESTDIR=$(DESTDIR)" \
> > +     "LIBCFLAGS=$(LIBCFLAGS)" \
> > +     "EXTRA_OFILES=$(EXTRA_OFILES)" \
> > +     "HDEFINES=$(HDEFINES)" \
> > +     "INSTALL=$(INSTALL)" \
> > +     "INSTALL_DATA=$(INSTALL_DATA)" \
> > +     "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
> > +     "LDFLAGS=$(LDFLAGS)" \
> > +     "LIBTOOL=$(LIBTOOL)" \
> > +     "LOADLIBES=$(LOADLIBES)" \
> > +     "PICFLAG=$(PICFLAG)" \
> > +     "RANLIB=$(RANLIB)" \
> > +     "SHELL=$(SHELL)" \
> > +     "prefix=$(prefix)" \
> > +     "exec_prefix=$(exec_prefix)" \
> > +     "libdir=$(libdir)" \
> > +     "libsubdir=$(libsubdir)" \
> > +     "tooldir=$(tooldir)"
> > +
> > +ifeq "$(MULTISUBDIR)" "/32"
> > +# suppress 32-bit builds until such time as the host and target executables
> > +# no longer require __int128 variables
> > +$(info Suppressing the 32-bit build because of lack of support for 
> > __int128 variables)
> > +BUILDIT =
> > +else
> > +BUILDIT = libgcobol$(libsuffix).la
> > +endif
> > +
> > +# The 'all' rule must be the first one so that it is executed if
> > +# nothing is specified on the command-line.
> > +all: $(BUILDIT)
> > +     : $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all
> > +
> > +.SUFFIXES:
> > +.SUFFIXES: .c .lo .cc
> > +
> > +%.lo: %.c
> > +     $(LIBTOOL_COMPILE) $(CC) -c -o $@ \
> > +        $(ALL_CFLAGS) $(INCLUDES) $<
> > +
> > +%.lo: %.cc
> > +     $(LIBTOOL_COMPILE) $(CXX) -c -o $@ \
> > +        $(INCLUDES) $(ALL_CFLAGS) $<
> > +
> > +charmaps.lo    : $(GCOBOL_HFILES)
> > +constants.lo   : $(GCOBOL_HFILES)
> > +gfileio.lo     : $(GCOBOL_HFILES)
> > +gmath.lo       : $(GCOBOL_HFILES)
> > +intrinsic.lo   : $(GCOBOL_HFILES)
> > +io.lo          : $(GCOBOL_HFILES)
> > +libgcobol.lo   : $(GCOBOL_HFILES)
> > +valconv.lo     : $(GCOBOL_HFILES)
> > +
> > +# These files have separate rules because they require special
> > +# compiler flags.
> > +
> > +doc: info dvi pdf html
> > +
> > +# No install-html or install-pdf support
> > +.PHONY: install-html install-pdf install-info
> > +install-html:
> > +install-pdf:
> > +install-info:
> > +
> > +LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
> > +
> > +libgcobol$(libsuffix).la: $(OBJS)
> > +     $(LIBTOOL_LINK) $(CXX) -o $@ $(OBJS) \
> > +             -Wc,-shared-libgcc -rpath $(toolexeclibdir) \
> > +             -version-info $(LIBGCOBOL_VERSION) $(extra_ldflags_libgcobol) 
> > \
> > +             $(LTLDFLAGS)
> > +
> > +info:
> > +dvi:
> > +pdf:
> > +html:
> > +
> > +Makefile: Makefile.in config.status
> > +     $(SHELL) config.status
> > +
> > +config.status: configure
> > +     rm -f config.cache
> > +     CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \
> > +     CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck
> > +
> > +AUTOCONF = autoconf
> > +
> > +install: install-libs install-headers
> > +
> > +install-libs: installdirs
> > +     $(SHELL) $(multi_basedir)/mkinstalldirs $(DESTDIR)$(toolexeclibdir)
> > +     $(LIBTOOL_INSTALL) $(INSTALL) libgcobol$(libsuffix).la 
> > $(DESTDIR)$(toolexeclibdir);
> > +     $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
> > +     @-$(LIBTOOL) --mode=finish $(DESTDIR)$(toolexeclibdir)
> > +
> > +# Copy Objective-C headers to installation include directory.
> > +install-headers:
> > +     $(SHELL) $(multi_basedir)/mkinstalldirs 
> > $(DESTDIR)$(libsubdir)/$(includedirname)/gcobol
> > +     for file in $(GCOBOL_H); do \
> > +       realfile=$(srcdir)/objc/$${file}; \
> > +       $(INSTALL_DATA) $${realfile} 
> > $(DESTDIR)$(libsubdir)/$(includedirname)/gcobol; \
> > +     done
> > +
> > +check uninstall install-strip dist installcheck installdirs:
> > +
> > +install-strip:
> > +     if test -z '$(STRIP)'; then \
> > +       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
> > +         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" 
> > INSTALL_STRIP_FLAG=-s \
> > +           install; \
> > +     else \
> > +       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
> > +         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" 
> > INSTALL_STRIP_FLAG=-s \
> > +         "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
> > +     fi
> > +#    This is a little ham-handed, but after struggling for a while to
> > +#    do it "correctly", I lost interest
> > +     strip -s $(DESTDIR)$(toolexeclibdir)/libgcobol.so.$(VERSION_SUFFIX)
> > +
> > +mostlyclean:
> > +     -$(LIBTOOL_CLEAN) rm -f libgcobol$(libsuffix).la *.lo
> > +     -rm -f runtime-info.h tmp-runtime.s *.o *.lo libgcobol* xforward \
> > +             fflags *.aux *.cp *.dvi *.pdf *.fn *.info *.ky *.log *.pg \
> > +             *.toc *.tp *.vr *.html libobj.exp
> > +     @$(MULTICLEAN) multi-clean DO=mostlyclean
> > +
> > +clean: mostlyclean
> > +     rm -f config.log
> > +     @$(MULTICLEAN) multi-clean DO=clean
> > +
> > +distclean: clean
> > +     @$(MULTICLEAN) multi-clean DO=distclean
> > +     rm -f config.cache config.status Makefile configure
> > +
> > +maintainer-clean realclean: distclean
> > +
> > +.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \
> > +     install-strip dist installcheck installdirs
> > +
> > +# Don't export variables to the environment, in order not to confuse
> > +# configure.
> > +.NOEXPORT:
> > diff --git a/libgcobol/acinclude.m4 b/libgcobol/acinclude.m4
> > new file mode 100644
> > index 00000000000..be3d0136bb1
> > --- /dev/null
> > +++ b/libgcobol/acinclude.m4
> > @@ -0,0 +1,26 @@
> > +dnl Copyright (C) 2021-2024 Free Software Foundation, Inc.
> > +dnl This file is free software; the Free Software Foundation
> > +dnl gives unlimited permission to copy and/or distribute it,
> > +dnl with or without modifications, as long as this notice is preserved.
> > +
> > +dnl This program is distributed in the hope that it will be useful,
> > +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
> > +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
> > +dnl PARTICULAR PURPOSE.
> > +
> > +m4_include(../config/acx.m4)
> > +m4_include(../config/no-executables.m4)
> > +m4_include(../config/enable.m4)
> > +m4_include(../config/tls.m4)
> > +m4_include(../config/bitfields.m4)
> > +
> > +m4_include(../libtool.m4)
> > +dnl The lines below arrange for aclocal not to bring an installed
> > +dnl libtool.m4 into aclocal.m4, while still arranging for automake to
> > +dnl add a definition of LIBTOOL to Makefile.in.
> > +ifelse(yes,no,[
> > +AC_DEFUN([AM_PROG_LIBTOOL],)
> > +AC_DEFUN([AC_LIBTOOL_DLOPEN],)
> > +AC_DEFUN([AC_LIBLTDL_CONVENIENCE],)
> > +AC_SUBST(LIBTOOL)
> > +])
> > diff --git a/libgcobol/aclocal.m4 b/libgcobol/aclocal.m4
> > new file mode 100644
> > index 00000000000..9ac0f645b52
> > --- /dev/null
> > +++ b/libgcobol/aclocal.m4
> > @@ -0,0 +1,157 @@
> > +# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
> > +
> > +# Copyright (C) 1996-2017 Free Software Foundation, Inc.
> > +
> > +# This file is free software; the Free Software Foundation
> > +# gives unlimited permission to copy and/or distribute it,
> > +# with or without modifications, as long as this notice is preserved.
> > +
> > +# This program is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
> > +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
> > +# PARTICULAR PURPOSE.
> > +
> > +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], 
> > [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
> > +# AM_CONDITIONAL                                            -*- Autoconf 
> > -*-
> > +
> > +# Copyright (C) 1997-2017 Free Software Foundation, Inc.
> > +#
> > +# This file is free software; the Free Software Foundation
> > +# gives unlimited permission to copy and/or distribute it,
> > +# with or without modifications, as long as this notice is preserved.
> > +
> > +# AM_CONDITIONAL(NAME, SHELL-CONDITION)
> > +# -------------------------------------
> > +# Define a conditional.
> > +AC_DEFUN([AM_CONDITIONAL],
> > +[AC_PREREQ([2.52])dnl
> > + m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
> > +       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
> > +AC_SUBST([$1_TRUE])dnl
> > +AC_SUBST([$1_FALSE])dnl
> > +_AM_SUBST_NOTMAKE([$1_TRUE])dnl
> > +_AM_SUBST_NOTMAKE([$1_FALSE])dnl
> > +m4_define([_AM_COND_VALUE_$1], [$2])dnl
> > +if $2; then
> > +  $1_TRUE=
> > +  $1_FALSE='#'
> > +else
> > +  $1_TRUE='#'
> > +  $1_FALSE=
> > +fi
> > +AC_CONFIG_COMMANDS_PRE(
> > +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
> > +  AC_MSG_ERROR([[conditional "$1" was never defined.
> > +Usually this means the macro was only invoked conditionally.]])
> > +fi])])
> > +
> > +# Add --enable-maintainer-mode option to configure.         -*- Autoconf 
> > -*-
> > +# From Jim Meyering
> > +
> > +# Copyright (C) 1996-2017 Free Software Foundation, Inc.
> > +#
> > +# This file is free software; the Free Software Foundation
> > +# gives unlimited permission to copy and/or distribute it,
> > +# with or without modifications, as long as this notice is preserved.
> > +
> > +# AM_MAINTAINER_MODE([DEFAULT-MODE])
> > +# ----------------------------------
> > +# Control maintainer-specific portions of Makefiles.
> > +# Default is to disable them, unless 'enable' is passed literally.
> > +# For symmetry, 'disable' may be passed as well.  Anyway, the user
> > +# can override the default with the --enable/--disable switch.
> > +AC_DEFUN([AM_MAINTAINER_MODE],
> > +[m4_case(m4_default([$1], [disable]),
> > +       [enable], [m4_define([am_maintainer_other], [disable])],
> > +       [disable], [m4_define([am_maintainer_other], [enable])],
> > +       [m4_define([am_maintainer_other], [enable])
> > +        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: 
> > $1])])
> > +AC_MSG_CHECKING([whether to enable maintainer-specific portions of 
> > Makefiles])
> > +  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
> > +  AC_ARG_ENABLE([maintainer-mode],
> > +    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
> > +      am_maintainer_other[ make rules and dependencies not useful
> > +      (and sometimes confusing) to the casual installer])],
> > +    [USE_MAINTAINER_MODE=$enableval],
> > +    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], 
> > [yes]))
> > +  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
> > +  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
> > +  MAINT=$MAINTAINER_MODE_TRUE
> > +  AC_SUBST([MAINT])dnl
> > +]
> > +)
> > +
> > +# Copyright (C) 1999-2017 Free Software Foundation, Inc.
> > +#
> > +# This file is free software; the Free Software Foundation
> > +# gives unlimited permission to copy and/or distribute it,
> > +# with or without modifications, as long as this notice is preserved.
> > +
> > +# _AM_PROG_CC_C_O
> > +# ---------------
> > +# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
> > +# to automatically call this.
> > +AC_DEFUN([_AM_PROG_CC_C_O],
> > +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
> > +AC_REQUIRE_AUX_FILE([compile])dnl
> > +AC_LANG_PUSH([C])dnl
> > +AC_CACHE_CHECK(
> > +  [whether $CC understands -c and -o together],
> > +  [am_cv_prog_cc_c_o],
> > +  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
> > +  # Make sure it works both with $CC and with simple cc.
> > +  # Following AC_PROG_CC_C_O, we do the test twice because some
> > +  # compilers refuse to overwrite an existing .o file with -o,
> > +  # though they will create one.
> > +  am_cv_prog_cc_c_o=yes
> > +  for am_i in 1 2; do
> > +    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
> > +         && test -f conftest2.$ac_objext; then
> > +      : OK
> > +    else
> > +      am_cv_prog_cc_c_o=no
> > +      break
> > +    fi
> > +  done
> > +  rm -f core conftest*
> > +  unset am_i])
> > +if test "$am_cv_prog_cc_c_o" != yes; then
> > +   # Losing compiler, so override with the script.
> > +   # FIXME: It is wrong to rewrite CC.
> > +   # But if we don't then we get into trouble of one sort or another.
> > +   # A longer-term fix would be to have automake use am__CC in this case,
> > +   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
> > +   CC="$am_aux_dir/compile $CC"
> > +fi
> > +AC_LANG_POP([C])])
> > +
> > +# For backward compatibility.
> > +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
> > +
> > +# Copyright (C) 2006-2017 Free Software Foundation, Inc.
> > +#
> > +# This file is free software; the Free Software Foundation
> > +# gives unlimited permission to copy and/or distribute it,
> > +# with or without modifications, as long as this notice is preserved.
> > +
> > +# _AM_SUBST_NOTMAKE(VARIABLE)
> > +# ---------------------------
> > +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
> > +# This macro is traced by Automake.
> > +AC_DEFUN([_AM_SUBST_NOTMAKE])
> > +
> > +# AM_SUBST_NOTMAKE(VARIABLE)
> > +# --------------------------
> > +# Public sister of _AM_SUBST_NOTMAKE.
> > +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
> > +
> > +m4_include([../ltoptions.m4])
> > +m4_include([../ltsugar.m4])
> > +m4_include([../ltversion.m4])
> > +m4_include([../lt~obsolete.m4])
> > +m4_include([../config/cet.m4])
> > +m4_include([../config/lthostflags.m4])
> > +m4_include([../config/multi.m4])
> > +m4_include([../config/override.m4])
> > +m4_include([../config/toolexeclibdir.m4])
> > +m4_include([acinclude.m4])
> > diff --git a/libgcobol/configure.ac b/libgcobol/configure.ac
> > new file mode 100644
> > index 00000000000..1e8dafc287b
> > --- /dev/null
> > +++ b/libgcobol/configure.ac
> > @@ -0,0 +1,421 @@
> > +# Process this file with autoconf to produce a configure script.
> > +#   Copyright (C) 2021-2024 Free Software Foundation, Inc.
> > +#   Originally contributed by Dave Love (d.l...@dl.ac.uk).
> > +#
> > +#This file is part of GCC.
> > +#
> > +#GCC is free software; you can redistribute it and/or modify
> > +#it under the terms of the GNU General Public License as published by
> > +#the Free Software Foundation; either version 3, or (at your option)
> > +#any later version.
> > +#
> > +#GCC is distributed in the hope that it will be useful,
> > +#but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > +#GNU General Public License for more details.
> > +#
> > +#You should have received a copy of the GNU General Public License
> > +#along with GCC; see the file COPYING3.  If not see
> > +#<http://www.gnu.org/licenses/>.
> > +
> > +AC_INIT(package-unused, version-unused,, libgcobol)
>
> I was going to say this looks off but other runtime libraries do it too,
> so w/e.
>
> > +GCC_TOPLEV_SUBDIRS
> > +
> > +# We need the following definitions because AC_PROG_LIBTOOL relies on them
> > +PACKAGE=libgcobol
> > +# Version is pulled out to make it a bit easier to change using sed.
> > +VERSION=4:0:0
> > +AC_SUBST(VERSION)
> > +
> > +# This works around the fact that libtool configuration may change LD
> > +# for this particular configuration, but some shells, instead of
> > +# keeping the changes in LD private, export them just because LD is
> > +# exported.
> > +ORIGINAL_LD_FOR_MULTILIBS=$LD
> > +
> > +. ${srcdir}/configure.tgt
> > +
> > +# -------
> > +# Options
> > +# -------
> > +
> > +# We use these options to decide which functions to include.
> > +AC_ARG_WITH(target-subdir,
> > +[  --with-target-subdir=SUBDIR
> > +                           configuring in a subdirectory])
> > +AC_ARG_WITH(cross-host,
> > +[  --with-cross-host=HOST  configuring with a cross compiler])
> > +
> > +AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
> > +AC_ARG_ENABLE(version-specific-runtime-libs,
> > +[  --enable-version-specific-runtime-libs    Specify that runtime 
> > libraries should be installed in a compiler-specific directory ],
> > +[case "$enableval" in
> > + yes) version_specific_libs=yes ;;
> > + no)  version_specific_libs=no ;;
> > + *)   AC_MSG_ERROR([Unknown argument to enable/disable version-specific 
> > libs]);;
> > + esac],
> > +[version_specific_libs=no])
> > +AC_MSG_RESULT($version_specific_libs)
> > +
> > +# -----------
> > +# Directories
> > +# -----------
> > +
> > +# Find the rest of the source tree framework.
> > +AM_ENABLE_MULTILIB(, ..)
> > +
> > +AC_CANONICAL_SYSTEM
> > +ACX_NONCANONICAL_TARGET
> > +
> > +# Export source directory.
> > +# These need to be absolute paths, yet at the same time need to
> > +# canonicalize only relative paths, because then amd will not unmount
> > +# drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using 
> > amd.
> > +case $srcdir in
> > +  [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;;
> > +  *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;;
> > +esac
> > +AC_SUBST(glibcpp_srcdir)
> > +
> > +GCC_WITH_TOOLEXECLIBDIR
> > +
> > +# Calculate toolexeclibdir
> > +# Also toolexecdir, though it's only used in toolexeclibdir
> > +case ${version_specific_libs} in
> > +  yes)
> > +    # Need the gcc compiler version to know where to install libraries
> > +    # and header files if --enable-version-specific-runtime-libs option
> > +    # is selected.
> > +    toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
> > +    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
> > +    ;;
> > +  no)
> > +    if test -n "$with_cross_host" &&
> > +       test x"$with_cross_host" != x"no"; then
> > +      # Install a library built with a cross compiler in tooldir, not 
> > libdir.
> > +      toolexecdir='$(exec_prefix)/$(target_noncanonical)'
> > +      case ${with_toolexeclibdir} in
> > +     no)
> > +       toolexeclibdir='$(toolexecdir)/lib'
> > +       ;;
> > +     *)
> > +       toolexeclibdir=${with_toolexeclibdir}
> > +       ;;
> > +      esac
> > +    else
> > +      toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
> > +      toolexeclibdir='$(libdir)'
> > +    fi
> > +    multi_os_directory=`$CC -print-multi-os-directory`
> > +    case $multi_os_directory in
> > +      .) ;; # Avoid trailing /.
> > +      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
> > +    esac
> > +    ;;
> > +esac
> > +AC_SUBST(toolexecdir)
> > +AC_SUBST(toolexeclibdir)
> > +
> > +# Figure out if we want to name the include directory and the
> > +#  library name changes differently.
> > +includedirname=include
> > +libsuffix=
> > +case "${host}" in
> > +  *-darwin*)
> > +    # Darwin is the only target so far that needs a different include 
> > directory.
> > +    includedirname=include-gnu-runtime
> > +    libsuffix=-gnu
> > +    ;;
> > +esac
> > +AC_SUBST(includedirname)
> > +AC_SUBST(libsuffix)
> > +
> > +AC_CONFIG_HEADERS(config.h)
> > +
> > +# --------
> > +# Programs
> > +# --------
> > +
> > +GCC_NO_EXECUTABLES
> > +
> > +# We must force CC to /not/ be a precious variable; otherwise
> > +# the wrong, non-multilib-adjusted value will be used in multilibs.
> > +# As a side effect, we have to subst CFLAGS ourselves.
> > +m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
> > +m4_define([_AC_ARG_VAR_PRECIOUS],[])
> > +AC_PROG_CC
> > +m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
> > +
> > +# extra LD Flags which are required for targets
> > +ACX_LT_HOST_FLAGS
> > +case "${host}" in
> > +  *-darwin*)
> > +    # Darwin needs -single_module when linking libgcobol
> > +    extra_ldflags_libgcobol='$(lt_host_flags) -Wl,-single_module'
> > +    ;;
> > +  *-cygwin*|*-mingw*)
> > +    # Tell libtool to build DLLs on Windows
> > +    extra_ldflags_libgcobol='$(lt_host_flags)'
> > +    ;;
> > +esac
> > +AC_SUBST(extra_ldflags_libgcobol)
> > +
> > +# Add CET specific flags if CET is enabled
> > +GCC_CET_FLAGS(CET_FLAGS)
> > +XCFLAGS="$XCFLAGS $CET_FLAGS"
> > +
> > +AC_SUBST(CFLAGS)
> > +AC_SUBST(XCFLAGS)
> > +
> > +AC_CHECK_TOOL(AS, as)
> > +AC_CHECK_TOOL(AR, ar)
> > +AC_CHECK_TOOL(RANLIB, ranlib, :)
> > +AC_PROG_INSTALL
> > +
> > +AM_MAINTAINER_MODE
> > +
> > +# Enable Win32 DLL on MS Windows - FIXME
> > +AC_LIBTOOL_WIN32_DLL
> > +
> > +AC_PROG_LIBTOOL
> > +
> > +AM_PROG_CC_C_O
> > +
> > +AC_PROG_MAKE_SET
> > +
> > +# -------
> > +# Headers
> > +# -------
> > +
> > +# Sanity check for the cross-compilation case:
> > +AC_CHECK_HEADER(stdio.h,:,
> > +  [AC_MSG_ERROR([Can't find stdio.h.
> > +You must have a usable C system for the target already installed, at least
> > +including headers and, preferably, the library, before you can configure
> > +the Objective C runtime system.  If necessary, install gcc now with
>
> cobol
>
> > +\`LANGUAGES=c', then the target library, then build with 
> > \`LANGUAGES=gcobol'.])])
>
> I know this is copy-pasted (so objc will have to be fixed too), but this
> LANGUAGES= thing isn't correct and hasn't been for quite some time.
>
> > +
> > +AC_HEADER_STDC
> > +
> > +AC_CHECK_HEADERS(sched.h)
> > +
> > +# -----------------
> > +# __int128 support
> > +# -----------------
> > +
> > +AC_CACHE_CHECK([whether __int128 is supported], [libgcobol_cv_have_int128],
> > +  [GCC_TRY_COMPILE_OR_LINK([
> > +    __int128 foo (__int128 )
> > +    {
> > +    __int128 aaa;
> > +     return (__int128) aaa;
> > +    }
> > +
> > +    __int128 bar (__int128 )
> > +    {
> > +    __int128 aaa;
> > +     return (__int128) aaa;
> > +    }
> > +  ],[
> > +    foo (1);
> > +    bar (1);
> > +  ],[
> > +    libgcobol_cv_have_int128=yes
> > +  ],[
> > +    libgcobol_cv_have_int128=no
> > +])])
> > +# The following conditional is useful when this creates a Makefile.am file 
> > that
> > +# is subsequently processed into a Makefile.in file.  At the present time,
> > +# however the libgcobol build uses a hardcoded Makefile.in file.
> > +AM_CONDITIONAL(BUILD_LIBGCOBOL, [test "x$libgcobol_cv_have_int128" = xyes])
> > +
> > +# -----------
> > +# Miscellanea
> > +# -----------
> > +
> > +# Check if we have thread-local storage
> > +GCC_CHECK_TLS
> > +
> > +gt_BITFIELD_TYPE_MATTERS
> > +
> > +# -----------
> > +# boehm-gc
> > +# -----------
> > +
> > +AC_ARG_ENABLE(gcobol-gc,
> > +[AS_HELP_STRING([--enable-gcobol-gc],
> > +             [enable use of Boehm's garbage collector with the
> > +              GNU Objective-C runtime])],,enable_gcobol_gc=no)
>
> cobol, right?
>
> > +AC_ARG_WITH([target-bdw-gc],
> > +[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
> > +             [specify prefix directory for installed bdw-gc package.
> > +              Equivalent to --with-target-bdw-gc-include=PATH/include
> > +              plus --with-target-bdw-gc-lib=PATH/lib])])
> > +AC_ARG_WITH([target-bdw-gc-include],
> > +[AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
> > +             [specify directories for installed bdw-gc include files])])
> > +AC_ARG_WITH([target-bdw-gc-lib],
> > +[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
> > +             [specify directories for installed bdw-gc library])])
> > +
> > +case "$enable_gcobol_gc" in
> > +no)
> > +  use_bdw_gc=no
> > +  ;;
> > +*)
> > +  AC_MSG_CHECKING([for bdw garbage collector])
> > +  if test 
> > "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = 
> > x; then
> > +    dnl no bdw-gw options, assuming bdw-gc in default locations
> > +    BDW_GC_CFLAGS=
> > +    BDW_GC_LIBS="-lgc"
> > +  else
> > +    dnl bdw-gw options passed by configure flags
> > +    if test "x$with_target_bdw_gc_include" = x && test 
> > "x$with_target_bdw_gc_lib" != x; then
> > +      AC_MSG_ERROR([found --with-target-bdw-gc-lib but 
> > --with-target-bdw-gc-include missing])
> > +    elif test "x$with_target_bdw_gc_include" != x && test 
> > "x$with_target_bdw_gc_lib" = x; then
> > +      AC_MSG_ERROR([found --with-target-bdw-gc-include but 
> > --with-target-bdw-gc-lib missing])
> > +    else
> > +      AC_MSG_RESULT([using paths configured with --with-target-bdw-gc 
> > options])
> > +    fi
> > +    mldir=`${CC-gcc} --print-multi-directory 2>/dev/null`
> > +    bdw_val=
> > +    if test "x$with_target_bdw_gc" != x; then
> > +      for i in `echo $with_target_bdw_gc | tr ',' ' '`; do
> > +        case "$i" in
> > +          *=*) sd=${i%%=*}; d=${i#*=} ;;
> > +          *) sd=.; d=$i ;;
> > +        esac
> > +        if test "$mldir" = "$sd"; then
> > +          bdw_val=$d
> > +        fi
> > +      done
> > +      if test "x$bdw_val" = x; then
> > +        AC_MSG_ERROR([no multilib path ($mldir) found in 
> > --with-target-bdw-gc])
> > +      fi
> > +      bdw_inc_dir="$bdw_val/include"
> > +      bdw_lib_dir="$bdw_val/lib"
> > +    fi
> > +    bdw_val=
> > +    if test "x$with_target_bdw_gc_include" != x; then
> > +      for i in `echo $with_target_bdw_gc_include | tr ',' ' '`; do
> > +        case "$i" in
> > +          *=*) sd=${i%%=*}; d=${i#*=} ;;
> > +          *) sd=.; d=$i; fallback=$i ;;
> > +        esac
> > +        if test "$mldir" = "$sd"; then
> > +          bdw_val=$d
> > +        fi
> > +      done
> > +      if test "x$bdw_val" = x && test "x$bdw_inc_dir" = x && test 
> > "x$fallback" != x; then
> > +        bdw_inc_dir="$fallback"
> > +      elif test "x$bdw_val" = x; then
> > +        AC_MSG_ERROR([no multilib path ($mldir) found in 
> > --with-target-bdw-gc-include])
> > +      else
> > +        bdw_inc_dir="$bdw_val"
> > +      fi
> > +    fi
> > +    bdw_val=
> > +    if test "x$with_target_bdw_gc_lib" != x; then
> > +      for i in `echo $with_target_bdw_gc_lib | tr ',' ' '`; do
> > +        case "$i" in
> > +          *=*) sd=${i%%=*}; d=${i#*=} ;;
> > +          *) sd=.; d=$i ;;
> > +        esac
> > +        if test "$mldir" = "$sd"; then
> > +          bdw_val=$d
> > +        fi
> > +      done
> > +      if test "x$bdw_val" = x; then
> > +        AC_MSG_ERROR([no multilib path ($mldir) found in 
> > --with-target-bdw-gc-lib])
> > +      fi
> > +      bdw_lib_dir="$bdw_val"
> > +    fi
> > +    if test "x$bdw_inc_dir" = x; then
> > +      AC_MSG_ERROR([no multilib path ($mldir) found in 
> > --with-target-bdw-gc-include])
> > +    fi
> > +    if test "x$bdw_lib_dir" = x; then
> > +      AC_MSG_ERROR([no multilib path ($mldir) found in 
> > --with-target-bdw-gc-lib])
> > +    fi
> > +    BDW_GC_CFLAGS="-I$bdw_inc_dir"
> > +    if test -f $bdw_lib_dir/libgc.la; then
> > +      BDW_GC_LIBS="$bdw_lib_dir/libgc.la"
> > +    else
> > +      BDW_GC_LIBS="-L$bdw_lib_dir -lgc"
> > +    fi
> > +    AC_MSG_RESULT([found])
> > +  fi
> > +
> > +  case "$BDW_GC_LIBS" in
> > +  *libgc.la)
> > +    use_bdw_gc=yes
> > +    ;;
> > +  *)
> > +    AC_MSG_CHECKING([for system boehm-gc])
> > +    save_CFLAGS=$CFLAGS
> > +    save_LIBS=$LIBS
> > +    CFLAGS="$CFLAGS $BDW_GC_CFLAGS"
> > +    LIBS="$LIBS $BDW_GC_LIBS"
> > +    dnl the link test is not good enough for ARM32 multilib detection,
> > +    dnl first check to link, then to run
> > +    AC_LINK_IFELSE(
> > +      [AC_LANG_PROGRAM([#include <gc/gc.h>],[GC_init()])],
> > +      [
> > +        AC_RUN_IFELSE([AC_LANG_SOURCE([[
> > +          #include <gc/gc.h>
> > +          int main() {
> > +            GC_init();
> > +            return 0;
> > +          }
> > +          ]])],
> > +          [system_bdw_gc_found=yes],
> > +          [system_bdw_gc_found=no],
> > +          dnl assume no system boehm-gc for cross builds ...
> > +          [system_bdw_gc_found=no]
> > +        )
> > +      ],
> > +      [system_bdw_gc_found=no])
> > +    CFLAGS=$save_CFLAGS
> > +    LIBS=$save_LIBS
> > +    if test x$enable_gcobol_gc = xauto && test x$system_bdw_gc_found = 
> > xno; then
> > +      AC_MSG_WARN([system bdw-gc not found, not building libgcobol_gc])
> > +      use_bdw_gc=no
> > +    elif test x$enable_gcobol_gc = xyes && test x$system_bdw_gc_found = 
> > xno; then
> > +      AC_MSG_ERROR([system bdw-gc required but not found])
> > +    else
> > +      use_bdw_gc=yes
> > +      AC_MSG_RESULT([found])
> > +    fi
> > +  esac
> > +esac
> > +
> > +if test "$use_bdw_gc" = no; then
> > +  OBJC_GCFLAGS=''
> > +  OBJC_BOEHM_GC=''
> > +  OBJC_BOEHM_GC_INCLUDES=''
> > +  OBJC_BOEHM_GC_LIBS=''
> > +else
> > +  OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
> > +  OBJC_BOEHM_GC='libgcobol_gc$(libsuffix).la'
> > +  OBJC_BOEHM_GC_INCLUDES=$BDW_GC_CFLAGS
> > +  OBJC_BOEHM_GC_LIBS=$BDW_GC_LIBS
> > +fi
> > +AC_SUBST(OBJC_GCFLAGS)
> > +AC_SUBST(OBJC_BOEHM_GC)
> > +AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
> > +AC_SUBST(OBJC_BOEHM_GC_LIBS)
> > +
> > +# Determine what GCC version number to use in filesystem paths.
> > +GCC_BASE_VER
> > +
> > +# ------
> > +# Output
> > +# ------
> > +
> > +if test ${multilib} = yes; then
> > +  multilib_arg="--enable-multilib"
> > +else
> > +  multilib_arg=
> > +fi
> > +
> > +AC_CONFIG_FILES([Makefile])
> > +AC_OUTPUT
> > diff --git a/libgcobol/configure.tgt b/libgcobol/configure.tgt
> > new file mode 100644
> > index 00000000000..717b28ea915
> > --- /dev/null
> > +++ b/libgcobol/configure.tgt
> > @@ -0,0 +1,63 @@
> > +# -*- shell-script -*-
> > +# Copyright (C) 2024 Free Software Foundation, Inc.
> > +#
> > +# GCC is free software; you can redistribute it and/or modify
> > +# it under the terms of the GNU General Public License as published by
> > +# the Free Software Foundation; either version 3, or (at your option)
> > +# any later version.
> > +#
> > +# GCC is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > +# GNU General Public License for more details.
> > +#
> > +# You should have received a copy of the GNU General Public License
> > +# along with GCC; see the file COPYING3.  If not see
> > +# <http://www.gnu.org/licenses/>.
> > +
> > +# This is the target specific configuration file.  This is invoked by the
> > +# autoconf generated configure script.  Putting it in a separate shell file
> > +# lets us skip running autoconf when modifying target specific information.
> > +
> > +# Disable the libphobos or libdruntime components on untested or known
> > +# broken systems.  More targets shall be added after testing.
> > +
> > +case "${target}" in
> > +    *-linux*)
> > +     # checked Linux targets not yet working:
> > +     # armel armhf i386 s390x
> > +     case "${target}" in
> > +         aarch64*-*-linux*)
> > +             LIBGCOBOL_SUPPORTED=yes
> > +             ;;
> > +         loongarch*-*-linux*)
> > +             LIBGCOBOL_SUPPORTED=yes
> > +             ;;
> > +         mips*-*-linux*)
> > +             LIBGCOBOL_SUPPORTED=yes
> > +             ;;
> > +         power*-*-linux*)
> > +             LIBGCOBOL_SUPPORTED=yes
> > +             ;;
> > +         riscv*-*-linux*)
> > +             LIBGCOBOL_SUPPORTED=yes
> > +             ;;
> > +         x86_64-*-linux*)
> > +             LIBGCOBOL_SUPPORTED=yes
> > +             ;;
> > +         arm*-linux*|hppa*-linux*|i?86-*-linux*|s390*-*-linux*)
> > +             # checked with Debian builds
> > +             LIBGCOBOL_SUPPORTED=no
> > +             ;;
> > +         *)
> > +             LIBGCOBOL_SUPPORTED=no
> > +             ;;
> > +     esac
> > +     ;;
> > +    *-gnu)
> > +     LIBGCOBOL_SUPPORTED=yes
> > +     ;;
> > +    *)
> > +     LIBGCOBOL_SUPPORTED=no
> > +     ;;
> > +esac
> > diff --git a/maintainer-scripts/update_web_docs_git 
> > b/maintainer-scripts/update_web_docs_git
> > index 8ff34f86f65..8b3f9ba9ae8 100755
> > --- a/maintainer-scripts/update_web_docs_git
> > +++ b/maintainer-scripts/update_web_docs_git
> > @@ -143,6 +143,7 @@ rm -rf gcc/.git
> >  # not .texi files (Makefile, .rst and .png), and the jit docs use
> >  # include directives to pull in content from jit/jit-common.h and
> >  # Similar considerations apply for libgdiagnostics.
> > +# Preserve the cobol man pages, which are converted to HTML and PDF.
> >  find gcc -type f \( -name '*.texi' \
> >    -o -path gcc/gcc/doc/install.texi2html \
> >    -o -path gcc/gcc/doc/include/texinfo.tex \
> > @@ -155,6 +156,7 @@ find gcc -type f \( -name '*.texi' \
> >    -o -path "gcc/gcc/testsuite/jit.dg/*" \
> >    -o -path "gcc/gcc/doc/libgdiagnostics/*" \
> >    -o -path "gcc/gcc/testsuite/libgdiagnostics.dg/*" \
> > +  -o -path "gcc/gcc/cobol/gcobol*[13]" \
> >    -o -print0 \) | xargs -0 rm -f
> >
> >  # Build a tarball of the sources.
> > @@ -200,6 +202,33 @@ for file in $MANUALS; do
> >    fi
> >  done
> >
> > +#
> > +# The COBOL FE maintains man pages.  Convert them to HTML and PDF.
> > +#
> > +mdoc2pdf_html() {
> > +    input="$1"
> > +    d="${input%/*}"
> > +    pdf="$d/$2"
> > +    html="$d/$3"
> > +    groff -mdoc -T pdf "$input" > "${pdf}~"
> > +    mv "${pdf}~" "${pdf}"
> > +    mandoc -T html "$filename" > "${html}~"
> > +    mv "${html}~" "${html}"
> > +}
> > +
> > +find . -name gcobol.[13] |
> > +    while read filename
> > +    do
> > +        case ${filename##*.} in
> > +            1)
> > +                mdoc2pdf_html "$filename" gcobol.pdf gcobol.html
> > +                ;;
> > +            3)
> > +                mdoc2pdf_html "$filename" gcobol_io.pdf gcobol_io.html
> > +                ;;
> > +        esac
> > +    done
> > +
> >  # jit and libgdiagnostics are a special-case, using Sphinx rather than 
> > texinfo.
> >  # Specifically, they need Sphinx 3.0 or later.
> >  #

Reply via email to