On 26/03/2014 9:57 PM, Magnus Ihse Bursie wrote:

On 2014-03-26 12:51, David Holmes wrote:
sysroots and tool-chains and dev-kits! oh my!

Seriously, what does all this mean for someone who just wants to build
the OpenJDK? I use dev-kit for cross-compilation builds but I have no
idea what these different things are supposed to represent.

You can continue to use --with-devkit as you had. That was one of the
design goals for this change.

The theory is something like this:
* A "sysroot" is a stripped-down root directory of the *target*
platform, containing include files and libraries needed to compile and
link for a target (possibly cross-) platform.
* The toolchain path is one or more directories that contains binaries
that will run on the build platform, but generate code for the target
platform. While the separation is somewhat fuzzy, we use the toolchain
path for "toolchain" binaries, basically, those that compile, link or
otherwise interact with the target platform binaries.
* The extra path is one or more directories that contain any kind of
binaries, e.g. a proper version of zip or grep. If you do not deal with
cross-platform devkits, there is no real difference between extra path
and toolchain path.

So what then is a "dev-kit"? A combined sysroot+tool-chain?

Thanks,
David

And that is what is needed to encapsulate the tools needed to compile
OpenJDK.

/Magnus


David

On 26/03/2014 8:32 PM, Erik Joelsson wrote:
Hello,

(including 2d-dev/awt-dev because I'm changing linker flags on desktop
libs.)

In preparation for upgrading compilers and build platforms, we would
like to get better separation between the two. At least on Linux and
Solaris this is certainly possible. Some work for this was already done
in Jdk 8 but it was never taken all the way through into actual usage.

In this bug, the configure parameters relating to this will be
changed to:

--with-sysroot: Sets a sysroot directory that will be propagated to the
compiler (gcc --sysroot) if supported and which will be used by
configure to look for all dependencies like headers and libraries. (old
--with-sys-root will be kept for compatibility as an alias)

--with-toolchain-path: Prepends to the path when looking for compilers
and other target specific tools. Replaces --with-tools-dir, which will
also be kept for compatibility as an alias.

--with-extra-path: Prepends to the path when looking for everything.

--with-devkit: Points to the root of a devkit. A devkit may have a
"devkit.info" in its root detailing values for the above three
parameters. If not, the fallback behavior is what it used to do. (set
toolchain_path to devkit/bin and some options for subdirs for sysroot)


Along with these changes some more was needed and done:

* To get it to work properly on Solaris, the OPENWIN variables were
removed and replaced with X_LIBS and X_CFLAGS. Several unnecessary
runtime paths for awt* libs were removed and some were added where they
were actually needed instead. All the libs have been verified to still
find their dependencies with ldd.

* The devkit generation makefiles for linux (in root/make/devkit) were
updated to the proposed compiler versions and adding the devkit.info
file.

* A minor fix in compare.sh that was missed in an earlier patch.

Bug: https://bugs.openjdk.java.net/browse/JDK-8038340
Webrevs:
http://cr.openjdk.java.net/~erikj/8038340/webrev.root.01/
http://cr.openjdk.java.net/~erikj/8038340/webrev.jdk.01/

/Erik

Reply via email to