The char * to unsigned char * change happened for the libnetfilter_queue 1.0.0 release, not the linux headers. So drop the linux headers version check since it causes more harm than good by trying the old API when the toolchain uses old linux headers with a new-enough libnetfilter_queue. Signed-off-by: Gustavo Zacarias diff -Nura norm-1.5r6.orig/protolib/src/linux/linuxDetour.cpp norm-1.5r6/protolib/src/linux/linuxDetour.cpp --- norm-1.5r6.orig/protolib/src/linux/linuxDetour.cpp 2016-03-31 10:17:20.674745597 -0300 +++ norm-1.5r6/protolib/src/linux/linuxDetour.cpp 2016-03-31 10:36:58.923084395 -0300 @@ -16,8 +16,6 @@ #include // for ETH_P_IP #include // for ARPHRD_ETHER -#include // for LINUX_VERSION_CODE - /** NOTES: * * 1) This newer implementation of LinuxDetour uses netfilter_queue @@ -591,17 +589,7 @@ // Finally record packet length and cache pointer to IP packet data - // A change to the nfq_get_payload() prototype seemed to kick in around Linux header files - // version 3.6? (This will probably need to be fine tuned for the right version threshold.) - -#define LINUX_VERSION_MAJOR (LINUX_VERSION_CODE/65536) -#define LINUX_VERSION_MINOR ((LINUX_VERSION_CODE - (LINUX_VERSION_MAJOR*65536)) / 256) - -#if ((LINUX_VERSION_MAJOR > 3) || ((LINUX_VERSION_MAJOR == 3) && (LINUX_VERSION_MINOR > 5))) linuxDetour->nfq_pkt_len = nfq_get_payload(nfqData, (unsigned char**)(&linuxDetour->nfq_pkt_data)); -#else - linuxDetour->nfq_pkt_len = nfq_get_payload(nfqData, &linuxDetour->nfq_pkt_data); -#endif // return 0; } // end LinuxDetour::NfqCallback()