unable to compile network driver under freebsd14.0 current

I try to compile the intel network driver under freebsd14.0 currunt then I get the following error

root@freebsd:/home/driver/ix-3.3.33/src # make

machine -> /usr/src/sys/amd64/include

x86 -> /usr/src/sys/x86/include

i386 -> /usr/src/sys/i386/include

awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h

awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h

awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h

Warning: Object directory not changed from original /home/driver/ix-3.3.33/src

cc -O2 -pipe -DSMP -DINET -DINET6 -DIXGBE_STANDALONE_BUILD -fno-strict-aliasin g -Werror -D_KERNEL -DKLD_MODULE -nostdinc -include /home/driver/ix-3.3.33/src /opt_global.h -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdebug-prefix-map=./machin e=/usr/src/sys/amd64/include -fdebug-prefix-map=./x86=/usr/src/sys/x86/include - fdebug-prefix-map=./i386=/usr/src/sys/i386/include -MD -MF.depend.if_ix.o - MTif_ix.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asy nchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wstrict- prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer -sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show -option -Wno-unknown-pragmas -Wno-error=tautological-compare -Wno-error=empty-bo dy -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer -sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-format- zero-length -mno-aes -mno-avx -std=iso9899:1999 -c if_ix.c -o if_ix.o

if_ix.c:245:51: error: too many arguments provided to function-like macro invoca tion

DRIVER_MODULE(ix, pci, ix_driver, ix_devclass, 0, 0);

^

/usr/src/sys/sys/bus.h:834:9: note: macro 'DRIVER_MODULE' defined here

#define DRIVER_MODULE(name, busname, driver, evh, arg) \

^

if_ix.c:245:1: error: type specifier missing, defaults to 'int'; ISO C99 and lat
er do not support implicit int [-Werror,-Wimplicit-int]

DRIVER_MODULE(ix, pci, ix_driver, ix_devclass, 0, 0);

^

int

2 errors generated.

*** Error code 1



Stop.

make: stopped in /home/driver/ix-3.3.33/src

and for driver ixl1.12.40

mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error=tautological-compare -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length -mno-aes -mno-avx -std=iso9899:1999 -c if_ixl.c -o if_ixl.o

if_ixl.c:147:54: error: too many arguments provided to function-like macro invocation

DRIVER_MODULE(ixl, pci, ixl_driver, ixl_devclass, 0, 0);

^

/usr/src/sys/sys/bus.h:834:9: note: macro 'DRIVER_MODULE' defined here

#define DRIVER_MODULE(name, busname, driver, evh, arg) \

^

if_ixl.c:147:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Werror,-Wimplicit-int]

DRIVER_MODULE(ixl, pci, ixl_driver, ixl_devclass, 0, 0);

^

int

2 errors generated.

*** Error code 1



Stop.

make: stopped in /home/driver/ixl-1.12.40/src

root@freebsd:/home/driver/ixl-1.12.40/src #




Under version 13.2 this works fine. I need these drivers for pfsense 23.05.
It runs on version 14.0 current and I need both these drivers for my network cards. I have some problems with the standard. Who knows how I can solve this problem
 
Two points:
-CURRENT (14) is unsupported here.
-pfsense is unsupported here.

Maybe ask in the pfsense community?
 
for ixl1.12.40 you can apply the patch found here https://cgit.freebsd.org/ports/plain/net/intel-ixl-kmod/files/patch-if__ixl.c on the file if__ixl.c.

What I did was:
1. install FreeBSD with this iso FreeBSD-14.0-CURRENT-amd64-20230622-b95d2237af40-263748-disc1.iso
2. clone the source tree with " git clone -b main https://git.freebsd.org/src.git /usr/src"
3. cd /usr/src
4. run "git checkout 0c59e0b4e581" which is the commit pfsense 2.7.0 is based on
5. install wget
6. run wget "https://downloadmirror.intel.com/762476/ixl-1.12.40.tar.gz"
7. tar zxvf ixl-1.12.40.tar.gz
8. cd ixl-1.12.40/src
9. create a file, i called it patch_driver and put in the contents of "https://cgit.freebsd.org/ports/plain/net/intel-ixl-kmod/files/patch-if__ixl.c"
10. run "patch if__ixl.c patch_driver" to patch the file
11. run make
12. then i ran "make install"
13. copy /boot/kernel/if_ixl.ko off the freebsd system and copy it onto pfsense in /boot/kernel
14. create the file /boot/loader.conf.local on pfsense and put in the line "if_ixl_load="YES""
15. reboot and it should work. verify it was loaded with kldstat on pfsense

Hope this helps someone.
 
Back
Top