When I specify a value for AMD64_SOURCES or I386_SOURCES in the sources
file, the build operation appears to compile the source files twice,
duplicating the compile errors. Has anyone noticed this before or is it
just me?
An extract from my sources file is:
TARGETNAME=xenpci
TARGETTYPE=DRIVER
KMDF_VERSION_MAJOR=1
INF_NAME=$(TARGETNAME)
MISCFILES=obj$(BUILD_ALT_DIR)$(INF_NAME).inf
TARGETLIBS=$(TARGETLIBS) $(DDK_LIB_PATH)\wdmsec.lib
$(DDK_LIB_PATH)\Rtlver.lib $(DDK_LIB_PATH)\aux_klib.lib
AMD64_SOURCES=hypercall.asm
I386_SOURCES=tpr_emulate.asm
SOURCES=xenpci.c xenpci_fdo.c xenpci_pdo.c evtchn.c gnttbl.c xenbus.c
memory.c xenbus_device_interface.c xenpci_highsync.c
xenpci_patch_kernel.c
The reason for using AMD64_SOURCES is that the hypercall functions use a
different calling convention so I have to thunk between them, and
I386_SOURCES contains my TPR patching code which is obviously only
required for 32 bits.
Thanks
James
Not in this specific case, but I feel like I have definitely seen this
general thing before, though I don’t recall the conditions.
I just tried it, and this is what I got, which doesn’t seem to have the
duplication:
C:\Temp\wdm>build -ceZ
path contains nonexistant v:\itt\iiw\evi\ird\bat, removing
path contains nonexistant v:\itt\iiw\evi\ird\bin\pl, removing
path contains nonexistant c:\borland\starteam\starteam sdk 10.0\bin,
removing
path contains nonexistant c:\program files\american
arium\sourcepoint-ia\aaslick
edit\win, removing
BUILD: Compile and Link for AMD64
BUILD: Start time: Sun Feb 15 14:45:03 2009
BUILD: Examining c:\temp\wdm directory tree for files to compile.
1>BUILD: Compiling and Linking c:\temp\wdm\exe directory
2>BUILD: Compiling and Linking c:\temp\wdm\sys directory
Configuring OACR for ‘root:amd64chk’ -
1>_NT_TARGET_VERSION SET TO WS03
2>Compiling resources - sys\sioctl.rc
1>Compiling - exe\testapp.c
2>Assembling - sys\amd64\tst.asm
2>errors in directory c:\temp\wdm\sys
2>c:\temp\wdm\sys\amd64\tst.asm(22) : error A2088:END directive required
at end
of file
2>Compiling - sys\sioctl.c
1>Compiling - exe\install.c
2>c:\temp\wdm\sys\link : error LNK1181: cannot open input file
‘c:\temp\wdm\sys<br>objchk_win7_amd64\amd64\tst.obj’
BUILD: Finish time: Sun Feb 15 14:45:04 2009
BUILD: Done
James Harper wrote:
> When I specify a value for AMD64_SOURCES or I386_SOURCES in the sources
> file, the build operation appears to compile the source files twice,
> duplicating the compile errors. Has anyone noticed this before or is it
> just me?
>
> An extract from my sources file is:
>
> TARGETNAME=xenpci
> TARGETTYPE=DRIVER
> KMDF_VERSION_MAJOR=1
> INF_NAME=$(TARGETNAME)
> MISCFILES=obj$(BUILD_ALT_DIR)$(INF_NAME).inf
> TARGETLIBS=$(TARGETLIBS) $(DDK_LIB_PATH)\wdmsec.lib
> $(DDK_LIB_PATH)\Rtlver.lib $(DDK_LIB_PATH)\aux_klib.lib
> AMD64_SOURCES=hypercall.asm
> I386_SOURCES=tpr_emulate.asm
> SOURCES=xenpci.c xenpci_fdo.c xenpci_pdo.c evtchn.c gnttbl.c xenbus.c
> memory.c xenbus_device_interface.c xenpci_highsync.c
> xenpci_patch_kernel.c
>
> The reason for using AMD64_SOURCES is that the hypercall functions use a
> different calling convention so I have to thunk between them, and
> I386_SOURCES contains my TPR patching code which is obviously only
> required for 32 bits.
>
> Thanks
>
> James
>
>