Hello, here is  a slightly changed  new  webrev :

http://cr.openjdk.java.net/~mbaesken/webrevs/8237192.4/

(adjusted $(JRE_STRIPPED_PDB_FILES)  in Bundles.gmk, that was in the wrong 
place )  .

> I think it needs to be a separate option as it's all orthogonal to the
> main debug symbols file creation.

Yes it is a separate option I agree that’s better .  One has to set  
--enable-stripped-pdbs=yes  .

Best regards , Matthias


> 
> On 2020-02-06 04:48, Magnus Ihse Bursie wrote:
> > On 2020-02-06 12:36, Langer, Christoph wrote:
> >> Hi,
> >>
> >> let me chime in to this discussion at this point. So, first of all, 
> >> Matthias,
> thanks for your work so far.
> >>
> >> Erik, I fully understand your points and I agree that it's probably a good
> idea to refactor this whole process of creating these different types of
> bundles.
> >>
> >> Our idea is to provide functionality in the build system to add "public" or
> stripped debug files to the delivery image of the JDK. This would provide
> better information in case of crashes and would hence allow for better
> supportability. That's something we'd probably want to enable in
> SapMachine binary distributions.
> I very much support the idea of using these stripped pdb files. It has
> been a long standing issue in hotspot on Windows to not have access to
> stacktraces.
> >> So, can we get to add a configure option like the one proposed by
> Matthias into the current code base?
> >> The option should be turned off by default. If it is switched on, the
> images/jdk folder in the build directory will have both, the *stripped.pdb
> files and the standard *.pdb files. However, having *stripped.pdb files
> around should not matter in terms of functionality (for developers and
> testing) as they'd not be used in the presence of the "real" pdb files anyway.
> The actual JDK bundle for delivery would then contain the *stripped.pdb
> files, renamed to *.pdb. And the debug symbols bundle would have the full
> *.pdb files only. Both could then be overlaid as needed.
> >>
> >> I think you raised two concerns.
> >> One is that you'd rather like to refactor bundling for several reasons. 
> >> But I
> guess, should you eventually get to your refactoring, it shouldn't be a
> problem to take the functionality of this new option along.
> >> The other was regarding JMODs. I believe it's correct, that JMODs have
> never carried external debug information. For platforms other than MS
> Windows that's actually not a big problem because debug information can be
> internalized. And jlink has gotten several additions to set flags for 
> stripping
> that data to the right level. I assume if jlinked images on Windows should
> ever be enabled to carry debug information, inclusion of external debug files
> would have to be added to JMODs and jlink. But that's definitely out of scope
> here.
> The argument "jmods have never carried external debug information" just
> doesn't apply here. Neither has the distribution bundles, for the exact
> same reason. You really should not compare these new stripped pdb files
> to the existing debug symbol files, they are different files with
> different purposes. One is meant to be shipped to customers, the other
> is not. You say you want to ship these new stripped pdb files with your
> distribution so that customers have them present when they use your
> distribution. If you then omit these new files from the jmods, any
> customer created jlinked image will not have these new stripped pdb
> files, which IMO is a very weird and unexpected behavior from a customer
> point of view. Jlinking new images is an integral and promoted way of
> using a JDK, so any mismatch between the original JDK distribution and
> what you are able to jlink is a serious discrepancy.
> >> So, what do you think? What speaks against adding this option (that is off
> by default)?
> 
> My main objective is that you introduce further discrepancies between
> the original distribution JDK image and what's possible to generate
> using jlink from that distribution JDK image. My second objective is
> that the already convoluted bundles creation logic becomes even more
> convoluted. I believe there is a better possible solution in the build
> but it will require a lot more work to figure out.
> 
> All that said, if you still wish to continue, I will stop standing in
> the way.
> 
> > While Erik will need to comment on this himself, from my POV this
> > looks okay. The conditions are:
> >
> > * This is controlled by a separate option (or perhaps even better as a
> > new argument to --with-native-debug-symbols), so without this, nothing
> > will change.
> >
> I think it needs to be a separate option as it's all orthogonal to the
> main debug symbols file creation.
> > * The code need to make sure to separate stripped.pdb and normal pdb
> > files, when enabled.
> >
> > * And there must not be a heavy penalty in added code complexity.
> >
> /Erik
> > /Magnus
> >
> >> Thanks
> >> Christoph
> >>
> >>> -----Original Message-----
> >>> From: build-dev<build-dev-boun...@openjdk.java.net>  On Behalf Of
> Erik
> >>> Joelsson
> >>> Sent: Donnerstag, 23. Januar 2020 18:49
> >>> To: Baesken, Matthias<matthias.baes...@sap.com>; David Holmes
> >>> <david.hol...@oracle.com>; 'build-dev@openjdk.java.net' <build-
> >>> d...@openjdk.java.net>; 'hotspot-...@openjdk.java.net' <hotspot-
> >>> d...@openjdk.java.net>
> >>> Subject: Re: RFR: 8237192: Generate stripped/public pdbs on Windows
> for
> >>> jdk images
> >>>
> >>>
> >>> On 2020-01-23 00:03, Baesken, Matthias wrote:
> >>>> Hi Erik,  yes true sorry for answering  your comments a bit late .
> >>>>
> >>>>> If a user runs jlink and includes all the jmods we ship with the JDK, 
> >>>>> the
> >>> result
> >>>>> should be essentially equivalent to the original JDK image. The way
> the
> >>>>> stripped pdb files are included in the bundles sort of at the last
> >>>>> second of the build here breaks this property.
> >>>> I think we should address this in a separate bug/CR .
> >>> Maybe. I realize that my proposal below is quite a big task. But on the
> >>> other hand, I don't think breaking the relationship between the jmods
> >>> and the distribution bundles is on the table really.
> >>>> Looking for example  into a Linux  build, I see  a lot of debuginfo 
> >>>> files  in
> the
> >>> jdk image (more or less for every shared lib)  .
> >>>> But when looking into the jmods  of that jdk image ,  no debuginfo files
> are
> >>> in there ( I checked the java.base jmod).
> >>>> So  putting  the  files with debug information into the jmods  seems to
> be
> >>> something that was not done so far  cross platform  (or is there some
> build
> >>> switch  for it that I did not check?) .
> >>>> Maybe to keep the jmods as small as possible .
> >>> No, we do not put the debuginfo files in the jmods nor the bundles
> >>> because those are not intended to be shipped to customers. We are
> >>> currently overlaying them into images/jdk in the build output to make
> >>> them available for local debugging. (This is convoluted and I would very
> >>> much like to get away from this practice at some point so that there is
> >>> a 1-1 mapping between images/jdk and bundles/jdk*-bin.tar.gz.) The
> >>> stripped pdb files you are proposing are on the contrary intended for
> >>> shipping to customers (as I understand your proposal) so comparing
> them
> >>> with the debuginfo files is not relevant.
> >>>
> >>> Now if MS had been kind enough to define a separate file type for the
> >>> stripped pdbs, so that they could live alongside the full pdbs, we
> >>> wouldn't have this issue. The heart of the problem is that only one set
> >>> of files (either stripped or full) can be present and usable in
> >>> images/jdk at a time. We have 2 main uses for images/jdk.
> >>>
> >>> 1. Developer running and debugging locally
> >>>
> >>> 2. Serve as the source for generating the distribution bundles
> >>>
> >>> We currently have one image serving both of these purposes, which is
> >>> already creating complicated and convoluted build steps. To properly
> >>> solve this I would argue for splitting these two apart into two
> >>> different images for the two different purposes. The build procedure
> >>> would then be, first build the images for distribution, only containing
> >>> what should go into each bundle. Then create the developer jdk image
> by
> >>> copying files from the distribution images. On Windows, the first image
> >>> would contain the stripped pdbs and when building the second, those
> >>> would get overwritten with the full pdbs.
> >>>
> >>> Now that I figured out a working model that would solve a bunch of
> other
> >>> problems as well, I would love to implement it, but I doubt I will have
> >>> time in the near future.
> >>>
> >>> /Erik
> >>>
> >>>>> To properly implement this, care will need to be taken to juggle the
> two
> >>>>> sets of pdb files around, making sure each build and test use case has
> >>>>> the correct one in place where and when it's needed. Quite possibly,
> we
> >>>>> cannot cover all use cases with one build configuration. Developers
> >>>>> needing the full debug symbols when debugging locally would likely
> need
> >>>>> to disable the stripped symbols so they get the full symbols
> everywhere.
> >>>>> Possibly this would need to be the default for debug builds and
> >>>>> configurable for release builds.
> >>>>   From my limited experience , the developers  do not work with the
> >>> bundles (that  would contain now after my patch the stripped pds)  but
> with
> >>> a "normal" jdk image that  is created my make all.
> >>>> Best regards, Matthias
> >>>>
> >>>>
> >>>>
> >>>>> This still does not address anything in my objection.
> >>>>>
> >>>>> /Erik
> >>>>>
> >>>>> On 2020-01-22 07:46, Baesken, Matthias wrote:
> >>>>>> Hello,  here is an updated version  :
> >>>>>>
> >>>>>> http://cr.openjdk.java.net/~mbaesken/webrevs/8237192.3/
> >>>>>>
> >>>>>> this one supports a configure switch  "--enable-stripped-pdbs"    to
> >>> enable
> >>>>> the feature .
> >>>>>> Best regards, Matthias
> >>>>>>
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: Baesken, Matthias
> >>>>>>> Sent: Dienstag, 21. Januar 2020 11:03
> >>>>>>> To: 'David Holmes'<david.hol...@oracle.com>; 'build-
> >>>>>>> d...@openjdk.java.net'<build-dev@openjdk.java.net>; 'hotspot-
> >>>>>>> d...@openjdk.java.net'<hotspot-...@openjdk.java.net>
> >>>>>>> Subject: RE: RFR: 8237192: Generate stripped/public pdbs on
> Windows
> >>> for
> >>>>>>> jdk images
> >>>>>>>
> >>>>>>>
> >>>>>>> Hi David ,  yes I think it makes sense to have a configure option for
> this .
> >>>>>>> Not everyone would like to have a larger JDK (even it is only a bit
> >>> larger).
> >

Reply via email to