Two small ecj tweaks

Andrew Haley aph at redhat.com
Mon Dec 1 08:10:20 PST 2008


Andrew Haley wrote:
> Andrew John Hughes wrote:
> 
>> With that and the diff, I've spotted the issue and it does seem like a
>> broken gcj being built by Gentoo:
>>
>> - open("/usr/share/java/classmap.gcjdb", O_RDONLY) = -1 ENOENT (No
>> such file or directory)
>> - open("/usr/share/locale/locale.alias", O_RDONLY) = 4
>> - open("/usr/share/locale/en_GB.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY)
>> = -1 ENOENT (No such file or directory)
>> - open("/usr/share/locale/en_GB.utf8/LC_MESSAGES/libc.mo", O_RDONLY) =
>> -1 ENOENT (No such file or directory)
>> - open("/usr/share/locale/en_GB/LC_MESSAGES/libc.mo", O_RDONLY) = 4
>> - open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) =
>> -1 ENOENT (No such file or directory)
>> - open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
>> ENOENT (No such file or directory)
>> - open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1
>> ENOENT (No such file or directory)
>> - statfs("/selinux", 0x7fff451155f0) = -1 ENOENT (No such file or directory)
>> - open("/proc/mounts", O_RDONLY)    = 4
>> - open("/tmp/ffir42O08", O_RDWR|O_CREAT|O_EXCL, 0600) = 4
>> - unlink("/tmp/ffir42O08")          = 0
>> + open("/usr/lib64/gcj-4.3.3-9/classmap.db", O_RDONLY) = 4
>> + stat("/usr/lib64/gcj-4.3.3-9/classmap.db", {st_mode=S_IFREG|0644,
>> st_size=1441792, ...}) = 0
>> + open("/usr/lib64/native_ecj-3.3.so", O_RDONLY) = 5
>> + open("/etc/ld.so.cache", O_RDONLY) = 5
>> + open("/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/libgcj_bc.so.1", O_RDONLY) = 5
>>
>> gcj-dbtool is reporting /usr/lib64/gcj-4.3.3-9/classmap.db as the
>> default db file, but the default being used by gcj is
>> /usr/share/java/classmap.gcjdb
> 
> It's not a broken gcj, as far as I can see.
> It's because /usr/lib/jvm/gcj-jdk/bin/java execs gij with the argument
> "-Dgnu.gcj.precompiled.db.path=/usr/share/java/classmap.gcjdb"
> I suspect that without that argument gij would find the db.

Maybe the best way to fix this is simply to symlink /usr/lib64/gcj-4.3.3-9/classmap.db
to /usr/share/java/classmap.gcjdb.  The classmap isn't really version-specific
so there's no real need for it to be below /usr/lib64/gcj-4.3.3-9/

Andrew.





More information about the distro-pkg-dev mailing list