On 17 July 2014 14:22, <sisyph...@optusnet.com.au> wrote: > > From: demerphq > Sent: Thursday, July 17, 2014 7:25 PM > To: Sisyphus > Cc: inline@perl.org > > > When I moved the scripts out of a perl build tree it started behaving >> properly. IMO that issue can be left at "so dont do that". :-) >> > > AFAICT, the only difference between building in /git_tree/perl/Porting and > /somewhere/else is that instead of doing: > > cc -c -I"/git_tree/perl/Porting" -D_REENTRANT [...] FOO_1ef8.c > the build will do: > cc -c -I"/somewhere/else" -D_REENTRANT [...] FOO_1ef8.c > > All other commands that get run would be the same. (You could check this > by comparing the BUILD_NOISY outputs for both situations.) > > So I'm wondering whether, in the running of the above command, something > was found in "/git_tree/perl/Porting" that really ought not have been found > and loaded. >
Below is output from it failing and it suceeding (this is perlbrew 5.14.4): ~/git_tree/perl/Porting$ perl test_inline.pl validate Stage <-----------------------Information Section-----------------------------------> Information about the processing of your Inline C code: Your source code needs to be compiled. I'll use this build directory: /git_tree/perl/Porting/_Inline/build/test_inline_pl_21ea2 and I'll install the executable as: /git_tree/perl/Porting/_Inline/lib/auto/test_inline_pl_21ea2/test_inline_pl_21ea2.so get_maps Stage The following Inline C function(s) have been successfully bound to Perl: void greet(char * name) <-----------------------End of Information Section----------------------------> Starting Build Preprocess Stage Finished Build Preprocess Stage Starting Build Parse Stage Finished Build Parse Stage Starting Build Glue 1 Stage Finished Build Glue 1 Stage Starting Build Glue 2 Stage Finished Build Glue 2 Stage Starting Build Glue 3 Stage Finished Build Glue 3 Stage Starting Build Compile Stage Starting "perl Makefile.PL" Stage Writing Makefile for test_inline_pl_21ea2 Writing MYMETA.yml Finished "perl Makefile.PL" Stage Starting "make" Stage /home/yorton/perl5/perlbrew/perls/perl-5.14.4/bin/perl /home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/ExtUtils/xsubpp -typemap "/home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/ExtUtils/typemap" test_inline_pl_21ea2.xs > test_inline_pl_21ea2.xsc && mv test_inline_pl_21ea2.xsc test_inline_pl_21ea2.c make: *** No rule to make target `../../../../fakethr.h', needed by `test_inline_pl_21ea2.o'. Stop. A problem was encountered while attempting to compile and install your Inline C code. The command that failed was: "make" with error code 2 The build directory was: /git_tree/perl/Porting/_Inline/build/test_inline_pl_21ea2 To debug the problem, cd to the build directory, and inspect the output files. at test_inline.pl line 0. ...propagated at /home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/Inline/C.pm line 834. INIT failed--call queue aborted. ######################################################################################### If I build outside of my perl git checkout: ######################################################################################### ~/git_tree/hashy$ perl test_inline.pl validate Stage <-----------------------Information Section-----------------------------------> Information about the processing of your Inline C code: Your source code needs to be compiled. I'll use this build directory: /git_tree/hashy/_Inline/build/test_inline_pl_21ea and I'll install the executable as: /git_tree/hashy/_Inline/lib/auto/test_inline_pl_21ea/test_inline_pl_21ea.so get_maps Stage The following Inline C function(s) have been successfully bound to Perl: void greet(char * name) <-----------------------End of Information Section----------------------------> Starting Build Preprocess Stage Finished Build Preprocess Stage Starting Build Parse Stage Finished Build Parse Stage Starting Build Glue 1 Stage Finished Build Glue 1 Stage Starting Build Glue 2 Stage Finished Build Glue 2 Stage Starting Build Glue 3 Stage Finished Build Glue 3 Stage Starting Build Compile Stage Starting "perl Makefile.PL" Stage Writing Makefile for test_inline_pl_21ea Writing MYMETA.yml Finished "perl Makefile.PL" Stage Starting "make" Stage /home/yorton/perl5/perlbrew/perls/perl-5.14.4/bin/perl /home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/ExtUtils/xsubpp -typemap "/home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/ExtUtils/typemap" test_inline_pl_21ea.xs > test_inline_pl_21ea.xsc && mv test_inline_pl_21ea.xsc test_inline_pl_21ea.c cc -c -I"/git_tree/hashy" -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/x86_64-linux/CORE" test_inline_pl_21ea.c Running Mkbootstrap for test_inline_pl_21ea () chmod 644 test_inline_pl_21ea.bs rm -f blib/arch/auto/test_inline_pl_21ea/test_inline_pl_21ea.so cc -shared -O2 -L/usr/local/lib -fstack-protector test_inline_pl_21ea.o -o blib/arch/auto/test_inline_pl_21ea/test_inline_pl_21ea.so \ \ chmod 755 blib/arch/auto/test_inline_pl_21ea/test_inline_pl_21ea.so cp test_inline_pl_21ea.bs blib/arch/auto/test_inline_pl_21ea/ test_inline_pl_21ea.bs chmod 644 blib/arch/auto/test_inline_pl_21ea/test_inline_pl_21ea.bs Finished "make" Stage Starting "make install" Stage Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Finished "make install" Stage Starting Cleaning Up Stage Finished Cleaning Up Stage Finished Build Compile Stage Hello Ingy! Hello 42! -- perl -Mre=debug -e "/just|another|perl|hacker/"