Skip to content

Commit 478699d

Browse files
committed
Code cleanup, initial win32-aarch64.jar
1 parent 4dcaddc commit 478699d

File tree

4 files changed

+28
-26
lines changed

4 files changed

+28
-26
lines changed

build.xml

+6-6
Original file line numberDiff line numberDiff line change
@@ -465,8 +465,8 @@ com/sun/jna/win32-x86/jnidispatch.dll;
465465
processor=x86;osname=win,
466466
com/sun/jna/win32-x86-64/jnidispatch.dll;
467467
processor=x86-64;osname=win,
468-
com/sun/jna/win32-arm64/jnidispatch.dll;
469-
processor=arm64;osname=win,
468+
com/sun/jna/win32-aarch64/jnidispatch.dll;
469+
processor=aarch64;osname=win,
470470
com/sun/jna/w32ce-arm/jnidispatch.dll;
471471
processor=arm;osname=wince,
472472
@@ -629,9 +629,9 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
629629
<zipfileset src="${lib.native}/win32-x86-64.jar"
630630
includes="*jnidispatch*"
631631
prefix="com/sun/jna/win32-x86-64"/>
632-
<zipfileset src="${lib.native}/win32-arm64.jar"
632+
<zipfileset src="${lib.native}/win32-aarch64.jar"
633633
includes="*jnidispatch*"
634-
prefix="com/sun/jna/win32-arm64"/>
634+
prefix="com/sun/jna/win32-aarch64"/>
635635
<zipfileset src="${lib.native}/w32ce-arm.jar"
636636
includes="*jnidispatch*"
637637
prefix="com/sun/jna/w32ce-arm"/>
@@ -789,7 +789,7 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
789789
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/darwin.jar" overwrite="true"/>
790790
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/win32-x86.jar" overwrite="true"/>
791791
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/win32-x86-64.jar" overwrite="true"/>
792-
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/win32-arm64.jar" overwrite="true"/>
792+
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/win32-aarch64.jar" overwrite="true"/>
793793
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/w32ce-arm.jar" overwrite="true"/>
794794
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/linux-x86.jar" overwrite="true"/>
795795
<copy file="${lib.native}/out-of-date.jar" tofile="${lib.native}/linux-x86-64.jar" overwrite="true"/>
@@ -882,7 +882,7 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
882882
<equals arg1="${os.prefix}" arg2="android-armv7"/>
883883
</condition>
884884
<condition property="ARCH" value="aarch64">
885-
<equals arg1="${os.prefix}" arg2="android-aarch64"/>
885+
<matches string="${os.prefix}" pattern="-aarch64$"/>
886886
</condition>
887887
<condition property="ARCH" value="x86">
888888
<equals arg1="${os.prefix}" arg2="android-x86"/>

lib/native/win32-aarch64.jar

92.6 KB
Binary file not shown.

native/Makefile

+21-19
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,9 @@ JAVA_INCLUDES=-I"$(JAVA_HOME)/include" \
5959
BUILD=../build/native
6060
JAVAH=$(BUILD)
6161
INSTALLDIR=../build/$(OS)
62-
##fixme!!
63-
JNIDISPATCH_OBJS=$(BUILD)/dispatch.o $(EXTRAOBJS)
64-
#JNIDISPATCH_OBJS=$(BUILD)/dispatch.o $(BUILD)/callback.o $(EXTRAOBJS)
62+
JNIDISPATCH_OBJS=$(BUILD)/dispatch.o $(BUILD)/callback.o $(EXTRAOBJS)
6563
RSRC=$(BUILD)/rsrc.o
6664
DLLCB=$(BUILD)/dll-callback.o
67-
FAUXCB=$(BUILD)/callback.o
6865
ifneq ($(DYNAMIC_LIBFFI),true)
6966
FFI_SRC=$(shell pwd)/libffi
7067
FFI_BUILD=$(BUILD)/libffi
@@ -231,12 +228,16 @@ FFI_CONFIG+=--host=i686-w64-mingw32
231228
MINGW_PREFIX?=i686-w64-mingw32-
232229
endif
233230
# Need windres from mingw distribution, even if building with MSVC
234-
#### disable windres for arm64
235-
#WINDRES=$(MINGW_PREFIX)windres
236-
WINDRES=false
231+
WINDRES=$(MINGW_PREFIX)windres
237232
MINGW=$(MINGW_PREFIX)gcc
238233

