This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch: re-merge NetworkInterface


David Daney wrote:
Marco Trudel wrote:
Tom Tromey wrote:
"Marco" == Marco Trudel <mtrudel@gmx.ch> writes:

Marco> No rule to make target
Marco> `/usr/local/src/gcc/libjava/java/net/NetworkInterface.java', needed by
Marco> `compile-classes'. Stop.


Would you mind filing a bug for this build problem?

I don't really understand the problem, so I can't fill a bug report that makes sense. Is the problem that MulticastSocket.java and NetworkInterface.java are empty instead of being deleted? So they will be used instead the classpath ones but of course they do not contain a class.
How can a patch delete a file anyway?
How can this work on Linux? This doesn't seem to be a mingw only problem (but then again, I don't understand the real problem)



To fix, rm <build>/.../libjava/classpath/classes*

I assume you mean "rm <build>/i686-pc-mingw32/libjava/classpath/classes*". I have no files and no folders named classes* in that directory.


Apply the patch.

configure ... --java-maintainer-mode

find libjava/classpath/lib -name \*.class -print | xargs rm

I now:
- apply the patch
- manually delete java/net/MulticastSocket.java and java/net/NetworkInterface.java
- delete all classes in $GCC_SRC/libjava/classpath/lib ($BUILD/libjava/classpath/lib contains no classes)


I get:

/home/Marco/Desktop/compile-lin-win/gcc-build/./gcc/xgcc -shared-libgcc -B/home/Marco/Desktop/compile-lin-win/gcc-build/./gcc -nostdinc++ -L/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/libstdc++-v3/src -L/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/libstdc++-v3/src/.libs -L/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/winsup/mingw -L/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/winsup/w32api/lib -isystem /usr/local/src/gcc/winsup/mingw/include -isystem /usr/local/src/gcc/winsup/w32api/include -B/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/i686-pc-mingw32/bin/ -B/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/i686-pc-mingw32/lib/ -isystem /home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/i686-pc-mingw32/include -isystem /home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/i686-pc-mingw32/sys-include -DHAVE_CONFIG_H -I. -I/usr/local/src/gcc/libjava -I./include -I./gcj -I/usr/local/src/gcc/libjava -Iinclude -I/usr/local/src/gcc/libjava/include -I/usr/local/src/gcc/libjava/classpath/include -Iclasspath/include -I/usr/local/src/gcc/libjava/classpath/native/fdlibm -I/usr/local/src/gcc/libjava/../boehm-gc/include -I../boehm-gc/include -I/usr/local/src/gcc/libjava/libltdl -I/usr/local/src/gcc/libjava/libltdl -I/usr/local/src/gcc/libjava/.././libjava/../gcc -I/usr/local/src/gcc/libjava/../zlib -I/usr/local/src/gcc/libjava/../libffi/include -I../libffi/include -fno-rtti -fnon-call-exceptions -mthreads -fdollars-in-identifiers -Wswitch-enum -D_FILE_OFFSET_BITS=64 -ffloat-store -fomit-frame-pointer -fno-omit-frame-pointer -Wextra -Wall -D_GNU_SOURCE -DPREFIX=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win\" -DTOOLEXECLIBDIR=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/i686-pc-mingw32/lib\" -DJAVA_HOME=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win\" -DBOOT_CLASS_PATH=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/share/java/libgcj-4.3.0.jar\" -DJAVA_EXT_DIRS=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/share/java/ext\" -DGCJ_ENDORSED_DIRS=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/share/java/gcj-endorsed\" -DGCJ_VERSIONED_LIBDIR=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/lib/gcj-4.3.0\" -DPATH_SEPARATOR=\":\" -DLIBGCJ_DEFAULT_DATABASE=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/lib/gcj-4.3.0/classmap.db\" -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.3.0/classmap.db\" --sysroot=/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/sys-root -MT java/net/natVMNetworkInterface.lo -MD -MP -MF java/net/.deps/natVMNetworkInterface.Tpo -c java/net/natVMNetworkInterface.cc -o java/net/natVMNetworkInterface.o
java/net/natVMNetworkInterface.cc: In static member function 'static java::util::Vector* java::net::VMNetworkInterface::getInterfaces()':
java/net/natVMNetworkInterface.cc:140: error: no matching function for call to 'java::net::VMNetworkInterface::VMNetworkInterface(java::lang::String*&, java::net::InetAddress*&)'
/usr/local/src/gcc/libjava/java/net/VMNetworkInterface.h:25: note: candidates are: java::net::VMNetworkInterface::VMNetworkInterface()
make[1]: *** [java/net/natVMNetworkInterface.lo] Error 1
make[1]: Leaving directory `/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/libjava'



When I also delete java/net/MulticastSocket.h and java/net/NetworkInterface.h, I get:


/gcc/libjava/../zlib -I/usr/local/src/gcc/libjava/../libffi/include -I../libffi/include -fno-rtti -fnon-call-exceptions -mthreads -fdollars-in-identifiers -Wswitch-enum -D_FILE_OFFSET_BITS=64 -ffloat-store -fomit-frame-pointer -fno-omit-frame-pointer -Wextra -Wall -D_GNU_SOURCE -DPREFIX=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win\" -DTOOLEXECLIBDIR=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/i686-pc-mingw32/lib\" -DJAVA_HOME=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win\" -DBOOT_CLASS_PATH=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/share/java/libgcj-4.3.0.jar\" -DJAVA_EXT_DIRS=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/share/java/ext\" -DGCJ_ENDORSED_DIRS=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/share/java/gcj-endorsed\" -DGCJ_VERSIONED_LIBDIR=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/lib/gcj-4.3.0\" -DPATH_SEPARATOR=\":\" -DLIBGCJ_DEFAULT_DATABASE=\"/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/lib/gcj-4.3.0/classmap.db\" -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.3.0/classmap.db\" --sysroot=/home/Marco/Desktop/compile-lin-win/gcc-XYZXYZ-win/sys-root -MT gnu/java/net/natPlainDatagramSocketImpl.lo -MD -MP -MF gnu/java/net/.deps/natPlainDatagramSocketImpl.Tpo -c gnu/java/net/natPlainDatagramSocketImpl.cc -o gnu/java/net/natPlainDatagramSocketImpl.o
gnu/java/net/natPlainDatagramSocketImpl.cc:23:39: error: java/net/NetworkInterface.h: No such file or directory
gnu/java/net/natPlainDatagramSocketImpl.cc:410: warning: unused parameter 'join'
make[1]: *** [gnu/java/net/natPlainDatagramSocketImpl.lo] Error 1
make[1]: Leaving directory `/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/libjava'



Marco




make




Then make.

Marco> - gnu/java/net/PlainDatagramSocketImpl.java
Marco> still references NetworkInterface instead of VMNetworkInterface.

NetworkInterface still exists, in classpath.  I only got rid of
libgcj's divergence.  In our build system, if a file
libjava/pkg/pkg/Class.java exists, then it overrides a corresponding
libjava/classpath/pkg/pkg/Class.java.  However over time we like to
remove these divergences, as they usually cost us more than they are
worth.

Ok thanks. Makes sense :-) What happens when libjava/pkg/pkg/Class.h exists but no libjava/pkg/pkg/Class.java? I noticed that the patch leaves the .h files unchanged.



Marco




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]