various tweaks to get hello-ios working with the Android library

This commit is contained in:
Joel Dice 2013-03-04 14:24:41 -07:00
parent b3978c0a0a
commit 5d730fe8fa
2 changed files with 35 additions and 28 deletions

View File

@ -292,11 +292,11 @@ converter-cflags = -D__STDC_CONSTANT_MACROS -Iinclude/ -Isrc/ \
cflags = $(build-cflags) cflags = $(build-cflags)
common-lflags = -lm -lz $(classpath-lflags) common-lflags = -lm -lz
build-lflags = -lz -lpthread -ldl build-lflags = -lz -lpthread -ldl
lflags = $(common-lflags) $(classpath-lflags) -lpthread -ldl lflags = $(common-lflags) -lpthread -ldl
soname-flag = -Wl,-soname -Wl,$(so-prefix)jvm$(so-suffix) soname-flag = -Wl,-soname -Wl,$(so-prefix)jvm$(so-suffix)
version-script-flag = -Wl,--version-script=openjdk.ld version-script-flag = -Wl,--version-script=openjdk.ld
@ -580,34 +580,37 @@ ifeq ($(platform),darwin)
flags = -arch armv7 -isysroot \ flags = -arch armv7 -isysroot \
$(sdk-dir)/iPhoneOS$(ios-version).sdk/ $(sdk-dir)/iPhoneOS$(ios-version).sdk/
openjdk-extra-cflags += $(flags) classpath-extra-cflags += $(flags)
cflags += $(flags) cflags += $(flags)
asmflags += $(flags) asmflags += $(flags)
lflags += $(flags) lflags += $(flags)
endif endif
ifeq ($(arch),powerpc) ifeq ($(arch),powerpc)
openjdk-extra-cflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION} classpath-extra-cflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION}
cflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION} cflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION}
asmflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION} asmflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION}
lflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION} lflags += -arch ppc -mmacosx-version-min=${OSX_SDK_VERSION}
endif endif
ifeq ($(arch),i386) ifeq ($(arch),i386)
openjdk-extra-cflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION} classpath-extra-cflags += \
-arch i386 -mmacosx-version-min=${OSX_SDK_VERSION}
cflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION} cflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION}
asmflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION} asmflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION}
lflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION} lflags += -arch i386 -mmacosx-version-min=${OSX_SDK_VERSION}
endif endif
ifeq ($(arch),x86_64) ifeq ($(arch),x86_64)
openjdk-extra-cflags += -arch x86_64 classpath-extra-cflags += -arch x86_64
cflags += -arch x86_64 cflags += -arch x86_64
asmflags += -arch x86_64 asmflags += -arch x86_64
lflags += -arch x86_64 lflags += -arch x86_64
endif endif
endif endif
openjdk-extra-cflags += $(classpath-extra-cflags)
ifeq ($(platform),windows) ifeq ($(platform),windows)
ifeq ($(target-format),) ifeq ($(target-format),)
target-format = pe target-format = pe
@ -785,7 +788,7 @@ ifeq ($(platform),wp8)
-DTARGET_BYTES_PER_WORD=$(pointer-size) \ -DTARGET_BYTES_PER_WORD=$(pointer-size) \
-Gd -EHsc -Gd -EHsc
common-lflags = $(classpath-lflags) common-lflags =
ifeq ($(mode),debug) ifeq ($(mode),debug)
build-type = Debug build-type = Debug
@ -1025,16 +1028,12 @@ compiler-sources = \
$(wildcard $(src)/codegen/compiler/*.cpp) \ $(wildcard $(src)/codegen/compiler/*.cpp) \
$(src)/codegen/registers.cpp \ $(src)/codegen/registers.cpp \
$(src)/codegen/targets.cpp $(src)/codegen/targets.cpp
compiler-objects = $(call cpp-objects,$(compiler-sources),$(src),$(build))
x86-assembler-sources = $(wildcard $(src)/codegen/target/x86/*.cpp) x86-assembler-sources = $(wildcard $(src)/codegen/target/x86/*.cpp)
x86-assembler-objects = $(call cpp-objects,$(x86-assembler-sources),$(src),$(build))
arm-assembler-sources = $(wildcard $(src)/codegen/target/arm/*.cpp) arm-assembler-sources = $(wildcard $(src)/codegen/target/arm/*.cpp)
arm-assembler-objects = $(call cpp-objects,$(arm-assembler-sources),$(src),$(build))
powerpc-assembler-sources = $(wildcard $(src)/codegen/target/powerpc/*.cpp) powerpc-assembler-sources = $(wildcard $(src)/codegen/target/powerpc/*.cpp)
powerpc-assembler-objects = $(call cpp-objects,$(powerpc-assembler-sources),$(src),$(build))
all-assembler-sources = \ all-assembler-sources = \
$(x86-assembler-sources) \ $(x86-assembler-sources) \
@ -1042,7 +1041,6 @@ all-assembler-sources = \
$(powerpc-assembler-sources) $(powerpc-assembler-sources)
native-assembler-sources = $($(target-asm)-assembler-sources) native-assembler-sources = $($(target-asm)-assembler-sources)
native-assembler-objects = $($(target-asm)-assembler-objects)
audit-codegen-sources = $(wildcard $(src)/tools/audit-codegen/*.cpp) audit-codegen-sources = $(wildcard $(src)/tools/audit-codegen/*.cpp)
@ -1098,6 +1096,9 @@ bootimage-generator-sources = $(src)/tools/bootimage-generator/main.cpp $(src)/u
ifneq ($(lzma),) ifneq ($(lzma),)
bootimage-generator-sources += $(src)/lzma-encode.cpp bootimage-generator-sources += $(src)/lzma-encode.cpp
endif endif
ifneq ($(android),)
bootimage-generator-sources += $(src)/android/stubs.cpp
endif
bootimage-generator-objects = \ bootimage-generator-objects = \
$(call cpp-objects,$(bootimage-generator-sources),$(src),$(build)) $(call cpp-objects,$(bootimage-generator-sources),$(src),$(build))
bootimage-generator = $(build)/bootimage-generator bootimage-generator = $(build)/bootimage-generator
@ -1348,14 +1349,6 @@ $(test-dep): $(classpath-dep)
$(test-extra-dep): $(classpath-dep) $(test-extra-dep): $(classpath-dep)
$(compiler-objects): $(wildcard $(src)/codegen/compiler/*.h) $(vm-depends)
$(x86-assembler-objects): $(wildcard $(src)/codegen/target/x86/*.h) $(vm-depends)
$(arm-assembler-objects): $(wildcard $(src)/codegen/target/arm/*.h) $(vm-depends)
$(powerpc-assembler-objects): $(wildcard $(src)/codegen/target/powerpc/*.h) $(vm-depends)
.PHONY: run .PHONY: run
run: build run: build
$(library-path) $(test-executable) $(test-args) $(library-path) $(test-executable) $(test-args)
@ -1452,7 +1445,8 @@ $(build)/android-src/%.cpp: $(luni-native)/%.cpp
$(build)/%.o: $(build)/android-src/%.cpp $(build)/android.dep $(build)/%.o: $(build)/android-src/%.cpp $(build)/android.dep
@echo "compiling $(@)" @echo "compiling $(@)"
@mkdir -p $(dir $(@)) @mkdir -p $(dir $(@))
$(cxx) $(android-cflags) -c $$($(windows-path) $(<)) $(call output,$(@)) $(cxx) $(android-cflags) $(classpath-extra-cflags) -c \
$$($(windows-path) $(<)) $(call output,$(@))
$(build)/android.dep: $(luni-javas) $(dalvik-javas) $(xml-javas) $(build)/android.dep: $(luni-javas) $(dalvik-javas) $(xml-javas)
@echo "compiling luni classes" @echo "compiling luni classes"
@ -1461,7 +1455,7 @@ $(build)/android.dep: $(luni-javas) $(dalvik-javas) $(xml-javas)
@mkdir -p $(build)/android-src/external/fdlibm @mkdir -p $(build)/android-src/external/fdlibm
@mkdir -p $(build)/android-src/libexpat @mkdir -p $(build)/android-src/libexpat
cp $(android)/fdlibm/fdlibm.h $(build)/android-src/external/fdlibm/ cp $(android)/fdlibm/fdlibm.h $(build)/android-src/external/fdlibm/
cp $(android)/expat/lib/expat.h $(build)/android-src/libexpat/ cp $(android)/expat/lib/expat*.h $(build)/android-src/libexpat/
cp -a $(luni-java)/* $(dalvik-java)/* $(xml-java)/* $(build)/android-src/ cp -a $(luni-java)/* $(dalvik-java)/* $(xml-java)/* $(build)/android-src/
sed -i -e 's/return ordinal - o.ordinal;/return ordinal - o.ordinal();/' \ sed -i -e 's/return ordinal - o.ordinal;/return ordinal - o.ordinal();/' \
$(build)/android-src/java/lang/Enum.java $(build)/android-src/java/lang/Enum.java
@ -1681,11 +1675,17 @@ $(jni-objects): $(build)/%.o: $(classpath-src)/%.cpp
$(static-library): $(vm-objects) $(classpath-objects) $(vm-heapwalk-objects) \ $(static-library): $(vm-objects) $(classpath-objects) $(vm-heapwalk-objects) \
$(javahome-object) $(boot-javahome-object) $(lzma-decode-objects) $(javahome-object) $(boot-javahome-object) $(lzma-decode-objects)
@echo "creating $(@)" @echo "creating $(@)"
@rm -rf $(build)/libavian
@mkdir -p $(build)/libavian
rm -rf $(@) rm -rf $(@)
let i=0; for x in $(^); \
do cp $${x} $(build)/libavian/avian_$${i}.o; \
let i=i+1; \
done
ifdef ms_cl_compiler ifdef ms_cl_compiler
$(ar) $(arflags) $(^) -out:$(@) $(ar) $(arflags) $(build)/libavian/*.o -out:$(@)
else else
$(ar) cru $(@) $(^) $(ar) cru $(@) $(build)/libavian/*.o
$(ranlib) $(@) $(ranlib) $(@)
endif endif
@ -1701,7 +1701,7 @@ executable-objects = $(vm-objects) $(classpath-objects) $(driver-object) \
$(javahome-object) $(boot-javahome-object) $(lzma-decode-objects) $(javahome-object) $(boot-javahome-object) $(lzma-decode-objects)
unittest-executable-objects = $(unittest-objects) $(vm-objects) \ unittest-executable-objects = $(unittest-objects) $(vm-objects) \
$(classpath-objects) $(build)/util/arg-parser.o $(build)/util/arg-parser.o
ifeq ($(process),interpret) ifeq ($(process),interpret)
unittest-executable-objects += $(all-codegen-target-objects) unittest-executable-objects += $(all-codegen-target-objects)
@ -1719,7 +1719,8 @@ print:
ifneq ($(platform),windows) ifneq ($(platform),windows)
define link-executable define link-executable
@echo linking $(@) @echo linking $(@)
$(ld) $(^) $(rdynamic) $(lflags) $(bootimage-lflags) -o $(@) $(ld) $(^) $(rdynamic) $(lflags) $(classpath-lflags) $(bootimage-lflags) \
-o $(@)
endef endef
else else
ifdef ms_cl_compiler ifdef ms_cl_compiler
@ -1773,7 +1774,7 @@ $(bootimage-generator): $(bootimage-generator-objects)
$(bootimage-generator) $(bootimage-generator)
$(build-bootimage-generator): \ $(build-bootimage-generator): \
$(vm-objects) $(classpath-object) $(classpath-objects) \ $(vm-objects) $(classpath-object) \
$(heapwalk-objects) $(bootimage-generator-objects) $(converter-objects) \ $(heapwalk-objects) $(bootimage-generator-objects) $(converter-objects) \
$(lzma-decode-objects) $(lzma-encode-objects) $(lzma-decode-objects) $(lzma-encode-objects)
@echo "linking $(@)" @echo "linking $(@)"
@ -1807,7 +1808,7 @@ ifdef mt
endif endif
else else
$(ld) $(^) $(version-script-flag) $(soname-flag) \ $(ld) $(^) $(version-script-flag) $(soname-flag) \
$(shared) $(lflags) $(bootimage-lflags) \ $(shared) $(lflags) $(classpath-lflags) $(bootimage-lflags) \
-o $(@) -o $(@)
endif endif
$(strip) $(strip-all) $(@) $(strip) $(strip-all) $(@)

6
src/android/stubs.cpp Normal file
View File

@ -0,0 +1,6 @@
struct JavaVM;
extern "C" int JNI_OnLoad(JavaVM*, void*)
{
return 0;
}