@@ -67,13 +67,17 @@ ifneq (,$(filter $(OUTPUT_FORMAT),elf64-x86-64 elf32-i386 elf64-x86-64-freebsd e
6767 CFLAGS += -DCONFIG_AUTO_LKL_VIRTIO_NET_VDE
6868 LDLIBS += $(shell pkg-config --libs vdeplug)
6969 endif
70- else ifneq (,$(filter $(OUTPUT_FORMAT),pe-i386))
70+ else ifneq (,$(filter $(OUTPUT_FORMAT),pe-i386 pe-x86-64 ))
7171 KOPT = "KALLSYMS_EXTRA_PASS=1"
7272 LDLIBS += -lws2_32
7373 EXESUF := .exe
7474 SOSUF := .dll
7575 export CONFIG_AUTO_LKL_NT_HOST =y
7676 CFLAGS += -DCONFIG_AUTO_LKL_NT_HOST
77+ ifneq (,$(filter $(OUTPUT_FORMAT),pe-x86-64))
78+ CFLAGS += -Wl,--enable-auto-image-base -Wl,--image-base -Wl,0x10000000 -Wl,--out-implib=$(OUTPUT ) liblkl.dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import
79+ LDFLAGS +=-Wl,--image-base -Wl,0x10000000 -Wl,--enable-auto-image-base -Wl,--out-implib=$(OUTPUT)liblkl.dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import
80+ endif
7781else
7882 $(error Unrecognized platform : $(OUTPUT_FORMAT ) )
7983endif
@@ -85,8 +89,13 @@ OUTPUT := $(CURDIR)/
8589endif
8690export OUTPUT
8791
92+ ifneq (,$(filter $(OUTPUT_FORMAT ) ,pe-i386 pe-x86-64 ) )
93+ ALL_PROGRAMS :=
94+ ALL_LIBRARIES := $(OUTPUT ) liblkl.a $(OUTPUT ) liblkl$(SOSUF )
95+ else
8896ALL_PROGRAMS := $(OUTPUT ) lklfuse$(EXESUF ) $(OUTPUT ) cptofs$(EXESUF ) $(OUTPUT ) cpfromfs$(EXESUF ) $(OUTPUT ) fs2tar$(EXESUF )
8997ALL_LIBRARIES := $(OUTPUT ) liblkl.a $(OUTPUT ) liblkl$(SOSUF ) $(OUTPUT ) liblkl-hijack$(SOSUF )
98+ endif
9099
91100static : $(OUTPUT ) liblkl.a
92101shared : $(OUTPUT ) liblkl$(SOSUF )
@@ -104,7 +113,7 @@ $(OUTPUT)lklfuse$(EXESUF): LDLIBS += -lfuse
104113
105114$(OUTPUT ) fs2tar$(EXESUF ) : $(OUTPUT ) fs2tar-in.o $(OUTPUT ) liblkl.a
106115$(OUTPUT ) fs2tar$(EXESUF ) : LDLIBS += -larchive
107- ifneq (,$(filter $(OUTPUT_FORMAT ) ,elf64-x86-64-freebsd) )
116+ ifneq (,$(filter $(OUTPUT_FORMAT ) ,elf64-x86-64-freebsd pe-x86-64 ) )
108117 $(OUTPUT ) fs2tar$(EXESUF ) : LDLIBS += -largp
109118endif
110119
0 commit comments