Thread: PG still fussy to compile on Solaris + GCC, may still need Sun ld

PG still fussy to compile on Solaris + GCC, may still need Sun ld

From
pgsql-bugs@postgresql.org
Date:
Matt Benjamin (matt@linuxbox.nu) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
PG still fussy to compile on Solaris + GCC, may still need Sun ld

Long Description
I found that on my Solaris 8, Sparc system with GCC and GNU Binutils,
there was one major and one minor hassle:

1. PG libs failed to link with GCC + GNU ld -- switching to Sun ld fixed this

2. PG Perl interface Makefile.PL produced Sun compiler options for compiling PG.c, e.g., "-KPIC", etc.  Easy to fix,
butrequired hacking to get "make install" to run to completion. 

Sample Code


No file was uploaded with this report

Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

From
Tom Lane
Date:
pgsql-bugs@postgresql.org writes:
> 2. PG Perl interface Makefile.PL produced Sun compiler options for
> compiling PG.c, e.g., "-KPIC", etc.

We deliberately try to build the Perl interface with the same compiler
and options that the local Perl installation claims it was built with,
regardless of what you are building Postgres with.  Experience so far
on multi-compiler platforms is that it's much more likely that the
interface will actually work if built that way (remember it's going to
link into the Perl executable, not into Postgres).

Did it not work if you just let the makefile do what it wanted?

            regards, tom lane

Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

From
Tom Lane
Date:
Matt Benjamin <matt@linuxbox.nu> writes:
> What do you mean, "do what it wanted?"  The configure script produced a
> setup that would not build a perl interface, and the error was related to
> SunWS compiler options.

> Sounds like half my problem was using the Perl5 that Sun provides with
> Solaris 8. . .

Urgh, could be.  If you'd built and installed Perl yourself, it'd be a
pretty good bet that it'd report a compiler name and switches that would
actually work on your box.  If you're using a vendor-supplied Perl then
I could see how there might be a problem: perhaps they used a compiler
different from the one you have.

Not sure what we could/should do about this.  We used to try to force
the perl5 interface to be built with the same compiler/switches used for
Postgres. Our current behavior (ie, just accepting MakeMaker's stored
recollection of the Perl build setup) was chosen after getting reports
that that didn't work either, on machines where there was actually some
material difference.  Seems like we lose either way, just on different
machines...

> The larger problem was of linking the PG libs.  I had a copy of Sun ld
> around, but, since this (somehow, like the compiler) doesn't come with the
> OS, it is a safe bet that a fair number of folks won't have it.

I'd argue that that means GNU ld is broken on your platform, and you
ought to be complaining to the bintools people about it.  Postgres
doesn't do anything particularly out-of-the-ordinary as far as the
linker is concerned.

            regards, tom lane

Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

From
Matt Benjamin
Date:
Okay, thanks for the help.


Matt

Matt Benjamin President/CTO

The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

tel. 734-761-4689
fax. 734-769-8938
pgr. 734-431-0118

On Sat, 2 Sep 2000, Tom Lane wrote:

> Matt Benjamin <matt@linuxbox.nu> writes:
> > What do you mean, "do what it wanted?"  The configure script produced a
> > setup that would not build a perl interface, and the error was related to
> > SunWS compiler options.
>
> > Sounds like half my problem was using the Perl5 that Sun provides with
> > Solaris 8. . .
>
> Urgh, could be.  If you'd built and installed Perl yourself, it'd be a
> pretty good bet that it'd report a compiler name and switches that would
> actually work on your box.  If you're using a vendor-supplied Perl then
> I could see how there might be a problem: perhaps they used a compiler
> different from the one you have.
>
> Not sure what we could/should do about this.  We used to try to force
> the perl5 interface to be built with the same compiler/switches used for
> Postgres. Our current behavior (ie, just accepting MakeMaker's stored
> recollection of the Perl build setup) was chosen after getting reports
> that that didn't work either, on machines where there was actually some
> material difference.  Seems like we lose either way, just on different
> machines...
>
> > The larger problem was of linking the PG libs.  I had a copy of Sun ld
> > around, but, since this (somehow, like the compiler) doesn't come with the
> > OS, it is a safe bet that a fair number of folks won't have it.
>
> I'd argue that that means GNU ld is broken on your platform, and you
> ought to be complaining to the bintools people about it.  Postgres
> doesn't do anything particularly out-of-the-ordinary as far as the
> linker is concerned.
>
>             regards, tom lane
>

Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

From
Matt Benjamin
Date:
Hi Tom,

What do you mean, "do what it wanted?"  The configure script produced a
setup that would not build a perl interface, and the error was related to
SunWS compiler options.

The larger problem was of linking the PG libs.  I had a copy of Sun ld
around, but, since this (somehow, like the compiler) doesn't come with the
OS, it is a safe bet that a fair number of folks won't have it.

Sounds like half my problem was using the Perl5 that Sun provides with
Solaris 8. . .


Matt


Matt Benjamin President/CTO

The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

tel. 734-761-4689
fax. 734-769-8938
pgr. 734-431-0118

On Sat, 2 Sep 2000, Tom Lane wrote:

> pgsql-bugs@postgresql.org writes:
> > 2. PG Perl interface Makefile.PL produced Sun compiler options for
> > compiling PG.c, e.g., "-KPIC", etc.
>
> We deliberately try to build the Perl interface with the same compiler
> and options that the local Perl installation claims it was built with,
> regardless of what you are building Postgres with.  Experience so far
> on multi-compiler platforms is that it's much more likely that the
> interface will actually work if built that way (remember it's going to
> link into the Perl executable, not into Postgres).
>
> Did it not work if you just let the makefile do what it wanted?
>
>             regards, tom lane
>