..ok, I got bored and installed Ubuntu I tried it, and there it worked fine!

# strip sym
# nm sym | grep Bunny
nm: sym: no symbols
# _


Great! The program runs fine too.
(And the binary went from a size of 399Kb to 191Kb! Woah! That's more than half 
gone!)

Hm, but how to I go about his now? Seems the OSX-strip is acting funny? Or 
could it have something to do with DMD still? Maybe I should ask in some 
darwin-forum about strip... 

BR
/HF






Heywood Floyd Wrote:

> Hello!
> 
> I've been trying to strip an executable created with DMD from symbols. Has 
> anyone any experience with this?
> 
> I can't seem to rid my execs of more or less containing the entire 
> class-tree. Example:
> 
> // sym.d - - - -
> import std.stdio;
> class Bunny{
>       int x;
>       int getX()
>       {
>               return x;
>       }
> }
> void main()
> {
>       auto b = new Bunny();
>       writefln("Hello %d", b.getX() );
> }
> 
> // - - - - - (OSX 10.6)
> 
> # dmd -release sym
> # strip sym
> # nm sym | grep Bunny
> 000028c8 T _D3sym5Bunny4getXMFZi
> # _
> 
> // - - - - -
> 
> This was of course a simplified example. I tried putting "private" in front 
> of the class, but that didn't change anything.
> 
> Any ideas? I'm just lost. Is it the same on Linux?
> 
> Or maybe this is one of those "features" that allows D to call functions by 
> name or something? I see "T" is a text entry, by reading the man-pages..
> 
> (I suppose it really doesn't matter, but if possible I'd like to not expose 
> function and class names in my binaries, for (I think) obvious reasons.)
> 
> 
> Kind regards
> /HF
> 
> 
> 
> 

Reply via email to