On Thu, Sep 15, 2011 at 10:44, David E. Wheeler <da...@kineticode.com> wrote:
> Hackers,
>
> Since installing Perl 5.14.1, I installed newer version of ExtUtils::ParseXS 
> from CPAN. I installed it with `make install UNINST=1`, which removes the 
> copy of xsubpp that ships with core Perl. This results in an error during 
> PostgreSQL `make`:
>
> make -C plperl install
> gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith 
> -Wdeclaration-after-statement -Wendif-labels -Wformat-security 
> -fno-strict-aliasing -fwrapv  -I. -I. -I../../../src/include 
> -I/usr/local/include/libxml2  -I/usr/local/include 
> -I/usr/local/lib/perl5/5.14.1/darwin-thread-multi-2level/CORE  -c -o plperl.o 
> plperl.c
> '/usr/local/bin/perl' /usr/local/lib/perl5/5.14.1/ExtUtils/xsubpp -typemap 
> /usr/local/lib/perl5/5.14.1/ExtUtils/typemap SPI.xs >SPI.c
> Can't open perl script "/usr/local/lib/perl5/5.14.1/ExtUtils/xsubpp": No such 
> file or directory
>
> I [asked][] Perl 5 Porters for the proper way to find xsubpp, and was 
> [told][] that it was probably best to look in @Config{qw(installsitebin 
> installvendorbin installbin)}.

Doesn't work for me :-( I have:
          'installbin' => '/usr/bin',
          'installsitebin' => '/usr/bin',
          'installvendorbin' => '/usr/bin',
          'installscript' => '/usr/bin/core_perl',
          'installprivlib' => '/usr/share/perl5/core_perl',
          'installsitescript' => '/usr/bin/site_perl',

$ ls /usr/bin/xsubpp
ls: cannot access /usr/bin/xsubpp: No such file or directory

$ ls /usr/bin/core_perl/xsubpp
/usr/bin/core_perl/xsubpp

The worst part is it tells me I need to configure with --with-perl.
Seems it complaining that it couldn't find xsubpp, I did configure
with perl!

Normally it uses the one in /usr/share/perl5/core_perl/ExtUtils/xsubpp.

Also it looks like it uses the wrong typemap file, still uses the one
from privlib.

So then I tried to install the newer ExtUtils::ParseXS to see where it
installed xsubpp for me. It reports:
...
Installing /usr/share/perl5/site_perl/ExtUtils/xsubpp
....
Installing /usr/bin/site_perl/xsubpp

Looking at its makefile looks like installs xsubpp into
installsitescript. Seems  install(site|vendor)bin is quite right :-(.

ExtUtils searches @INC, privlibexp maybe we should do that?

ExtUtils/MM_Unix.pm:

# line 3456
sub tool_xsubpp {
....
    my @xsubpp_dirs = @INC;

    # Make sure we pick up the new xsubpp if we're building perl.
    unshift @xsubpp_dirs, $self->{PERL_LIB} if $self->{PERL_CORE};

    foreach my $dir (@xsubpp_dirs) {
        $xsdir = $self->catdir($dir, 'ExtUtils');
        if( -r $self->catfile($xsdir, "xsubpp") ) {
            last;
        }
    }

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to