Seems ok to me, just a few observations:

Do we need this:

ifeq ($(DEBUG_CLASSFILES), true)
  ANT_OPTIONS += -Djavac.debug=true
  ANT_OPTIONS += -Djavac.debuglevel=source,lines,vars
endif

to be

ifeq ($(DEBUG_CLASSFILES), true)
  ANT_OPTIONS += -Djavac.debug=true
  ANT_OPTIONS += -Djavac.debuglevel=source,lines,vars
else
  ANT_OPTIONS += -Djavac.debug=false
  ANT_OPTIONS += -Djavac.debuglevel=
endif

Not sure what happens in ant if a property is not set but used???.

On this:

# DEBUG_BINARIES overrides everything
ifeq ($(DEBUG_BINARIES), true)
  CFLAGS_REQUIRED += -g
  DEBUG_FLAG = -g
endif

I think the idea with isolating the -g to a variable was to allow for
needing to globally set it to -gstabs or -g1 or some custom debug form for
everyone. e.g. being able to do a top level 'make DEBUG_BINARIES=true 
DEBUG_FLAG=-g1'.

So how about:

# DEBUG_BINARIES overrides everything, use full -g debug information
ifeq ($(DEBUG_BINARIES), true)
  DEBUG_FLAG = -g
  CFLAGS_REQUIRED += $(DEBUG_FLAG)
endif

Otherwise it seems fine.

If you have patch files for each repository (hg diff > patch) I can
run them through our test build system JPRT for you, and send you
the results.

-kto

Andrew Haley wrote:
This is my first stab at moving patches from IcedTea into OpenJDK.

Rather than creating a single overriding variable that enables debuginfo
everywhere I've used two, one for native files and one for class files.
Setting DEBUG_CLASSFILES=true in the toplevel forces all classes to be built
with full debuginfo, and DEBUG_BINARIES does the same for native binaries.
These make variables are entirely independent of the debug and optimization
setting.  This allows GNU/Linux distributions to build OpenJDK in a form
fit for distribution without patching makefiles or Ant buildfiles.  It also
means that the Ant variables javac.debug and javac.debuginfo are respected
everwhere in the build.

https://bugs.openjdk.java.net/show_bug.cgi?id=100028

Is this OK?

Andrew.



Reply via email to