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
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: > 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 >
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 >