in glibc 2.7, asm/unistd.h is: # ifdef __i386__ # include "unistd_32.h" # else # include "unistd_64.h" # endif it must become: if(defined(&__i386__)) { require 'asm/unistd_32.ph'; } else { require 'asm/unistd_64.ph'; } diff -p -up utils/h2ph.PL.orig utils/h2ph.PL --- utils/h2ph.PL.orig 2009-08-07 12:24:51.000000000 +0200 +++ utils/h2ph.PL 2009-08-07 12:36:31.000000000 +0200 @@ -186,10 +186,15 @@ print OUT $t,"unless(defined(\&$name)) {\n sub $name () {\t",$new,";}\n}\n"; } } - } elsif (/^(include|import|include_next)\s*([<\"])(.*)[>\"]/) { + } elsif (/^(include|import|include_next)\s*([<\"])(.*)([>\"])/) { + $incl_type = $1; $incl_quote = $2; $incl = $3; + if ($4 eq '"') { + $incl = "$1$incl" if $file =~ m!(.*/)! && -e "$1$incl"; + } + if (($incl_type eq 'include_next') || ($opt_e && exists($bad_file{$incl}))) { $incl =~ s/\.h$/.ph/;