1717# 2 along with this work; if not, write to the Free Software Foundation,
1818# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1919
20+ CVM_ARCH := $(shell uname -m)
2021WORKSPACE := $(shell pwd)
2122SHELL := /bin/bash
2223BOOTJDK17 := $(WORKSPACE ) /.bootjdks/jdk-17.0.7+7
2324BOOTJDK8 := $(WORKSPACE ) /.bootjdks/jdk8u372-b07
25+ # Variable ARCH conflicts with jdk8's build variable
26+ ifeq ($(CVM_ARCH ) ,x86_64)
27+ BOOTJDK17_URL := https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz
28+ BOOTJDK8_URL := https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz
29+ ARCH_DIR := amd64
30+ ARCH_DIR1 := x64
31+ else ifeq ($(CVM_ARCH),aarch64)
32+ BOOTJDK17_URL := https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.7_7.tar.gz
33+ BOOTJDK8_URL := https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_aarch64_linux_hotspot_8u372b07.tar.gz
34+ ARCH_DIR := aarch64
35+ ARCH_DIR1 := aarch64
36+ else
37+ ARCH_ERROR := 1
38+ endif
39+ CVM8_LIBDIR := $(WORKSPACE ) /build/jdk8/jre/lib/$(ARCH_DIR )
2440BUILDDIR := $(WORKSPACE ) /cvm/build
2541VERSION := $(shell cat $(WORKSPACE ) /cvm/conf/version)
2642OUTPUTDIR := $(WORKSPACE ) /output
27- DISTRO_NAME := CompoundVM_$(VERSION ) _linux_x64
28- DISTRO_JVM_PATCH_NAME := CompoundVM_$(VERSION ) _jvm_patch_linux_x64
43+ DISTRO_NAME := CompoundVM_$(VERSION ) _linux_ $( ARCH_DIR1 )
44+ DISTRO_JVM_PATCH_NAME := CompoundVM_$(VERSION ) _jvm_patch_linux_ $( ARCH_DIR1 )
2945CVM8DIR := $(BUILDDIR ) /jdk8
3046CVM8_JARDIR := $(CVM8DIR ) /jre/lib
31- CVM8_LIBDIR := $(CVM8DIR ) /jre/lib/amd64
47+ CVM8_LIBDIR := $(CVM8DIR ) /jre/lib/$( ARCH_DIR )
3248MODE ?= release
3349JAR ?= $(BOOTJDK17 ) /bin/jar
3450JDK17_SRCROOT := $(WORKSPACE )
@@ -87,12 +103,18 @@ define compile_tools17_bin
87103 -DAPP_CLASSPATH='{ "/lib/tools17.jar", "/lib/tools.jar", }' \
88104 -o $(BUILDDIR ) /bin/$(TOOL_NAME ) \
89105 $(CVM8_SRCROOT ) /alt_app/tools17/src/share/bin/tool.c \
90- -L$(JDK8_LIB_DIR ) /amd64 /jli \
91- -Wl,-rpath,'$$ORIGIN/../lib/amd64 /jli' \
106+ -L$(JDK8_LIB_DIR ) /$( ARCH_DIR ) /jli \
107+ -Wl,-rpath,'$$ORIGIN/../lib/$( ARCH_DIR ) /jli' \
92108 -ljli
93109endef
94110
95- -bootstrap : -init-dirs $(BOOTJDK17 ) / $(BOOTJDK8 ) /
111+ -bootstrap : -check-arch -init-dirs $(BOOTJDK17 ) / $(BOOTJDK8 ) /
112+
113+ -check-arch :
114+ if [ " $( ARCH_ERROR) " = " 1" ]; then \
115+ echo " Unsupported architecture! only x86_64 and aarch64 are supported." ; \
116+ exit 1; \
117+ fi
96118
97119-init-dirs :
98120 [[ -d $( BUILDDIR) ]] || mkdir -p $(BUILDDIR )
@@ -117,12 +139,12 @@ endef
117139
118140# '/' is indispensable otherwise target name will be treated as a file
119141$(BOOTJDK17 ) / :
120- $(call setup_boot_jdk,https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7 % 2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz ,$@ )
121- # cp -f $(WORKSPACE)/bin/linux-x86_64 /hsdis-amd64 .so $$(dirname $$(find $@ -name libjava.so))
142+ $(call setup_boot_jdk,$( BOOTJDK17_URL ) ,$@ )
143+ # cp -f $(WORKSPACE)/bin/linux-$(CVM_ARCH) /hsdis-$(ARCH_DIR) .so $$(dirname $$(find $@ -name libjava.so))
122144
123145$(BOOTJDK8 ) / :
124- $(call setup_boot_jdk,https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz ,$@ )
125- # cp -f $(WORKSPACE)/bin/linux-x86_64 /hsdis-amd64 .so $$(dirname $$(find $@ -name libjava.so))
146+ $(call setup_boot_jdk,$( BOOTJDK8_URL ) ,$@ )
147+ # cp -f $(WORKSPACE)/bin/linux-$(CVM_ARCH) /hsdis-$(ARCH_DIR) .so $$(dirname $$(find $@ -name libjava.so))
126148
127149jdk8u/jdk/src :
128150 wget -nc https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u382-b03.tar.gz
@@ -134,11 +156,11 @@ cvm8default17: jdk8vm17
134156 echo " -server17 KNOWN" > $(CVM8_LIBDIR ) /jvm.cfg
135157 echo " -server KNOWN" >> $(CVM8_LIBDIR ) /jvm.cfg
136158 echo " -client IGNORE" >> $(CVM8_LIBDIR ) /jvm.cfg
137- echo " -server17 KNOWN" > $(OUTPUTDIR ) /$(DISTRO_NAME ) /jre/lib/amd64 /jvm.cfg
138- echo " -server KNOWN" >> $(OUTPUTDIR ) /$(DISTRO_NAME ) /jre/lib/amd64 /jvm.cfg
139- echo " -client IGNORE" >> $(OUTPUTDIR ) /$(DISTRO_NAME ) /jre/lib/amd64 /jvm.cfg
159+ echo " -server17 KNOWN" > $(OUTPUTDIR ) /$(DISTRO_NAME ) /jre/lib/$( ARCH_DIR ) /jvm.cfg
160+ echo " -server KNOWN" >> $(OUTPUTDIR ) /$(DISTRO_NAME ) /jre/lib/$( ARCH_DIR ) /jvm.cfg
161+ echo " -client IGNORE" >> $(OUTPUTDIR ) /$(DISTRO_NAME ) /jre/lib/$( ARCH_DIR ) /jvm.cfg
140162
141- JVM_PATCH_ARTIFACTS := jre/lib/rt17.jar jre/lib/rt8.jar jre/lib/amd64 /libjava17.so jre/lib/amd64 /libjimage17.so jre/lib/amd64 /libjdwp17.so jre/lib/amd64 /server17 jre/lib/amd64 /jvm.cfg
163+ JVM_PATCH_ARTIFACTS := jre/lib/rt17.jar jre/lib/rt8.jar jre/lib/$( ARCH_DIR ) /libjava17.so jre/lib/$( ARCH_DIR ) /libjimage17.so jre/lib/$( ARCH_DIR ) /libjdwp17.so jre/lib/$( ARCH_DIR ) /server17 jre/lib/$( ARCH_DIR ) /jvm.cfg
142164
143165jvm-patch : cvm8default17
144166 @echo " ###### Composing CVM8 jvm patch ######"
@@ -205,7 +227,7 @@ build_jdk8u: -bootstrap jdk8u/jdk/src
205227 --with-vendor-vm-bug-url=" https://github.com/bytedance/CompoundVM/issues" \
206228 ; \
207229 fi ; \
208- make $(JDK_MAKE_OPTS ) CONF=linux-x86_64 -normal-server-$(MODE ) images; \
230+ make $(JDK_MAKE_OPTS ) CONF=linux-$( CVM_ARCH ) -normal-server-$(MODE ) images; \
209231 [[ $$ ? -eq 0 ]] || exit 127; \
210232 }
211233
@@ -227,7 +249,7 @@ build_jdk17u: -bootstrap
227249 ; \
228250 fi ; \
229251 }
230- make $(JDK_MAKE_OPTS ) CONF=linux-x86_64 -server-$(MODE ) hotspot jdk.jdwp.agent
252+ make $(JDK_MAKE_OPTS ) CONF=linux-$( CVM_ARCH ) -server-$(MODE ) hotspot jdk.jdwp.agent
231253
232254# ############### alternative kernel classes ########
233255# here we copy the JDK17 kernel classes to separate diretory,
0 commit comments