9292# Define external dependencies
9393
9494# Latest that could be made to work.
95- GCC_VER := 13.2.0
96- ifeq ($(GCC_VER), 13.2.0)
95+ GCC_VER := 14.2.0
96+ ifeq ($(GCC_VER), 14.2.0)
97+ gcc_ver := gcc-14.2.0
98+ binutils_ver := binutils-2.43
99+ ccache_ver := ccache-4.10.2
100+ CCACHE_CMAKE_BASED := 1
101+ mpfr_ver := mpfr-4.2.1
102+ gmp_ver := gmp-6.3.0
103+ mpc_ver := mpc-1.3.1
104+ gdb_ver := gdb-15.2
105+ REQUIRED_MIN_MAKE_MAJOR_VERSION := 4
106+ else ifeq ($(GCC_VER), 13.2.0)
97107 gcc_ver := gcc-13.2.0
98108 binutils_ver := binutils-2.41
99109 ccache_ver := ccache-3.7.12
@@ -262,10 +272,18 @@ define Download
262272 # Allow override
263273 $(1)_DIRNAME ?= $(basename $(basename $(notdir $($(1)))))
264274 $(1)_DIR = $(abspath $(SRCDIR)/$$($(1)_DIRNAME))
265- $(1)_CFG = $$($(1)_DIR)/configure
275+ ifeq ($$($(1)_CMAKE_BASED),)
276+ $(1)_CFG = $$($(1)_DIR)/configure
277+ $(1)_SRC_MARKER = $$($(1)_DIR)/configure
278+ $(1)_CONFIG = $(CONFIG)
279+ else
280+ $(1)_CFG = cmake
281+ $(1)_SRC_MARKER = $$($(1)_DIR)/CMakeLists.txt
282+ $(1)_CONFIG = $$(CMAKE_CONFIG) $$($(1)_DIR)
283+ endif
266284 $(1)_FILE = $(DOWNLOAD)/$(notdir $($(1)))
267285
268- $$($(1)_CFG ) : $$($(1)_FILE)
286+ $$($(1)_SRC_MARKER ) : $$($(1)_FILE)
269287 mkdir -p $$(SRCDIR)
270288 tar -C $$(SRCDIR) -xf $$<
271289 $$(foreach p,$$(abspath $$(wildcard patches/$$(ARCH)-$$(notdir $$($(1)_DIR)).patch)), \
@@ -365,6 +383,8 @@ CONFIG = --target=$(TARGET) \
365383 --host=$(HOST) --build=$(BUILD) \
366384 --prefix=$(PREFIX)
367385
386+ CMAKE_CONFIG = -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(PREFIX)
387+
368388PATHEXT = $(PREFIX)/bin:
369389
370390PATHPRE = PATH=$(PATHEXT)$(PATH)
@@ -576,6 +596,8 @@ ifeq ($(HOST), $(TARGET))
576596 $(PATHPRE) $(ENVS) CFLAGS="$(CFLAGS)" $(GDB_CFG) \
577597 $(CONFIG) \
578598 --with-sysroot=$(SYSROOT) \
599+ --with-mpfr=$(PREFIX) \
600+ --with-gmp=$(PREFIX) \
579601 ) > $(@D)/log.config 2>&1
580602 @echo 'done'
581603
@@ -591,13 +613,13 @@ endif
591613################################################################################
592614# very straightforward. just build a ccache. it is only for host.
593615$(BUILDDIR)/$(ccache_ver)/Makefile \
594- : $(CCACHE_CFG )
616+ : $(CCACHE_SRC_MARKER )
595617 $(info Configuring $@. Log in $(@D)/log.config)
596618 @mkdir -p $(@D)
597619 @( \
598620 cd $(@D) ; \
599621 $(PATHPRE) $(ENVS) $(CCACHE_CFG) \
600- $(CONFIG ) \
622+ $(CCACHE_CONFIG ) \
601623 ) > $(@D)/log.config 2>&1
602624 @echo 'done'
603625
@@ -703,6 +725,14 @@ ifeq ($(TARGET), $(HOST))
703725 ld.gold nm objcopy objdump ranlib readelf size strings strip)
704726endif
705727
728+ # Add link to work around "plugin needed to handle lto object" (JDK-8344272)
729+ $(PREFIX)/lib/bfd-plugins/liblto_plugin.so: $(PREFIX)/libexec/gcc/$(TARGET)/$(GCC_VER)/liblto_plugin.so
730+ @echo 'Creating missing $(@F) soft link'
731+ @mkdir -p $(@D)
732+ ln -s $$(realpath -s --relative-to=$(@D) $<) $@
733+
734+ missing-links += $(PREFIX)/lib/bfd-plugins/liblto_plugin.so
735+
706736################################################################################
707737
708738bfdlib : $(bfdlib)
0 commit comments