GCJ problem on RS/6000

David Edelsohn dje@watson.ibm.com
Fri Feb 8 12:02:00 GMT 2002


	For AIX, the top-level configure.in defines:

noconfigdirs="... ${libgcj}"

# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
        target-boehm-gc \
        target-zlib \
        target-qthreads \
        target-libjava"

Therefore, libgcj is not built by default when GCC is configured for AIX.
Configuring and building things manually, everything works except libjava.
libjava is able to build the class files and libgcj.jar on AIX.  libjava
fails to build some of the C++ files because of -fdollars-in-identifiers:

AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions \
        -fdollars-in-identifiers \
           $(WARNINGS) -D_GNU_SOURCE \
        -DPREFIX="\"$(prefix)\""

This creates names like _ZN4java4lang9Throwable6class$E which cause
assembler errors because that symbol contains an illegal character on
AIX. 

	I do not know where this translation / mangling should occur.  Is
the use of "$" required by the Java specification?

	Other than the issue with dollar-signs, I do not know of any
fundamental issue remaining, but I do not know that everything will "just
work" if that is worked-around.

David



More information about the Java mailing list