adoptium / temurin-build

Eclipse Temurin™ build scripts - common across all releases/versions
Apache License 2.0
1.01k stars 247 forks source link

Add fastdebug builds #146

Open chrisvest opened 7 years ago

chrisvest commented 7 years ago

Sometimes you need a debug build of the JDK, and currently the only way that I know of to get one of those, is to build it yourself. On some platforms, however, it can be quite an ordeal to get OpenJDK to build.

The AdoptOpenJDK has already done all the leg work to make the JDK build on the various platforms, and offer the binaries for download. It would be very helpful if another build with ./configure --enable-debug could be added to the list of builds.

neomatrix369 commented 7 years ago

@chrisvest I have just created one and added to the Jenkins dashboard - https://ci.adoptopenjdk.net/job/openjdk_debug_build_x86-64_linux/1/console, let me know if you are happy with this, I checked the ./configure command, summary of the help, only the below show debug related options:

  --enable-debug          set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) [disabled]
  --disable-debug-symbols disable generation of debug symbols [enabled]
  --disable-zip-debug-info
                          disable zipping of debug-info files [enabled]
  --with-debug-level      set the debug level (release, fastdebug, slowdebug)
  --debug-configure       Run the configure script with additional debug

--enable-debug is disabled instead we can use --with-debug-level=fastdebug

If you are happy with the binary produced via the Jenkins job we can close this issue - it has been created to habdle parameters so you can add other flags to the configure command.

chrisvest commented 7 years ago

Hi @neomatrix369

Can you kick off a MacOS build? It's easier for me to check those artefacts. :)

neomatrix369 commented 7 years ago

@chrisvest there is usually a higher fee for MacOS builds, usually higher license costs, you might need to sort it out with @gdams or @tellison ;) :p

neomatrix369 commented 7 years ago

@chrisvest Here's the MacOSX build - https://ci.adoptopenjdk.net/view/OpenJDK%20builds/job/openjdk_build_debug_x86-64_macosx//1/console, please test out the binary to let us know if its what works for you as far as fastdebug binaries go.

chrisvest commented 7 years ago

@neomatrix369 Thanks, the binaries from that build are exactly what I needed.

neomatrix369 commented 7 years ago

@chrisvest cool stuff, even before we saw $$$ or £££ or Euros changing hands ;) Good one, could you please write a post or gather some info on fastdebug, how it works, what it is for? What do binaries with fastdebug contain and link back to us, these very rarely used types of binaries are not known to all and would be nice to spread awareness.

neomatrix369 commented 7 years ago

I'll close this issue for now if you please, once you have also shared some knowledge with us - maybe post it on the wiki if you don't mind.

chrisvest commented 7 years ago

Sure, will do.

chrisvest commented 7 years ago

If any one of you are at JCrete we might see some beer or watermelon change hands ;)

neomatrix369 commented 7 years ago

Watermelon sounds interesting, one way change right? Thanks for the gesture. Looking forward to the knowledge share.

karianna commented 7 years ago

I'm going to backlog this for now as we'd like to provide fast debug builds via the website as alternatives.

CC @Joe-Brady Have a think about how you might want to display this in both the UI and the API...

jakewins commented 6 years ago

@karianna @neomatrix369 were these builds decomissioned? Can't find debug builds listed on https://ci.adoptopenjdk.net/ anymore.. This would be really nice to have.

karianna commented 6 years ago

@jakewins They were never commissioned. It's something we need to add to the farm if we have enough spare capacity. Is there a particular O/S and version of Java that you're after?

jakewins commented 6 years ago

Well, there's another repo that hosts debug builds for Windows and the ones on Linux are easy to build locally, so the main target would be OS X. Versions are JDK8 & JDK9.

calexHG commented 6 years ago

@karianna Hint: what's the one major OS that doesn't have a GraalVM build hosted by Oracle? :P

Target: Windows, x64 Java versions:

Windows is the target that is most needed as it consistently under-provided for since everything to do with creating builds assumes a POSIX-like environment.

karianna commented 6 years ago

We're working with a major cloud provider for Windows hosts, stay tuned!

victornoel commented 5 years ago

@karianna @neomatrix369 I see the build with debug symbols for linux (https://github.com/AdoptOpenJDK/openjdk-build/issues/146#issuecomment-314512338) has been removed. Any way to get it back? It's nice to build it at home but not very practical I find…

karianna commented 5 years ago

We're going to produce these as separate builds yes, not 100% sure of timeframe yet though.

victornoel commented 5 years ago

@karianna thanks for the feedback! You can count me in as a potential user ;)

lwahonen commented 5 years ago

Any news on this? Seems counterproductive to just rm the .pdb files ( https://github.com/AdoptOpenJDK/openjdk-build/pull/644 ), and forcing users to build their own if they need the files. Maybe put them in a separate .zip?

karianna commented 5 years ago

Looking for Pull Requests on this one for it to happen quickly.

dmoles commented 4 years ago

Are there instructions anywhere on how to produce your own debug build? There's no root configure script any more in 2.0.0, if there ever was.

karianna commented 4 years ago

@dmoles - see http://cr.openjdk.java.net/~ihse/demo-new-build-readme/common/doc/building.html - if you search for fast debug you'll see the option to pass in as an arg to our scripts.

M-Davies commented 4 years ago

Just to summarise this issue, it's currently possible to create a fastdebug build at home but the concern right now is that we don't have the spare capacity to produce fastdebug builds as part of the pipelines.

Even if we do, we are currently awaiting PR's allow fastdebug builds as part of the pipelines. Is that accurate?

karianna commented 4 years ago

Just to summarise this issue, it's currently possible to create a fastdebug build at home but the concern right now is that we don't have the spare capacity to produce fastdebug builds as part of the pipelines.

Even if we do, we are currently awaiting PR's allow fastdebug builds as part of the pipelines. Is that accurate?

I believe that is correct, although some fastdebug builds are being produced for Eclipse OpenJ9 (@gdams will surface those to the website, they're available in the API)

20152101001 commented 4 years ago

@karianna @chrisvest Hi, is there any available debug-version Openjdk for MAC?It seems most of link is invalid. thx

karianna commented 4 years ago

@karianna @chrisvest Hi, is there any available debug-version Openjdk for MAC?It seems most of link is invalid. thx

There currently isn't. We'd need to enable the flags and do a bunch of testing.

chrisvest commented 4 years ago

FTR the OpenJDK build system has changed since Java 8 (I think this happened as part of Java 9, but not sure) so it’s pretty easy to make your own build if you want something more recent like Java 11.

asbachb commented 4 years ago

@karianna I'm a little bit puzzled about the status.

In case a PR would be opened to enable fastdebug builds for hotspot windows variant would it most likely be merged or is something else blocking to enable these builds?

karianna commented 4 years ago

@karianna I'm a little bit puzzled about the status.

In case a PR would be opened to enable fastdebug builds for hotspot windows variant would it most likely be merged or is something else blocking to enable these builds?

A pull request would be most welcome :-)

adamfarley commented 3 years ago

If we're looking to produce regular fastdebug builds, and the primary barrier is that we don't have enough spare machine time to do it, is there any support for cancelling the normal builds on Saturdays and running fastdebug build generation then?

I say that on the assumption that most of us are primarily Monday-Friday, and while Sunday builds/tests can be triaged on Monday morning, Saturday builds/tests are less likely to be monitored/triaged prior to the Sunday run, and can be safely sacrificed.

aahlenst commented 3 years ago

@adamfarley I don't think the statement about machine shortage is still true. Even if it was, our (lack of) capacity isn't uniform across platforms. We have plenty of x64, aarch64 machines which are the platforms with the highest download numbers. So I'd rather enable daily builds, but not on all platforms.

smlambert commented 3 years ago

I intend to turn on 'weekly' tests on one of the weekend builds, as part of https://github.com/AdoptOpenJDK/openjdk-build/issues/2189 and as they have not been running but did get triggered as part of the release (which runs nightly + weekly test lists).

adamfarley commented 3 years ago

So, to clarify and summarize the above points, once the re-release is through, we need a PR that creates fast-debug build jobs that are:

Does this sound correct, and do we want to link these builds on the website as a follow-on task?

adamfarley commented 3 years ago

We probably need these new builds to follow some sort of formalized framework, so we know we're always getting the information we need to make an informed decision.

Here's an issue to cover the creation of that framework: https://github.com/AdoptOpenJDK/TSC/issues/191

shartte commented 3 years ago

To add one use case for this to the pile, as far as I know, such a debug build would be needed to make use of https://github.com/AdoptOpenJDK/jitwatch more easily.