@@ -79,33 +79,63 @@ endef
7979 [[ -d $( OUTPUTDIR) /$( DISTRO_NAME) ]] || mkdir -p $(OUTPUTDIR ) /$(DISTRO_NAME )
8080 [[ -d $( OUTPUTDIR) /$( DISTRO_JVM_PATCH_NAME) ]] || mkdir -p $(OUTPUTDIR ) /$(DISTRO_JVM_PATCH_NAME )
8181
82- # Setup bootstrap JDK from a given URL
83- # $1 URL of JDK in tar.gz format
84- # $2 directory of JDK
85- define setup_boot_jdk
86- $(eval DIR=$(shell dirname $(2 ) ) )
87- [[ -d $(DIR ) ]] || mkdir -p $(DIR )
88- $(eval URL := $(1 ) )
89- $(eval TAR_FILE := $(shell basename $(URL ) ) )
90- rm -f $(TAR_FILE )
91- wget -q $(URL ) -O $(TAR_FILE )
92- rm -fr $(2 )
93- tar xf $(TAR_FILE ) -C .bootjdks
94- rm -f $(TAR_FILE )
82+ # Download package from a given URL and extract to local directory
83+ # $1 URL of package in .tar.gz/.zip format
84+ # $2 local package file path to save
85+ # $3 expected MD5 checksum of the downloaded package
86+ # $4 directory to hold extracted content
87+ define setup_download_artifact
88+ $(eval URL=$(1 ) )
89+ $(eval LPATH=$(2 ) )
90+ $(eval MD5_EXP=$(3 ) )
91+ $(eval DIR=$(4 ) )
92+ { \
93+ set -x; \
94+ rm -rf $(DIR ) && mkdir -p $(DIR ) ; \
95+ for i in `seq 4`; do \
96+ [[ $$i -gt 1 ]] && echo "Retrying to download $(URL ) "; \
97+ [[ ! -f $(LPATH ) ]] && wget -nc $(URL ) -O $(LPATH ) ; \
98+ MD5SUM=`md5sum $(LPATH ) | awk '{print $$1}'`; \
99+ if [[ $$MD5SUM = $(MD5_EXP ) ]]; then \
100+ break; \
101+ else \
102+ echo "md5 checksum of downloaded $(LPATH ) is wrong! expected=$(MD5_EXP ) , actual=$$MD5SUM"; \
103+ rm -f $(LPATH ) ; \
104+ continue; \
105+ fi; \
106+ done; \
107+ [[ -f $(LPATH ) ]] || (echo "Failed to download $(URL ) " && exit 127); \
108+ if [[ $(LPATH ) == *.tar.gz ]]; then tar -xzf $(LPATH ) -C $(DIR ) --strip-components=1; \
109+ elif [[ $(LPATH ) == *.zip ]]; then \
110+ cd $(DIR ) && unzip $(LPATH ) && \
111+ cd `zipinfo -1 $(LPATH ) | grep '/$$' | sort | head -n 1` && mv * $(DIR ) /; \
112+ fi; \
113+ }
95114endef
96115
97116# '/' is indispensable otherwise target name will be treated as a file
98117$(BOOTJDK25 ) / :
99- $(call setup_boot_jdk,https://download.java.net/java/GA/jdk24.0.1/24a58e0e276943138bf3e963e6291ac2/9/GPL/openjdk-24.0.1_linux-x64_bin.tar.gz,$@ )
118+ $(call setup_download_artifact, \
119+ " https://download.java.net/java/GA/jdk24.0.1/24a58e0e276943138bf3e963e6291ac2/9/GPL/openjdk-24.0.1_linux-x64_bin.tar.gz" , \
120+ " $( WORKSPACE) /.bootjdks/bootjdk-24.0.1.tar.gz" , \
121+ " 56319f30ef59f96ddd7c7c4df330f114" , \
122+ $@ )
100123 # cp -f $(WORKSPACE)/bin/linux-x86_64/hsdis-amd64.so $$(dirname $$(find $@ -name libjava.so))
101124
102125$(BOOTJDK8 ) / :
103- $(call setup_boot_jdk,https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz,$@ )
126+ $(call setup_download_artifact, \
127+ " https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz" , \
128+ " $( WORKSPACE) /.bootjdks/bootjdk-8u372.tar.gz" , \
129+ " 524d4fac3d2cc091265c35c829a36ea0" , \
130+ $@ )
104131 # cp -f $(WORKSPACE)/bin/linux-x86_64/hsdis-amd64.so $$(dirname $$(find $@ -name libjava.so))
105132
106- jdk8u/jdk/src :
107- wget -nc https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u452-ga.tar.gz
108- [[ -d $( JDK8_SRCROOT) ]] || (mkdir -p $( JDK8_SRCROOT) && tar -xzf jdk8u452-ga.tar.gz -C $( JDK8_SRCROOT) --strip-components=1)
133+ $(JDK8_SRCROOT ) /jdk :
134+ $(call setup_download_artifact, \
135+ " https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u452-ga.tar.gz" , \
136+ " $( CVM8_SRCROOT) /jdk8u-src.tar.gz" , \
137+ " 680255696b3a541effb8d8afd2e75e5b" , \
138+ $(JDK8_SRCROOT ) )
109139
110140cvm8 : jdk8vm25
111141
@@ -131,20 +161,21 @@ jvm-patch: cvm8default25
131161 rm -fr $(BUILDDIR ) /jdk8
132162
133163clean :
134- rm -fr $(BUILDDIR )
164+ rm -fr $(BUILDDIR ) $( OUTPUTDIR )
135165 cd $(JDK8_SRCROOT ) && make clean
136166 cd $(JDK25_SRCROOT ) && make clean
137167
138168full-clean :
139- rm -fr $(BUILDDIR ) $(JDK25_SRCROOT ) /build $(JDK8_SRCROOT ) /build
169+ rm -fr $(BUILDDIR ) $(JDK25_SRCROOT ) /build $(JDK8_SRCROOT ) /build $( OUTPUTDIR )
140170
141- jdk8vm25 : -clean-jdk8vm25 -bootstrap build_jdk8u build_jdk25u altkernel
171+ jdk8vm25 : build_jdk8u build_jdk25u altkernel
142172 @echo
143173 @echo " ###### Composing CVM8 ######"
144174 $(eval SRC_BUILDDIR_25=$(shell find $(JDK25_SRCROOT ) /build -type f -name build.log | grep $(MODE ) | xargs dirname) )
145175 $(eval SRC_BUILDDIR_8=$(shell find $(JDK8_SRCROOT ) /build -type f -name build.log | grep $(MODE ) | xargs dirname) )
146176 $(eval JDK8_IMAGEDIR=$(shell find $(JDK8_SRCROOT ) /build -type d -name j2sdk-image | grep $(MODE ) ) )
147177 { \
178+ set -x; \
148179 cp -Lfr $(JDK8_IMAGEDIR ) $(CVM8DIR ) && \
149180 mkdir -p $(CVM8_LIBDIR ) /server25 && \
150181 cp -f $(BUILDDIR ) /rt8.jar $(CVM8_JARDIR ) / && \
@@ -157,8 +188,8 @@ jdk8vm25: -clean-jdk8vm25 -bootstrap build_jdk8u build_jdk25u altkernel
157188 cp -f $(SRC_BUILDDIR_25 ) /jdk/lib/libjimage.debuginfo $(CVM8_LIBDIR ) /libjimage25.debuginfo && \
158189 cp -f $(SRC_BUILDDIR_25 ) /jdk/lib/libjava.debuginfo $(CVM8_LIBDIR ) /libjava25.debuginfo && \
159190 cp -f $(SRC_BUILDDIR_25 ) /jdk/lib/libjdwp.debuginfo $(CVM8_LIBDIR ) /libjdwp25.debuginfo && \
160- cp -f $(SRC_BUILDDIR_25 ) /jdk/lib/server/libjvm.debuginfo $(CVM8_LIBDIR ) /server25/libjvm.debuginfo && \
161- [[ " x$$ (grep server25 $( CVM8_LIBDIR) /jvm.cfg)" = " x" ]] && echo " -server25 KNOWN" >> $(CVM8_LIBDIR ) /jvm.cfg && \
191+ cp -f $(SRC_BUILDDIR_25 ) /jdk/lib/server/libjvm.debuginfo $(CVM8_LIBDIR ) /server25/libjvm.debuginfo; \
192+ [[ " x$$ (grep server25 $( CVM8_LIBDIR) /jvm.cfg)" = " x" ]] && echo " -server25 KNOWN" >> $(CVM8_LIBDIR ) /jvm.cfg; \
162193 cp -rf $(CVM8DIR ) /* $(OUTPUTDIR ) /$(DISTRO_NAME ) /; \
163194 }
164195ifeq ($(MODE ) , release)
@@ -170,7 +201,7 @@ endif
170201 @echo "# ##### Done ######"
171202 @echo
172203
173- build_jdk8u : -bootstrap jdk8u /jdk/src
204+ build_jdk8u : -bootstrap $( JDK8_SRCROOT ) /jdk
174205 { cd $( JDK8_SRCROOT) ; \
175206 if [[ " x$$ (find ./build -type f -name config.log | grep $( MODE) )" = " x" ]]; then \
176207 bash configure --with-debug-level=$(MODE ) \
@@ -183,7 +214,7 @@ build_jdk8u: -bootstrap jdk8u/jdk/src
183214 --with-vendor-vm-bug-url=" https://github.com/bytedance/CompoundVM/issues" \
184215 ; \
185216 fi ; \
186- make $(JDK_MAKE_OPTS ) CONF=linux-x86_64-normal-server- $(MODE ) images; \
217+ make $(JDK_MAKE_OPTS ) CONF=$(MODE ) images; \
187218 [[ $$ ? -eq 0 ]] || exit 127; \
188219 }
189220
@@ -205,7 +236,7 @@ build_jdk25u: -bootstrap
205236 ; \
206237 fi ; \
207238 }
208- make $(JDK_MAKE_OPTS ) CONF=linux-x86_64-server- $(MODE ) hotspot jdk.jdwp.agent
239+ make $(JDK_MAKE_OPTS ) CONF=$(MODE ) hotspot jdk.jdwp.agent
209240
210241# ############### alternative kernel classes ########
211242# here we copy the JDK25 kernel classes to separate diretory,
@@ -232,18 +263,15 @@ MY_JT_HOME := $(WORKSPACE)/.jtreg
232263JTREG := $(MY_JT_HOME ) /bin/jtreg
233264
234265$(JTREG ) :
235- $(eval JTREG_URL := https://builds.shipilev.net/jtreg/jtreg5.1-b01.zip)
236- $(eval JTREG_ZIP := $(shell basename $(JTREG_URL ) ) )
237- @echo " Installing jtreg5.1 to $( MY_JT_HOME) "
238- { \
239- rm -f $(JTREG_ZIP ) ; \
240- wget -q $(JTREG_URL ) ; \
241- unzip -o -q $(JTREG_ZIP ) && mv jtreg .jtreg && rm -fr $(JTREG_ZIP ) ; \
242- }
266+ $(call setup_download_artifact, \
267+ " https://builds.shipilev.net/jtreg/jtreg5.1-b01.zip" , \
268+ " $( MY_JT_HOME) /jtreg.zip" , \
269+ " 346baca6ca2d49aa5225d5a8c0594ddc" , \
270+ " $( MY_JT_HOME) " )
243271
244272# minimize the effort to download source code
245273ifeq ($(SKIP_BUILD ) , true)
246- -setup_jtreg8 : -init-dirs $(JTREG ) jdk8u /jdk/src
274+ -setup_jtreg8 : -init-dirs $(JTREG ) $( JDK8_SRCROOT ) /jdk
247275else
248276-setup_jtreg8 : $(JTREG ) jdk8vm25
249277endif
@@ -275,7 +303,7 @@ define overlay_single
275303 $(eval FILEPATH=$(2 ) )
276304 $(eval DESTDIR=$(3 ) )
277305 @{ test -e $(DESTDIR ) /$(FILEPATH ) _origin || cp -f $(DESTDIR ) /$(FILEPATH ) $(DESTDIR ) /$(FILEPATH ) _origin; }
278- @{ cd cvm /overlay/$(REPO ) && cp -f --parents $(FILEPATH ) $(DESTDIR ) /; }
306+ @{ cd $( CVM8_SRCROOT ) /overlay/$(REPO ) && cp -f --parents $(FILEPATH ) $(DESTDIR ) /; }
279307endef
280308
281309JT_OPTS_EXCLUDE =-exclude:$(JDK8_SRCROOT ) /jdk/test/ProblemList.txt -exclude:$(CVM8_SRCROOT ) /conf/jtreg_jdk8_excludes.list
0 commit comments