This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: [BC ABI] gcj-abi-2-dev-branch created
Vladimir Levin wrote:
I am not familiar with this thread. Will the new ABI and related work
make it harder to use GCJ for embedded development? In particular, on
our board, we cannot put the entire libgcj.so on the flash. So far,
using gcc-3.2.3 the static executable size is about 2 MB (for hello
world)... But a base size larger than that becomes unacceptable...
Currently, the idea is that we'll maintain two ABIs - the "new", aka
BC-ABI for dynamic shared library environments, and the existing ABI for
static binaries. Aside from additional dispatch indirections and such,
the main difference technically will be that under the BC-ABI, class
descriptor structures, vtables, and the like are contructed at runtime
from pointer-free metadata, while under the old ABI these are
pre-generated at compile time.
The old ABI will continue be more efficient in some respects for a
statically-linked environment. However, there are some reasons why you
may want to consider the BC-ABI even for static linking. eg: because it
weakens the linkage between classes, it should be easier to remove
unused classes and/or methods (ie those which are referenced somewhere
but never actually called) from your image.
Regards
Bryce.