On 2 November 2011 19:17, Bjoern A. Zeeb <b...@freebsd.org> wrote: > On Wed, 2 Nov 2011, Sergey Kandaurov wrote: > >> On 2 November 2011 16:53, Bjoern A. Zeeb <b...@freebsd.org> wrote: >>> >>> On Wed, 2 Nov 2011, Sergey Kandaurov wrote: >>> >>>> On 27 September 2011 17:27, Bjoern A. Zeeb <b...@freebsd.org> wrote: >>>>> >>>>> Author: bz >>>>> Date: Tue Sep 27 13:27:17 2011 >>>>> New Revision: 225793 >>>>> URL: http://svn.freebsd.org/changeset/base/225793 >>>>> >>>>> Log: >>>>> Unbreak no-ip and no-inet6 module builds with ipfw. For now continue >>>>> to >>>>> build the ip_fw_pfil.c hooks and ipfw even in case of no-ip under the >>>>> assumption that the private L2 hook (which hopefully eventually will >>>>> be >>>>> a >>>>> pfil hook as well) can still be useful. >>>>> >>>>> Allow building the module without inet as well. >>>>> >>>>> Glanced at by: jhb >>>>> MFC after: 3 days >>>>> >>>>> Modified: >>>>> head/sys/modules/ipfw/Makefile >>>>> head/sys/netinet/ipfw/ip_fw_pfil.c >>>>> >>>>> Modified: head/sys/modules/ipfw/Makefile >>>>> >>>>> >>>>> ============================================================================== >>>>> --- head/sys/modules/ipfw/Makefile Tue Sep 27 13:20:41 2011 >>>>> (r225792) >>>>> +++ head/sys/modules/ipfw/Makefile Tue Sep 27 13:27:17 2011 >>>>> (r225793) >>>>> @@ -8,7 +8,7 @@ KMOD= ipfw >>>>> SRCS= ip_fw2.c ip_fw_pfil.c >>>>> SRCS+= ip_fw_dynamic.c ip_fw_log.c >>>>> SRCS+= ip_fw_sockopt.c ip_fw_table.c >>>>> -SRCS+= opt_inet6.h opt_ipfw.h opt_ipsec.h >>>>> +SRCS+= opt_inet.h opt_inet6.h opt_ipfw.h opt_ipsec.h >>>>> >>>>> CFLAGS+= -DIPFIREWALL >>>>> CFLAGS+= -I${.CURDIR}/../../contrib/pf >>>>> @@ -22,6 +22,10 @@ CFLAGS+= -I${.CURDIR}/../../contrib/pf >>>>> # >>>>> >>>>> .if !defined(KERNBUILDDIR) >>>>> +.if ${MK_INET_SUPPORT} != "no" >>>>> +opt_inet.h: >>>>> + echo "#define INET 1" > ${.TARGET} >>>>> +.endif >>>>> .if ${MK_INET6_SUPPORT} != "no" >>>>> opt_inet6.h: >>>>> echo "#define INET6 1" > ${.TARGET} >>>>> >>>>> Modified: head/sys/netinet/ipfw/ip_fw_pfil.c >>>>> >>>>> >>>>> ============================================================================== >>>>> --- head/sys/netinet/ipfw/ip_fw_pfil.c Tue Sep 27 13:20:41 2011 >>>>> (r225792) >>>>> +++ head/sys/netinet/ipfw/ip_fw_pfil.c Tue Sep 27 13:27:17 2011 >>>>> (r225793) >>>>> @@ -31,11 +31,11 @@ __FBSDID("$FreeBSD$"); >>>>> #if !defined(KLD_MODULE) >>>>> #include "opt_ipdn.h" >>>>> #include "opt_inet.h" >>>>> +#include "opt_inet6.h" >>>>> #ifndef INET >>>>> #error IPFIREWALL requires INET. >>>>> #endif /* INET */ >>>>> #endif /* KLD_MODULE */ >>>>> -#include "opt_inet6.h" >>>> >>>> Hello. >>>> >>>> This chunk seems to stop building inet6 part of ipfw.ko w/ INET6 enabled >>>> kernel. >>>> >>>> Found by /etc/rc.d/ipfw restart: >>>> [...] >>>> /etc/rc.d/ipfw: WARNING: failed to enable IPv6 firewall >>>> >>>> i.e. sysctl net.inet6.ip6.fw.enable doesn't present. >>>> >>>> Reversion of this hunk fixed the problem. >>>> NO_INET[46] lints aren't tested though. >>> >>> >>> Just to double-check -- this only happens for you if you build and >>> use the module, not when you link it into the kernel? >>> >>> As in that case I do have: >>> lion3# sysctl net.inet6.ip6.fw.enable net.inet6.ip6.fw.enable: 1 >> >> ipfw is built and installed as a module as part of make kernel target. > > Can you try to see if this fixes the problem? > http://people.freebsd.org/~bz/20111102-01-ipfw-kld.diff > > Please not that in the module case we'd most likely also built out > some INET parts, not just INET6 once -- silently. >
Hmm.. It is compiled differently when is built standalone and as part of make buildkernel. If built from sys/modules/ipfw: # make Warning: Object directory not changed from original /usr/src/sys/modules/ipfw cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -fno-omit-frame-pointer -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw2.c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw2.c:34:26: error: opt_ipdivert.h: No such file or directory /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw2.c:35:22: error: opt_ipdn.h: No such file or directory *** Error code 1 # ls sys/modules/ipfw/opt* sys/modules/ipfw/opt_inet.h sys/modules/ipfw/opt_ipfw.h sys/modules/ipfw/opt_inet6.h sys/modules/ipfw/opt_ipsec.h Maybe add the missing opt* into module's Makefile? Index: sys/modules/ipfw/Makefile =================================================================== --- sys/modules/ipfw/Makefile (revision 226966) +++ sys/modules/ipfw/Makefile (working copy) @@ -8,7 +8,8 @@ SRCS= ip_fw2.c ip_fw_pfil.c SRCS+= ip_fw_dynamic.c ip_fw_log.c SRCS+= ip_fw_sockopt.c ip_fw_table.c -SRCS+= opt_inet.h opt_inet6.h opt_ipfw.h opt_ipsec.h +SRCS+= opt_inet.h opt_inet6.h opt_ipdivert.h opt_ipdn.h opt_ipfw.h opt_ipsec.h +SRCS+= opt_compat.h # for a local change CFLAGS+= -DIPFIREWALL CFLAGS+= -I${.CURDIR}/../../contrib/pf And successfully as part of make buildkernel (w/o the above change to Makefile): [...] ===> ipfw (all) cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/TST/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/TST -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw2.c cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/TST/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/TST -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw_pfil.c cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/TST/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/TST -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw_dynamic.c cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/TST/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/TST -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw_log.c ctfconvert -L VERSION -g ip_fw_pfil.o ctfconvert -L VERSION -g ip_fw_log.o cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/TST/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/TST -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw_sockopt.c cc -O2 -pipe -DIPFIREWALL -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/ipfw/../../contrib/pf -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/TST/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/TST -mno-sse -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/ipfw/../../netinet/ipfw/ip_fw_table.c ctfconvert -L VERSION -g ip_fw_dynamic.o ctfconvert -L VERSION -g ip_fw_table.o ctfconvert -L VERSION -g ip_fw_sockopt.o ctfconvert -L VERSION -g ip_fw2.o ld -d -warn-common -r -d -o ipfw.ko.debug ip_fw2.o ip_fw_pfil.o ip_fw_dynamic.o ip_fw_log.o ip_fw_sockopt.o ip_fw_table.o :> export_syms awk -f /usr/src/sys/conf/kmod_syms.awk ipfw.ko.debug export_syms | xargs -J% objcopy % ipfw.ko.debug objcopy --only-keep-debug ipfw.ko.debug ipfw.ko.symbols objcopy --strip-debug --add-gnu-debuglink=ipfw.ko.symbols ipfw.ko.debug ipfw.ko [...] -- wbr, pluknet _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"