Symbol stripping on OS X
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 00:02, xxxxxxxx wrote:
I have read some hacky stuff on the internet about copying the 10.5 SDK folder from earlier Xcode versions to the Xcode 4.4 folder. Will that work or is it an unstable/unreliable solution?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 00:12, xxxxxxxx wrote:
TBH, for me the easiest solution was to install 3.2.6 and 4.4 on the same machine (running Lion) and then use 3.2.6 for all builds except the R14 one, when I use 4.4. It means that for each build I can use the cinema4dsdk project which is correct for each version of Cinema as the basis, ensuring that the correct settings are in place for each one.
It's a bit less convenient since it means I now have to use two development environments on the Mac but it avoids missing important settings for one or other build.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 00:43, xxxxxxxx wrote:
I have a quite complete Plugin Collection and tested each single Plugin. In Total 372 Plugins.
I tested on a OSX 10.8.1 System with R14.025.
These are Plugins that make Cinema freeze or Crash on Startup:Free Plugins (out of 238)
NoiseDeformer
SplineNoiseDeformer
UVDeformer
AdvancedAtomArray
ChamferMaker
GearBuilder
Reeper X 1.1
Sidewalk
smartoutline
UberTracer
wornEdges
MultiImporterV0.1b
TrueSymmetry
AlignToVector
AMa_1D_Snap
copypastepolys
PointCollapse
CD_AlignToCam
DropToFloor
DublicateObject
ground
HomePSR
SwitchObject
TransformTool
AIT
CD_HPBView
Oscillator
smarttween
TrainDriver
Random Select Tool
SplitSelection
AltRender_v0.37b
ColourTable
ManualKerning
Override Child Selection
RestartCinema
SceneDocumentor
smartsave
solo 1.2.0
Atmosphere
CamShader
CellularShader
Color Changer
PlaneSmart
RandomMaterial
SmartTexPath1_0
Starfield
ThingsOnSurfaceShader
TimeShiftShaderKomerzielle (out of 59) :
GeoTools2011
Greebler
ToothedWheelV2
Harvester
CD_Symmetry1.0
SolidChamfer2.0
SPLURF
DropIt Pro
SplineSPREAD
SurfaceSPREAD
enDOFin
Storm Tracer
camgriptoolsV2
CD_SpringyKeys1.0
Control4DPRO_v1.1.63
Unfurl
Cinapsis
stacx -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 02:15, xxxxxxxx wrote:
It might be these are all plugins that have been compiled using a project file derived from the R12 cinema4dsdk.xcodeproj.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 04:15, xxxxxxxx wrote:
just to add:
we fixed our Blackstar plugins, so
SPLURF
enDOFin
Cinapsis
and all others now work fine with R14 -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 05:44, xxxxxxxx wrote:
Unfurl is build for R13 using the R13 cinema4dsdk project so it must be the default (either Maxon's project or Xcode's) symbol stripping type. This entire thing is a bit unnerving since it would rarely show up (now it is epidemic) and one cannot really test for this. So, I'll have to change the strip type setting, run that command, and hope that the crashes magically vanish (for 15 plugins). Not my favorite way to spend my weekend.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 05:48, xxxxxxxx wrote:
Originally posted by xxxxxxxx
I think I followed your instructions correctly, but the plugin is still hanging in R14. I'm still using Xcode 3 - do I have to update to Xcode 4? Will the plugin still work in R12 if I compile in XCode 4 using the R14 sdk project?
[...]
Follow-up FYI. Turns out a few things went wrong (mixed-up project & target settings in Xcode 3). Although your target settings modified the stripping (should have happened in the project settings) and nm did report just a few symbols, the size of your dylib (680 kb) was sus**cious - and there had been a few symbols used that are related to debugging (e.g. the stack_chk_guard symbol).
Dragging the dylib on a hexeditor shows, that the symbols & debug symbols are still there. Might be caused by the mixed-up project/target settings or by XCode 3.2 - we discovered today that removing global symbol from a final linked dylib based on the r12 sdk didn't work anymore in XCode 3.2.6 (while it did with XCode 3.1 that we used for building r12). Xcode doesn't even warn you about that; you've to look into the log output to discover it. More on that later - we're preparing a document about it...
I've set up your plugin project based on the r13 sdk and the size shrinked down to 111 kb, symbols are stripped and the crash on 10.8.1 is gone.
Best regards,
Wilfried
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 07:26, xxxxxxxx wrote:
Howdy,
I noticed that my plugin CD Symmetry Tools is in the list of plugins causing a crash, but the deployment settings in my plugin's project show that I am using the "Non-Global Symbols" setting in the release version:
Since I don't really know much about the specific project settings, I simply copied the cinema4dsdk project, deleted the source, added my own source code and then changed the Product Name to my plugin's name.
Do I need to change something else?
Adios,
Cactus Dan
P.S. My plugins were compiled with the first R14.014 demo on a 32bit machine running Snow Leopard 10.6.8 and Xcode 4.2 -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 07:50, xxxxxxxx wrote:
Hi Dan,
This is confusing me, too. Because you've got Strip Style set to non-global symbols for release, so they should be stripped, but under strip linked product for release it says 'no'. Does that mean the symbols are being stripped or not? Beats me, I sure don't know.
And it's worrying because I also used the sdk project as the basis for the compile on R14 (though it is the 14.025 version if that makes any difference).
Steve
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 07:58, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Howdy,
I noticed that my plugin CD Symmetry Tools is in the list of plugins causing a crash, but the deployment settings in my plugin's project show that I am using the "Non-Global Symbols" setting in the release version:
Since I don't really know much about the specific project settings, I simply copied the cinema4dsdk project, deleted the source, added my own source code and then changed the Product Name to my plugin's name.
Do I need to change something else?
Adios,
Cactus Dan
P.S. My plugins were compiled with the first R14.014 demo on a 32bit machine running Snow Leopard 10.6.8 and Xcode 4.2For the release build make sure stripping is enabled ("strip linked product -> Release: Yes"). Please check project and target settings for that.
Use the "nm <path> | c++filt -p -i" command to verify that new & delete symbols aren't exported.
Best regards,
Wilfried
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 08:02, xxxxxxxx wrote:
Howdy,
OK, I've just discovered something. Since I have several machines and always prefer to install updates on a separate machine first, I have the first R14.014 demo, the release version R14.014 and the updated R14.025 demo available and there are different settings for the "Strip Linked Product" parameter in the cinema4dsdk project:
R14.014 demo:
Debug = Yes
Release = NoR14.014 release:
Debug = No
Release = NoR14.025 demo:
Debug = Yes
Release = YesSo, maybe the latest settings are correct?
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 08:08, xxxxxxxx wrote:
Howdy,
Originally posted by xxxxxxxx
...For the release build make sure stripping is enabled ("strip linked product -> Release: Yes"). Please check project and target settings for that....
AHA! So my assumption was correct that the latest version's settings are the ones to use. Thanks.
Edit:
Or should the Debug be set to No?Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 08:17, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Howdy,
Originally posted by xxxxxxxx
...For the release build make sure stripping is enabled ("strip linked product -> Release: Yes"). Please check project and target settings for that....
AHA! So my assumption was correct that the latest version's settings are the ones to use. Thanks.
Edit:
Or should the Debug be set to No?
Adios,
Cactus DanYou can change that, but I think the target settings for debug already do that (for you).
Best regards,
Wilfried
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 08:38, xxxxxxxx wrote:
Howdy,
Originally posted by xxxxxxxx
...Use the "nm <path> | c++filt -p -i" command to verify that new & delete symbols aren't exported...
When I use that, it gives me an error:
-bash: nm: command not found
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 08:52, xxxxxxxx wrote:
Howdy,
DOH! disregard that previous post. I was trying that through the network from a different machine. When I did that on the machine where I did the compile, it gave me this readout:
U std::nothrow U ___bzero U ___cxa_atexit U ___stack_chk_fail U ___stack_chk_guard U _asin 00000000000340e0 T _c4d_main U _cos U _free U _malloc U _memcpy U _memset U dyld_stub_binder
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 08:56, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Howdy, DOH! disregard that previous post. I was trying that through the network from a different machine. When I did that on the machine where I did the compile, it gave me this [...]
Was that a debug build, or have you manually changed some settings or do you use some external libs? The "stack_chk_guard" isn't supposed to be in a release build, at least not in our usual builds.
nm needs installed devtools on the machine to work.
Best regards,
Wilfried
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 09:13, xxxxxxxx wrote:
Howdy,
Well, crap! Now I'm not sure where to set whether it's a Release or Debug build (I'm somewhat lost in Xcode 4).
This was the only place where I could find a choice between Debug and Release:
Is that only for the command line build?
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 09:40, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Howdy,
Well, crap! Now I'm not sure where to set whether it's a Release or Debug build (I'm somewhat lost in Xcode 4).
This was the only place where I could find a choice between Debug and Release:
Is that only for the command line build?
Adios,
Cactus DanThere is a XCode 4 transition guide @Apple: http://developer.apple.com/library/mac/#/legacy/mac/library/documentation/IDEs/Conceptual/Xcode4TransitionGuide/Introduction/Introduction.html
To edit the scheme settings, press ALT-Cmd-R (or use the menu: Product -> Edit Scheme...). There you can switch between release, debug, etc.
Best regards,
Wilfried
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 09:57, xxxxxxxx wrote:
Howdy,
Originally posted by xxxxxxxx
...To edit the scheme settings, press ALT-Cmd-R (or use the menu: Product -> Edit Scheme...). There you can switch between release, debug, etc...
Thanks. I did figure that out by googling it, and discovered that it was set to "Release":
Is there some other setting that needs to change, that's causing the "stack_chk_guard"?
I'm still compiling my original plugin project that was copied from the cinema4dsdk project from the R14.014 demo.Edit:
Or does it really matter that the "stack_chk_guard" is showing up in the Terminal readout?Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/09/2012 at 11:03, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Howdy,[...] Is there some other setting that needs to change, that's causing the "stack_chk_guard"?
I'm still compiling my original plugin project that was copied from the cinema4dsdk project from the R14.014 demo.
Edit:
Or does it really matter that the "stack_chk_guard" is showing up in the Terminal readout?
Adios,
Cactus DanHonestly I'm not sure yet what can cause it. It's a little bit sus**cious as Rick's (messed up) project created the same symbol and it still contained the debug symbols, when looking at the file with a hex editor (even though nm didn't show it!).
I've created two new projects for Rick, one based on R13.061 SDK (which lets the plugin run in R13 & R14), the other one based on the R14.025 SDK and both were much shorter than his versions, didn't contain the debug symbols or the "stack_chk_guard" symbol - and both didn't crash anymore on OS X 10.8.1 with 14.025.
If you like, PM me and send me the project file and the compiled plugin dylib to have a look at.
Best regards,
Wilfried