|Help with selective stripping email@example.com (Terence P. Spielman) (1997-01-02)|
|From:||"Terence P. Spielman" <firstname.lastname@example.org>|
|Date:||2 Jan 1997 23:14:05 -0500|
|Organization:||Interval Systems, Inc.|
|Summary:||Request fro help with selective stripping|
|Keywords:||linker, question, comment|
I am trying to package a library for distribution which is actually
composed of several other libraries (lib*.a).
All the libraries are statically linked, so what I attempted
to so is
1) ar x lib*.a --> fast way to get the .o files
2) ar cr libnew.a *.o --> create new composite library
3) ranlib libnew.a
This works fine.
However, I have the additional constraint that we only want to expose
a handful of functions in this library. I was hoping to incrementally
link all the .o's into another .o, then selectively strip symbols and
the re archive the single composite/stripped .o into a new library.
1) ar x lib*.a --> get all the .o's again
2) ld -r libnew.o *.o --> incrementally link .o's to resolve internals
3) strip -K keepsymbol1 -K keepsymbol2 ... libnew.o
4) ar cr libnew.a libnew.o
5) ranlib libnew.a
Unfortunately, step number 3 never works. No matter what I try, I
can't seem to get strip to only keep a handful of external symbols.
This is the first time I am using incrmental linking and selective
stripping (I usually just strip the resultant executables, but since
I'm shipping a library, this is not possible). Can anyone assist or
instruct me on how to accomplish my goal, what I am doing wrong, or
where to look for answers?
[Are there any linkers which give you a usable tree-structured name space?
I've long thought that would be useful for large projects. -John]
Return to the
Search the comp.compilers archives again.