Re: what's supposed to get stripped?
Re: what's supposed to get stripped?
- Subject: Re: what's supposed to get stripped?
- From: Allen Cronce <email@hidden>
- Date: Thu, 30 Mar 2006 09:05:44 -0800
Hi Steve,
If you search the list archives, you'll find a thread with the subject
"Symbol stripping tips + handy script" that covers this subject pretty
well. Although it's somewhat overkill in my opinion.
My experience is that if you use the following "Release" build
configuration settings for a bundle, you'll get pretty much the best
results with minimal hassle:
Dead code stripping
Don't dead-strip inits and terms
Deployment preprocessing
Use separate strip
Strip style = Non-global symbols
Note that "Deployment preprocessing" is very important. Without it, I've
found that the separate strip is not run. Go figure.
Also, your mileage may vary on the "Strip style". For bundles I prefer
"Non-global symbols". But for applications you probably want to strip
all symbols. Which strip style is best for you may be different based on
the type of executable you're building and how (or if) you export your
symbols.
You might want to manually strip your executable from the command line
in order to experiment with the strip options and figure out what works
best for you. Once you've got that working, then configure your project
to do it for you during the build process.
Good luck.
Best,
--
Allen Cronce
Steve Christensen wrote:
I have a bunch of iMovie plug-in projects that I moved from
CodeWarrior to Xcode (2.2.1) as part of moving to UB. Since there is a
lot of shared code, I first build that as a separate static library
that gets linked with all the plug-ins as they are built.
I've been noticing that the plug-in executable size has grown by
considerably more than twice the previous PPC-only size. When I say
considerable, I mean a 48K PPC-only executable growing to a 196K
PPC+Intel executable.
I have dead code stripping turned on as well as symbol stripping (both
ld and strip) and even a separate exported symbols file (all I want to
export is main). Level of debug symbols is set to full, per Xcode's
note that stripping works better that way.
When I run "nm -mg" on a plug-in's executable, I see that there are a
lot of extra import symbols when compared with a plug-in built by
CodeWarrior. After tracking it down more, it looks like some
unreferenced non-virtual class methods are being included and thus
dragging along the Mac OS API symbols and any other methods they use.
Am I missing something very basic here, or what? It's frustrating
because I can't see anything else to turn on that would strip further.
I have a test project that shows what's happening that I can mail
off-list if that will help.
steve
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden