Building hsdis?

Volker Simonis volker.simonis at gmail.com
Wed Dec 20 09:54:21 UTC 2017


On Wed, Dec 20, 2017 at 10:40 AM, David Buck <david.buck at oracle.com> wrote:
> Hi Ted!
>
>> BTW, I'm sure there's a good reason for this, but why doesn't
>> OpenJDK/Oracle offer pre-built versions of hsdis for a variety of common
>> platforms? Is there a licensing issue?
>
> Yes, binutils is GPL 3, and OpenJDK is under GPL 2. We are very aware of
> this as a pain point and are looking to improve things in the future. It is
> simply a matter of bandwidth at the moment.
>

Yes, that's exactly the issue. And it was communicated to the OpenJDK
Governing Board more than two and a half years ago (see my mail
"Providing 'hsdis' binaries not possible because of GPLv2/GPLv3
license clash" from May 2015 [1]) and since then reiterated several
times. I'll plan to raise this issue again at the public GB meeting at
FOSDEM in February next year - however with very little hope that it
will be resolved :(

Regards,
Volker

[1] http://mail.openjdk.java.net/pipermail/discuss/2015-May/003754.html

> Cheers,
> -Buck
>
>
> On 2017/12/20 18:35, Ted Neward wrote:
>>
>> Sorry--I was cribbing from here
>> (https://www.chrisnewland.com/building-hsdis-on-linux-amd64-on-debian-369)
>> and it references using 2.23, which memory transposed to 2.32, I think.
>>
>> I'm not sure what was going wrong (well, I can tell you what the errors
>> were, but I dunno what was causing them), but I want to work from something
>> we know works (a la your instructions) and hopefully that'll catch any
>> environmental differences that might be causing any problems. :-)
>>
>> The README was a little confusing when I was going through it; I'll try to
>> go back over it tomorrow and try to identify which parts left me confused,
>> in case it's something that needs correcting. (I hold the possibility that
>> I'm just an idiot as a very strong possibility.)
>>
>> BTW, I'm sure there's a good reason for this, but why doesn't
>> OpenJDK/Oracle offer pre-built versions of hsdis for a variety of common
>> platforms? Is there a licensing issue?
>>
>> I'll give this a spin tomorrow and fire back with any issues/questions.
>> Thanks!
>>
>> Ted Neward
>> Author, Speaker, Mentor
>> http://www.newardassociates.com
>> t: @tedneward | m: (425) 647-4526
>>
>> On 12/20/17, 12:54 AM, "David Buck" <david.buck at oracle.com> wrote:
>>
>>      Hi Ted!
>>            > the version of binutils (I was using 2.32)
>>           Not sure what that is. Latest binutils is 2.29.1.
>>            > I was doing make BINUTILS=<binutils_dir> ARCH=amd64
>>           That should also work, but I'd still keep things simple and just
>> specify
>>      the "all64" make target. As always, whatever is documented in the
>> README
>>      file should probably be your default choice.
>>            > Do I need to clone the hs repo on its own? Or can I use the
>> bits
>>       > buried inside of jdk/src/...
>>           No need to clone jdk/hs. I was just cloning it out of habit. All
>> you
>>      need is the contents of the hsdir directory (from either repository).
>>      There is not much active work done on hsdis, so in practice you are
>>      unlikely to notice a difference between the jdk and hs repositories.
>>           Cheers,
>>      -Buck
>>           On 2017/12/20 17:31, Ted Neward wrote:
>>      > I will give this a shot tomorrow; I can see two things already that
>> I did that was different, the version of binutils (I was using 2.32) and the
>> make command (I was doing make BINUTILS=<binutils_dir> ARCH=amd64 from the
>> hsdis directory itself inside the jdk source. Do I need to clone the hs repo
>> on its own? Or can I use the bits buried inside of jdk/src/... (sorry I
>> can't remember the full path off the top of my head)?
>>      >
>>      > Once we confirm that this works, I'll work with you on
>> Windows--fortunately I know Windows better than Ubuntu, so hopefully that
>> helps. :-) (And let's be really clear, I *really* don't know what's going on
>> with the texinfo and all that stuff.)
>>      >
>>      > Ted Neward
>>      > Author, Speaker, Mentor
>>      > http://www.newardassociates.com
>>      > t: @tedneward | m: (425) 647-4526
>>      >
>>      > On 12/20/17, 12:13 AM, "David Buck" <david.buck at oracle.com> wrote:
>>      >
>>      >      Hi Ted!
>>      >
>>      >      No blog to point you to, but building on non-Windows platforms
>> should be
>>      >      pretty painless these days.
>>      >
>>      >       > then tried again with the JDK source
>>      >
>>      >      Yes, that is the one to use. The makefile had a number of
>> issues that I
>>      >      fixed recently but have not (yet) backported to 8u-dev.
>>      >
>>      >      I was able to build on an Ubuntu 16.4 (AMD64) using the
>> following
>>      >      commands (output omitted):
>>      >
>>      >      ===
>>      >      hg clone http://hg.openjdk.java.net/jdk/hs
>>      >      wget http://ftp.gnu.org/gnu/binutils/binutils-2.28.1.tar.gz
>>      >      tar xf binutils-2.28.1.tar.gz
>>      >      cd hs/src/utils/hsdis/
>>      >      make all64 BINUTILS=../../../../binutils-2.28.1
>>      >      ===
>>      >
>>      >      The above steps resulted in the plugin being generated here:
>>      >
>>      >      hs/src/utils/hsdis/build/linux-amd64/hsdis-amd64.so
>>      >
>>      >      Note the version of binutils I used, there is some issue with
>> 2.29 and
>>      >      later versions that prevents the build from succeeding. I hope
>> to
>>      >      investigate if I get some extra bandwidth next year. Also,
>> avoiding
>>      >      "cross compiling" is probably a good idea. If you want to
>> build a 32-bit
>>      >      plugin, it is probably simpler to just build it in a 32-bit
>> environment.
>>      >
>>      >      Let us know once you get this working. macOS is pretty
>> similar. Then we
>>      >      can take a crack at a Windows build if you are up for it.
>>      >
>>      >      Cheers,
>>      >      -Buck
>>      >
>>      >      On 2017/12/20 7:13, Ted Neward wrote:
>>      >      > Hey, all. Been trying for a day and a half now to build the
>> hsdis disassembly plugin in jdk/src/utils/hsdis, with no luck. (Tried first
>> off of the JDK8u source, then tried again with the JDK source, no love
>> either way.)
>>      >      >
>>      >      >
>>      >      >
>>      >      > Is there a definitive page (wiki, blog, etc) that describes
>> how to build hsdis on different platforms? I’m trying right now in an Ubuntu
>> 16 VM, but would also want to build on Windows and/or macOS. All the Web is
>> showing me is posts from a few years ago that don’t seem to address some of
>> the issues I’m running into.
>>      >      >
>>      >      >
>>      >      >
>>      >      > I can copy build output if it’ll help, but wanted to go do
>> my homework before doing that. :-)
>>      >      >
>>      >      >
>>      >      >
>>      >      > Ted Neward
>>      >      >
>>      >      > Author, Speaker, Mentor
>>      >      >
>>      >      > http://www.newardassociates.com
>>      >      >
>>      >      > t: @tedneward | m: (425) 647-4526
>>      >      >
>>      >
>>      >
>>      >
>>
>>
>


More information about the build-dev mailing list