--- pppd/Makefile.linux
+++ pppd/Makefile.linux
@@ -126,7 +126,7 @@ LIBS        += -lcrypt
 endif
 
 ifdef USE_LIBUTIL
-CFLAGS += -DHAVE_LOGWTMP=1
+#CFLAGS        += -DHAVE_LOGWTMP=1
 LIBS   += -lutil
 endif
 
--- pppd/plugins/rp-pppoe/if.c
+++ pppd/plugins/rp-pppoe/if.c
@@ -30,10 +30,6 @@ static char const RCSID[] =
 #include <linux/if_packet.h>
 #endif
 
-#ifdef HAVE_NET_ETHERNET_H
-#include <net/ethernet.h>
-#endif
-
 #ifdef HAVE_ASM_TYPES_H
 #include <asm/types.h>
 #endif
--- pppd/plugins/rp-pppoe/plugin.c
+++ pppd/plugins/rp-pppoe/plugin.c
@@ -46,7 +46,6 @@ static char const RCSID[] =
 #include <unistd.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <net/ethernet.h>
 #include <net/if_arp.h>
 #include <linux/ppp_defs.h>
 #include <linux/if_pppox.h>
--- pppd/plugins/rp-pppoe/pppoe-discovery.c
+++ pppd/plugins/rp-pppoe/pppoe-discovery.c
@@ -27,10 +27,6 @@
 #include <linux/if_packet.h>
 #endif
 
-#ifdef HAVE_NET_ETHERNET_H
-#include <net/ethernet.h>
-#endif
-
 #ifdef HAVE_ASM_TYPES_H
 #include <asm/types.h>
 #endif
@@ -55,6 +51,8 @@ void die(int status)
        exit(status);
 }
 
+#define error(x...) fprintf(stderr, x)
+
 /* Initialize frame types to RFC 2516 values.  Some broken peers apparently
    use different frame types... sigh... */
 
--- pppd/plugins/rp-pppoe/pppoe.h
+++ pppd/plugins/rp-pppoe/pppoe.h
@@ -86,18 +86,6 @@ typedef unsigned long UINT32_t;
 
 #include <netinet/in.h>
 
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <sys/types.h>
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifndef HAVE_SYS_DLPI_H
-#include <netinet/if_ether.h>
-#endif
-#endif
-
-
 
 /* Ethernet frame types according to RFC 2516 */
 #define ETH_PPPOE_DISCOVERY 0x8863
--- pppd/sys-linux.c
+++ pppd/sys-linux.c
@@ -102,19 +102,11 @@
 #define MAX_ADDR_LEN 7
 #endif
 
-#if __GLIBC__ >= 2
 #include <asm/types.h>         /* glibc 2 conflicts with linux/types.h */
 #include <net/if.h>
 #include <net/if_arp.h>
 #include <net/route.h>
 #include <netinet/if_ether.h>
-#else
-#include <linux/types.h>
-#include <linux/if.h>
-#include <linux/if_arp.h>
-#include <linux/route.h>
-#include <linux/if_ether.h>
-#endif
 #include <netinet/in.h>
 #include <arpa/inet.h>
 

--- include/linux/ppp_defs.h.orig	2015-05-10 10:59:27.959155977 +0200
+++ include/linux/ppp_defs.h	2015-05-10 10:59:50.190403246 +0200
@@ -50,6 +50,9 @@
 #ifndef _PPP_DEFS_H_
 #define _PPP_DEFS_H_
 
+#ifndef __P
+# define __P(x) x
+#endif
 /*
  * The basic PPP frame.
  */
--- pppd/magic.h.orig	2015-05-10 11:00:16.687697962 +0200
+++ pppd/magic.h	2015-05-10 11:00:34.030890864 +0200
@@ -42,6 +42,10 @@
  * $Id: magic.h,v 1.5 2003/06/11 23:56:26 paulus Exp $
  */
 
+#ifndef __P
+# define __P(x) x
+#endif
+
 void magic_init __P((void));	/* Initialize the magic number generator */
 u_int32_t magic __P((void));	/* Returns the next magic number */
 
--- include/net/ppp_defs.h.orig	2015-05-10 11:09:54.505127657 +0200
+++ include/net/ppp_defs.h	2015-05-10 11:10:10.753309024 +0200
@@ -38,6 +38,8 @@
 #ifndef _PPP_DEFS_H_
 #define _PPP_DEFS_H_
 
+#include <sys/time.h>	/* time_t */
+
 /*
  * The basic PPP frame.
  */
