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

Started by PostgreSQL Bugs Listover 25 years ago5 messagesbugs
Jump to latest
#1PostgreSQL Bugs List
pgsql-bugs@postgresql.org

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, but required hacking to get "make install" to run to completion.

Sample Code

No file was uploaded with this report

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PostgreSQL Bugs List (#1)
Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

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

#3Matt Benjamin
matt@linuxbox.nu
In reply to: Tom Lane (#2)
Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

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:

Show quoted text

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Matt Benjamin (#3)
Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

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

#5Matt Benjamin
matt@linuxbox.nu
In reply to: Tom Lane (#4)
Re: PG still fussy to compile on Solaris + GCC, may still need Sun ld

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:

Show quoted text

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