PG still fussy to compile on Solaris + GCC, may still need Sun ld
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
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
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
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
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