patches/uClibc/20080801/100-ifaddrs.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Sep 04 17:27:16 2009 +0200 (2009-09-04)
changeset 1512 439a6b292917
permissions -rw-r--r--
TODO: update

Add TODO list for m4, autoconf, automake and libtool.
Building our own versions would remove burden from the users
who have older versions on their distributions, and are not
ready/able/allowed to upgrade.
yann@766
     1
Copyright 2008 Yann E. MORIN.
yann@766
     2
yann@766
     3
This patch is needed to make gcc-4.3.1 able to build the Java frontend.
yann@766
     4
yann@766
     5
Index: uClibc/libc/inet/ifaddrs.c
yann@766
     6
===================================================================
yann@766
     7
--- uClibc/libc/inet/ifaddrs.c	(revision 23002)
yann@766
     8
+++ uClibc/libc/inet/ifaddrs.c	(working copy)
yann@766
     9
@@ -22,7 +22,7 @@
yann@766
    10
 #include <alloca.h>
yann@766
    11
 #include <assert.h>
yann@766
    12
 #include <errno.h>
yann@766
    13
-#include "ifaddrs.h"
yann@766
    14
+#include <ifaddrs.h>
yann@766
    15
 #include <net/if.h>
yann@766
    16
 #include <netinet/in.h>
yann@766
    17
 #include <netpacket/packet.h>
yann@766
    18
Index: uClibc/libc/inet/ifaddrs.h
yann@766
    19
===================================================================
yann@766
    20
--- uClibc/libc/inet/ifaddrs.h	(revision 23002)
yann@766
    21
+++ uClibc/libc/inet/ifaddrs.h	(working copy)
yann@766
    22
@@ -1,76 +0,0 @@
yann@766
    23
-/* ifaddrs.h -- declarations for getting network interface addresses
yann@766
    24
-   Copyright (C) 2002 Free Software Foundation, Inc.
yann@766
    25
-   This file is part of the GNU C Library.
yann@766
    26
-
yann@766
    27
-   The GNU C Library is free software; you can redistribute it and/or
yann@766
    28
-   modify it under the terms of the GNU Lesser General Public
yann@766
    29
-   License as published by the Free Software Foundation; either
yann@766
    30
-   version 2.1 of the License, or (at your option) any later version.
yann@766
    31
-
yann@766
    32
-   The GNU C Library is distributed in the hope that it will be useful,
yann@766
    33
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
yann@766
    34
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
yann@766
    35
-   Lesser General Public License for more details.
yann@766
    36
-
yann@766
    37
-   You should have received a copy of the GNU Lesser General Public
yann@766
    38
-   License along with the GNU C Library; if not, write to the Free
yann@766
    39
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@766
    40
-   02111-1307 USA.  */
yann@766
    41
-
yann@766
    42
-#ifndef _IFADDRS_H
yann@766
    43
-#define _IFADDRS_H	1
yann@766
    44
-
yann@766
    45
-#include <features.h>
yann@766
    46
-#include <sys/socket.h>
yann@766
    47
-#include <stdbool.h>
yann@766
    48
-#include <stdint.h>
yann@766
    49
-
yann@766
    50
-__BEGIN_DECLS
yann@766
    51
-
yann@766
    52
-/* The `getifaddrs' function generates a linked list of these structures.
yann@766
    53
-   Each element of the list describes one network interface.  */
yann@766
    54
-struct ifaddrs
yann@766
    55
-{
yann@766
    56
-  struct ifaddrs *ifa_next;	/* Pointer to the next structure.  */
yann@766
    57
-
yann@766
    58
-  char *ifa_name;		/* Name of this network interface.  */
yann@766
    59
-  unsigned int ifa_flags;	/* Flags as from SIOCGIFFLAGS ioctl.  */
yann@766
    60
-
yann@766
    61
-  struct sockaddr *ifa_addr;	/* Network address of this interface.  */
yann@766
    62
-  struct sockaddr *ifa_netmask; /* Netmask of this interface.  */
yann@766
    63
-  union
yann@766
    64
-  {
yann@766
    65
-    /* At most one of the following two is valid.  If the IFF_BROADCAST
yann@766
    66
-       bit is set in `ifa_flags', then `ifa_broadaddr' is valid.  If the
yann@766
    67
-       IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
yann@766
    68
-       It is never the case that both these bits are set at once.  */
yann@766
    69
-    struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
yann@766
    70
-    struct sockaddr *ifu_dstaddr; /* Point-to-point destination address.  */
yann@766
    71
-  } ifa_ifu;
yann@766
    72
-  /* These very same macros are defined by <net/if.h> for `struct ifaddr'.
yann@766
    73
-     So if they are defined already, the existing definitions will be fine.  */
yann@766
    74
-# ifndef ifa_broadaddr
yann@766
    75
-#  define ifa_broadaddr	ifa_ifu.ifu_broadaddr
yann@766
    76
-# endif
yann@766
    77
-# ifndef ifa_dstaddr
yann@766
    78
-#  define ifa_dstaddr	ifa_ifu.ifu_dstaddr
yann@766
    79
-# endif
yann@766
    80
-
yann@766
    81
-  void *ifa_data;		/* Address-specific data (may be unused).  */
yann@766
    82
-};
yann@766
    83
-
yann@766
    84
-
yann@766
    85
-/* Create a linked list of `struct ifaddrs' structures, one for each
yann@766
    86
-   network interface on the host machine.  If successful, store the
yann@766
    87
-   list in *IFAP and return 0.  On errors, return -1 and set `errno'.
yann@766
    88
-
yann@766
    89
-   The storage returned in *IFAP is allocated dynamically and can
yann@766
    90
-   only be properly freed by passing it to `freeifaddrs'.  */
yann@766
    91
-extern int getifaddrs (struct ifaddrs **__ifap) __THROW;
yann@766
    92
-
yann@766
    93
-/* Reclaim the storage allocated by a previous `getifaddrs' call.  */
yann@766
    94
-extern void freeifaddrs (struct ifaddrs *__ifa)  __THROW;
yann@766
    95
-
yann@766
    96
-__END_DECLS
yann@766
    97
-
yann@766
    98
-#endif /* ifaddrs.h */
yann@766
    99
Index: uClibc/libc/inet/getaddrinfo.c
yann@766
   100
===================================================================
yann@766
   101
--- uClibc/libc/inet/getaddrinfo.c	(revision 23002)
yann@766
   102
+++ uClibc/libc/inet/getaddrinfo.c	(working copy)
yann@766
   103
@@ -68,7 +68,7 @@
yann@766
   104
 #include <sys/un.h>
yann@766
   105
 #include <sys/utsname.h>
yann@766
   106
 #include <net/if.h>
yann@766
   107
-#include "ifaddrs.h"
yann@766
   108
+#include <ifaddrs.h>
yann@766
   109
 
yann@766
   110
 /* Experimentally off - libc_hidden_proto(memcpy) */
yann@766
   111
 /* Experimentally off - libc_hidden_proto(memset) */
yann@766
   112
--- /dev/null	2008-08-04 09:44:45.624322752 +0200
yann@766
   113
+++ uClibc/include/ifaddrs.h	2008-08-05 09:31:20.000000000 +0200
yann@766
   114
@@ -0,0 +1,76 @@
yann@766
   115
+/* ifaddrs.h -- declarations for getting network interface addresses
yann@766
   116
+   Copyright (C) 2002 Free Software Foundation, Inc.
yann@766
   117
+   This file is part of the GNU C Library.
yann@766
   118
+
yann@766
   119
+   The GNU C Library is free software; you can redistribute it and/or
yann@766
   120
+   modify it under the terms of the GNU Lesser General Public
yann@766
   121
+   License as published by the Free Software Foundation; either
yann@766
   122
+   version 2.1 of the License, or (at your option) any later version.
yann@766
   123
+
yann@766
   124
+   The GNU C Library is distributed in the hope that it will be useful,
yann@766
   125
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
yann@766
   126
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
yann@766
   127
+   Lesser General Public License for more details.
yann@766
   128
+
yann@766
   129
+   You should have received a copy of the GNU Lesser General Public
yann@766
   130
+   License along with the GNU C Library; if not, write to the Free
yann@766
   131
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@766
   132
+   02111-1307 USA.  */
yann@766
   133
