From patchwork Mon Oct 14 00:44:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "James K. Lowden" X-Patchwork-Id: 1997123 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XSCcT3CJrz1xvK for ; Tue, 15 Oct 2024 10:09:59 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C278A385AC37 for ; Mon, 14 Oct 2024 23:09:57 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail.schemamania.org (syn-050-075-019-234.biz.spectrum.com [50.75.19.234]) by sourceware.org (Postfix) with ESMTP id 14CFF3858C98 for ; Mon, 14 Oct 2024 23:09:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 14CFF3858C98 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=schemamania.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=schemamania.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 14CFF3858C98 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=50.75.19.234 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1728947377; cv=none; b=ktJ/R8xd/2lslSVRUZw/9sOibTv6YujLKbM3d5+iXbu2wCEIqxH9adZGayzCs819u9sWkQlrPhCE4UOy5LFXXAtgtHqtKNUzUnZPw0ockeu6WP0vLtMhk+qtxiziGuHXWISIEqtHcmZfLq5OFf0jRP0TCh4phECCbG+tSfZhUwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1728947377; c=relaxed/simple; bh=6HrZVIlA9hmv2uPIA60yCke2qI5BgAMGrbAQiyrfsc0=; h=Date:From:To:Subject:Message-Id:Mime-Version; b=scSFnOeyWOQCILIfQgAEleftbaT/Dc06B95gmcWcPk4YX4hgbAxf39iL42/JKaGz7JcE4y9wWqGzgzKsjTlygF3pnjKybgMZjiIJzNRnliybLJq+lFXCjo1yWsHdPfFL8e9edWwqiSv7B0X8hQAcKmRE6PwL3ksWRvdOCClyGpg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from oak.schemamania.org (localhost [IPv6:::1]) by mail.schemamania.org (Postfix) with ESMTP id 67708256FABA for ; Sun, 13 Oct 2024 20:44:54 -0400 (EDT) Date: Sun, 13 Oct 2024 20:44:54 -0400 From: "James K. Lowden" To: gcc-patches@gcc.gnu.org Subject: [PATCH] Add 'cobol' to Makefile.def, take 2 Message-Id: <20241013204454.e8430201c02fcaf5c60b906b@schemamania.org> X-Mailer: Sylpheed 3.4.3 (GTK+ 2.24.28; x86_64--netbsd) Mime-Version: 1.0 X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00, DATE_IN_PAST_12_24, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_NUMSUBJECT, KAM_SHORT, RDNS_DYNAMIC, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Consequent to advice, I'm preparing the Cobol front-end patches as a small number of hopefully meaningful patches covering many files. 1. meta files used by autotools etc. 2. gcc/cobol/*.h 3. gcc/cobol/*.{y,l,cc} 4. libgcobol 5. documentation 6. tests The patch below is step #1. It comprises all the "meta files" needed for the Cobol front end, including every existing file that we modified. 1. It does not interfere with --languages=c,c++, etc 2. It does not work with --languages=cobol because the source files are missing. If this looks OK, I'll continue on the same path. I can have the next set ready tomorrow afternoon. The next message would be a set of 3 patches, steps 2-4 above. That will build with --languages=cobol, but not install or test. Test & documentation files would comprise the remaining patches. In testing the patch with "git am", I got a warning about a blank line at EOF, but I couldn't figure out where it was, or if it mattered. --jkl From 06a93d00f4433fb61ff9611c6e945a3a11c89479bld.patch 4 Oct 2024 12:01:22 -0400 From: "James K. Lowden" Date: Mon 14 Oct 2024 03:25:23 PM EDT Subject: [PATCH] Add 'cobol' to 9 files * Makefile.def: Add libgcobol module and cobol language. * configure: Add libgcobol module and cobol language. * configure.ac: Add libgcobol module and cobol language. * gcc/cobol/LICENSE: Add gcc/cobol/LICENSE * gcc/cobol/Make-lang.in: Add libgcobol module and cobol language. * gcc/cobol/config-lang.in: Add libgcobol module and cobol language. * gcc/cobol/lang.opt: Add libgcobol module and cobol language. * gcc/common.opt: Add libgcobol module and cobol language. --- Makefile.def | ++++++- configure | +- configure.ac | +- gcc/cobol/LICENSE | +++++++++++++++++++++++++++++- gcc/cobol/Make-lang.in | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- gcc/cobol/config-lang.in | ++++++++++++++++++- gcc/cobol/lang.opt | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- gcc/common.opt | ++++++++ 8 files changed, 439 insertions(+), 8 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/configure b/configure index 51bf1d1add1..a64b884be6d 100755 --- a/configure +++ b/configure @@ -2859,6 +2859,7 @@ target_libraries="target-libgcc \ target-libgfortran \ target-libffi \ target-libobjc \ + target-libgcobol \ target-libada \ target-libgm2 \ target-libgo \ diff --git a/configure.ac b/configure.ac index 20457005e29..7ae3b5128ae 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 \ diff --git a/gcc/cobol/LICENSE b/gcc/cobol/LICENSE new file mode 100644 index 00000000000..6cb64d44790 --- /dev/null +++ b/gcc/cobol/LICENSE @@ -0,0 +1,29 @@ +######################################################################### +# +# Copyright (c) 2019-2022 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..6a57585a729 --- /dev/null +++ b/gcc/cobol/Make-lang.in @@ -0,0 +1,232 @@ +# Top level -*- makefile -*- fragment for Cobol +# Copyright (C) 2016 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 +# . + +# 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. + +ifeq ("$(USER)","bob") + MAX_ERRORS := -fmax-errors=1 +endif + +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 + +# +# 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 \ + $(MAX_ERRORS) \ + -Iinclude \ + -I$(BINCLUDE) \ + -Wno-cpp \ + -Wno-missing-field-initializers \ + -DEXEC_LIB=\"$(DESTDIR)$(libdir)\" + $(END) + +YACC = bison +YFLAGS = -Werror -Wmidrule-values -Wno-yacc \ + --debug --token-table --verbose + +LEX = flex +LFLAGS = -d -Ca + +# +# These are the object files for creating the cobol1.exe compiler: +# + +cobol_one_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/valconv.o \ + cobol/charmaps.o \ + $(END) + +# cobol/charutf8.o \ + +# +# 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 = \ + $(cobol_one_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 cobol/genapi.h cobol/parse_ante.h + $(YACC) -o $@ $(YFLAGS) \ + --defines=cobol/parse.h \ + --report-file=cobol/parser.out $< + +cobol/cdf.c: cobol/cdf.y cobol/genapi.h + $(YACC) -o $@ $(YFLAGS) \ + --defines=cobol/cdf.h --report-file=cobol/cdf.out $< + +cobol/scan.c: cobol/scan.l cobol/scan_ante.h cobol/scan_post.h + $(LEX) -o$@ $(LFLAGS) $< + +cobol/scan.o: cobol/parse.c # cobol/parse.h # parse.h gets built along with parse.c + +# And the cobol1.exe front end + +cobol1$(exeext): $(cobol_one_OBJS) $(BACKEND) $(LIBDEPS) attribs.o + +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) attribs.o -o $@ \ + $(cobol_one_OBJS) $(BACKEND) $(LIBS) $(BACKENDLIBS) + +## Other dependencies +# mkdep cobol/*.cc; grep -E '^[[:alnum:]_][.]o|cobol/' .depend | +# awk '{gsub(/[/]usr[^ \n]+ ?/, ""); gsub(/cobol[^ ]+[.]cc/, ""); } 1' \ +# > /tmp/depends && rm .depend + +cdf-copy.o: cobol/copybook.h +symbols.o: cobol/genapi.h cobol/symbols.h cobol/inspect.h cobol/io.h + +# FIXME +cobol.all.cross: + +cobol.start.encap: gcobol$(exeext) + +cobol.rest.encap: + +cobol.install-common: installdirs + $(INSTALL_PROGRAM) -v gcobol$(exeext) \ + $(DESTDIR)$(bindir)/$(gcobol_INSTALL_NAME)$(exeext) + $(INSTALL_PROGRAM) -v $(srcdir)/cobol/gcobc $(DESTDIR)$(bindir)/ + $(INSTALL_DATA) -v $(srcdir)/cobol/udf/* $(udfdir)/ + +cobol.install-man: installdirs + $(INSTALL_DATA) -v $(srcdir)/cobol/gcobol.1 $(DESTDIR)$(man1dir)/ + $(INSTALL_DATA) -v $(srcdir)/cobol/gcobol.3 $(DESTDIR)$(man3dir)/ + +cobol.install-info: + +cobol.install-pdf: + +cobol.install-plugin: + +cobol.install-html: + +cobol.info: + +cobol.dvi: + +cobol.pdf: + +cobol.html: + +cobol.uninstall: + -rm -f gcobol$(exeext) cobol1$(exeext) + -rm -f $(cobol_OBJS) + +cobol.man: + +cobol.mostlyclean: + +cobol.clean: + rm -fr cobol1 cobol/* ../*/libgcobol/* + +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..4098105135f --- /dev/null +++ b/gcc/cobol/config-lang.in @@ -0,0 +1,18 @@ +language="cobol" + +compilers="cobol1\$(exeext)" + +target_libs="libgcobol.a" + +# Files that should be scanned by gengtype.c to generate the garbage +# collection tables. Not obviously needed. + +gtfiles="\$(srcdir)/cobol/cobol1.cc" + +# We might write (some of) the cobol FE in C++ +#### lang_requires_boot_languages=c++ + +# 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..3917bdb3182 --- /dev/null +++ b/gcc/cobol/lang.opt @@ -0,0 +1,144 @@ +; lang.opt -- Options for the gcc Cobol front end. + +; Copyright (C) 2009-2020 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 +; . + +; 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 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= 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= 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 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/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/common.opt b/gcc/common.opt index ea39f87ae71..bb941d76a05 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1602,6 +1602,10 @@ fdump-passes Common Var(flag_dump_passes) Init(0) Dump optimization passes. +fdump-generic-nodes +Common Var(flag_dump_generic_nodes) Init(0) +Dump GENERIC trees for each function in three files: .nodes, .nodes.html, and .nodes.html + fdump-unnumbered Common Var(flag_dump_unnumbered) Suppress output of instruction numbers, line number notes and addresses in debugging dumps. @@ -3829,6 +3833,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.