Now that I can build libgcj again on HEAD, I found that it pollutes the common namespace by installing $PREFIX/lib/logging.properties. This break the installation of several versions of GCC into the same $PREFIX using --program-suffix=.
Also, does a configuration file, in text format, like this really belong under /lib?
Also it should be beyond /usr/share, as it is not arch dependent. Same problem for /usr/lib/security/classpath.security and /usr/lib64/security/libgcj.security.
This is a critical installation problem.
Installing in share -vs- lib is weird for libgcj. Sometimes we install things in lib to be more "jdk-like". logging.properties has been there since 4.0, at least. I don't have 3.x install trees around to check earlier releases. The security files also fall into this category. That said, I'm not against moving them about. I think Tom F. should probably weigh in, he's more involved with how the layout affects packaging and things like that. (This is important because it can have an effect on real applications.)
Note that f.i. classpath.security changed from $libdir to $prefix/lib from 4.1 to 4.2, which is now inconsistent which libgcj.security, which is still in $libdir. Now, it is entirely unclear to me what these files are about anyway, and if it is safe f.i. to delete them, or move them to some other place. Are they of documentation purpose? Are they used by the library itself?
On the JDK lib files are stored in $JAVA_HOME/jre/lib. I've recently moved some files, like libjawt.so, that would conflict for multiple, parallel libgcj installations to the same prefix, to $(libdir)/gcj-$(gcc_version). I think we should move all such files there, and that directory should be libgcj's equivalent to the JDK's $JAVA_HOME/jre/lib.
That would be great. I'd really love to see us support parallel libgcj installations into the same $prefix.
Is this really the only problem? All .la, .a and .so files get overwritten as well. Matthias
(In reply to comment #8) > Is this really the only problem? All .la, .a and .so files get overwritten as > well. I'm not sure what you mean by this.
See also PR 28775
I am just voicing my support for comment #2. In practice, we see a problem when installing both classpath and gcj on the same system, since they both install classpath.security and logging.properties files. Ideally, both classpath and gcj could share these files, or perhaps not and each JVM should be able to have its own configuration. Even if that's the case, these files look like global configuration files, that apply to any JVM using classpath or classpath derivatives. The location should likely be changed in either case. These are configuration files and likely need to be writable, so they should not be placed under /usr.
Subject: Bug 27890 Author: fitzsim Date: Tue Aug 22 20:37:36 2006 New Revision: 116332 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116332 Log: 2006-08-22 Thomas Fitzsimmons <fitzsim@redhat.com> PR libgcj/27890 * gnu/classpath/natSystemProperties.cc (insertSystemProperties): Set gnu.classpath.home.url to TOOLEXECLIBDIR. * configure.ac: Do not add --with-native-libdir to ac_configure_args. * java/security/libgcj.security: Remove file. * java/util/logging/logging.properties: Likewise. * classpath/m4/acinclude.m4 (CLASSPATH_TOOLEXECLIBDIR): New macro. * classpath/resource/Makefile.am (loggingdir): Define to toolexeclibdir. (securitydir): Likewise. * classpath/configure.ac: Call CLASSPATH_TOOLEXECLIBDIR. Set default nativeexeclibdir using toolexeclibdir. * HACKING: Fix classpath aclocal arguments. * Makefile.am (secdir): Remove variable. (propdir): Likewise. (AM_CXXFLAGS): Replace LIBDIR definition with TOOLEXECLIBDIR definition. (all_property_files): Remove variable. (install-data-local): Do not install libgcj.security or logging.properties. * configure, Makefile.in, classpath/configure, classpath/Makefile.in, classpath/native/jni/java-lang/Makefile.in, classpath/native/jni/midi-alsa/Makefile.in, classpath/native/jni/classpath/Makefile.in, classpath/native/jni/midi-dssi/Makefile.in, classpath/native/jni/Makefile.in, classpath/native/jni/java-nio/Makefile.in, classpath/native/jni/java-net/Makefile.in, classpath/native/jni/gconf-peer/Makefile.in, classpath/native/jni/java-io/Makefile.in, classpath/native/jni/xmlj/Makefile.in, classpath/native/jni/java-util/Makefile.in, classpath/native/jni/qt-peer/Makefile.in, classpath/native/jni/gtk-peer/Makefile.in, classpath/native/Makefile.in, classpath/native/jawt/Makefile.in, classpath/native/target/Linux/Makefile.in, classpath/native/target/Makefile.in, classpath/native/target/generic/Makefile.in, classpath/native/fdlibm/Makefile.in, classpath/native/plugin/Makefile.in, classpath/resource/Makefile.in, classpath/scripts/Makefile.in, classpath/tools/Makefile.in, classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, classpath/lib/Makefile.in, classpath/external/Makefile.in, classpath/external/sax/Makefile.in, classpath/external/w3c_dom/Makefile.in, classpath/external/relaxngDatatype/Makefile.in, classpath/include/Makefile.in, classpath/aclocal.m4, classpath/examples/Makefile.in, aclocal.m4: Regenerate. Removed: trunk/libjava/java/security/libgcj.security trunk/libjava/java/util/logging/logging.properties Modified: trunk/libjava/ChangeLog trunk/libjava/HACKING trunk/libjava/Makefile.am trunk/libjava/Makefile.in trunk/libjava/aclocal.m4 trunk/libjava/classpath/Makefile.in trunk/libjava/classpath/aclocal.m4 trunk/libjava/classpath/configure trunk/libjava/classpath/configure.ac trunk/libjava/classpath/doc/Makefile.in trunk/libjava/classpath/doc/api/Makefile.in trunk/libjava/classpath/examples/Makefile.in trunk/libjava/classpath/external/Makefile.in trunk/libjava/classpath/external/relaxngDatatype/Makefile.in trunk/libjava/classpath/external/sax/Makefile.in trunk/libjava/classpath/external/w3c_dom/Makefile.in trunk/libjava/classpath/include/Makefile.in trunk/libjava/classpath/lib/Makefile.in trunk/libjava/classpath/m4/acinclude.m4 trunk/libjava/classpath/native/Makefile.in trunk/libjava/classpath/native/fdlibm/Makefile.in trunk/libjava/classpath/native/jawt/Makefile.in trunk/libjava/classpath/native/jni/Makefile.in trunk/libjava/classpath/native/jni/classpath/Makefile.in trunk/libjava/classpath/native/jni/gconf-peer/Makefile.in trunk/libjava/classpath/native/jni/gtk-peer/Makefile.in trunk/libjava/classpath/native/jni/java-io/Makefile.in trunk/libjava/classpath/native/jni/java-lang/Makefile.in trunk/libjava/classpath/native/jni/java-net/Makefile.in trunk/libjava/classpath/native/jni/java-nio/Makefile.in trunk/libjava/classpath/native/jni/java-util/Makefile.in trunk/libjava/classpath/native/jni/midi-alsa/Makefile.in trunk/libjava/classpath/native/jni/midi-dssi/Makefile.in trunk/libjava/classpath/native/jni/qt-peer/Makefile.in trunk/libjava/classpath/native/jni/xmlj/Makefile.in trunk/libjava/classpath/native/plugin/Makefile.in trunk/libjava/classpath/native/target/Linux/Makefile.in trunk/libjava/classpath/native/target/Makefile.in trunk/libjava/classpath/native/target/generic/Makefile.in trunk/libjava/classpath/resource/Makefile.am trunk/libjava/classpath/resource/Makefile.in trunk/libjava/classpath/scripts/Makefile.in trunk/libjava/classpath/tools/Makefile.in trunk/libjava/configure trunk/libjava/configure.ac trunk/libjava/gnu/classpath/natSystemProperties.cc
Fixed by installing logging.properties and classpath.security in both lib and lib64, in the multilib case. This means that 32- and 64-bit property and module lists can be manipulated separately. Doing so will also fix PR28775.