239234
ifeq ($(USE_MSVC),true)
235+
ifeq ($(ARCH),aarch64)
236+
# Force $(CC) fallback; avoid arch mismatch
237+
WINDRES=false
238+
# Disable mingw; no aarch64 support
239+
MINGW=
240+
endif
240241
# MS compiler
241242
CC=$(FFI_SRC)/msvcc.sh
242243
CDEFINES+=-DHAVE_PROTECTION
@@ -250,17 +251,18 @@ LDFLAGS=/DLL /OUT:$@
250251
LIBS=psapi.lib
251252
ARSFX=.lib
252253
ifeq ($(ARCH),amd64)
253-
#fixme!!!!
254-
#CC+= =m64
254+
CC+= -m64
255+
FFI_TARGET=$(FFI_SRC)/src/x86/ffitarget.h
256+
else ifeq ($(ARCH),aarch64)
255257
CC+= -marm64
256-
endif
257-
#fixme!!!!
258258
FFI_CONFIG+=--host=aarch64-cygwin
259-
#FFI_CONFIG+= && rm -f include/ffitarget.h && cp $(FFI_SRC)/include/*.h $(FFI_SRC)/src/x86/ffitarget.h include
260-
FFI_CONFIG+= && rm -f include/ffitarget.h && cp $(FFI_SRC)/include/*.h $(FFI_SRC)/src/aarch64/ffitarget.h include
259+
# Disable ASMFN for aarch64, don't bulid dll-callback.o
260+
DLLCB=$(BUILD)/callback.o
261+
endif
262+
FFI_TARGET?=$(FFI_SRC)/src/$(ARCH)/ffitarget.h
263+
FFI_CONFIG+= && rm -f include/ffitarget.h && cp $(FFI_SRC)/include/*.h $(FFI_TARGET) include
261264
FFI_ENV+=LD="$(LD)" CPP="$(CPP)" CXXCPP="$(CPP)"
262-
#fixme!!
263-
EXTRAOBJS+=$(FAUXCB)
265+
EXTRAOBJS+=$(DLLCB)
264266

265267
else
266268
# Mingw compiler
@@ -460,13 +462,13 @@ install:
460462
mkdir $(INSTALLDIR)
461463
cp $(LIBRARY) $(INSTALLDIR)
462464

463-
# fixme!!
464465
ifeq ($(ARCH), amd64)
465466
$(DLLCB): dll-callback.c
466467
$(MINGW) -DDEFINE_CALLBACKS -c $< $(COUT)
467-
$(FAUXCB): callback.c
468-
# TODO: Fix: Lazily and incorrectly set WINCE flag to avoid dll-callback support
469-
$(CC) -DDEFINE_CALLBACKS -D_WIN32_WCE $(CINCLUDES) -c $< $(COUT)
468+
else ifeq ($(ARCH), aarch64)
469+
# Build without ASMFN support
470+
$(DLLCB): callback.c
471+
$(CC) -DDEFINE_CALLBACKS -DASMFN_OFF $(CINCLUDES) -c $< $(COUT)
470472
endif
471473

472474
$(RSRC): $(BUILD)/jnidispatch.rc $(BUILD)/$(JNA_JNI_VERSION).stamp

native/callback.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
extern "C" {
5252
#endif
5353

54-
#if defined(_WIN32) && !defined(_WIN32_WCE)
54+
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(ASMFN_OFF)
5555
#include "com_sun_jna_win32_DLLCallback.h"
5656
#ifdef _WIN64
5757
#ifdef _MSC_VER

0 commit comments

Comments
 (0)