This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Use ar to merge libraries?
- To: Andrew Begel <abegel at eecs dot berkeley dot edu>
- Subject: Re: Use ar to merge libraries?
- From: Michael Meissner <meissner at cygnus dot com>
- Date: Wed, 6 Jun 2001 17:40:31 -0400
- Cc: binutils at sources dot redhat dot com, abegel at cs dot berkeley dot edu
- References: <B7D7A2ED64049746BBCDFB0DA028CC5404A568@ups.millennium.berkeley.edu>
On Wed, Jun 06, 2001 at 02:13:24PM -0700, Andrew Begel wrote:
> Without using the MRI librarian compability commands, is there a way for
> ar to merge .a files when building a new library?
> i.e.
>
> ar cru libbar.a bar1.o bar2.o
> ar cru libfoo.a libbar.a foo.o
>
> The result here is libfoo.a, which, if I had my way, would consist of
> three .o's, bar1.o, bar2.o and foo.o. However, right now, this gives
> *two* entries in libfoo.a, libbar.a and foo.o. Since libbar.a is now
> nested inside libfoo.a, normal linking against libfoo.a of symbols
> inside bar1.o and bar2.o won't work.
Well there is always the time honored approach of extracting all of the objects
files, and recreating the archive:
mkdir foo
cd foo
for lib in ${LIBRARIES}; do
ar x $lib
done
ar cr ../${TARGET} *
ranlib ../${TARGET}
cd ..
rm -rf foo
--
Michael Meissner, Red Hat, Inc. (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work: meissner@redhat.com phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org fax: +1 978-692-4482