Hi Richie, ... > > I wonder Petr, is it still necessary to define IFF_ECHO now only > > <linux/if.h> is included? Or do they somehow symlink linux/if.h -> > > net/if.h? > No. > > Indeed it seems the current version of uclibc-ng doesn't include > > IFF_ECHO in <net/if.h>. OTOH musl does define it. > Yes => please keep that definition in can_common.h (enough here, we don't have > to bother with if.h when we don't have it yet). > And I'll send tonight patch to uclibc-ng. > The more mature musl is the less relevant uclibc-ng is. Just for a record, I was wrong. Using <linux/if.h> is enough, no need to keep definition on can_common.h. Sorry for wasting your time. I mixed two problems: <linux/if.h> and <net/if.h> conflict (there are more headers which conflict) [1] and sometimes missing definition on uclibc-ng. *But* musl defines IFF_ECHO in <net/if.h> as they try to allow people not having to depend on <linux/*.h>, which is IMHO better than blindly relying on <linux/*.h> which glibc and uclibc{,-ng} (which follows glibc) does much more than musl: $ git grep '^#include <linux/.*\.h>' |wc -l 43 # glibc 37 # uclibc-ng 3 # musl Kind regards, Petr [1] https://sourceware.org/glibc/wiki/Synchronizing_Headers#Known_Pairs_of_Headers_that_Conflict