On Sat, Sep 11, 2010 at 3:46 PM, Xiaofan Chen <[email protected]> wrote: > On Sat, Sep 11, 2010 at 8:43 PM, Ozkan Sezer <[email protected]> wrote: >>> 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, ... > > Yes you are right. I just reverted to the old usbd.def and use the old > libusbd.a build method. > > libusbd.a: > $(DLLTOOL) -m i386 -f --32 --dllname usbd.sys --add-underscore --def > ./src/driver/usbd.def --output-lib libusbd.a > > Now this paticular issue is gone. > > 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' > transfer.o:transfer.c:(.text+0x14a): undefined reference to > `_InterlockedIncrement' > transfer.o:transfer.c:(.text+0x17f): undefined reference to > `_InterlockedDecrement' > transfer.o:transfer.c:(.text+0x1b1): undefined reference to > `_InterlockedDecrement' > transfer.o:transfer.c:(.text+0x2fb): undefined reference to > `_InterlockedDecrement' > transfer.o:transfer.c:(.text+0x413): undefined reference to > `_InterlockedExchange' > transfer.o:transfer.c:(.text+0x4d9): undefined reference to > `_InterlockedExchange' > transfer.o:transfer.c:(.text+0x62a): undefined reference to > `_InterlockedIncrement' > transfer.o:transfer.c:(.text+0xd16): undefined reference to > `_InterlockedExchange' > transfer.o:transfer.c:(.text+0xde7): undefined reference to > `_InterlockedIncrement' > collect2: ld returned 1 exit status > make: *** [libusb0.sys] Error 1 > > -- > Xiaofan >
OK, reading wdm.h more carefully, the FASTCALL declarations are protected by an #ifdef NO_INTERLOCKED_INTRINSICS guard: For x86, can you please recompile by adding -DNO_INTERLOCKED_INTRINSICS and see if it links and works? (Of course for the ideal case, we would provide proper inlines for them and no import would be necessary.) -- 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
