diff --git a/.gitignore b/.gitignore index 84786ef46a..d6ded73b97 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ bin *.pdb *.swp /*.sublime-* +workspace/ +src/.cproject diff --git a/makefile b/makefile index 15c5cb12d3..f0f618d9ff 100755 --- a/makefile +++ b/makefile @@ -179,6 +179,7 @@ ifneq ($(android),) -DOS_SHARED_LIB_FORMAT_STR="\"$(so-prefix)%s$(so-suffix)\"" \ -DJNI_JARJAR_PREFIX= \ -D__DARWIN_UNIX03=1 \ + -D__PROVIDE_FIXMES \ -g3 \ -Werror @@ -189,28 +190,22 @@ ifneq ($(android),) $(libnativehelper-native)/toStringArray.cpp crypto-native := $(android)/libcore/crypto/src/main/native - crypto-cpps := $(crypto-native)/org_conscrypt_NativeCrypto.cpp ifeq ($(platform),windows) + crypto-cpps := $(crypto-native)/org_conscrypt_NativeCrypto.cpp android-cflags += -D__STDC_CONSTANT_MACROS - ifneq ($(arch),i386) - android-cflags += -fPIC - endif blacklist = $(luni-native)/java_io_Console.cpp \ $(luni-native)/java_lang_ProcessManager.cpp \ - $(luni-native)/libcore_io_OsConstants.cpp \ - $(luni-native)/libcore_io_Posix.cpp \ - $(luni-native)/libcore_io_AsynchronousCloseMonitor.cpp \ $(luni-native)/libcore_net_RawSocket.cpp \ $(luni-native)/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp \ - $(luni-native)/AsynchronousSocketCloseMonitor.cpp \ - $(luni-native)/NetworkUtilities.cpp + luni-cpps := $(filter-out $(blacklist),$(luni-cpps)) icu-libs := $(android)/external/icu4c/lib/sicuin.a \ $(android)/external/icu4c/lib/sicuuc.a \ $(android)/external/icu4c/lib/sicudt.a platform-lflags := -lgdi32 else + crypto-cpps := $(crypto-native)/org_conscrypt_NativeCrypto.cpp android-cflags += -fPIC -DHAVE_SYS_UIO_H icu-libs := $(android)/external/icu4c/lib/libicui18n.a \ $(android)/external/icu4c/lib/libicuuc.a \ @@ -781,10 +776,10 @@ ifeq ($(platform),windows) endif cxx = x86_64-w64-mingw32-g++ $(mflag) cc = x86_64-w64-mingw32-gcc $(mflag) - dlltool = x86_64-w64-mingw32-dlltool - ar = x86_64-w64-mingw32-ar - ranlib = x86_64-w64-mingw32-ranlib - strip = x86_64-w64-mingw32-strip + dlltool = dlltool + ar = ar + ranlib = ranlib + strip = strip inc = "$(win64)/include" lib = "$(win64)/lib" else @@ -1599,6 +1594,8 @@ $(build)/android.dep: $(luni-javas) $(libdvm-javas) $(crypto-javas) \ $(xml-java)/* $(build)/android-src/ sed -i -e 's/return ordinal - o.ordinal;/return ordinal - o.ordinal();/' \ $(build)/android-src/java/lang/Enum.java + # sed makes this file read-only which in turn breaks re-builds; so marking it as writable + chmod +w $(build)/android-src/java/lang/Enum.java find $(build)/android-src -name '*.java' > $(build)/android.txt $(javac) -Xmaxerrs 1000 -d $(build)/android -sourcepath $(luni-java) \ @$(build)/android.txt diff --git a/src/classpath-android.cpp b/src/classpath-android.cpp index a3c30d38ef..9221ae2614 100644 --- a/src/classpath-android.cpp +++ b/src/classpath-android.cpp @@ -23,6 +23,10 @@ extern "C" int JNI_OnLoad(JavaVM*, void*); #include "avian/classpath-common.h" #include "avian/process.h" +#ifdef PLATFORM_WINDOWS +const char* getErrnoDescription(int err); // This function is defined in mingw-extensions.cpp +#endif + using namespace vm; extern "C" AVIAN_EXPORT int64_t JNICALL @@ -875,7 +879,7 @@ extern "C" const char* jniStrError(int error, char* buffer, size_t length) { #ifdef PLATFORM_WINDOWS - const char* s = strerror(error); + const char* s = getErrnoDescription(error); if (strlen(s) < length) { strncpy(buffer, s, length); return buffer; @@ -2332,9 +2336,6 @@ Avian_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8 void register_java_io_Console(_JNIEnv*) { } void register_java_lang_ProcessManager(_JNIEnv*) { } -void register_libcore_io_OsConstants(_JNIEnv*) { } -void register_libcore_io_AsynchronousCloseMonitor(_JNIEnv*) { } -void register_libcore_io_Posix(_JNIEnv*) { } void register_libcore_net_RawSocket(_JNIEnv*) { } void register_org_apache_harmony_xnet_provider_jsse_NativeCrypto(_JNIEnv*) { }