--- a/lib/address.c
+++ b/lib/address.c
@@ -48,11 +48,12 @@
 
 #include "upnp.h"
 
-#ifndef __USE_GNU
-#define __USE_GNU /* XXX for RTLD_NEXT on Linux */
-#endif /* !__USE_GNU */
 #include <dlfcn.h>
 
+#ifndef RTLD_NEXT
+#define RTLD_NEXT  ((void *) -1l)
+#endif
+
 static const char rcsid[] =
 "$Id: address.c,v 1.288.4.4 2014/08/15 18:16:40 karls Exp $";
 
--- a/dlib/interposition.c
+++ b/dlib/interposition.c
@@ -93,11 +93,12 @@ write$NOCANCEL(HAVE_PROT_WRITE_1, HAVE_P
 
 #endif /* HAVE_DARWIN */
 
-#ifndef __USE_GNU
-#define __USE_GNU /* XXX for RTLD_NEXT on Linux */
-#endif /* !__USE_GNU */
 #include <dlfcn.h>
 
+#ifndef RTLD_NEXT
+#define RTLD_NEXT  ((void *) -1l)
+#endif
+
 #ifdef __COVERITY__
 /*
  * Coverity naturally has no idea what the function sys_foo calls does,
