Thread: PlPerl compile failure

PlPerl compile failure

From
Bruce Momjian
Date:
I am seeing this error in CVS current:

gmake -f Makefile all
gmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
LD_RUN_PATH="" ld -o blib/arch/auto/plperl/plperl.so  -shared -x  -L/usr/X11/lib -L/usr/local/lib plperl.o eloglvl.o
SPI.o-rdynamic -Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE  -L/usr/X11/lib -L/usr/local/lib
/usr/libdata/perl5/5.00503/i386-bsdos/auto/DynaLoader/DynaLoader.a-L/usr/libdata/perl5/5.00503/i386-bsdos/CORE -lperl
-ldl-lm -lc    
 

ld: -r and -shared may not be used together
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gmake[1]: *** [blib/arch/auto/plperl/plperl.so] Error 1
gmake[1]: Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
gmake: *** [all] Error 2

Can anyone suggest a fix?  Everything else compiles fine.  I am on
BSD/OS.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: PlPerl compile failure

From
Alex Pilosov
Date:
That's me fault. I'm reading up on bsdos documentation to see what's the
right way to run ld on it.

Can you give me output of 'perl -MExtUtils::Embed -e ldopts' and 'perl -V'
on your machine?

Thanks



On Tue, 19 Jun 2001, Bruce Momjian wrote:

> I am seeing this error in CVS current:
> 
> gmake -f Makefile all
> gmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
>
> LD_RUN_PATH="" ld -o blib/arch/auto/plperl/plperl.so -shared -x
> -L/usr/X11/lib -L/usr/local/lib plperl.o eloglvl.o SPI.o -rdynamic
> -Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE -L/usr/X11/lib
> -L/usr/local/lib
> /usr/libdata/perl5/5.00503/i386-bsdos/auto/DynaLoader/DynaLoader.a
> -L/usr/libdata/perl5/5.00503/i386-bsdos/CORE -lperl -ldl -lm -lc
> 
> ld: -r and -shared may not be used together
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> gmake[1]: *** [blib/arch/auto/plperl/plperl.so] Error 1
> gmake[1]: Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> gmake: *** [all] Error 2
> 
> Can anyone suggest a fix?  Everything else compiles fine.  I am on
> BSD/OS.
> 
> 



Re: PlPerl compile failure

From
Bruce Momjian
Date:
Output attached.


> That's me fault. I'm reading up on bsdos documentation to see what's the
> right way to run ld on it.
>
> Can you give me output of 'perl -MExtUtils::Embed -e ldopts' and 'perl -V'
> on your machine?
>
> Thanks
>
>
>
> On Tue, 19 Jun 2001, Bruce Momjian wrote:
>
> > I am seeing this error in CVS current:
> >
> > gmake -f Makefile all
> > gmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> >
> > LD_RUN_PATH="" ld -o blib/arch/auto/plperl/plperl.so -shared -x
> > -L/usr/X11/lib -L/usr/local/lib plperl.o eloglvl.o SPI.o -rdynamic
> > -Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE -L/usr/X11/lib
> > -L/usr/local/lib
> > /usr/libdata/perl5/5.00503/i386-bsdos/auto/DynaLoader/DynaLoader.a
> > -L/usr/libdata/perl5/5.00503/i386-bsdos/CORE -lperl -ldl -lm -lc
> >
> > ld: -r and -shared may not be used together
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > gmake[1]: *** [blib/arch/auto/plperl/plperl.so] Error 1
> > gmake[1]: Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> > gmake: *** [all] Error 2
> >
> > Can anyone suggest a fix?  Everything else compiles fine.  I am on
> > BSD/OS.
> >
> >
>
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

-rdynamic -Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE  -L/usr/X11/lib -L/usr/local/lib
/usr/libdata/perl5/5.00503/i386-bsdos/auto/DynaLoader/DynaLoader.a-L/usr/libdata/perl5/5.00503/i386-bsdos/CORE -lperl
-ldl-lm -lc 


Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=bsdos, osvers=4.2, archname=i386-bsdos
    uname='bsdos bsdi.com 4.2 :bsdos_distribution defined: i386'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O2', gccversion=2.95.2 19991024 (release)
    cppflags='-I/usr/local/include'
    ccflags ='-I/usr/local/include'
    stdchar='char', d_stdstdio=undef, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='ld', ldflags =' -L/usr/X11/lib -L/usr/local/lib'
    libpth=/usr/local/lib /usr/shlib /shlib /lib /usr/lib /usr/X11/lib
    libs=-ldl -lm -lc
    libc=/shlib/libc.so, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic
-Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -x  -L/usr/X11/lib -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Built under bsdos
  Compiled at Oct  8 2000 21:58:54
  @INC:
    /usr/libdata/perl5/5.00503/i386-bsdos
    /usr/libdata/perl5/5.00503
    /usr/libdata/perl5/site_perl/i386-bsdos
    /usr/libdata/perl5/site_perl
    /usr/libdata/perl5/site_perl/i386-bsdos/include
    .

Re: PlPerl compile failure

From
Alex Pilosov
Date:
Bruce, try the following patch, and let me know.

Apparently, on some systems, ExtUtils::Embed and MakeMaker are slightly
broken, and its impossible to make a shared library when compiling with
both CCDLFLAGS and LDDLFAGS, you have to pick one or the other.

