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

Reply via email to