package/iproute2/patches/004-darwin_fixes.patch has a fix for Darwin,
however the fix can be made to work on other BSD platforms
by changing the patch as below.
I think a similar approach should work for other BSD-derived platforms,
replacing the
#ifndef __APPLE__
with
#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(...)
or perhaps even with just
#ifdef __linux__
if the set of platforms where malloc.h is ok is small or restricted
to just linux
In any case, the patch is below. (#3869)
Signed-off-by: Luigi Rizzo <rizzo@iet.unipi.it>
SVN-Revision: 12249
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
-+#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <malloc.h>
+#endif
#include <string.h>
#include <string.h>
#include <limits.h>
-+#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <linux/types.h>
#include <linux/pkt_sched.h>
+#else
#include <math.h>
#include <limits.h>
-+#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <linux/types.h>
#include <linux/pkt_sched.h>
+#else
#include <string.h>
#include <math.h>
#include <limits.h>
-+#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <malloc.h>
-
#include <linux/types.h>