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. > > #