develooper Front page | perl.perl5.porters | Postings from October 2008

Haiku Port

Thread Next
From:
Ingo Weinhold
Date:
October 27, 2008 08:35
Subject:
Haiku Port
Message ID:
20081027163732.393.3@knochen-vm.localdomain
Howdy,

I've been working on porting Perl 5.10.0 to Haiku (an open source BeOS 
clone, cf. http://haiku-os.org) and so far things look fine. All but five 
tests pass. Four of them can be explained by bugs in Haiku or missing 
features, one is puzzling me, though:


8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8<

/Temp/ports/perl/perl-5.10.0/t> ./perl harness ../lib/Module/Build/t/xs.t
../lib/Module/Build/t/xs....ok 9/22Can't exec "FOO=BAR": No such file or 
directory at 
/Temp/ports/perl/perl-5.10.0/t/../lib/ExtUtils/CBuilder/Base.pm line 225.

#   Failed test at ../lib/Module/Build/t/xs.t line 94.
../lib/Module/Build/t/xs....NOK 12/22#          got: 'error building 
blib/arch/auto/Simple/Simple.so from lib/Simple.o at 
/Temp/ports/perl/perl-5.10.0/t/../lib/ExtUtils/CBuilder/Base.pm line 213.
# '
#     expected: ''
../lib/Module/Build/t/xs....ok 20/22# Looks like you failed 1 test of 22.   
 
../lib/Module/Build/t/xs....dubious                                         
 
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 12
        Failed 1/22 tests, 95.45% okay
Failed Test                Stat Wstat Total Fail  List of Failed
----------------------------------------------------------------------------
---
../lib/Module/Build/t/xs.t    1   256    22    1  12
Failed 1/1 test scripts. 1/22 subtests failed.
Files=1, Tests=22, 13 wallclock secs ( 4.45 cusr +  2.68 csys =  7.13 CPU)
Failed 1/1 test programs. 1/22 subtests failed.

8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8< 8<


In lib/ExtUtils/CBuilder/Base.pm line 213 we find an invocation of 
do_system(), which in subtest 9 gets passed the following:

  FOO=BAR gcc -shared -o blib/arch/auto/Simple/Simple.so lib/Simple.o

Since Perl's built-in system() doesn't seem to understand the "FOO=BAR" as 
an environment variable assignment, it ends up calling execvp() with 
"FOO=BAR" as file argument, which unsurprisingly fails with ENOENT.

If I understand the test correctly it does indeed try to push "FOO=BAR" 
into the linker's environment. I'm clueless why this isn't handled 
correctly, though. Can anyone tell me what's going wrong here?

Thanks!

CU, Ingo

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About