Skip to content

Instantly share code, notes, and snippets.

@schlosna
Created August 3, 2010 03:36
Show Gist options
  • Save schlosna/505787 to your computer and use it in GitHub Desktop.
Save schlosna/505787 to your computer and use it in GitHub Desktop.
#!/bin/sh
# from http://www.javarants.com/2009/11/01/building-openjdk-1-7-0-for-mac-os-x-10-6-snow-leopard/
# and http://confluence.concord.org/display/CCTR/Build+OpenJDK+Java+1.7.0+on+Mac+OS+X+10.5
export SOYLATTE_HOME=/Users/david/Documents/dev/jdk/soylatte16-i386-1.0.3
export JAVA_HOME=$SOYLATTE_HOME
time \
env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin \
make \
CC=gcc-4.0 CXX=g++-4.0 \
ALT_BOOTDIR=$SOYLATTE_HOME \
JAVA_TOOLS_DIR=$SOYLATTE_HOME/bin \
ALT_FREETYPE_HEADERS_PATH=/usr/X11R6/include \
ALT_FREETYPE_LIB_PATH=/usr/X11R6/lib \
ANT_HOME=/usr/share/ant \
ALT_DROPS_DIR=/Users/david/Documents/dev/jdk/bsd-port/drops \
ALLOW_DOWNLOADS=true \
NO_DOCS=true \
HOTSPOT_BUILD_JOBS=2 \
PARALLEL_COMPILE_JOBS=2 \
$@ 2>&1 | tee build.log
# Running javac:
/Users/david/Documents/dev/jdk/soylatte16-i386-1.0.3/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -client -Xmx896m -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m -Xbootclasspath/p:/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/langtools/dist/bootstrap/lib/javac.jar -jar /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/langtools/dist/bootstrap/lib/javac.jar -source 7 -target 7 -encoding ascii -Xbootclasspath:/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/classes -sourcepath /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/gensrc:../../../src/solaris/classes:../../../src/share/classes -d /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/classes @/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/.classes.list.filtered
Note: ../../../src/share/classes/sun/net/idn/UCharacterDirection.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: ../../../src/share/classes/java/net/CookieManager.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
/bin/mkdir -p /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj
rm -f /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/.class.headers.i586
# Running javah:
/Users/david/Documents/dev/jdk/soylatte16-i386-1.0.3/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -client -Xmx896m -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m "-Xbootclasspath/p:/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/langtools/dist/bootstrap/lib/javah.jar:/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/langtools/dist/bootstrap/lib/javadoc.jar:/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/langtools/dist/bootstrap/lib/javac.jar" -jar /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/langtools/dist/bootstrap/lib/javah.jar -bootclasspath /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/classes -d /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders/ \
java.net.Socket java.net.SocketOptions java.net.SocketImpl java.net.AbstractPlainSocketImpl java.net.PlainSocketImpl java.net.ServerSocket java.net.InetAddress java.net.Inet4Address java.net.Inet6Address java.net.InetAddressImpl java.net.Inet4AddressImpl java.net.Inet6AddressImpl java.net.NetworkInterface java.net.SocketInputStream java.net.SocketOutputStream java.net.DefaultDatagramSocketImplFactory java.net.DatagramPacket java.net.DatagramSocket java.net.DatagramSocketImpl java.net.AbstractPlainDatagramSocketImpl java.net.MulticastSocket java.net.UnknownHostException java.net.ProtocolException sun.net.spi.DefaultProxySelector java.net.PlainDatagramSocketImpl java.lang.Integer java.io.FileDescriptor java.net.InetAddressImplFactory java.net.Inet4AddressImpl java.net.Inet6AddressImpl
Begin parallel compiles: /Users/david/Documents/dev/jdk/bsd-port/jdk/make/java/net
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/DatagramPacket.o ../../../src/share/native/java/net/DatagramPacket.c
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/InetAddress.o ../../../src/share/native/java/net/InetAddress.c
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/Inet4Address.o ../../../src/share/native/java/net/Inet4Address.c
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/Inet6Address.o ../../../src/share/native/java/net/Inet6Address.c
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/NetworkInterface.o ../../../src/solaris/native/java/net/NetworkInterface.c
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/InetAddressImplFactory.o ../../../src/solaris/native/java/net/InetAddressImplFactory.c
gcc-4.0 -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN -mstackrealign -DNDEBUG -DARCH='"i586"' -Di586 -D_ALLBSD_SOURCE -DRELEASE='"1.7.0-internal"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net -c -o /Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/Inet4AddressImpl.o ../../../src/solaris/native/java/net/Inet4AddressImpl.c
../../../src/solaris/native/java/net/NetworkInterface.c: In function 'getIndex':
../../../src/solaris/native/java/net/NetworkInterface.c:1832: error: 'SIOCGIFINDEX' undeclared (first use in this function)
../../../src/solaris/native/java/net/NetworkInterface.c:1832: error: (Each undeclared identifier is reported only once
../../../src/solaris/native/java/net/NetworkInterface.c:1832: error: for each function it appears in.)
../../../src/solaris/native/java/net/NetworkInterface.c:1836: error: 'struct ifreq' has no member named 'ifr_index'
make[5]: *** [/Users/david/Documents/dev/jdk/bsd-port/build/bsd-i586/tmp/sun/java.net/net/obj/NetworkInterface.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [library_parallel_compile] Error 2
make[3]: *** [all] Error 1
make[2]: *** [all] Error 1
make[1]: *** [jdk-build] Error 2
make: *** [build_product_image] Error 2
diff --git a/src/solaris/native/java/net/NetworkInterface.c b/src/solaris/native/java/net/NetworkInterface.c
--- a/src/solaris/native/java/net/NetworkInterface.c
+++ b/src/solaris/native/java/net/NetworkInterface.c
@@ -1823,17 +1823,12 @@
static int getIndex(int sock, const char *name){
/*
- * Try to get the interface index
- * (Not supported on Solaris 2.6 or 7)
+ * Try to get the interface index using BSD specific if_nametoindex
*/
- struct ifreq if2;
- strcpy(if2.ifr_name, name);
-
- if (ioctl(sock, SIOCGIFINDEX, (char *)&if2) < 0) {
- return -1;
- }
-
- return if2.ifr_index;
+ int index = if_nametoindex(name);
+ if (index == 0)
+ index = -1;
+ return index;
}
/**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment