diff -r 000000000000 -r 717efd8b78b4 patches/uClibc/20080801/100-ifaddrs.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/uClibc/20080801/100-ifaddrs.patch Thu Aug 07 14:05:47 2008 +0000 @@ -0,0 +1,190 @@ +Copyright 2008 Yann E. MORIN. + +This patch is needed to make gcc-4.3.1 able to build the Java frontend. + +Index: uClibc/libc/inet/ifaddrs.c +=================================================================== +--- uClibc/libc/inet/ifaddrs.c (revision 23002) ++++ uClibc/libc/inet/ifaddrs.c (working copy) +@@ -22,7 +22,7 @@ + #include + #include + #include +-#include "ifaddrs.h" ++#include + #include + #include + #include +Index: uClibc/libc/inet/ifaddrs.h +=================================================================== +--- uClibc/libc/inet/ifaddrs.h (revision 23002) ++++ uClibc/libc/inet/ifaddrs.h (working copy) +@@ -1,76 +0,0 @@ +-/* ifaddrs.h -- declarations for getting network interface addresses +- Copyright (C) 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _IFADDRS_H +-#define _IFADDRS_H 1 +- +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-/* The `getifaddrs' function generates a linked list of these structures. +- Each element of the list describes one network interface. */ +-struct ifaddrs +-{ +- struct ifaddrs *ifa_next; /* Pointer to the next structure. */ +- +- char *ifa_name; /* Name of this network interface. */ +- unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ +- +- struct sockaddr *ifa_addr; /* Network address of this interface. */ +- struct sockaddr *ifa_netmask; /* Netmask of this interface. */ +- union +- { +- /* At most one of the following two is valid. If the IFF_BROADCAST +- bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the +- IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. +- It is never the case that both these bits are set at once. */ +- struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ +- struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ +- } ifa_ifu; +- /* These very same macros are defined by for `struct ifaddr'. +- So if they are defined already, the existing definitions will be fine. */ +-# ifndef ifa_broadaddr +-# define ifa_broadaddr ifa_ifu.ifu_broadaddr +-# endif +-# ifndef ifa_dstaddr +-# define ifa_dstaddr ifa_ifu.ifu_dstaddr +-# endif +- +- void *ifa_data; /* Address-specific data (may be unused). */ +-}; +- +- +-/* Create a linked list of `struct ifaddrs' structures, one for each +- network interface on the host machine. If successful, store the +- list in *IFAP and return 0. On errors, return -1 and set `errno'. +- +- The storage returned in *IFAP is allocated dynamically and can +- only be properly freed by passing it to `freeifaddrs'. */ +-extern int getifaddrs (struct ifaddrs **__ifap) __THROW; +- +-/* Reclaim the storage allocated by a previous `getifaddrs' call. */ +-extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; +- +-__END_DECLS +- +-#endif /* ifaddrs.h */ +Index: uClibc/libc/inet/getaddrinfo.c +=================================================================== +--- uClibc/libc/inet/getaddrinfo.c (revision 23002) ++++ uClibc/libc/inet/getaddrinfo.c (working copy) +@@ -68,7 +68,7 @@ + #include + #include + #include +-#include "ifaddrs.h" ++#include + + /* Experimentally off - libc_hidden_proto(memcpy) */ + /* Experimentally off - libc_hidden_proto(memset) */ +--- /dev/null 2008-08-04 09:44:45.624322752 +0200 ++++ uClibc/include/ifaddrs.h 2008-08-05 09:31:20.000000000 +0200 +@@ -0,0 +1,76 @@ ++/* ifaddrs.h -- declarations for getting network interface addresses ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _IFADDRS_H ++#define _IFADDRS_H 1 ++ ++#include ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* The `getifaddrs' function generates a linked list of these structures. ++ Each element of the list describes one network interface. */ ++struct ifaddrs ++{ ++ struct ifaddrs *ifa_next; /* Pointer to the next structure. */ ++ ++ char *ifa_name; /* Name of this network interface. */ ++ unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ ++ ++ struct sockaddr *ifa_addr; /* Network address of this interface. */ ++ struct sockaddr *ifa_netmask; /* Netmask of this interface. */ ++ union ++ { ++ /* At most one of the following two is valid. If the IFF_BROADCAST ++ bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the ++ IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. ++ It is never the case that both these bits are set at once. */ ++ struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ ++ struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ ++ } ifa_ifu; ++ /* These very same macros are defined by for `struct ifaddr'. ++ So if they are defined already, the existing definitions will be fine. */ ++# ifndef ifa_broadaddr ++# define ifa_broadaddr ifa_ifu.ifu_broadaddr ++# endif ++# ifndef ifa_dstaddr ++# define ifa_dstaddr ifa_ifu.ifu_dstaddr ++# endif ++ ++ void *ifa_data; /* Address-specific data (may be unused). */ ++}; ++ ++ ++/* Create a linked list of `struct ifaddrs' structures, one for each ++ network interface on the host machine. If successful, store the ++ list in *IFAP and return 0. On errors, return -1 and set `errno'. ++ ++ The storage returned in *IFAP is allocated dynamically and can ++ only be properly freed by passing it to `freeifaddrs'. */ ++extern int getifaddrs (struct ifaddrs **__ifap) __THROW; ++ ++/* Reclaim the storage allocated by a previous `getifaddrs' call. */ ++extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; ++ ++__END_DECLS ++ ++#endif /* ifaddrs.h */