Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
8c5a446
8385437: Provide test property vm.cds.nocoh.archive.available and use…
MBaesken May 28, 2026
f2bc36d
8383421: ZGC: Problematic interactions between `JVMTI_EVENT_SAMPLED_O…
xmas92 May 28, 2026
744f6bc
8385022: ZGC: Crash with sparse NUMA node configuration
jsikstro May 28, 2026
2b618b4
8384869: C2: IR Verification Test failures on x86_64 after JDK-8383881
May 28, 2026
368dcc8
8384609: Remove old CHA implementation
May 28, 2026
a453a8b
8385528: Fix linker alignment warning for libawt on macOS with Xcode 26
gdams May 28, 2026
e615d49
8385375: Shenandoah: Sampled allocation rate is too slow to react to …
May 28, 2026
4eb6773
8385430: Shenandoah: Compact heuristic runs continuously when allocat…
May 28, 2026
bb4d2ab
8382482: Optimize equals scenario in x86 scalar floating point min/ma…
May 28, 2026
114e3c6
8384353: SHA3 AVX2 and AVX512 intrinsics and improvements
May 28, 2026
ea42cd9
8383738: javac crashes with StackOverflowError when a class extends a…
dbalek May 29, 2026
91d9ef1
8384843: Duplicated type annotations in classfile
lahodaj May 29, 2026
7145bf0
8385390: Update FreeType to 2.14.3
jayathirthrao May 29, 2026
9f38c8b
8377010: Source code launcher cannot call inherited main from another…
May 29, 2026
ebc3af7
8379083: Executable source program should ignore module declaration
sormuras May 29, 2026
9ed5af9
8385557: Shenandoah: Runtime calls from C2 stubs need to be relocatable
shipilev May 29, 2026
0a5221d
8385627: Typo in JMXServiceURL.java: misssing
kevinjwalls May 29, 2026
163ab37
8385628: Typo in jdk.attach comments
kevinjwalls May 29, 2026
f823e3f
8385572: [PPC64] frame alignment assertion after JDK-6960970
TheRealMDoerr May 29, 2026
3d78846
8379125: C2: Control of rewired data in Range Check Elimination is no…
chhagedorn May 29, 2026
04effb0
8383767: C2: assert(curr_ctrl->in(0)->Opcode() == Op_If) failed: unex…
anton-seoane May 29, 2026
7dbc83a
8385334: Shenandoah: Improve gc+stats logging
shipilev May 29, 2026
d4b6c78
8375062: vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java fails …
plummercj May 29, 2026
2fa9eb6
8375076: Two JDI scenario tests are failing with out of wait time aft…
plummercj May 29, 2026
4a0a858
8385584: CAInterop.java#buypassclass3ca fails with Intermediate Root …
May 29, 2026
08ecb87
8374886: CAInterop.java#microsoftrsa2017 test fails as EE certificate…
May 29, 2026
05244e8
8385347: Remove AppContext from SunToolkit and also remove AppContext
prrace May 29, 2026
2baa87b
8316466: 8 com/sun/jdi tests ignore VM flags
shivshah-oracle May 29, 2026
c09e403
8381007: MultiPixelPackedSampleModel can throw ArithmeticException
prrace May 29, 2026
cd0b9fb
8383605: Incomplete input validation on the bands parameters in j.a.i…
prrace May 29, 2026
8f8f9b4
8385179: Shenandoah: Simplify and optimize string deduplication
shipilev May 29, 2026
1618bf4
8382025: [lworld] tools/jpackage/share/AsyncTest.java fails with An e…
May 29, 2026
0eeacb5
8382130: Remove test/failure_handler/Makefile
shivshah-oracle May 29, 2026
b66dcc9
8385345: AWT and ImageIO shell tests fail when run using MSys/MinGW
raneashay May 29, 2026
6e07965
8385606: Shenandoah: Remove PLAB card-table alignment and per-object …
May 29, 2026
d3073b5
8385610: Shenandoah: TestSoftMaxHeapSizeAvailableCalc should have mor…
May 30, 2026
7b2845e
8384087: Test tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/in…
raneashay Jun 1, 2026
9489e12
8385656: Misplaced comment on enum value in jdk.internal.util.Archite…
jaikiran Jun 1, 2026
62843fc
8346420: C2: IfNode::fold_compares_helper() wrongly folds two CmpI no…
eme64 Jun 1, 2026
9536b7f
8384964: Add an entry count to the MallocSiteTable
johan-sjolen Jun 1, 2026
3760d75
8384104: Obsolete Xmaxjitcodesize
anton-seoane Jun 1, 2026
2820c78
8385408: C2: no reachable node should have no use
mhaessig Jun 1, 2026
05a6580
8385583: RISC-V: Debugger very slow during stepping
zifeihan Jun 1, 2026
3f2002d
8384507: Incorrect vector reassociation for signed saturating addition
Jun 1, 2026
9acd9f8
8381965: NullPointerException in TypeAnnotationPositions
lahodaj Jun 1, 2026
64d6cba
8385632: ZGC: Incorrect object undo in relocation race for relocation…
jsikstro Jun 1, 2026
886eb11
8385409: Javap documentation says by default protected and public mem…
dbalek Jun 1, 2026
d60fead
8384604: Shenandoah: Completed GC count doesn't add up in the log
Jun 1, 2026
b2bf91b
8376621: Should not suspend thread in start_transition if _is_disable…
pchilano Jun 1, 2026
a23ce9c
8379535: test/jdk/java/io/File/ListRoots.java fails with RuntimeExcep…
Jun 1, 2026
045ae96
8384221: GenShen: WhiteBox full GC promotion is not reliable
pf0n Jun 1, 2026
70c92d6
8382275: Update nsk/stress/jni to use ThreadWrapper
shivshah-oracle Jun 1, 2026
f640ede
8341382: EXCEPTION_ACCESS_VIOLATION in awt.dll after JDK-8185862
Jun 2, 2026
207dc4e
8322256: Define and document GZIPInputStream concatenated stream sema…
jaikiran Jun 2, 2026
29e3742
8385670: Incorrect warning: Unexpected gaps for Klass alignment
iklam Jun 2, 2026
9c244ec
8382532: C2: VectorAPI: disable VectorMaskCmp-not optimization for pr…
Jun 2, 2026
e83e794
8376285: AArch64: Support fusion optimization for SVE destructive ins…
Jun 2, 2026
3f8a721
8385664: Stale comment about JDK-6996415
cushon Jun 2, 2026
3efa011
8385648: PPC64: Improve receiver type profiling reliability
TheRealMDoerr Jun 2, 2026
e5d8e33
8385658: Debug code in frame::patch_pc() doesn't initialize on_heap info
TheRealMDoerr Jun 2, 2026
cb502e7
8385747: Test gc/g1/TestGCLogMessages.java failed: 'Update Derived P…
stefank Jun 2, 2026
c469bb2
8383867: File.getCanonicalPath drops backslash from UNC path with dir…
Jun 2, 2026
1e67c84
8382936: C2: Load folding must not drop Type information
merykitty Jun 2, 2026
6253a03
8383635: Improve performance of ML-KEM's implKyberNttMultJava() method
ferakocz Jun 2, 2026
4192f9b
8385736: Optimize ListFormat custom pattern parsing
naotoj Jun 2, 2026
43d80fd
8329548: Change KeyUpdate messages from TLS 1.3
Jun 2, 2026
f630ab0
8384250: [macos] Test tools/jpackage/share/AsyncTest.java failed
Jun 2, 2026
ab33d9d
8385490: Update HarfBuzz to 14.2.0
jayathirthrao Jun 3, 2026
8ba600d
8385333: Shenandoah: Final mark spins up workers without work to do
shipilev Jun 3, 2026
39de79e
8367584: Implement JEP 536: JFR In-Process Data Redaction
egahlin Jun 3, 2026
2688bf7
8385738: Javadoc does not produce reproducible output due to the snip…
vpa1977 Jun 3, 2026
1900d66
8385312: Intermittent assert while running JCK test api/java_util/con…
fbredber Jun 3, 2026
ec1bffd
8385702: Improve polymorphic handling in JDK-8385648
shipilev Jun 3, 2026
563befb
8385633: PPC64: Shenandoah weak CAS fails after late barrier expansion
dbriemann Jun 3, 2026
2352da0
8385836: Update comment in SourceVersion for language evolution histo…
nizarbenalla Jun 3, 2026
a29ef33
8382249: G1: Racy concurrent update of young gen size and revising yo…
Jun 3, 2026
bf14f24
8385013: Startup regression ~30% / 7-10ms with noop
minborg Jun 3, 2026
15726f9
8384182: Incorrect assertion eq4a_state in vectorization AlignmentSol…
krk Jun 3, 2026
d3483a9
8385831: Prevent APX instruction being generated on non-APX machines
Jun 3, 2026
85db081
8379846: G1: IHOP Allocation rate calculation too sensitive to outlie…
walulyai Jun 3, 2026
7a7f37f
8385828: The javac benchmarks fail after JDK-8385347
dbalek Jun 3, 2026
7992301
8334403: Unify behavior of os::committed_in_range across OSes
roberttoyonaga Jun 3, 2026
e70e691
8377506: Implement JEP 538: PEM Encodings of Cryptographic Objects (T…
Jun 3, 2026
1b1576d
8372442: 2 Null pointer dereference defect groups in jvmtiExport.cpp
lmesnik Jun 3, 2026
fac043a
8385835: Shenandoah: Polish C2 pre/post barrier signatures
shipilev Jun 3, 2026
9f83006
8378464: PixelInterleavedSampleModel constructors and methods do not …
prrace Jun 3, 2026
24d3129
8372546: UnixMultiResolutionSplashTest.java fails intermittently on U…
aivanov-jdk Jun 3, 2026
b328a32
8385552: Improve devkit/sysroot creation
vidmik Jun 3, 2026
7ebfc03
8269888: Thai text rendered incorrectly using some AffineTransform-de…
Jun 3, 2026
19146ad
8385915: RISC-V: Remove unused cmpxchg* methods
zifeihan Jun 4, 2026
b7e2635
8384442: Shenandoah: Remove vestigial CAS barrier code
Jun 4, 2026
bbb4dd8
8385622: [s390x] Debugger very slow during stepping
offamitkumar Jun 4, 2026
8fad96d
8377808: compiler/c2/irTests/TestFloat16ScalarOperations.java is frag…
mhaessig Jun 4, 2026
d47d729
8384648: LazyConstantTest::interruptStatusIsPreservedForComputingThre…
minborg Jun 4, 2026
c6f9c23
8385054: Spec: Clarify ofLazy List/Set/Map equals/hashCode/toString J…
minborg Jun 4, 2026
ee53e75
8381812: The synthetic $deserializeLambda$ is notably bigger
lahodaj Jun 4, 2026
c4a3373
8385885: Clarify comment in LazyConstantImpl
minborg Jun 4, 2026
f8f7ad2
8381235: TestCompileTaskTimeout intermittently fails due to unexpecte…
mhaessig Jun 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 13 additions & 15 deletions doc/building.html
Original file line number Diff line number Diff line change
Expand Up @@ -394,11 +394,11 @@ <h2 id="operating-system-requirements">Operating System
<tbody>
<tr class="odd">
<td>Linux/x64</td>
<td>Oracle Enterprise Linux 6.4 / 8.x</td>
<td>Oracle Linux 6.4 / 8.x</td>
</tr>
<tr class="even">
<td>Linux/aarch64</td>
<td>Oracle Enterprise Linux 7.6 / 8.x</td>
<td>Oracle Linux 7.6 / 8.x</td>
</tr>
<tr class="odd">
<td>macOS</td>
Expand Down Expand Up @@ -1495,26 +1495,24 @@ <h4 id="using-openjdk-devkits">Using OpenJDK Devkits</h4>
</tr>
</tbody>
</table>
<p><code>BASE_OS</code> must be one of <code>OL</code> for Oracle
Enterprise Linux or <code>Fedora</code>. If the base OS is
<code>Fedora</code> the corresponding Fedora release can be specified
with the help of the <code>BASE_OS_VERSION</code> option. If the build
is successful, the new devkits can be found in the
<p><code>BASE_OS</code> must be one of <code>OL</code> for Oracle Linux
or <code>Fedora</code>. The release/version of the base OS can be
specified using the <code>BASE_OS_VERSION</code> option. If the build is
successful, the new devkits can be found in the
<code>build/devkit/result</code> subdirectory:</p>
<pre><code>cd make/devkit
make TARGETS=&quot;ppc64le-linux-gnu aarch64-linux-gnu&quot; BASE_OS=Fedora BASE_OS_VERSION=21
make TARGETS=&quot;ppc64le-linux-gnu aarch64-linux-gnu&quot; BASE_OS=Fedora
ls -1 ../../build/devkit/result/
x86_64-linux-gnu-to-aarch64-linux-gnu
x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
<p>Notice that devkits are not only useful for targeting different build
platforms. Because they contain the full build dependencies for a system
(i.e. compiler and root file system), they can easily be used to build
well-known, reliable and reproducible build environments. You can for
example create and use a devkit with GCC 7.3 and a Fedora 12 sysroot
environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't have GCC
7.3 by default) to produce JDK binaries which will run on all Linux
systems with runtime libraries newer than the ones from Fedora 12 (e.g.
Ubuntu 16.04, SLES 11 or RHEL 6).</p>
(i.e., compiler and root file system/sysroot), they can easily be used
to build well-known, reliable, and reproducible build environments. You
can, for example, create and use a devkit with a version of the GCC
compiler not provided by the host OS, using a sysroot from an older
Linux distribution to produce JDK binaries which will run on all Linux
systems with newer runtime libraries.</p>
<h4 id="using-debian-debootstrap">Using Debian debootstrap</h4>
<p>On Debian (or a derivative like Ubuntu), you can create sysroots for
foreign architectures with tools provided by the OS. You can use
Expand Down
27 changes: 13 additions & 14 deletions doc/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,8 @@ time of writing.

| Operating system | Vendor/version used |
| ----------------- | ---------------------------------- |
| Linux/x64 | Oracle Enterprise Linux 6.4 / 8.x |
| Linux/aarch64 | Oracle Enterprise Linux 7.6 / 8.x |
| Linux/x64 | Oracle Linux 6.4 / 8.x |
| Linux/aarch64 | Oracle Linux 7.6 / 8.x |
| macOS | macOS 14.x |
| Windows | Windows Server 2016 |

Expand Down Expand Up @@ -1288,27 +1288,26 @@ at least the following targets are known to work:
| riscv64-linux-gnu |
| s390x-linux-gnu |

`BASE_OS` must be one of `OL` for Oracle Enterprise Linux or `Fedora`. If the
base OS is `Fedora` the corresponding Fedora release can be specified with the
help of the `BASE_OS_VERSION` option. If the build is successful, the new
devkits can be found in the `build/devkit/result` subdirectory:
`BASE_OS` must be one of `OL` for Oracle Linux or `Fedora`. The release/version
of the base OS can be specified using the `BASE_OS_VERSION` option. If the build
is successful, the new devkits can be found in the `build/devkit/result`
subdirectory:

```
cd make/devkit
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora
ls -1 ../../build/devkit/result/
x86_64-linux-gnu-to-aarch64-linux-gnu
x86_64-linux-gnu-to-ppc64le-linux-gnu
```

Notice that devkits are not only useful for targeting different build
platforms. Because they contain the full build dependencies for a system (i.e.
compiler and root file system), they can easily be used to build well-known,
reliable and reproducible build environments. You can for example create and
use a devkit with GCC 7.3 and a Fedora 12 sysroot environment (with glibc 2.11)
on Ubuntu 14.04 (which doesn't have GCC 7.3 by default) to produce JDK binaries
which will run on all Linux systems with runtime libraries newer than the ones
from Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).
platforms. Because they contain the full build dependencies for a system (i.e.,
compiler and root file system/sysroot), they can easily be used to build
well-known, reliable, and reproducible build environments. You can, for example,
create and use a devkit with a version of the GCC compiler not provided by the
host OS, using a sysroot from an older Linux distribution to produce JDK
binaries which will run on all Linux systems with newer runtime libraries.

#### Using Debian debootstrap

Expand Down
107 changes: 107 additions & 0 deletions make/devkit/Common.gmk
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#
# Copyright (c) 2013, 2026, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

ARCH := $(word 1,$(subst -, ,$(TARGET)))

ifeq ($(TARGET), arm-linux-gnueabihf)
ARCH=armhfp
endif

$(info ARCH=$(ARCH))

ifeq ($(PREFIX),)
$(error PREFIX not set)
endif

BUILDDIR := $(OUTPUT_ROOT)/$(HOST)/$(TARGET)
TARGETDIR := $(PREFIX)/$(TARGET)
SYSROOT := $(TARGETDIR)/sysroot

# Base OS information and repositories
#
# BASE_OS_REPOS is a space-separated set of repositories. Each entry
# is of the format <repo_name>,<url> where <repo_name> is a unique
# identifier across the set of repositories.

ifeq ($(BASE_OS), OL)
ifeq ($(filter aarch64 x86_64, $(ARCH)), )
$(error Only "aarch64 x86_64" architectures are supported for OL, but "$(ARCH)" was requested)
endif
BASE_OS_VERSION ?= 7
ifeq ($(BASE_OS_VERSION), 6)
ifeq ($(filter x86_64, $(ARCH)), )
$(error Only "x86_64" architectures are supported for OL6, but "$(ARCH)" was requested)
endif
BASE_OS_DESCRIPTION_VERSION := 6.4
REPO_BASE_URL := https://yum.oracle.com/repo/OracleLinux/OL6/4
BASE_OS_REPOS := base,$(REPO_BASE_URL)/base/$(ARCH)
else ifeq ($(BASE_OS_VERSION), 7)
BASE_OS_DESCRIPTION_VERSION := 7.6
REPO_BASE_URL := https://yum.oracle.com/repo/OracleLinux/OL7/6
BASE_OS_REPOS := base,$(REPO_BASE_URL)/base/$(ARCH)
else
REPO_BASE_URL := https://yum.oracle.com/repo/OracleLinux/OL$(BASE_OS_VERSION)
BASE_OS_REPOS := baseos,$(REPO_BASE_URL)/baseos/latest/$(ARCH) appstream,$(REPO_BASE_URL)/appstream/$(ARCH)
BASE_OS_DESCRIPTION_VERSION := $(BASE_OS_VERSION)
endif
BASE_OS_DESCRIPTION := OL$(BASE_OS_DESCRIPTION_VERSION)
else ifeq ($(BASE_OS), Fedora)
ifeq ($(filter aarch64 armhfp ppc64le riscv64 s390x x86_64, $(ARCH)), )
$(error Only "aarch64 armhfp ppc64le riscv64 s390x x86_64" architectures are supported for Fedora, but "$(ARCH)" was requested)
endif
ifeq ($(ARCH), riscv64)
BASE_OS_VERSION ?= 43
BASE_OS_BUILD := 6640
REPO_BASE_URL := https://riscv-koji.fedoraproject.org/repos-dist/f$(BASE_OS_VERSION)/$(BASE_OS_BUILD)/riscv64
BASE_OS_REPOS := riscv64,$(REPO_BASE_URL)
else
ifeq ($(ARCH), armhfp)
BASE_OS_VERSION ?= 36
else
BASE_OS_VERSION ?= 41
endif
ifeq ($(ARCH), armhfp)
ifneq ($(BASE_OS_VERSION), 36)
$(error Fedora 36 is the last release supporting "armhfp", but $(BASE_OS_VERSION) was requested)
endif
endif
LATEST_ARCHIVED_OS_VERSION := 41
ifeq ($(filter aarch64 x86_64 armhfp, $(ARCH)), )
FEDORA_TYPE := fedora-secondary
else
FEDORA_TYPE := fedora/linux
endif
NOT_ARCHIVED := $(shell [ $(BASE_OS_VERSION) -gt $(LATEST_ARCHIVED_OS_VERSION) ] && echo true)
ifeq ($(NOT_ARCHIVED),true)
RPM_REPO_URL := https://dl.fedoraproject.org/pub/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os
else
RPM_REPO_URL := https://archives.fedoraproject.org/pub/archive/$(FEDORA_TYPE)/releases/$(BASE_OS_VERSION)/Everything/$(ARCH)/os
endif
BASE_OS_REPOS := os,$(RPM_REPO_URL)
endif
BASE_OS_DESCRIPTION := Fedora_$(BASE_OS_VERSION)
else
$(error Unknown base OS $(BASE_OS))
endif
33 changes: 17 additions & 16 deletions make/devkit/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 2026, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -39,7 +39,7 @@
#
# make TARGETS="aarch64-linux-gnu" BASE_OS=Fedora
# or
# make TARGETS="arm-linux-gnueabihf ppc64le-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=17
# make TARGETS="aarch64-linux-gnu ppc64le-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=41
#
# to build several devkits for a specific OS version at once.
# You can find the final results under ../../build/devkit/result/<host>-to-<target>
Expand All @@ -50,7 +50,7 @@
# makefile again for cross compilation. Ex:
#
# PATH=$PWD/../../build/devkit/result/x86_64-linux-gnu-to-x86_64-linux-gnu/bin:$PATH \
# make TARGETS="arm-linux-gnueabihf ppc64le-linux-gnu" BASE_OS=Fedora
# make TARGETS="aarch64-linux-gnu ppc64le-linux-gnu" BASE_OS=Fedora
#
# This is the makefile which iterates over all host and target platforms.
#
Expand Down Expand Up @@ -79,49 +79,50 @@ TARGET_PLATFORMS := $(PLATFORMS)
$(info HOST_PLATFORMS $(HOST_PLATFORMS))
$(info TARGET_PLATFORMS $(TARGET_PLATFORMS))

all compile : $(PLATFORMS)
all compile: $(PLATFORMS)

ifeq ($(SKIP_ME), )
$(foreach p,$(filter-out $(ME),$(PLATFORMS)),$(eval $(p) : $$(ME)))
$(foreach p,$(filter-out $(ME),$(PLATFORMS)),$(eval $(p): $$(ME)))
endif

OUTPUT_ROOT = $(abspath ../../build/devkit)
RESULT = $(OUTPUT_ROOT)/result

SUBMAKEVARS = HOST=$@ BUILD=$(ME) RESULT=$(RESULT) OUTPUT_ROOT=$(OUTPUT_ROOT)

$(HOST_PLATFORMS) :
$(HOST_PLATFORMS):
@echo 'Building compilers for $@'
@echo 'Targets: $(TARGET_PLATFORMS)'
for p in $(filter $@, $(TARGET_PLATFORMS)) $(filter-out $@, $(TARGET_PLATFORMS)); do \
$(MAKE) -f Tools.gmk download-rpms $(SUBMAKEVARS) \
$(MAKE) -f Sysroot.gmk sysroot $(SUBMAKEVARS) \
TARGET=$$p PREFIX=$(RESULT)/$@-to-$$p && \
$(MAKE) -f Tools.gmk all $(SUBMAKEVARS) \
TARGET=$$p PREFIX=$(RESULT)/$@-to-$$p && \
$(MAKE) -f Tools.gmk ccache $(SUBMAKEVARS) \
TARGET=$@ PREFIX=$(RESULT)/$@-to-$$p || exit 1 ; \
TARGET=$@ PREFIX=$(RESULT)/$@-to-$$p || exit 1; \
done
@echo 'All done"'
@echo 'All done'

TODAY := $(shell date +%Y%m%d)

define Mktar
$(1)-to-$(2)_tar = $$(RESULT)/sdk-$(1)-to-$(2)-$$(TODAY).tar.gz
$$($(1)-to-$(2)_tar) : PLATFORM = $(1)-to-$(2)
$$($(1)-to-$(2)_tar): PLATFORM = $(1)-to-$(2)
TARFILES += $$($(1)-to-$(2)_tar)
endef

$(foreach p,$(HOST_PLATFORMS),$(foreach t,$(TARGET_PLATFORMS),$(eval $(call Mktar,$(p),$(t)))))

tars : all $(TARFILES)
onlytars : $(TARFILES)
%.tar.gz :
tars: all $(TARFILES)
onlytars: $(TARFILES)

%.tar.gz:
$(MAKE) -r -f Tars.gmk SRC_DIR=$(RESULT)/$(PLATFORM) TAR_FILE=$@

clean :
clean:
rm -rf $(addprefix ../../build/devkit/, result $(HOST_PLATFORMS))

dist-clean: clean
rm -rf $(addprefix ../../build/devkit/, src download)

FORCE :
.PHONY : all compile tars $(HOST_PLATFORMS) clean dist-clean
.PHONY: all compile tars $(HOST_PLATFORMS) clean dist-clean
Loading
Loading