This gets frustrating at times. I tracked down that
EXTRA_TARGET_FLAGS does indeed include 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ And I tried including what looks like the boilerplate for AM_MAKEFLAGS = \ And I fussed and fiddled with it after that. For whatever reasons none of those changes allowed for CXXFLAGS_FOR_TARGET to find their way into the compilations of libgcobol/*.cc files. My simple one-liner does find its way into the compilations of libgcobol.cc files. Meanwhile, as I mess with this, which takes a long time because it takes a long time to test, the actual useful work of expanding the test suite is going undone. Let me rephrase this: Is there some reason why I *shouldn't* apply the simple one-liner AM_CXXFLAGS =$(CXXFLAGS_FOR_TARGET) which I know does work? I don't think it can affect any other compilations; it's isolated to libgcobol. And if I am not anticipating some other problem, well, I am content to wait until that other problem crops up. > -----Original Message----- > From: Richard Biener <richard.guent...@gmail.com> > Sent: Friday, March 21, 2025 04:14 > To: Robert Dubner <rdub...@symas.com> > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH] cobol: Make CXXFLAGS_FOR_TARGET available to the > libgcobol build. > > On Fri, Mar 21, 2025 at 4:56 AM Robert Dubner <rdub...@symas.com> wrote: > > > > I seek benediction. Failing that, I ask for advice. > > > > This patch makes it possible for me to set the environment variable > > 'CXXFLAGS_FOR_TARGET="-ggdb -O0"' at configure time, and end up with a > > debuggable libgcobol.so. > > > > Is this a correct way to gain that capability? > > In principle the recursive make invocation should set > CXXFLAGS=$(CXXFLAGS_FOR_TARGET) already: > > maybe-all-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)) > > and EXTRA_TARGET_FLAGS includes > > 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ > > Some Makefile.am have sth like the following (but not libgomp for > example): > > # Work around what appears to be a GNU make handling MAKEFLAGS > # values defined in terms of make variables, as is the case for CC and > # friends when we are called from the top level Makefile. > AM_MAKEFLAGS = \ > "AR_FLAGS=$(AR_FLAGS)" \ > "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ > "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ > "CFLAGS=$(CFLAGS)" \ > "CXXFLAGS=$(CXXFLAGS)" \ > "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ > "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ > "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ > "GOC=$(GOC)" \ > "GOCFLAGS=$(GOCFLAGS)" \ > "INSTALL=$(INSTALL)" \ > "INSTALL_DATA=$(INSTALL_DATA)" \ > "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ > "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ > "LDFLAGS=$(LDFLAGS)" \ > "LIBCFLAGS=$(LIBCFLAGS)" \ > "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ > "MAKE=$(MAKE)" \ > "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ > "PICFLAG=$(PICFLAG)" \ > "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ > "SHELL=$(SHELL)" \ > "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ > "exec_prefix=$(exec_prefix)" \ > "infodir=$(infodir)" \ > "libdir=$(libdir)" \ > "includedir=$(includedir)" \ > "prefix=$(prefix)" \ > "tooldir=$(tooldir)" \ > "gxx_include_dir=$(gxx_include_dir)" \ > "AR=$(AR)" \ > "AS=$(AS)" \ > "LD=$(LD)" \ > "RANLIB=$(RANLIB)" \ > "NM=$(NM)" \ > "NM_FOR_BUILD=$(NM_FOR_BUILD)" \ > "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ > "DESTDIR=$(DESTDIR)" \ > "WERROR=$(WERROR)" > > > > If not, then how? > > > > If so, then OK for trunk? > > > > Thanks all. > > > > From c03774e34bde193da7f80eea53b49915e311df0d Mon Sep 17 00:00:00 2001 > > From: Bob Dubner mailto:rdub...@symas.com > > Date: Thu, 20 Mar 2025 23:44:12 -0400 > > Subject: [PATCH] cobol: Make CXXFLAGS_FOR_TARGET available to the > > libgcobol > > build. > > > > By setting "CXXFLAGS_FOR_TARGET=-ggdb -O0", a debuggable version > > of libgcobol.so is created. > > > > libgcobol > > > > * Makefile.am: Incorporate AM_CXXFLAGS = $(CXXFLAGS_FOR_TARGET). > > * Makefile.in: Regenerated. > > --- > > libgcobol/Makefile.am | 2 ++ > > libgcobol/Makefile.in | 1 + > > 2 files changed, 3 insertions(+) > > > > diff --git a/libgcobol/Makefile.am b/libgcobol/Makefile.am > > index eddf209807e6..2bd634f30d4c 100644 > > --- a/libgcobol/Makefile.am > > +++ b/libgcobol/Makefile.am > > @@ -52,6 +52,8 @@ libgcobol_la_LINK = $(LIBTOOL) --mode=link --tag=CXX > > $(CXX) \ > > > > WARN_CFLAGS = -W -Wall -Wwrite-strings > > > > +AM_CXXFLAGS =$(CXXFLAGS_FOR_TARGET) > > + > > # not defined: DEFS, MAX_ERRORS, LTLDFLAGS > > ALL_CXXFLAGS = -I. -I$(srcdir) $(AM_CPPFLAGS) $(DEFS) \ > > $(XCFLAGS) $(AM_CXXFLAGS) $(WARN_CFLAGS) $(MAX_ERRORS) \ > > diff --git a/libgcobol/Makefile.in b/libgcobol/Makefile.in > > index a6096d2a64aa..6f3ef0750114 100644 > > --- a/libgcobol/Makefile.in > > +++ b/libgcobol/Makefile.in > > @@ -425,6 +425,7 @@ libgcobol_la_LINK = $(LIBTOOL) --mode=link --tag=CXX > > $(CXX) \ > > $(LTLDFLAGS) > > > > WARN_CFLAGS = -W -Wall -Wwrite-strings > > +AM_CXXFLAGS = $(CXXFLAGS_FOR_TARGET) > > > > # not defined: DEFS, MAX_ERRORS, LTLDFLAGS > > ALL_CXXFLAGS = -I. -I$(srcdir) $(AM_CPPFLAGS) $(DEFS) \ > > -- > > 2.34.1 > >