On Tue, 2025-10-21 at 17:13 -0400, James K. Lowden wrote:
> Hi David, 
> 
> Thank you for your quick review and advice.  To address the issues
> you raised:
> 
> libxml2 will be a required component, dynamically linked.  We're
> adding it to the library to support XML PARSE syntax in the compiler.
> The user may use -dialect ibm to get the functionality on a per-
> compile basis.  

One other possibility would be to make it optional at configure time,
and to fail with a "sorry" diagnostic if the user uses the feature (or
maybe uses "-dialect ibm") on a build of gcc cobol configured without
libxml2.  (I don't know if these are good ideas; just brainstorming).

> Agreed needs documenting, missed that.  Will fix. 

Thanks.

> You didn't mention it, but libgcobol/configure.ac doesn't check that
> libxml2 is installed.  Is it sufficient that it's stated as a
> prerequisite? 

Unsure; configure scripts aren't my strongest point (sorry).  It's
probably better to check and to fail gracefully and earlier at
configure time if it's a hard dependency, rather than later with a
possibly inscrutable #include or linkage error.

> I would say we're limiting the user's security vulnerability as much
> as possible: 
> More likely than not, libxml2 is being used somewhere in the firm
> already.

True, but a prudent sysadmin will want to keep track of all the
different instances of libxml2 that they have in use at their site, and
where, so that next time there's a CVE, they know the scope of their
exposure, and what (if anything) needs patching.  Hence it's good to be
explicit up-front about dependencies.

Sorry if it seems either like (a) I'm picking on you, or (b) that I'm
stating the obvious; I think it's better to be clear about dependencies
and what our security assumptions are.

> COBOL syntax restricts the user's access to the library's API.  Any
> reported vulnerability would be relevant only if it affects the
> features of libxml2 that libgcobol uses. 

Yes, but one of the features you're using it for is... parsing XML :-)
So I'm thinking that any vulnerability involving a maliciously-formed
XML document (or DTD?) that allows an attacker to inject a behavior
into libxml2 at XML parse time would become a security concern for
libgcobol, and thus for the user's code.

Ideally libgcobol would be dynamically linked against a "system copy"
of libxml2, at which point the mitigation story for the user becomes:
update the system copy of libxml2, and restart any processes
transitively linked against it (thus including any linked against
libgcobol, and thus presumably any binaries built against libgcobol).

Perhaps you could have a libgcobol-xml target lib that contains just
the xml parts, and only link the user's code to it if needed, but that
may be overcomplicating things.

> You tell me, but I guessed that libxml2 would be accepted more
> readily than the Guile SSAX library.  ;-)  

I'm very much inclined to agree.  FWIW I'm guessing that the community
would hesitate to accept libxml2 as a mandatory dependency for all of
gcc, but it's probably a much easier sell if it's definitely
dynamically linked and only needed if building with cobol enabled
(especially if XML PARSE is built into the language, or an important
dialect, and thus something that cobol users will expect to be
available).

Hope this is constructive
Dave

