[BC ABI] gcj-abi-2-dev-branch created
Bryce McKinlay
mckinlay@redhat.com
Fri Apr 16 16:50:00 GMT 2004
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.
More information about the Java
mailing list