Hello All! I'm trying to build a gcc-4.3.1 basezd compiler with support for Java.
I'm using uClibc 20080801, and I did set UCLIBC_SUPPORT_AI_ADDRCONFIG=y in my uClibc config file, thus getifaddrs get compiled in uClibc.so. To check if it can use getifaddrs et al., the Java configure tries to link a program that calls getifaddrs, but does not include ifaddrs.h, it just defines a prototype on its own. Because getifaddrs does in fact exist in uClibc.so, the link is successfull, and configure #defines HAVE_GETIFADDRS to 1. The calls to getifaddrs and freeifaddrs are then guarded with #ifdef HAVE_GETIFADDRS ... #else ... #endif But when Java gets built, it fails with: java/net/natVMNetworkInterface.cc: In static member function 'static java::util::Vector* java::net::VMNetworkInterface::getInterfaces()': java/net/natVMNetworkInterface.cc:57: error: '::getifaddrs' has not been declared java/net/natVMNetworkInterface.cc:60: error: invalid use of incomplete type 'struct ifaddrs' java/net/natVMNetworkInterface.cc:56: error: forward declaration of 'struct ifaddrs' [--SNIP similar errors--] java/net/natVMNetworkInterface.cc:97: error: 'freeifaddrs' was not declared in this scope Before r22534, there was a include/ifaddrs.h file. At 22534 this file was moved to libc/inet/ifaddrs.h as it was supposed to be a private header: $ svn log -v -r 22534 svn://uclibc.org/trunk/uClibc ------------------------------------------------------------------------ r22534 | ricardw | 2008-06-27 17:38:41 +0200 (Fri, 27 Jun 2008) | 2 lines Changed paths: D /trunk/uClibc/include/ifaddrs.h M /trunk/uClibc/libc/inet/getaddrinfo.c M /trunk/uClibc/libc/inet/ifaddrs.h Removed include/ifaddrs.h and put contents in libc/inet/ifaddrs.h, as we do not need the file outside of uClibc anyway. ------------------------------------------------------------------------ But that is not true in fact. As for glibc, it does install this header. So I moved ifaddrs.h back to the include/ directory, also changed back libc/inet/ifaddrs.c and libc/inet/getaddrinfo.c to #include <ifaddrs.h> (instead of "ifaddrs.h"), and the build completes. Can we revert 22534, or is there a better way? Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< °_° >==-- °------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | * _ * | / \ HTML MAIL | """ conspiracy. | °------------------------------°-------°------------------°--------------------° _______________________________________________ uClibc mailing list uClibc@uclibc.org http://busybox.net/cgi-bin/mailman/listinfo/uclibc