Compilation depends on CONFIG_WIRELESS_EXT of the kernel. This is hidden in the new kernel versions.
It compiles with out this but has run time errors like given below.
[ 9241.482669] ndiswrapper: Unknown symbol set_iw_encr_mode (err 0)
[ 9241.482744] ndiswrapper: Unknown symbol get_ndis_auth_mode (err 0)
[ 9241.482870] ndiswrapper: Unknown symbol get_ndis_encr_mode (err 0)
[ 9241.483020] ndiswrapper: Unknown symbol set_default_iw_params (err 0)
[ 9241.483116] ndiswrapper: Unknown symbol disassociate (err 0)
[ 9241.483159] ndiswrapper: Unknown symbol set_ndis_auth_mode (err 0)
After enabling this in the kernel options below is the compilation error i got.
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1972:2: error: unknown field ‘num_private’ specified in initializer
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1972:2: warning: initialization makes pointer from integer without a cast
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1973:2: error: unknown field ‘num_private_args’ specified in initializer
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1973:2: warning: excess elements in struct initializer
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1973:2: warning: (near initialization for ‘ndis_handler_def’)
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1976:2: error: unknown field ‘private’ specified in initializer
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1976:2: warning: initialization makes integer from pointer without a cast
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1976:2: error: initializer element is not computable at load time
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1976:2: error: (near initialization for ‘ndis_handler_def.num_standard’)
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1977:2: error: unknown field ‘private_args’ specified in initializer
/ndiswrapper-1.57rc1/driver/iw_ndis.c:1977:26: warning: initialization from incompatible pointer type
And here the compilation failure with 3.2:
AS [M] /var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/win2lin_stubs.o
/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/wrapndis.c: In function 'setup_tx_sg_list':
/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/wrapndis.c:472:10: error: incompatible type for argument 2 of 'pci_map_page'
include/asm-generic/pci-dma-compat.h:43:1: note: expected 'struct page *' but argument is of type 'struct <anonymous>'
/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/wrapndis.c: At top level:
/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/wrapndis.c:1780:2: error: unknown field 'ndo_set_multicast_list' specified in initializer
/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/wrapndis.c:1780:2: warning: initialization from incompatible pointer type
make[2]: *** [/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver/wrapndis.o] Error 1
make[1]: *** [module/var/tmp/portage/net-wireless/ndiswrapper-1.57_rc1/work/ndiswrapper-1.57rc1/driver] Error 2</anonymous>