@@ -59,12 +59,9 @@ JAVA_INCLUDES=-I"$(JAVA_HOME)/include" \
59
59
BUILD =../build/native
60
60
JAVAH =$(BUILD )
61
61
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 )
65
63
RSRC =$(BUILD ) /rsrc.o
66
64
DLLCB =$(BUILD ) /dll-callback.o
67
- FAUXCB =$(BUILD ) /callback.o
68
65
ifneq ($(DYNAMIC_LIBFFI ) ,true)
69
66
FFI_SRC =$(shell pwd) /libffi
70
67
FFI_BUILD =$(BUILD ) /libffi
@@ -231,12 +228,16 @@ FFI_CONFIG+=--host=i686-w64-mingw32
231
228
MINGW_PREFIX? =i686-w64-mingw32-
232
229
endif
233
230
# 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
237
232
MINGW =$(MINGW_PREFIX ) gcc
238
233
239
234
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
240
241
# MS compiler
241
242
CC =$(FFI_SRC ) /msvcc.sh
242
243
CDEFINES+ =-DHAVE_PROTECTION
@@ -250,17 +251,18 @@ LDFLAGS=/DLL /OUT:$@
250
251
LIBS =psapi.lib
251
252
ARSFX =.lib
252
253
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)
255
257
CC+ = -marm64
256
- endif
257
- # fixme!!!!
258
258
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
261
264
FFI_ENV+=LD ="$(LD ) " CPP="$(CPP ) " CXXCPP="$(CPP ) "
262
- # fixme!!
263
- EXTRAOBJS+ =$(FAUXCB )
265
+ EXTRAOBJS+ =$(DLLCB )
264
266
265
267
else
266
268
# Mingw compiler
@@ -460,13 +462,13 @@ install:
460
462
mkdir $(INSTALLDIR )
461
463
cp $(LIBRARY ) $(INSTALLDIR )
462
464
463
- # fixme!!
464
465
ifeq ($(ARCH ) , amd64)
465
466
$(DLLCB ) : dll-callback.c
466
467
$(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 )
470
472
endif
471
473
472
474
$(RSRC ) : $(BUILD ) /jnidispatch.rc $(BUILD ) /$(JNA_JNI_VERSION ) .stamp
0 commit comments