FYI: Updated "Building GCJ for Windows"

Ranjit Mathew rmathew@gmail.com
Thu Jun 15 09:14:00 GMT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tom Tromey wrote:
>> I saw that the libgcj.dll thing kind of got dropped -- what's up with
> that?

As I understand it, there are two major problems in the way
of a libgcj.dll (and libstdc++.dll, et al):
 1. GCC build support for Windows DLLs.
 2. Exceptions across DLL boundaries.
I believe that newer versions of libtool are much better at
building DLLs for Windows that the one in GCC. The one in
GCC is an ancient release heavily modified with custom and
backported patches. A fumbling, kludgy effort to get
libstdc++.dll built using the GCC build process for Windows
is documented here:
 http://gcc.gnu.org/ml/gcc/2006-06/msg00519.html
but it didn't quite work. Without such a change, even
"--enable-shared --disable-static" builds only static
libraries for GCC/Windows.
As for making exceptions work across DLL boundaries, there
is a patch floating around but it cannot be applied to the
FSF tree because the original author is incommunicado and
has not filed the paperwork with the FSF. It has been heavily
modified since and I am of the opinion that copyright
should only be necessary for an expression of an idea
(the actual code for the patch) rather than the idea itself
(using AddAtom()/FindAtom() to stored shared pointers). But
I'm not a lawyer and this might be wrong.
The other problem with the patch is that it touches bits
of core GCC somewhat intrusively and is likely to be
unacceptable.
(Thanks to Danny Smith for the information on #2.)
Thanks,
Ranjit.
- --
Ranjit Mathew Email: rmathew AT gmail DOT com
Bangalore, INDIA. Web: http://rmathew.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFEkST5Yb1hx2wRS48RAkuDAJ9A37J+0I34+TlBuH7QlZ4EcxdEJACfa1cX
1IDHgqzYQq0ayqBRCC2wnSE=
=VSgU
-----END PGP SIGNATURE-----


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /