Hi Edriss, On Fri, May 25, 2018 at 02:43:39PM -0400, Edriss Mirzadeh wrote: > Hi there Duncan, > > I tried pulling the most up to date version of ebtables to compile as part > of the Tomato Firmware (for ARM routers). > > I found that the build failed on two files I believe related to commit > > 66a97018a31eed416c6a25d051ea172e4d65be1b > <https://git.netfilter.org/ebtables/commit/?id=66a97018a31eed416c6a25d051ea172e4d65be1b> > The issue is/was that: > > - In ebtables_u.h, the new entry "<ebtables.h> should be "ebtables.h" > - In extensions/ebt_ip.c, <linux/netfilter_bridge/ebt_ip.h> should be > ""../include/linux/netfilter_bridge/ebt_ip.h" > > > Just wanted to share in case you are able to validate on your side and > update... > > All the best, Thanks for reporting this. Would you be able please to report what compiler and version you are building with? Your problem doesn't reproduce for me with either gcc-8.1.0 or gcc-5.3.0. I think you have uncovered a real problem here. K&R2 says the implementation of angle-bracket includes is implementation-dependent and it would seem your compiler's implementation differs from that of gcc. Makefile compiles extensions from the top-level directory thusly: gcc [options] -o extensions/(whatever).o extensions/(whatever).c -Iinclude ~~~~~~~~~ It seems your compiler ignores -I when processing an angle-bracketed include. This accounts for needing "ebtables.h". extensions/ebt_ip.c is more interesting. I didn't touch that BTW, that was the previous 2 commits. All the extension sources use #include <linux/netfilter_bridge/(whatever).h>. This works even on your platform because /usr/include/linux/netfilter_bridge/ is fully populated by the kernel-headers package. But ebtables has a private copy of this directory which it is expecting to use. In the case of linux/netfilter_bridge/ebt_ip.h, the local copy is newer than kernel-headers, even kernel-headers built from linux-4.16.12 which is the newest release. With -Iinclude, gcc is finding the local headers, but clearly your compiler is not. It's becoming clear to me that the correct fix is to replace angle brackets with double quotes for all include statements that intend to use local headers. I'll try to submit a patch today. Cheers ... Duncan. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html