diff --git a/makefile b/makefile index 1fb2258439..6b72328f86 100755 --- a/makefile +++ b/makefile @@ -754,6 +754,10 @@ openjdk-extra-cflags += $(classpath-extra-cflags) find-tool = $(shell if ( command -v "$(1)$(2)" >/dev/null ); then (echo "$(1)$(2)") else (echo "$(2)"); fi) +ifeq ($(build-platform),windows) + static-on-windows = -static +endif + ifeq ($(platform),windows) target-format = pe @@ -1987,7 +1991,7 @@ endif $(generator): $(generator-objects) $(generator-lzma-objects) @echo "linking $(@)" - $(build-ld-cpp) $(^) $(build-lflags) -o $(@) + $(build-ld-cpp) $(^) $(build-lflags) $(static-on-windows) -o $(@) $(openjdk-objects): $(build)/openjdk/%-openjdk.o: $(openjdk-src)/%.c \ $(openjdk-headers-dep) diff --git a/src/avian/common.h b/src/avian/common.h index d3d5c98adb..82cdc046ce 100644 --- a/src/avian/common.h +++ b/src/avian/common.h @@ -151,10 +151,14 @@ typedef intptr_t __attribute__((__may_alias__)) intptr_alias_t; #if (defined ARCH_x86_32) || (defined ARCH_arm) #define LD "ld" #if (defined _MSC_VER) || ((defined __MINGW32__) && __GNUC__ >= 4) +#if (__GNUC__ == 4 && __GNUC_MINOR__ < 8) #define LLD "I64d" #else #define LLD "lld" #endif +#else +#define LLD "lld" +#endif #ifdef __APPLE__ #define ULD "lu" #define LX "lx" @@ -166,9 +170,14 @@ typedef intptr_t __attribute__((__may_alias__)) intptr_alias_t; #define LD "ld" #define LX "lx" #if (defined _MSC_VER) || (defined __MINGW32__) +#if (__GNUC__ == 4 && __GNUC_MINOR__ < 8) #define LLD "I64d" #define ULD "I64x" #else +#define LLD "lld" +#define ULD "llu" +#endif +#else #ifdef __APPLE__ #define LLD "lld" #else diff --git a/src/process.cpp b/src/process.cpp index 2034ca5f08..c0cfb5f680 100644 --- a/src/process.cpp +++ b/src/process.cpp @@ -182,7 +182,7 @@ void* resolveNativeMethod(Thread* t, #ifdef PLATFORM_WINDOWS // on windows, we also try the _%s@%d and %s@%d variants if (footprint == -1) { - footprint = methodParameterFootprint(t, method) + 1; + footprint = method->parameterFootprint() + 1; if (method->flags() & ACC_STATIC) { ++footprint; }