+
yann@766
   134
+#ifndef _IFADDRS_H
yann@766
   135
+#define _IFADDRS_H	1
yann@766
   136
+
yann@766
   137
+#include <features.h>
yann@766
   138
+#include <sys/socket.h>
yann@766
   139
+#include <stdbool.h>
yann@766
   140
+#include <stdint.h>
yann@766
   141
+
yann@766
   142
+__BEGIN_DECLS
yann@766
   143
+
yann@766
   144
+/* The `getifaddrs' function generates a linked list of these structures.
yann@766
   145
+   Each element of the list describes one network interface.  */
yann@766
   146
+struct ifaddrs
yann@766
   147
+{
yann@766
   148
+  struct ifaddrs *ifa_next;	/* Pointer to the next structure.  */
yann@766
   149
+
yann@766
   150
+  char *ifa_name;		/* Name of this network interface.  */
yann@766
   151
+  unsigned int ifa_flags;	/* Flags as from SIOCGIFFLAGS ioctl.  */
yann@766
   152
+
yann@766
   153
+  struct sockaddr *ifa_addr;	/* Network address of this interface.  */
yann@766
   154
+  struct sockaddr *ifa_netmask; /* Netmask of this interface.  */
yann@766
   155
+  union
yann@766
   156
+  {
yann@766
   157
+    /* At most one of the following two is valid.  If the IFF_BROADCAST
yann@766
   158
+       bit is set in `ifa_flags', then `ifa_broadaddr' is valid.  If the
yann@766
   159
+       IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
yann@766
   160
+       It is never the case that both these bits are set at once.  */
yann@766
   161
+    struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
yann@766
   162
+    struct sockaddr *ifu_dstaddr; /* Point-to-point destination address.  */
yann@766
   163
+  } ifa_ifu;
yann@766
   164
+  /* These very same macros are defined by <net/if.h> for `struct ifaddr'.
yann@766
   165
+     So if they are defined already, the existing definitions will be fine.  */
yann@766
   166
+# ifndef ifa_broadaddr
yann@766
   167
+#  define ifa_broadaddr	ifa_ifu.ifu_broadaddr
yann@766
   168
+# endif
yann@766
   169
+# ifndef ifa_dstaddr
yann@766
   170
+#  define ifa_dstaddr	ifa_ifu.ifu_dstaddr
yann@766
   171
+# endif
yann@766
   172
+
yann@766
   173
+  void *ifa_data;		/* Address-specific data (may be unused).  */
yann@766
   174
+};
yann@766
   175
+
yann@766
   176
+
yann@766
   177
+/* Create a linked list of `struct ifaddrs' structures, one for each
yann@766
   178
+   network interface on the host machine.  If successful, store the
yann@766
   179
+   list in *IFAP and return 0.  On errors, return -1 and set `errno'.
yann@766
   180
+
yann@766
   181
+   The storage returned in *IFAP is allocated dynamically and can
yann@766
   182
+   only be properly freed by passing it to `freeifaddrs'.  */
yann@766
   183
+extern int getifaddrs (struct ifaddrs **__ifap) __THROW;
yann@766
   184
+
yann@766
   185
+/* Reclaim the storage allocated by a previous `getifaddrs' call.  */
yann@766
   186
+extern void freeifaddrs (struct ifaddrs *__ifa)  __THROW;
yann@766
   187
+
yann@766
   188
+__END_DECLS
yann@766
   189
+
yann@766
   190
+#endif /* ifaddrs.h */