Index: Makefile.PL
===================================================================
RCS file: /home/cvs/pgsql/pgsql/src/pl/plperl/Makefile.PL,v
retrieving revision 1.12.1000.1
diff --unified -r1.12.1000.1 Makefile.PL
--- Makefile.PL 2001/06/16 23:18:04     1.12.1000.1
+++ Makefile.PL 2001/06/19 14:10:33
@@ -29,8 +29,11 @@       exit(0);}
+my $ldopts=ldopts();
+$ldopts=~s/$Config{ccdlflags}//;
+WriteMakefile( 'NAME' => 'plperl', 
-       dynamic_lib => { 'OTHERLDFLAGS' =>  ldopts() } ,
+       dynamic_lib => { 'OTHERLDFLAGS' =>  $ldopts } ,       INC => "$ENV{EXTRA_INCLUDES}",       XS => { 'SPI.xs' =>
'SPI.c'},       OBJECT => 'plperl.o eloglvl.o SPI.o',
 


On Tue, 19 Jun 2001, Bruce Momjian wrote:

> 
> Output attached.
> 
> 
> > That's me fault. I'm reading up on bsdos documentation to see what's the
> > right way to run ld on it.
> > 
> > Can you give me output of 'perl -MExtUtils::Embed -e ldopts' and 'perl -V'
> > on your machine?
> > 
> > Thanks
> > 
> > 
> > 
> > On Tue, 19 Jun 2001, Bruce Momjian wrote:
> > 
> > > I am seeing this error in CVS current:
> > > 
> > > gmake -f Makefile all
> > > gmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> > >
> > > LD_RUN_PATH="" ld -o blib/arch/auto/plperl/plperl.so -shared -x
> > > -L/usr/X11/lib -L/usr/local/lib plperl.o eloglvl.o SPI.o -rdynamic
> > > -Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE -L/usr/X11/lib
> > > -L/usr/local/lib
> > > /usr/libdata/perl5/5.00503/i386-bsdos/auto/DynaLoader/DynaLoader.a
> > > -L/usr/libdata/perl5/5.00503/i386-bsdos/CORE -lperl -ldl -lm -lc
> > > 
> > > ld: -r and -shared may not be used together
> > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > gmake[1]: *** [blib/arch/auto/plperl/plperl.so] Error 1
> > > gmake[1]: Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> > > gmake: *** [all] Error 2
> > > 
> > > Can anyone suggest a fix?  Everything else compiles fine.  I am on
> > > BSD/OS.
> > > 
> > > 
> > 
> > 
> 
> 



Re: PlPerl compile failure

From
Bruce Momjian
Date:
The fix worked.  Thanks.  Patch applied.

> Bruce, try the following patch, and let me know.
> 
> Apparently, on some systems, ExtUtils::Embed and MakeMaker are slightly
> broken, and its impossible to make a shared library when compiling with
> both CCDLFLAGS and LDDLFAGS, you have to pick one or the other.
> 
> Index: Makefile.PL
> ===================================================================
> RCS file: /home/cvs/pgsql/pgsql/src/pl/plperl/Makefile.PL,v
> retrieving revision 1.12.1000.1
> diff --unified -r1.12.1000.1 Makefile.PL
> --- Makefile.PL 2001/06/16 23:18:04     1.12.1000.1
> +++ Makefile.PL 2001/06/19 14:10:33
> @@ -29,8 +29,11 @@
>         exit(0);
>  }
>  
> +my $ldopts=ldopts();
> +$ldopts=~s/$Config{ccdlflags}//;
> +
>  WriteMakefile( 'NAME' => 'plperl', 
> -       dynamic_lib => { 'OTHERLDFLAGS' =>  ldopts() } ,
> +       dynamic_lib => { 'OTHERLDFLAGS' =>  $ldopts } ,
>         INC => "$ENV{EXTRA_INCLUDES}",
>         XS => { 'SPI.xs' => 'SPI.c' },
>         OBJECT => 'plperl.o eloglvl.o SPI.o',
> 
> 
> On Tue, 19 Jun 2001, Bruce Momjian wrote:
> 
> > 
> > Output attached.
> > 
> > 
> > > That's me fault. I'm reading up on bsdos documentation to see what's the
> > > right way to run ld on it.
> > > 
> > > Can you give me output of 'perl -MExtUtils::Embed -e ldopts' and 'perl -V'
> > > on your machine?
> > > 
> > > Thanks
> > > 
> > > 
> > > 
> > > On Tue, 19 Jun 2001, Bruce Momjian wrote:
> > > 
> > > > I am seeing this error in CVS current:
> > > > 
> > > > gmake -f Makefile all
> > > > gmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> > > >
> > > > LD_RUN_PATH="" ld -o blib/arch/auto/plperl/plperl.so -shared -x
> > > > -L/usr/X11/lib -L/usr/local/lib plperl.o eloglvl.o SPI.o -rdynamic
> > > > -Wl,-rpath,/usr/libdata/perl5/5.00503/i386-bsdos/CORE -L/usr/X11/lib
> > > > -L/usr/local/lib
> > > > /usr/libdata/perl5/5.00503/i386-bsdos/auto/DynaLoader/DynaLoader.a
> > > > -L/usr/libdata/perl5/5.00503/i386-bsdos/CORE -lperl -ldl -lm -lc
> > > > 
> > > > ld: -r and -shared may not be used together
> > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > gmake[1]: *** [blib/arch/auto/plperl/plperl.so] Error 1
> > > > gmake[1]: Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/pl/plperl'
> > > > gmake: *** [all] Error 2
> > > > 
> > > > Can anyone suggest a fix?  Everything else compiles fine.  I am on
> > > > BSD/OS.
> > > > 
> > > > 
> > > 
> > > 
> > 
> > 
> 
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026