Posted on 2008-08-29 05:30:17-07 by gcb
failing to compile in USE_ARCH=64 guise?
32bit build compiles fine ; here, a 64bit build errors out with; 'snip snip Creating XS API documentation... Generating POD... Loaded 8 extra types from doctypes make: *** [build/podindex] Segmentation fault ' make = 3.81 gcc = 4.2.4 perl = v5.8.8 built for x86_64-linux-thread-multi Any ideas? If more info needed let me know...
Direct Responses: 8765 | Write a response
Posted on 2008-09-07 17:53:58-07 by kaffee in response to 8694
Re: failing to compile in USE_ARCH=64 guise?
Yeah, that's not enough information. The command executed at this sage is:
$ /your/path/to/perl -I blib/lib -I blib/arch -MGlib::GenPod -MGlib \ -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-20 +08 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a fu +ll notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(b +uild/podindex));"
Can you try running it manually, and perhaps with gdb and valgrind?
$ gdb /your/path/to/perl gdb> r -I blib/lib -I blib/arch -MGlib::GenPod -MGlib -e "add_types (qq(doctypes)); Glib::GenPod +::set_copyright(qq{Copyright (C) 2003-2008 by the gtk2-perl team.\n\nThis software is licensed und +er the LGPL. See L<Glib> for a full notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); xsd +oc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));" ... crash ... gdb> bt $ valgrind --tool=memcheck --num-callers=100 /your/path/to/perl -I blib/arch -MGlib::GenPod -MGli +b -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by the gtk +2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice.\n} +); Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex +));"
Direct Responses: 9416 | 9417 | 9418 | Write a response
Posted on 2008-11-25 02:28:06-08 by gcb in response to 8765
Re: failing to compile in USE_ARCH=64 guise?
Sorry for the delay with this....here the gdb output; Starting program: /usr/bin/perl -I blib/lib -I blib/arch -MGlib::GenPod -MGlib -e "add_types (qq(doctypes)); Glib::GenPod +::set_copyright(qq{Copyright (C) 2003-2008 by the gtk2-perl team.\n\nThis software is licensed und +er the LGPL. See L<Glib> for a full notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); xsd +oc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));" Executing new program: /usr/bin/perl-64 [Thread debugging using libthread_db enabled] [New Thread 0x7f27ff0c06f0 (LWP 17900)] Loaded 8 extra types from doctypes Undefined subroutine &main::set_copyright called at -e line 1. Program exited with code 0377. (gdb) bt No stack. Hmm...I'll let valgrind have at it shortly & post again
Direct Responses: Write a response
Posted on 2008-11-25 02:39:50-08 by gcb in response to 8765
Re: failing to compile in USE_ARCH=64 guise?
Bah!..apols for previous post...silly c&p caught some rubbish, here's the right gdb output; Starting program: /usr/bin/perl-64 -I blib/lib -I blib/arch -MGlib::GenPod -MGlib -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));" [Thread debugging using libthread_db enabled] [New Thread 0x7fc2e5dc76f0 (LWP 27788)] Loaded 8 extra types from doctypes Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fc2e5dc76f0 (LWP 27788)] 0x00007fc2df936da3 in XS_Glib__Type_list_values () from blib/arch/auto/Glib/Glib.so Current language: auto; currently asm (gdb) bt #0 0x00007fc2df936da3 in XS_Glib__Type_list_values () from blib/arch/auto/Glib/Glib.so #1 0x000000000046a6bc in Perl_pp_entersub () #2 0x0000000000468c4e in Perl_runops_standard () #3 0x0000000000464679 in perl_run () #4 0x000000000041ecbc in main ()
Direct Responses: 9426 | Write a response
Posted on 2008-11-25 03:09:39-08 by gcb in response to 8765
Re: failing to compile in USE_ARCH=64 guise?
..and valgrind said ; root:/usr/local/Glib-1.200$ valgrind --tool=memcheck --num-callers=100 /usr/bin/perl -I blib/arch -MGlib::GenPod -MGlib -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by /the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); /xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));" ==29160== Memcheck, a memory error detector. ==29160== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==29160== Using LibVEX rev 1854, a library for dynamic binary translation. ==29160== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==29160== Using valgrind-3.3.1, a dynamic binary instrumentation framework. ==29160== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==29160== For more details, rerun with: -v ==29160== Can't locate Glib/GenPod.pm in @INC (@INC contains: blib/arch /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib64/perl5/5.10.0 /usr/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi //usr/lib64/perl5/site_perl/5.10.0 /usr/lib64/perl5/site_perl/5.8.8 ///usr/lib64/perl5/site_perl .). BEGIN failed--compilation aborted. ...this is true - Glib/GenPod.pm does not exist at this point in @INC ...should it?
Direct Responses: Write a response
Posted on 2008-11-25 19:14:58-08 by kaffee in response to 9417
Re: failing to compile in USE_ARCH=64 guise?
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fc2e5dc76f0 (LWP 27788)] 0x00007fc2df936da3 in XS_Glib__Type_list_values () from blib/arch/auto/Glib/Glib.so Current language: auto; currently asm (gdb) bt #0 0x00007fc2df936da3 in XS_Glib__Type_list_values () from blib/arch/auto/Glib/Glib.so #1 0x000000000046a6bc in Perl_pp_entersub () #2 0x0000000000468c4e in Perl_runops_standard () #3 0x0000000000464679 in perl_run () #4 0x000000000041ecbc in main ()
Aha, so we crash in Glib::Type::list_values(). Could you compile with debugging symbols so the backtrace contains more information?
$ export PASTHRU_INC="-g"
And then rerun Makefile.PL and make and gdb. In your valgrind run, it seems like you missed "-I blib/lib" and also used another perl binary. Maybe one of these caused the error about Glib::GenPod?
Direct Responses: 9428 | Write a response
Posted on 2008-11-25 23:42:12-08 by gcb in response to 9426
Re: failing to compile in USE_ARCH=64 guise?
As requested- ; Starting program: /usr/bin/perl -I blib/lib -I blib/arch -MGlib::GenPod -MGlib -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));" Executing new program: /usr/bin/perl-64 [Thread debugging using libthread_db enabled] [New Thread 0x7fab721536f0 (LWP 9702)] Loaded 8 extra types from doctypes
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fab721536f0 (LWP 9702)] 0x00007fab6bcc2da3 in XS_Glib__Type_list_values (my_perl=<value optimized out>, cv=<value optimized out>) at GType.xs:2619 2619 for ( ; v && v->value_nick && v->value_name ; v++) { (gdb) bt #0 0x00007fab6bcc2da3 in XS_Glib__Type_list_values (my_perl=<value optimized out>, cv=<value optimized out>) at GType.xs:2619 #1 0x000000000046a6bc in Perl_pp_entersub () #2 0x0000000000468c4e in Perl_runops_standard () #3 0x0000000000464679 in perl_run () #4 0x000000000041ecbc in main ()
Regarding valgrind run, yes, I missed -I blib/lib (you missed it too in your example cmdline to run ..which explains my fault ;-), howsoever adding this missing include path (and with debugging still enabled) results in a segfault and no useful info... valgrind --tool=memcheck --num-callers=100 /usr/bin/perl -I blib/arch -I blib/lib -MGlib::GenPod -MGlib -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice.\n}); Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));" ==9708== Memcheck, a memory error detector. ==9708== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==9708== Using LibVEX rev 1854, a library for dynamic binary translation. ==9708== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==9708== Using valgrind-3.3.1, a dynamic binary instrumentation framework. ==9708== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==9708== For more details, rerun with: -v ==9708== Loaded 8 extra types from doctypes Segmentation fault FWIW, /usr/bin/perl here is a multiarch wrapper to either /usr/bin/perl-32 or /usr/bin/perl-64, with latter being considered native. This all works just fine in 32bit guise btw. If things are derailing in Glib::Type::list_values() and (I'm guessing here) this is in GType.xs , a 64bit build attempt throws half a dozen warnings about "cast to pointer from integer of different size" here. More than one .xs throws these warnings -- this is not so in 32bit guise. Thanks for the help with this - as always, need anything else, just ask
Direct Responses: 9549 | Write a response
Posted on 2008-12-15 17:29:58-08 by kaffee in response to 9428
Re: failing to compile in USE_ARCH=64 guise?
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fab721536f0 (LWP 9702)] 0x00007fab6bcc2da3 in XS_Glib__Type_list_values (my_perl=<value optimized out>, cv=<value optimized + out>) at GType.xs:2619 2619 for ( ; v && v->value_nick && v->value_name ; v++) {
I don't see what could be wrong with that code. The valgrind output suggests that valgrind is not following the fork() (or similar) that your /usr/bin/perl does to invoke perl-64. So, can you repeat the valgrind run with the correct executable? I'd also be interested in the compilation warnings.
Direct Responses: 9555 | Write a response
Posted on 2008-12-17 06:12:59-08 by gcb in response to 9549
Re: failing to compile in USE_ARCH=64 guise?
Compiltion warnings are of the form ;

GObject.xs: In function 'gperl_register_object': GObject.xs:333: warning: cast to pointer from integer of different size

That is just one example of many same warnings in various files - if you want the whole spray let me know. Yeah, the multiarch wrapper for perl seems to work most everywhere else but here..so...telling valgrind to use the perl-64 binary instead results in;
==1441== Conditional jump or move depends on uninitialised value(s) ==1441== at 0x444449: Perl_re_compile (in /usr/bin/perl-64) ==1441== by 0x426B48: Perl_pmruntime (in /usr/bin/perl-64) ==1441== by 0x50F883: Perl_yyparse (in /usr/bin/perl-64) ==1441== by 0x49C62F: S_doeval (in /usr/bin/perl-64) ==1441== by 0x49EC04: Perl_pp_require (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x463CF0: Perl_call_sv (in /usr/bin/perl-64) ==1441== by 0x464148: Perl_call_list (in /usr/bin/perl-64) ==1441== by 0x41FBA0: S_process_special_blocks (in /usr/bin/perl-64) ==1441== by 0x42B248: Perl_newATTRSUB (in /usr/bin/perl-64) ==1441== by 0x42A02C: Perl_utilize (in /usr/bin/perl-64) ==1441== by 0x5105F4: Perl_yyparse (in /usr/bin/perl-64) ==1441== by 0x49C62F: S_doeval (in /usr/bin/perl-64) ==1441== by 0x49EC04: Perl_pp_require (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x463CF0: Perl_call_sv (in /usr/bin/perl-64) ==1441== by 0x464148: Perl_call_list (in /usr/bin/perl-64) ==1441== by 0x41FBA0: S_process_special_blocks (in /usr/bin/perl-64) ==1441== by 0x42B248: Perl_newATTRSUB (in /usr/bin/perl-64) ==1441== by 0x42A02C: Perl_utilize (in /usr/bin/perl-64) ==1441== by 0x5105F4: Perl_yyparse (in /usr/bin/perl-64) ==1441== by 0x465EFF: S_parse_body (in /usr/bin/perl-64) ==1441== by 0x466D16: perl_parse (in /usr/bin/perl-64) ==1441== by 0x41EC82: main (in /usr/bin/perl-64) ==1441== ==1441== Conditional jump or move depends on uninitialised value(s) ==1441== at 0x444449: Perl_re_compile (in /usr/bin/perl-64) ==1441== by 0x426B48: Perl_pmruntime (in /usr/bin/perl-64) ==1441== by 0x426D3D: Perl_ck_split (in /usr/bin/perl-64) ==1441== by 0x42728B: Perl_convert (in /usr/bin/perl-64) ==1441== by 0x510330: Perl_yyparse (in /usr/bin/perl-64) ==1441== by 0x49C62F: S_doeval (in /usr/bin/perl-64) ==1441== by 0x49EC04: Perl_pp_require (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x463CF0: Perl_call_sv (in /usr/bin/perl-64) ==1441== by 0x464148: Perl_call_list (in /usr/bin/perl-64) ==1441== by 0x41FBA0: S_process_special_blocks (in /usr/bin/perl-64) ==1441== by 0x42B248: Perl_newATTRSUB (in /usr/bin/perl-64) ==1441== by 0x42A02C: Perl_utilize (in /usr/bin/perl-64) ==1441== by 0x5105F4: Perl_yyparse (in /usr/bin/perl-64) ==1441== by 0x49C62F: S_doeval (in /usr/bin/perl-64) ==1441== by 0x49EC04: Perl_pp_require (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x463CF0: Perl_call_sv (in /usr/bin/perl-64) ==1441== by 0x464148: Perl_call_list (in /usr/bin/perl-64) ==1441== by 0x41FBA0: S_process_special_blocks (in /usr/bin/perl-64) ==1441== by 0x42B248: Perl_newATTRSUB (in /usr/bin/perl-64) ==1441== by 0x42A02C: Perl_utilize (in /usr/bin/perl-64) ==1441== by 0x5105F4: Perl_yyparse (in /usr/bin/perl-64) ==1441== by 0x465EFF: S_parse_body (in /usr/bin/perl-64) ==1441== by 0x466D16: perl_parse (in /usr/bin/perl-64) ==1441== by 0x41EC82: main (in /usr/bin/perl-64) Loaded 8 extra types from doctypes ==1441== ==1441== Conditional jump or move depends on uninitialised value(s) ==1441== at 0xB6CB84B: newSVGSignalQuery (in /mnt/store/Glib-1.200/blib/arch/auto/Glib/Glib.so) ==1441== by 0xB6BA36C: XS_Glib__Type_list_signals (in /mnt/store/Glib-1.200/blib/arch/auto/Glib/ +Glib.so) ==1441== by 0x46A6BB: Perl_pp_entersub (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x4646ED: perl_run (in /usr/bin/perl-64) ==1441== by 0x41ECBB: main (in /usr/bin/perl-64) ==1441== ==1441== Invalid read of size 8 ==1441== at 0xB6B8DA3: XS_Glib__Type_list_values (in /mnt/store/Glib-1.200/blib/arch/auto/Glib/G +lib.so) ==1441== by 0x46A6BB: Perl_pp_entersub (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x464678: perl_run (in /usr/bin/perl-64) ==1441== by 0x41ECBB: main (in /usr/bin/perl-64) ==1441== Address 0x18 is not stack'd, malloc'd or (recently) free'd ==1441== ==1441== Process terminating with default action of signal 11 (SIGSEGV) ==1441== Access not within mapped region at address 0x18 ==1441== at 0xB6B8DA3: XS_Glib__Type_list_values (in /mnt/store/Glib-1.200/blib/arch/auto/Glib/G +lib.so) ==1441== by 0x46A6BB: Perl_pp_entersub (in /usr/bin/perl-64) ==1441== by 0x468C4D: Perl_runops_standard (in /usr/bin/perl-64) ==1441== by 0x464678: perl_run (in /usr/bin/perl-64) ==1441== by 0x41ECBB: main (in /usr/bin/perl-64) ==1441== ==1441== ERROR SUMMARY: 13 errors from 4 contexts (suppressed: 2 from 1) ==1441== malloc/free: in use at exit: 4,037,860 bytes in 47,757 blocks. ==1441== malloc/free: 78,690 allocs, 30,933 frees, 6,650,302 bytes allocated. ==1441== For counts of detected errors, rerun with: -v ==1441== searching for pointers to 47,757 not-freed blocks. ==1441== checked 4,214,824 bytes. ==1441== ==1441== LEAK SUMMARY: ==1441== definitely lost: 2,864 bytes in 48 blocks. ==1441== possibly lost: 1,752 bytes in 30 blocks. ==1441== still reachable: 4,033,244 bytes in 47,679 blocks. ==1441== suppressed: 0 bytes in 0 blocks. ==1441== Rerun with --leak-check=full to see details of leaked memory. Segmentation fault

Hmm...could this at all be related to UTF-8 support (or lack thereof)?
Direct Responses: 9659 | Write a response
Posted on 2009-01-06 19:00:14-08 by kaffee in response to 9555
Re: failing to compile in USE_ARCH=64 guise?
Yes, please provide all compiler warnings. The valgrind output suggests that you compiled Glib without debugging symbols. Those would be useful:
$ export PASTHRU_INC="-g"
And then rerun Makefile.PL and make. I don't think this is related to UTF-8 support, no.
Direct Responses: 9795 | Write a response
Posted on 2009-01-23 22:38:51-08 by gcb in response to 9659
Re: failing to compile in USE_ARCH=64 guise?
root:/mnt/storage/Glib-1.200$ perl Makefile.PL Including generated API documentation... Checking if your kit is complete... Looks good Unrecognized argument in LIBS ignored: '-pthread' Writing Makefile for Glib root:/mnt/storage/Glib-1.200$ make cp build/IFiles.pm blib/arch/Glib/Install/Files.pm cp Subclass.pm blib/lib/Glib/Object/Subclass.pm cp gperl.h blib/arch/Glib/Install/gperl.h cp Glib.pm blib/lib/Glib.pm cp GenPod.pm blib/lib/Glib/GenPod.pm cp CodeGen.pm blib/lib/Glib/CodeGen.pm cp gperl_marshal.h blib/arch/Glib/Install/gperl_marshal.h cp devel.pod blib/lib/Glib/devel.pod cp ParseXSDoc.pm blib/lib/Glib/ParseXSDoc.pm cp /mnt/storage/Glib-1.200/typemap blib/arch/Glib/Install/typemap cp doctypes blib/arch/Glib/Install/doctypes cp MakeHelper.pm blib/lib/Glib/MakeHelper.pm [ XS Glib.xs ] [ CC Glib.c ] Glib.xs: In function 'gperl_filename_from_sv': Glib.xs:109: warning: passing argument 4 of 'g_filename_from_utf8' from incompat ible pointer type [ XS GError.xs ] [ CC GError.c ] GError.xs: In function 'gperl_register_error_domain': GError.xs:118: warning: cast to pointer from integer of different size GError.xs: In function 'error_info_from_domain': GError.xs:154: warning: cast to pointer from integer of different size [ XS GUtils.xs ] [ CC GUtils.c ] [ XS GLog.xs ] [ CC GLog.c ] [ XS GType.xs ] [ CC GType.c ] GType.xs: In function 'gperl_register_fundamental': GType.xs:98: warning: cast to pointer from integer of different size GType.xs:99: warning: cast to pointer from integer of different size GType.xs: In function 'gperl_register_fundamental_full': GType.xs:168: warning: cast to pointer from integer of different size GType.xs: In function 'gperl_fundamental_type_from_package': GType.xs:183: warning: cast from pointer to integer of different size GType.xs: In function 'gperl_fundamental_package_from_type': GType.xs:200: warning: cast to pointer from integer of different size GType.xs: In function 'gperl_fundamental_wrapper_class_from_type': GType.xs:217: warning: cast to pointer from integer of different size GType.xs: In function 'find_handlers_for_type': GType.xs:1294: warning: cast to pointer from integer of different size GType.xs:1301: warning: cast to pointer from integer of different size GType.xs: In function 'prop_handler_install': GType.xs:1321: warning: cast to pointer from integer of different size GType.xs:1325: warning: cast to pointer from integer of different size GType.xs: In function 'prop_handler_lookup': GType.xs:1350: warning: cast to pointer from integer of different size GType.xs: In function 'install_overrides': GType.xs:1425: warning: cast to pointer from integer of different size GType.xs:1430: warning: cast from pointer to integer of different size GType.xs: In function 'gperl_type_base_init': GType.xs:1841: warning: cast to pointer from integer of different size GType.xs:1850: warning: cast from pointer to integer of different size GType.xs:1855: warning: cast from pointer to integer of different size [ XS GBoxed.xs ] [ CC GBoxed.c ] GBoxed.xs: In function 'gperl_register_boxed': GBoxed.xs:189: warning: cast to pointer from integer of different size GBoxed.xs: In function 'gperl_boxed_package_from_type': GBoxed.xs:249: warning: cast to pointer from integer of different size GBoxed.xs: In function 'gperl_new_boxed': GBoxed.xs:417: warning: cast to pointer from integer of different size GBoxed.xs: In function 'gperl_get_boxed_check': GBoxed.xs:470: warning: cast to pointer from integer of different size [ XS GObject.xs ] [ CC GObject.c ] GObject.xs: In function 'gperl_register_object': GObject.xs:333: warning: cast to pointer from integer of different size GObject.xs: In function 'gperl_object_set_no_warn_unreg_subclass': GObject.xs:487: warning: cast to pointer from integer of different size GObject.xs:488: warning: cast to pointer from integer of different size GObject.xs: In function 'gperl_object_get_no_warn_unreg_subclass': GObject.xs:503: warning: cast to pointer from integer of different size GObject.xs:503: warning: cast from pointer to integer of different size GObject.xs: In function 'gperl_object_package_from_type': GObject.xs:537: warning: cast to pointer from integer of different size GObject.xs:555: warning: cast to pointer from integer of different size GObject.xs:571: warning: cast to pointer from integer of different size GObject.xs: In function '_inc_ref_and_count': GObject.xs:985: warning: cast to pointer from integer of different size GObject.xs: In function 'XS_Glib__Object_DESTROY': GObject.xs:1097: warning: cast from pointer to integer of different size GObject.xs:1103: warning: cast to pointer from integer of different size [ XS GValue.xs ] [ CC GValue.c ] [ XS GClosure.xs ] [ CC GClosure.c ] [ XS GSignal.xs ] [ CC GSignal.c ] [ XS GMainLoop.xs ] [ CC GMainLoop.c ] [ XS GIOChannel.xs ] [ CC GIOChannel.c ] [ XS GParamSpec.xs ] [ CC GParamSpec.c ] GParamSpec.xs: In function 'gperl_register_param_spec': GParamSpec.xs:80: warning: cast to pointer from integer of different size GParamSpec.xs: In function 'gperl_param_spec_package_from_type': GParamSpec.xs:90: warning: cast to pointer from integer of different size GParamSpec.xs: In function 'find_func': GParamSpec.xs:109: warning: cast from pointer to integer of different size [ XS GKeyFile.xs ] [ CC GKeyFile.c ] [ XS GBookmarkFile.xs ] [ CC GBookmarkFile.c ] [ CC gperl-gtypes.c ] Running Mkbootstrap for Glib () chmod 644 Glib.bs rm -f blib/arch/auto/Glib/Glib.so [ LD blib/arch/auto/Glib/Glib.so ] chmod 755 blib/arch/auto/Glib/Glib.so cp Glib.bs blib/arch/auto/Glib/Glib.bs chmod 644 blib/arch/auto/Glib/Glib.bs Creating XS API documentation... Generating POD... Loaded 8 extra types from doctypes make: *** [build/podindex] Segmentation fault
Sorry for delay - spent the first 2 weeks of 2009 in hospital ;-/
Direct Responses: 9855 | Write a response
Posted on 2009-02-02 20:16:23-08 by kaffee in response to 9795
Re: failing to compile in USE_ARCH=64 guise?
Sorry to hear about the hospital thing. I looked through the compiler warnings. Some of them point to real problems, but most are harmless. And I think none of them are related to the crash you are seeing. The valgrind output you sent suggests that you compiled Glib without debugging symbols. Those would be useful:
$ export PASTHRU_INC="-g"
And then rerun Makefile.PL, make, and valgrind on the perl-64 binary:
$ valgrind --tool=memcheck --num-callers=100 /usr/bin/perl -I blib/arch -I blib/lib -MGlib::GenPod +-MGlib -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by the + gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice.\n}); +Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podindex));"
As as blind shot, can you try this patch and see if it changes anything?
Index: GType.xs =================================================================== --- GType.xs (revision 1064) +++ GType.xs (working copy) @@ -273,6 +273,10 @@ gperl_type_enum_get_values (GType enum_t GEnumClass * class; g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), NULL); class = gperl_type_class (enum_type); + if (!class) + croak ("failed to fetch the type class " + "for the enum type %d (%s)", + enum_type, g_type_name (enum_type)); return class->values; } @@ -282,6 +286,10 @@ gperl_type_flags_get_values (GType flags GFlagsClass * class; g_return_val_if_fail (G_TYPE_IS_FLAGS (flags_type), NULL); class = gperl_type_class (flags_type); + if (!class) + croak ("failed to fetch the type class " + "for the flags type %d (%s)", + flags_type, g_type_name (flags_type)); return class->values; }
$ patch -p0 < file.patch
Also, can we please move off cpanforum.com? Instead, send your reply to [kaffeetisch gmx de].
Direct Responses: 9856 | Write a response
Posted on 2009-02-02 20:17:40-08 by kaffee in response to 9855
Re: failing to compile in USE_ARCH=64 guise?
The valgrind invocation I suggested was using perl instead perl-64 again. Use:
$ valgrind --tool=memcheck --num-callers=100 /usr/bin/perl-64 -I blib/arch -I blib/lib -MGlib::GenP +od +-MGlib -e "add_types (qq(doctypes)); Glib::GenPod::set_copyright(qq{Copyright (C) 2003-2008 by + the + gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Glib> for a full notice. +\n}); +Glib::GenPod::set_main_mod(qq(Glib)); xsdoc2pod(q(build/doc.pl), q(blib/lib), q(build/podin +dex));"
Direct Responses: Write a response
Perl Weekly newsletter
A free weekly newsletter for people who are busy to read all the blogs. click here to check it out.