git-ifaddrs-linknamespace
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sun, 14 Jan 2018 10:24:48 +0000 (10:24 +0000)
committerAurelien Jarno <aurel32@debian.org>
Sun, 14 Jan 2018 10:24:48 +0000 (10:24 +0000)
commit 7edd06916d0f18714f323b180b890f1fea39e1ff
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Sep 27 17:18:32 2017 -0700

    Update sysdeps/unix/sysv/linux/ifaddrs.c

    Fix

    ../sysdeps/unix/sysv/linux/ifaddrs.c:835:27: error: ‘getifaddrs’ aliased to undefined symbol ‘__getifaddrs’
     weak_alias (__getifaddrs, getifaddrs)
                               ^
    ../sysdeps/unix/sysv/linux/ifaddrs.c:844:28: error: ‘freeifaddrs’ aliased to undefined symbol ‘__freeifaddrs’
     weak_alias (__freeifaddrs, freeifaddrs)

    caused by

    commit 4009ddc69225d571772aaea597615a0c032e14ab
    Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Date:   Thu Sep 28 00:19:18 2017 +0200

        hurd: Fix `getifaddrs' and `freeifaddrs' symbol exposition

            * sysdeps/unix/sysv/linux/ifaddrs.c (__getifaddrs): Add
            libc_hidden_def.
            (__freeifaddrs): Likewise.

commit 4009ddc69225d571772aaea597615a0c032e14ab
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Thu Sep 28 00:19:18 2017 +0200

    hurd: Fix `getifaddrs' and `freeifaddrs' symbol exposition

    from `freeaddrinfo'.

    `getifaddrs' and `freeifaddrs' are not in POSIX, they should not be
    exposed along `freeaddrinfo' (through `__check_pf') which is POSIX.

            * include/ifaddrs.h (__getifaddrs, __freeifaddrs): New declarations,
            and use libc_hidden_def on them.
            * inet/ifaddrs.c (__getifaddrs, __freeifaddrs): Use libc_hidden_def on
            them.
            * sysdeps/gnu/ifaddrs.c (__getifaddrs, __freeifaddrs): Likewise.
            * inet/check_pf.c (__check_pf): Use __getifaddrs and __freeifaddrs
            instead of getifaddrs and freeifaddrs.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name git-ifaddrs-linknamespace.diff

include/ifaddrs.h
inet/check_pf.c
inet/ifaddrs.c
sysdeps/gnu/ifaddrs.c
sysdeps/unix/sysv/linux/ifaddrs.c

index 54f4b7a3cec9b21020309626d9718a356cc96e5c..416118f1b38cb580b2d45966d5e29d531f4c81d5 100644 (file)
@@ -9,6 +9,11 @@
 libc_hidden_proto (getifaddrs)
 libc_hidden_proto (freeifaddrs)
 
+extern int __getifaddrs (struct ifaddrs **__ifap);
+libc_hidden_proto (__getifaddrs)
+extern void __freeifaddrs (struct ifaddrs *__ifa);
+libc_hidden_proto (__freeifaddrs)
+
 struct in6addrinfo
 {
   enum {
index a56723a7dfd13983ca10445c5ff672a6b090a701..84dd1699d5f2be9094fea2bfb8b17b56d9d92963 100644 (file)
@@ -32,7 +32,7 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
 
   /* Get the interface list via getifaddrs.  */
   struct ifaddrs *ifa = NULL;
-  if (getifaddrs (&ifa) != 0)
+  if (__getifaddrs (&ifa) != 0)
     {
       /* We cannot determine what interfaces are available.  Be
         pessimistic.  */
@@ -51,7 +51,7 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
     else if (runp->ifa_addr->sa_family == PF_INET6)
       *seen_ipv6 = true;
 
-  (void) freeifaddrs (ifa);
+  (void) __freeifaddrs (ifa);
 }
 
 
index 35cc277225588f8e9552786e11d3582e41c32715..0a5c71c059f773dbda15034fb54ca10f73986e3a 100644 (file)
@@ -30,6 +30,7 @@ __getifaddrs (struct ifaddrs **ifap)
   return -1;
 }
 weak_alias (__getifaddrs, getifaddrs)
+libc_hidden_def (__getifaddrs)
 libc_hidden_weak (getifaddrs)
 stub_warning (getifaddrs)
 
@@ -43,5 +44,6 @@ __freeifaddrs (struct ifaddrs *ifa)
   abort ();
 }
 weak_alias (__freeifaddrs, freeifaddrs)
+libc_hidden_def (__freeifaddrs)
 libc_hidden_weak (freeifaddrs)
 stub_warning (freeifaddrs)
index 37b3248669b595333b80d82f4dbb806e77ab0bc6..80702eb1d194a8d7b74ca076e03ae428cfdf8206 100644 (file)
@@ -151,6 +151,7 @@ __getifaddrs (struct ifaddrs **ifap)
   return 0;
 }
 weak_alias (__getifaddrs, getifaddrs)
+libc_hidden_def (__getifaddrs)
 #ifndef getifaddrs
 libc_hidden_weak (getifaddrs)
 #endif
@@ -161,4 +162,5 @@ __freeifaddrs (struct ifaddrs *ifa)
   free (ifa);
 }
 weak_alias (__freeifaddrs, freeifaddrs)
+libc_hidden_def (__freeifaddrs)
 libc_hidden_weak (freeifaddrs)
index 3bc99028639c71492029605e3399332ba2f53ab2..a02f5aac074e403b0a1f22c29d06f97c9e43611f 100644 (file)
@@ -834,6 +834,7 @@ __getifaddrs (struct ifaddrs **ifap)
   return res;
 }
 weak_alias (__getifaddrs, getifaddrs)
+libc_hidden_def (__getifaddrs)
 libc_hidden_weak (getifaddrs)
 
 
@@ -843,4 +844,5 @@ __freeifaddrs (struct ifaddrs *ifa)
   free (ifa);
 }
 weak_alias (__freeifaddrs, freeifaddrs)
+libc_hidden_def (__freeifaddrs)
 libc_hidden_weak (freeifaddrs)