Re: Still Can't make loaded symbols global on this platform while loa ding ... and minor bug in ExtUtils



On Tuesday, September 30, 2003, at 07:51 AM, Ross McFarland wrote:

On Tue, 2003-09-30 at 07:37, Ross McFarland wrote:
at any rate i'll search around a little bit for that error message and
see if i can figure out what it is and possible ways of addressing it.
obviously if someone else knows what the deal is fill us in.

i've found the likely culprit, the change will be made at some point
today and hopefully it will get rid of the warning message. it should be
in any further releases made.

if you want to try it out change all ocurances of:
        sub dl_load_flags { $^O eq 'darwin' ? 0x00 : 0x01 }
to have what your $^O variable says.

the trick is not just to pass the right things in dl_load_flags, but to ensure that the symbols are actually loaded globally. the "global symbols" hack is needed in the first place to allow code in Gtk2 to call functions defined in Glib -- if Gtk2 can't call gperl_register_object, then Gtk2 can't function. this is why it's important to know whether the "can't make symbols global" is followed by a crash. :-)

on darwin DynaLoader complains that it can't make the symbols global, but then proceeds to make them global by default. on win32, dl_load_flags makes no difference at all, because all symbols must be resolved at link time (hence the ugly wart in Makefile.PL that searches @INC for Glib.dll and adds that to the LIBS string).

some combination of these should work.


actually i'm not sure what to put in the test, what does hp-ux have in
it's $^O.

there should be a database of these in the perl source.


--
muppet <scott at asofyet dot org>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]