On 6 July 2018 at 09:26, Severin Gehwolf <sgehw...@redhat.com> wrote: > Hi David, > > On Fri, 2018-07-06 at 11:53 +1000, David Holmes wrote: >> Hi Severin, >> >> On 6/07/2018 2:41 AM, Severin Gehwolf wrote: >> > Hi, >> > >> > Please review this 8u-only change. JDK 10+ are not affected. >> > >> > For JDK 8 builds which don't perform any debug info stripping no >> > .gnu_debuglink sections should get generated. The fix is to move the >> > objcopy --add-gnu-debuglink calls into branches which actually perform >> > some stripping: all_strip, min_strip. Thoughts? >> >> Has anything changed with the tools here? This has been in place since >> back in 2011 with 7u2 and 8 GA! Why has it only become an issue now? > > I'm doubtful anything has changed with the tools. This is one of those > patches which we seem to have been carrying downstream for a very long > time. My archeology seems to suggest it started to show up in Fedora 23 > in November 2016. If anything, we'd be to blame to not push this fix > upstream earlier.
The issue of 'no_strip' not being respected is a lot older than that and has been discussed on these lists at length before (e.g. [0] [1] [2]). The impression I got back that was that change was not wanted upstream and we should hack around the defaults with various environment variables. This fix only seems to make things more confusing. The .gnu_debuglink section is now only created when STRIP_POLICY is 'all_strip' or 'min_strip', but the debuginfo file is created for any value of STRIP_POLICY. The result is that other values of STRIP_POLICY will create a debuginfo file that is not linked to the original object. That seems like a regression from what happened previously. defs.make refers to a 'no_strip' value for STRIP_POLICY, but it is never checked for elsewhere in the build, as far as I can see. I feel that the clearer logic in these files would be: ifneq ($(STRIP_POLICY),no_strip) $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ endif as I first suggested in 2012 [3] and this is how we fixed it in IcedTea years ago. [0] http://mail.openjdk.java.net/pipermail/build-dev/2012-September/006680.html [1] http://mail.openjdk.java.net/pipermail/build-infra-dev/2013-March/003186.html [2] http://mail.openjdk.java.net/pipermail/build-dev/2014-February/012019.html [3] http://mail.openjdk.java.net/pipermail/build-dev/2012-September/006695.html -- Andrew :) Senior Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Web Site: http://fuseyism.com Twitter: https://twitter.com/gnu_andrew_java PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net) Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222