On Sat, Sep 11, 2010 at 3:50 PM, Pete Batard <[email protected]> wrote: > On 2010.09.11 13:46, Kai Tietz wrote: >> 2010/9/11 Ozkan Sezer<[email protected]>: >>> On Sat, Sep 11, 2010 at 3:37 PM, Xiaofan Chen<[email protected]> wrote: >>>> On Sat, Sep 11, 2010 at 8:31 PM, Ozkan Sezer<[email protected]> wrote: >>>>> You need the @8 _and_ the leading underscore for x86 >>>>> So you need adjusting your Makefile and libusb0_drv.def >>>>> for two different builds. >>>> >>>> Thanks. I fixed the Makefile and now I have the following. >>>> >>>> windres -I./src --target=pe-i386 ./src/driver/libusb_driver_rc.rc -o >>>> libusb_dr >>>> iver_rc.o >>>> gcc -static -o libusb0.sys abort_endpoint.o claim_interface.o >>>> clear_feature.o di >>>> spatch.o get_configuration.o get_descriptor.o get_interface.o get_status.o >>>> ioctl >>>> .o libusb_driver.o pnp.o release_interface.o reset_device.o >>>> reset_endpoint.o set >>>> _configuration.o set_descriptor.o set_feature.o set_interface.o transfer.o >>>> vendo >>>> r_request.o power.o driver_registry.o error.o libusb_driver_rc.o >>>> libusb0_drv.de >>>> f -s -m32 -shared -Wl,--entry,_driveren...@8 -nostartfiles -nostdlib -L. >>>> -lusbd >>>> -lntoskrnl -lhal >>>> libusb_driver.o:libusb_driver.c:(.text+0x696): undefined reference to >>>> `_Interloc >>>> kedIncrement' >>>> libusb_driver.o:libusb_driver.c:(.text+0x6b4): undefined reference to >>>> `_Interloc >>>> kedDecrement' >>>> libusb_driver.o:libusb_driver.c:(.text+0x701): undefined reference to >>>> `_Interloc >>>> kedDecrement' >>>> set_configuration.o:set_configuration.c:(.text+0x1c8): undefined reference >>>> to `U >>>> sbd_createconfigurationreques...@8' >>> >>> For this particular one, I think you can use your old usbd.def file but, ... >>> >>>> transfer.o:transfer.c:(.text+0x14a): undefined reference to >>>> `_InterlockedIncreme >>>> nt' >>>> transfer.o:transfer.c:(.text+0x17f): undefined reference to >>>> `_InterlockedDecreme >>>> nt' >>>> transfer.o:transfer.c:(.text+0x1b1): undefined reference to >>>> `_InterlockedDecreme >>>> nt' >>>> transfer.o:transfer.c:(.text+0x2fb): undefined reference to >>>> `_InterlockedDecreme >>>> nt' >>>> transfer.o:transfer.c:(.text+0x413): undefined reference to >>>> `_InterlockedExchang >>>> e' >>>> transfer.o:transfer.c:(.text+0x4d9): undefined reference to >>>> `_InterlockedExchang >>>> e' >>>> transfer.o:transfer.c:(.text+0x62a): undefined reference to >>>> `_InterlockedIncreme >>>> nt' >>>> transfer.o:transfer.c:(.text+0xd16): undefined reference to >>>> `_InterlockedExchang >>>> e' >>>> transfer.o:transfer.c:(.text+0xde7): undefined reference to >>>> `_InterlockedIncreme >>>> nt' >>>> collect2: ld returned 1 exit status >>>> make: *** [libusb0.sys] Error 1 >>>> >>>>> With these, I am baffled: These were supposed to be imported from >>>>> ntoskrnl.exe >>>>> Our lib32/ntoskrnl.def has the proper entries, so why are they not? >>>>> Kai, any insights? >>>>> >>>>> (Of course we can provide inlines for these but that's not the point, >>>>> and the msvc >>>>> builds are importing them from ntoskrnl.exe, too.) >>>>> >>> >>> .... for the _Interlocked* ones, I still don't know what is wrong. >>> >>>> >>>> >>>> -- >>>> Xiaofan >>>> >>> >>> -- >>> Ozkan >>> >> >> The _Interlocked... API in VC is a strict builtin feature of VC. Which >> means that for gcc it has to be provided (for x86 case) as inlines, >> too. The difference here is that Interlocked... has stdcall >> convention, but _Interlocked... has __cdecl one. You can fix this by >> linking to our 32-bit mingwex library, which is providing them, or you >> can add here similar inline functions (for x86 only) for >> _Interlocked... to wdm.h, too. > > Isn't that the same issue as what I reported below? > > https://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTimWf83zE2KGGZrVNbOykOVmqAWsNF9MmiQRPdpA%40mail.gmail.com&forum_name=mingw-w64-public >
Yes, this is the catogory where your mingw.org reference warns about the __fastcall exports from ntoskrl.exe, and yes the wdm.h header has the prototypes marked as FASTCALL. Something is wrong here but I don't know where. > Regards, > > /Pete -- O.S. ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
