This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]