So I have this problem: Mac::Carbon takes a long time to load.

    $ time perl -Iblib/arch -Iblib/lib -MMac::Carbon -e1

    real    0m2.923s
    user    0m2.570s
    sys     0m0.160s

Profiling the run showed that over 80% of that time is taken by dyld, so I 
wondered if prebinding could solve the problem.  However, perl uses .bundle 
files for DynaLoader, and .bundle files cannot be prebound.

Drat.

But .dylib files can be prebound, and I was able to modify DynaLoader.xs to 
load in either .bundle or .dylib files, and to compile my extensions as 
.dylib files.

Woop.

But I am having problems with the prebinding.  I first had to rebuild 
libperl.dylib with prebinding, and that worked fine (just added -prebind).

Woop woop.

I added -prebind to my extension, and it complained that you can't use 
-undefined suppress with -prebind.  Remove -undefined suppress, and got 
warnings about undefined symbols.  Go figure.

So I added -L/path/to/perl -lperl, and did it again, and I got complaints 
about conflicting symbols.

   ld: warning prebinding disabled because of symbols overridden in 
dependent dynamic shared libraries:
   /usr/lib/libSystem.dylib(crypt.So) definition of _crypt
   /usr/lib/libcrypto.0.9.dylib(fcrypt.o) definition of _crypt

Drat drat.

Anyway, I know there are perhaps better places to ask about dylib and 
prebinding, but I just wonder if anyone else has run into these issues with 
perl, before I move on.

-- 
Chris Nandor                      [EMAIL PROTECTED]    http://pudge.net/
Open Source Development Network    [EMAIL PROTECTED]     http://osdn.com/

Reply via email to