Converting a JAR into a gcj-statically-linked SO
Andrew Haley
aph@redhat.com
Wed Jan 9 18:23:00 GMT 2008
Matthijs van de Water writes:
> On Jan 9, 2008 1:17 PM, Andrew Haley <aph@redhat.com> wrote:
> > > It's really hard to do. A hell of a lot harder than just recompiling
> > > libgcj.a PIC, which is pretty easy.
> >
> > Actually, you don't even need to recompile it: just find all the .o
> > files that were used to build libgcj.so and put them into a .a file.
>
> OK, that sounds easy but I'm not really sure how to do it... I'm
> looking at the Makefile in libjava and the output of doing a "make
> libgcj.la", which looks like it should contain the information I need.
> But frankly I'm not really sure which of the huge amount of .o files
> should be AR-ed together in the .a file.
>
> Can I somehow edit the libjava/Makefile to convince libtool to do the
> dirty job for me?
At the thought of anything to do with libtool I begin to panic. :-)
You don't have to do anything like that. For every file that is
compiled by libtool, two objects are created: one called foo.o and one
called ./libs/foo.o. The non-PIC one is foo.o.
So, to get an archive with just the PIC libs it's
find . -name .libs | while read i; do ls -1 $i/*.o ; done | xargs ar q foo.a
Pretty hacky but good enough for an experiment.
Andrew.
--
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903
More information about the Java
mailing list