> 
> I had reason today to research the release history of libxml2. 
> Versions 2.11 through 2.16 were all released this year.  I wondered
> why, and I suppose now I know that it's being driven by the
> controversy.  
> 
> Please tell me if there's anything I overlooked.  
> 
> Regards, 
> 
> --jkl
> 
> 
> > On Oct 21, 2025, at 4:29 PM, David Malcolm <[email protected]>
> > wrote:
> > 
> > On Tue, 2025-10-21 at 13:57 -0500, Robert Dubner wrote:
> > > Ahoy the reviewers!
> > 
> > Hi Bob!
> > 
> > > 
> > > This is an "Is this okay for trunk?" request.
> > > 
> > > Although these changes affect code only in libcobol and
> > > gcc/cobol, we
> > > are
> > > adding some files and some new directories, and so there are
> > > changes
> > > to
> > > gcc/cobol/Make-lang.in and to libgcobol/Makefile.am.
> > > 
> > > So, we figured that this time we'd ask for permission ahead of
> > > time,
> > > instead of our usual practice, lately, of asking for forgiveness
> > > afterward.
> > > 
> > > I applied this patch to today's gcc/master.  I did a complete
> > > --enable-languages=cobol bootstrap/multilib build on an Ubuntu
> > > x86_64-pc-linux-gnu system.  "make check-cobol" worked after
> > > that.
> > 
> > Looking at https://gcc.gnu.org/git/?p=gcc.git;a=shortlog I don't
> > see
> > the patch, so am I right in thinking that by "today's gcc/master",
> > you're referring to the symas git repo? (sorry, I don't have the
> > URL
> > handy)
> > 
> > You didn't mention this in the cover letter, but skimming through
> > the
> > patch, I see this adds a dependency on libxml2 to libgcobol to e.g.
> > parse the XML.
> > 
> > Whenever a patch adds add a new dependency, the patch should also
> > add a
> > mention of that dependency to gcc/doc/install.texi (presumably here
> > to
> > the "GCOBOL-prerequisite" item).
> > 
> > XML parsing is an area that tends to attract security vulnerability
> > reports (e.g. the "billion laughs" attack), and libxml2 is no
> > exception
> > to this.  See e.g. https://lwn.net/Articles/1025971/ for an account
> > of
> > the current status of upstream and its security posture.
> > 
> > I think the patch needs to be clear about whether the dependency on
> > libxml2 is optional, and whether libgcobol's linkage against
> > libxml2 is
> > static or dynamic.  I expect no shortage of future libxml2 CVEs,
> > and
> > people will want to know if they have to rebuild libgcobol to get
> > the
> > fix (static linkage), or if it happens automagically (dynamic
> > linkage).
> > I don't think gcc would want to add a statically-linked dependency
> > on
> > libxml2, given the many CVEs that project has had.
> > 
> > > 
> > > So, as far as I know, it's safe for me to apply this to
> > > gcc/master.
> > > 
> > > Okay for trunk?
> > 
> > That's not for me to say, but hopefully the above is
> > helpful/constructive.
> > 
> > Dave
> > 
> > 
> > > 
> > > Thanks,
> > > 
> > > Bob Dubner
> > > Jim Lowden
> > > 
> > > ---
> > > 
> > > From a5acb3ac500012124a114a172cc2a04b83b2f558 Mon Sep 17 00:00:00
> > > 2001
> > > From: Robert Dubner <[email protected]>
> > > Date: Tue, 21 Oct 2025 13:33:30 -0400
> > > Subject: [PATCH] cobol: Implement the XML PARSE statement;
> > > implement
> > > POSIX
> > >  functions.
> > > 
> > > These changes implement the  XML PARSE as described in the IBM
> > > specification.  They also start the implementation of the POSIX
> > > system,
> > > which allows COBOL applications to access POSIX library functions
> > > in
> > > a way consistent with COBOL syntax.
> > > 
> > > A repair to exception handling is included.  Up until now, an
> > > exception
> > > after a successful file operation wasn't handled properly.
> > > 
> > > A repair to value declarations for BINARY / COMP / COMP-4 / COMP-
> > > 5
> > > values now allows them to have digits to the right of the implied
> > > decimal point.  Processing of the "S" PICTURE character has been
> > > normalized as well.
> > > 
> > > Co-Authored-By: James K. Lowden <[email protected]>
> > > Co-Authored-By: Robert Dubner <[email protected]>
> > > 
> > > gcc/cobol/ChangeLog:
> > > 
> > >   * Make-lang.in: Incorporate new token_names.h file.
> > >   * cdf.y: Modify tokens.
> > >   * gcobol.1: Document XML PARSE statement
> > >   * genapi.cc (parser_enter_program): Verify that every
> > > goto
> > > has a
> > >   matching label.
> > >   (parser_end_program): Likewise.
> > >   (parser_alphabet): Refine handling codeset encodings.
> > >   (parser_alphabet_use): Likewise.
> > >   (label_fetch): Moved from later in the source code.
> > >   (parser_xml_parse): New routine for XML PARSE.
> > >   (parser_xml_on_exception): Likewise.
> > >   (parser_xml_not_exception): Likewise.
> > >   (parser_xml_end): Likewise.
> > >   (parser_label_label): Verify goto/label matching.
> > >   (parser_label_goto): Likewise.
> > >   (parser_entry): Minor change to SHOW_PARSE report.
> > >   * genapi.h (parser_alphabet): Set parameter to const.
> > >   (parser_xml_parse): Declare new function.
> > >   (parser_xml_on_exception): Likewise.
> > >   (parser_xml_not_exception): Likewise.
> > >   (parser_xml_end): Likewise.
> > >   (parser_label_addr): Likewise.
> > >   * parse.y: label_pair_t structure; locale processing;
> > > new
> > > token
> > >   processing for alphabets and XML PARSE.
> > >   * parse_ante.h (name_of): Return field->name when
> > > initial is
> > > NULL.
> > >   (new_tempnumeric): Make signable_e optional.
> > >   (ast_save_locale): New function.
> > >   (data_division_ready): Warning for "no alphabet".
> > >   * scan.l: Repair interpretation of BINARY, COMP, COMP-4,
> > > and
> > >   COMP-5.
> > >   * scan_ante.h (struct bint_t): Likewise.
> > >   * scan_post.h
> > > (current_tokens_t::tokenset_t::tokenset_t):
> > >   Include token_names.h.
> > >   * symbols.cc (symbols_alphabet_set): Revert to prior
> > > alphabet
> > >   determination.
> > >   (symbol_table_init): New XML special registers.
> > >   (new_temporary): Make signable_e controllable, not
> > > fixed.
> > >   * symbols.h (__gg__encoding_iconv_valid): New
> > > declaration.
> > >   (enum cbl_label_type_t): New LblXml label type.
> > >   (struct cbl_xml_parse_t):
> > >   (struct cbl_label_t): Implement XML PARSE.
> > >   (new_temporary): Incorporate boolean for signable_e.
> > >   (symbol_elem_of): Change label field type handling.
> > >   (cbl_section_of): Likewise.
> > >   (cbl_field_of): Likewise.
> > >   (cbl_label_of): Likewise.
> > >   (cbl_special_name_of):  Likewise.
> > >   (cbl_alphabet_of):  Likewise.
> > >   (cbl_file_of):  Likewise.
> > >   * token_names.h: New file.
> > >   * util.cc (gcc_location_set_impl): Improve location_t
> > > calculations
> > >   when entering and leaving COPYBOOKs.
> > >   * posix/.gitignore: New file.
> > >   * posix/README.md: New file.
> > >   * posix/cpy/posix-errno.cbl: New file.
> > >   * posix/cpy/statbuf.cpy: New file.
> > >   * posix/cpy/tm.cpy: New file.
> > >   * posix/headers: New file.
> > >   * posix/scrape.awk: New file.
> > >   * posix/sizeofs.c: New file.
> > >   * posix/udf-gen: New file.
> > >   * posix/udf/Makefile: New file.
> > >   * posix/udf/posix-exit.cbl: New file.
> > >   * posix/udf/posix-localtime.cbl: New file.
> > >   * posix/udf/posix-mkdir.cbl: New file.
> > >   * posix/udf/posix-stat.cbl: New file.
> > >   * posix/udf/posix-unlink.cbl: New file.
> > >   * posix/udf/t/errno.cbl: New file.
> > >   * posix/udf/t/exit.cbl: New file.
> > >   * posix/udf/t/localtime.cbl: New file.
> > >   * posix/udf/t/stat.cbl: New file.
> > > 
> > > libgcobol/ChangeLog:
> > > 
> > >   * Makefile.am: Changes for XML PARSE and POSIX
> > > functions.
> > >   * Makefile.in: Likewise.
> > >   * charmaps.cc: Augment encodings[] table with
> > > "supported"
> > > boolean.
> > >   (__gg__encoding_iconv_name): Modify how encodings are
> > > identified.
> > >   (encoding_descr): Likewise.
> > >   (__gg__encoding_iconv_valid): Likewise.
> > >   * common-defs.h (callback_t): Define function pointer.
> > >   * constants.cc: Use named cbl_attr_e constants instead
> > > of
> > > magic
> > >   numbers.; New definitions for XML special registers.
> > >   * encodings.h (struct encodings_t): Declare "supported"
> > > boolean.
> > >   * libgcobol.cc (format_for_display_internal): Use
> > > std::ptrdiff_t.
> > >   (__gg__alphabet_use): Add case for iconv_CP1252_e.
> > >   (default_exception_handler): Repair exception handling
> > > after
> > > a
> > >   successful file operation.
> > >   * posix/errno.cc: New file.
> > >   * posix/localtime.cc: New file.
> > >   * posix/stat.cc: New file.
> > >   * posix/stat.h: New file.
> > >   * posix/tm.h: New file.
> > >   * xmlparse.cc: New file to support XML PARSE statement.
> > > 
> > > gcc/testsuite/ChangeLog:
> > > 
> > >   * cobol.dg/typo-1.cob: New test for squiggles and
> > > carets.
> > > ---
> > > 
> > > [Here are the Make-lang.in and Makefile.am diffs:]
> > > 
> > > diff --git a/gcc/cobol/Make-lang.in b/gcc/cobol/Make-lang.in
> > > index 0e2a773d4df..1f9995febf1 100644
> > > --- a/gcc/cobol/Make-lang.in
> > > +++ b/gcc/cobol/Make-lang.in
> > > @@ -225,6 +225,7 @@ cobol/scan.o:
> > > cobol/scan.cc                     \
> > >   $(srcdir)/cobol/scan_post.h             \
> > >   $(srcdir)/cobol/symbols.h               \
> > >   $(srcdir)/cobol/util.h                  \
> > > + $(srcdir)/cobol/token_names.h           \
> > >   $(srcdir)/hwint.h                       \
> > >   $(srcdir)/system.h                      \
> > >   $(srcdir)/../include/ansidecl.h         \
> > > @@ -241,6 +242,15 @@ cobol/scan.o:
> > > cobol/scan.cc                     \
> > >   cobol/cdf.cc                            \
> > >   cobol/parse.cc
> > >  
> > > +# Update token names if the generator script is installed
> > > +# (by a developer) and there's been a change. 
> > > +$(srcdir)/cobol/token_names.h: cobol/parse.cc
> > > + if [ -f [email protected] ]; then                  \
> > > +         [email protected] $(subst .cc,.h,$^)       \
> > > +         | diff -u $@ -                  \
> > > +         | patch -t --set-time $@ ;      \
> > > + fi
> > > +
> > >  #
> > >  # The src<foo> targets are executed if
> > >  # '--enable-generated-files-in-srcdir' was specified as a
> > > configure
> > > 
> > > 
> > > 
> > > diff --git a/libgcobol/Makefile.am b/libgcobol/Makefile.am
> > > index 1e3d34325f4..f42bfce2380 100644
> > > --- a/libgcobol/Makefile.am
> > > +++ b/libgcobol/Makefile.am
> > > @@ -19,7 +19,7 @@
> > >  
> > >  # Written de novo for libgcobol.
> > >  
> > > -AUTOMAKE_OPTIONS = 1.8 foreign
> > > +AUTOMAKE_OPTIONS = 1.8 foreign subdir-objects
> > >  ACLOCAL_AMFLAGS = -I .. -I ../config
> > >  
> > >  # May be used by various substitution variables.
> > > @@ -34,6 +34,7 @@ toolexeclib_DATA = libgcobol.spec
> > >  ## 2.2.12 Automatic Dependency Tracking
> > >  ## Automake generates code for automatic dependency tracking by
> > > default
> > >  ##
> > > +
> > >  libgcobol_la_SOURCES =                           \
> > >   charmaps.cc                             \
> > >   constants.cc                            \
> > > @@ -42,12 +43,20 @@ libgcobol_la_SOURCES
> > > =                         \
> > >   intrinsic.cc                            \
> > >   io.cc                                   \
> > >   libgcobol.cc                            \
> > > + posix/errno.cc                          \
> > > + posix/localtime.cc                      \
> > > + posix/stat.cc                           \
> > >   stringbin.cc                            \
> > > - valconv.cc
> > > + valconv.cc                              \
> > > + xmlparse.cc
> > > +
> > > +libgcobol_la_LIBADD = -lxml2
> > >  
> > >  WARN_CFLAGS = -W -Wall -Wwrite-strings
> > >  
> > > -AM_CPPFLAGS = -I. -I$(srcdir) $(LIBQUADINCLUDE)
> > > +AM_CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/posix
> > > $(LIBQUADINCLUDE)
> > > +AM_CPPFLAGS += -I /usr/include/libxml2
> > > +
> > >  AM_CFLAGS = $(XCFLAGS)
> > >  AM_CXXFLAGS = $(XCFLAGS)
> > >  AM_CXXFLAGS += $(WARN_CFLAGS)
> > > @@ -64,7 +73,7 @@ endif
> > >  libgcobol_la_LINK = $(CXXLINK) $(libgcobol_la_LDFLAGS)
> > >  version_arg = -version-info $(LIBGCOBOL_VERSION)
> > >  libgcobol_la_LDFLAGS = $(LTLDFLAGS) $(LIBQUADLIB) $(LTLIBICONV)
> > > \
> > > - $(extra_ldflags_libgcobol) $(LIBS) $(version_arg)
> > > + $(extra_ldflags_libgcobol) $(LIBS) -lxml2 $(version_arg)
> > >  libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
> > >  
> > >  endif BUILD_LIBGCOBOL
> > > diff --git a/libgcobol/Makefile.in b/libgcobol/Makefile.in
> > > index 61b9e8669d0..880fa1f40a6 100644
> > > --- a/libgcobol/Makefile.in
> > > +++ b/libgcobol/Makefile.in
> > > @@ -115,6 +115,7 @@ target_triplet = @target@
> > >  # Handle embedded rpaths for Darwin.
> > >  @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_1
> > > =
> > > -Wc,-nodefaultrpaths \
> > >  @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@
> > > -Wl,-rpath,@loader_path
> > > +@BUILD_LIBGCOBOL_FALSE@libgcobol_la_DEPENDENCIES =
> > >  subdir = .
> > >  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
> > >  am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
> > > @@ -176,11 +177,13 @@ am__uninstall_files_from_dir = { \
> > >  am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
> > >   "$(DESTDIR)$(toolexeclibdir)"
> > >  LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
> > > -libgcobol_la_LIBADD =
> > > +am__dirstamp = $(am__leading_dot)dirstamp
> > >  @BUILD_LIBGCOBOL_TRUE@am_libgcobol_la_OBJECTS = charmaps.lo \
> > >  @BUILD_LIBGCOBOL_TRUE@   constants.lo gfileio.lo gmath.lo \
> > >  @BUILD_LIBGCOBOL_TRUE@   intrinsic.lo io.lo libgcobol.lo \
> > > -@BUILD_LIBGCOBOL_TRUE@   stringbin.lo valconv.lo
> > > +@BUILD_LIBGCOBOL_TRUE@   posix/errno.lo posix/localtime.lo \
> > > +@BUILD_LIBGCOBOL_TRUE@   posix/stat.lo stringbin.lo valconv.lo \
> > > +@BUILD_LIBGCOBOL_TRUE@   xmlparse.lo
> > >  libgcobol_la_OBJECTS = $(am_libgcobol_la_OBJECTS)
> > >  @BUILD_LIBGCOBOL_TRUE@am_libgcobol_la_rpath = -rpath
> > > $(toolexeclibdir)
> > >  AM_V_P = $(am__v_P_@AM_V@)
> > > @@ -390,7 +393,7 @@ toolexeclibdir = @toolexeclibdir@
> > >  top_build_prefix = @top_build_prefix@
> > >  top_builddir = @top_builddir@
> > >  top_srcdir = @top_srcdir@
> > > -AUTOMAKE_OPTIONS = 1.8 foreign
> > > +AUTOMAKE_OPTIONS = 1.8 foreign subdir-objects
> > >  ACLOCAL_AMFLAGS = -I .. -I ../config
> > >  
> > >  # May be used by various substitution variables.
> > > @@ -407,11 +410,18 @@ gcc_version := $(shell @get_gcc_base_ver@
> > > $(top_srcdir)/../gcc/BASE-VER)
> > >  @BUILD_LIBGCOBOL_TRUE@   intrinsic.cc                            \
> > >  @BUILD_LIBGCOBOL_TRUE@   io.cc                                   \
> > >  @BUILD_LIBGCOBOL_TRUE@   libgcobol.cc                            \
> > > +@BUILD_LIBGCOBOL_TRUE@   posix/errno.cc                          \
> > > +@BUILD_LIBGCOBOL_TRUE@   posix/localtime.cc                      \
> > > +@BUILD_LIBGCOBOL_TRUE@   posix/stat.cc                           \
> > >  @BUILD_LIBGCOBOL_TRUE@   stringbin.cc                            \
> > > -@BUILD_LIBGCOBOL_TRUE@   valconv.cc
> > > +@BUILD_LIBGCOBOL_TRUE@   valconv.cc                              \
> > > +@BUILD_LIBGCOBOL_TRUE@   xmlparse.cc
> > >  
> > > +@BUILD_LIBGCOBOL_TRUE@libgcobol_la_LIBADD = -lxml2
> > >  @BUILD_LIBGCOBOL_TRUE@WARN_CFLAGS = -W -Wall -Wwrite-strings
> > > -@BUILD_LIBGCOBOL_TRUE@AM_CPPFLAGS = -I. -I$(srcdir)
> > > $(LIBQUADINCLUDE)
> > > +@BUILD_LIBGCOBOL_TRUE@AM_CPPFLAGS = -I. -I$(srcdir) -
> > > I$(srcdir)/posix \
> > > +@BUILD_LIBGCOBOL_TRUE@   $(LIBQUADINCLUDE) -I \
> > > +@BUILD_LIBGCOBOL_TRUE@   /usr/include/libxml2
> > >  @BUILD_LIBGCOBOL_TRUE@AM_CFLAGS = $(XCFLAGS)
> > >  @BUILD_LIBGCOBOL_TRUE@AM_CXXFLAGS = $(XCFLAGS) $(WARN_CFLAGS) \
> > >  @BUILD_LIBGCOBOL_TRUE@   -DIN_TARGET_LIBS -fno-strict-aliasing
> > > @@ -420,7 +430,7 @@ gcc_version := $(shell @get_gcc_base_ver@
> > > $(top_srcdir)/../gcc/BASE-VER)
> > >  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LINK = $(CXXLINK)
> > > $(libgcobol_la_LDFLAGS)
> > >  @BUILD_LIBGCOBOL_TRUE@version_arg = -version-info
> > > $(LIBGCOBOL_VERSION)
> > >  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LDFLAGS = $(LTLDFLAGS)
> > > $(LIBQUADLIB)
> > > $(LTLIBICONV) \
> > > -@BUILD_LIBGCOBOL_TRUE@   $(extra_ldflags_libgcobol) $(LIBS)
> > > $(version_arg)
> > > +@BUILD_LIBGCOBOL_TRUE@   $(extra_ldflags_libgcobol) $(LIBS) -
> > > lxml2
> > > $(version_arg)
> > >  
> > >  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_DEPENDENCIES = libgcobol.spec
> > > $(LIBQUADLIB_DEP)
> > >  all: config.h
> > > @@ -513,12 +523,24 @@ clean-toolexeclibLTLIBRARIES:
> > >     echo rm -f $${locs}; \
> > >     rm -f $${locs}; \
> > >   }
> > > +posix/$(am__dirstamp):
> > > + @$(MKDIR_P) posix
> > > + @: > posix/$(am__dirstamp)
> > > +posix/$(DEPDIR)/$(am__dirstamp):
> > > + @$(MKDIR_P) posix/$(DEPDIR)
> > > + @: > posix/$(DEPDIR)/$(am__dirstamp)
> > > +posix/errno.lo: posix/$(am__dirstamp)
> > > posix/$(DEPDIR)/$(am__dirstamp)
> > > +posix/localtime.lo: posix/$(am__dirstamp) \
> > > + posix/$(DEPDIR)/$(am__dirstamp)
> > > +posix/stat.lo: posix/$(am__dirstamp)
> > > posix/$(DEPDIR)/$(am__dirstamp)
> > >  
> > >  libgcobol.la: $(libgcobol_la_OBJECTS)
> > > $(libgcobol_la_DEPENDENCIES)
> > > $(EXTRA_libgcobol_la_DEPENDENCIES) 
> > >   $(AM_V_GEN)$(libgcobol_la_LINK) $(am_libgcobol_la_rpath)
> > > $(libgcobol_la_OBJECTS) $(libgcobol_la_LIBADD) $(LIBS)
> > >  
> > >  mostlyclean-compile:
> > >   -rm -f *.$(OBJEXT)
> > > + -rm -f posix/*.$(OBJEXT)
> > > + -rm -f posix/*.lo
> > >  
> > >  distclean-compile:
> > >   -rm -f *.tab.c
> > > @@ -532,24 +554,31 @@ distclean-compile:
> > >  @AMDEP_TRUE@@am__include@
> > > @am__quote@./$(DEPDIR)/libgcobol.Plo@am__quote@
> > >  @AMDEP_TRUE@@am__include@
> > > @am__quote@./$(DEPDIR)/stringbin.Plo@am__quote@
> > >  @AMDEP_TRUE@@am__include@
> > > @am__quote@./$(DEPDIR)/valconv.Plo@am__quote@
> > > +@AMDEP_TRUE@@am__include@
> > > @am__quote@./$(DEPDIR)/xmlparse.Plo@am__quote@
> > > +@AMDEP_TRUE@@am__include@
> > > @am__quote@posix/$(DEPDIR)/errno.Plo@am__quote@
> > > +@AMDEP_TRUE@@am__include@
> > > @am__quote@posix/$(DEPDIR)/localtime.Plo@am__quote@
> > > +@AMDEP_TRUE@@am__include@
> > > @am__quote@posix/$(DEPDIR)/stat.Plo@am__quote@
> > >  
> > >  .cc.o:
> > > -@am__fastdepCXX_TRUE@    $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP
> > > -MF
> > > $(DEPDIR)/$*.Tpo -c -o $@ $<
> > > -@am__fastdepCXX_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo
> > > $(DEPDIR)/$*.Po
> > > +@am__fastdepCXX_TRUE@    $(AM_V_CXX)depbase=`echo $@ | sed
> > > 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
> > > +@am__fastdepCXX_TRUE@    $(CXXCOMPILE) -MT $@ -MD -MP -MF
> > > $$depbase.Tpo -c
> > > -o $@ $< &&\
> > > +@am__fastdepCXX_TRUE@    $(am__mv) $$depbase.Tpo $$depbase.Po
> > >  @AMDEP_TRUE@@am__fastdepCXX_FALSE@       $(AM_V_CXX)source='$<'
> > > object='$@'
> > > libtool=no @AMDEPBACKSLASH@
> > >  @AMDEP_TRUE@@am__fastdepCXX_FALSE@       DEPDIR=$(DEPDIR)
> > > $(CXXDEPMODE)
> > > $(depcomp) @AMDEPBACKSLASH@
> > >  @am__fastdepCXX_FALSE@   $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -
> > > o $@
> > > $<
> > >  
> > >  .cc.obj:
> > > -@am__fastdepCXX_TRUE@    $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP
> > > -MF
> > > $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
> > > -@am__fastdepCXX_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo
> > > $(DEPDIR)/$*.Po
> > > +@am__fastdepCXX_TRUE@    $(AM_V_CXX)depbase=`echo $@ | sed
> > > 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
> > > +@am__fastdepCXX_TRUE@    $(CXXCOMPILE) -MT $@ -MD -MP -MF
> > > $$depbase.Tpo -c
> > > -o $@ `$(CYGPATH_W) '$<'` &&\
> > > +@am__fastdepCXX_TRUE@    $(am__mv) $$depbase.Tpo $$depbase.Po
> > >  @AMDEP_TRUE@@am__fastdepCXX_FALSE@       $(AM_V_CXX)source='$<'
> > > object='$@'
> > > libtool=no @AMDEPBACKSLASH@
> > >  @AMDEP_TRUE@@am__fastdepCXX_FALSE@       DEPDIR=$(DEPDIR)
> > > $(CXXDEPMODE)
> > > $(depcomp) @AMDEPBACKSLASH@
> > >  @am__fastdepCXX_FALSE@   $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -
> > > o $@
> > > `$(CYGPATH_W) '$<'`
> > >  
> > >  .cc.lo:
> > > -@am__fastdepCXX_TRUE@    $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -
> > > MP -
> > > MF
> > > $(DEPDIR)/$*.Tpo -c -o $@ $<
> > > -@am__fastdepCXX_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo
> > > $(DEPDIR)/$*.Plo
> > > +@am__fastdepCXX_TRUE@    $(AM_V_CXX)depbase=`echo $@ | sed
> > > 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
> > > +@am__fastdepCXX_TRUE@    $(LTCXXCOMPILE) -MT $@ -MD -MP -MF
> > > $$depbase.Tpo
> > > -c -o $@ $< &&\
> > > +@am__fastdepCXX_TRUE@    $(am__mv) $$depbase.Tpo $$depbase.Plo
> > >  @AMDEP_TRUE@@am__fastdepCXX_FALSE@       $(AM_V_CXX)source='$<'
> > > object='$@'
> > > libtool=yes @AMDEPBACKSLASH@
> > >  @AMDEP_TRUE@@am__fastdepCXX_FALSE@       DEPDIR=$(DEPDIR)
> > > $(CXXDEPMODE)
> > > $(depcomp) @AMDEPBACKSLASH@
> > >  @am__fastdepCXX_FALSE@   $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c
> > > -o
> > > $@ $<
> > > @@ -559,6 +588,7 @@ mostlyclean-libtool:
> > >  
> > >  clean-libtool:
> > >   -rm -rf .libs _libs
> > > + -rm -rf posix/.libs posix/_libs
> > >  
> > >  distclean-libtool:
> > >   -rm -f libtool config.lt
> > > @@ -675,6 +705,8 @@ clean-generic:
> > >  distclean-generic:
> > >   -test -z "$(CONFIG_CLEAN_FILES)" || rm -f
> > > $(CONFIG_CLEAN_FILES)
> > >   -test . = "$(srcdir)" || test -z
> > > "$(CONFIG_CLEAN_VPATH_FILES)" ||
> > > rm -f $(CONFIG_CLEAN_VPATH_FILES)
> > > + -rm -f posix/$(DEPDIR)/$(am__dirstamp)
> > > + -rm -f posix/$(am__dirstamp)
> > >  
> > >  maintainer-clean-generic:
> > >   @echo "This command is intended for maintainers to use"
> > > @@ -686,7 +718,7 @@ clean-am: clean-generic clean-libtool
> > > clean-toolexeclibLTLIBRARIES \
> > >  
> > >  distclean: distclean-am
> > >   -rm -f $(am__CONFIG_DISTCLEAN_FILES)
> > > - -rm -rf ./$(DEPDIR)
> > > + -rm -rf ./$(DEPDIR) posix/$(DEPDIR)
> > >   -rm -f Makefile
> > >  distclean-am: clean-am distclean-compile distclean-generic \
> > >   distclean-hdr distclean-libtool distclean-tags
> > > @@ -735,7 +767,7 @@ installcheck-am:
> > >  maintainer-clean: maintainer-clean-am
> > >   -rm -f $(am__CONFIG_DISTCLEAN_FILES)
> > >   -rm -rf $(top_srcdir)/autom4te.cache
> > > - -rm -rf ./$(DEPDIR)
> > > + -rm -rf ./$(DEPDIR) posix/$(DEPDIR)
> > >   -rm -f Makefile
> > >  maintainer-clean-am: distclean-am maintainer-clean-generic
> 

Reply via email to