Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails

Поиск
Список
Период
Сортировка
От Steve Waltner
Тема Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails
Дата
Msg-id AD4CE0D0-8C61-4D7E-BA37-C2B7A9CA14E5@engenio.com
обсуждение исходный текст
Ответ на Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails  (Steve Waltner <steve.waltner@engenio.com>)
Ответы Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails  (Peter Eisentraut <peter_e@gmx.net>)
Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails  ("Paul D. Smith" <psmith@gnu.org>)
Список pgsql-ports
I tried the following:

- Compile PgSQL versions 8.1.2, 8.0.7, 7.4.12 on this new system and
another similar system
- Install readline 5.1 and repeat the above
- "gmake -j 4" on 8 CPU system
- Compile PgSQL 8.1.3 on the original system I loaded PgSQL onto

The first three failed, but the last completed successfully. Looking
further into the failure, I noticed that the build that completed was
running an old version of GNU make (3.79.1), while the failures
occurred with GNU make 3.81beta2. We installed the GNU make 3.81beta2
http://make.paulandlesley.org/make-3.81beta2.tar.bz2 to solve the
problem of getting "interrupted system call" errors when running
parallel builds with the source code stored on a NFS server. I
haven't seen any other software packages fail to build when using
this GNU make.

There might be something screwy in the PostgreSQL makefiles though
since I did notice the following behavior.

GNU make 3.81beta2 initial build
==========================
[snip]
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-
labels -fno-strict-aliasing -DFRONTEND -I../../../src/bin/pg_dump -
I../../../src/bin/psql -I../../../src/interfaces/libpq -I../../../src/
include -I/soft/gnu/readline/5.1/include  -c -o createdb.o createdb.c
[snip]
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-
labels -fno-strict-aliasing -DFRONTEND -I../../../src/bin/pg_dump -
I../../../src/bin/psql -I../../../src/interfaces/libpq -I../../../src/
include -I/soft/gnu/readline/5.1/include -L../../../src/port  -Wl,-R/
usr/local/postgresql-8.1.3/lib  createdb.c createdb.o common.o
dumputils.o ../../../src/backend/parser/keywords.o   -o createdb
ld: fatal: symbol `main' is multiply-defined:
         (file /tmp/ccIwnYOH.o type=FUNC; file createdb.o type=FUNC);
ld: fatal: File processing errors. No output written to createdb
==========================

GNU make 3.81beta2 second build (ie: don't run "gmake clean")
==========================
[snip]
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-
labels -fno-strict-aliasing createdb.o common.o dumputils.o ../../../
src/backend/parser/keywords.o -L../../../src/port -lpgport -L../../../
src/interfaces/libpq -lpq -L../../../src/port  -Wl,-R/usr/local/
postgresql-8.1.3/lib -lpgport -lz -lreadline -ltermcap -lrt -lresolv -
lgen -lsocket -lnsl -ldl -lm  -o createdb
[snip]
==========================

GNU make 3.80 initial build
==========================
[snip]
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-
labels -fno-strict-aliasing -DFRONTEND -I../../../src/bin/pg_dump -
I../../../src/bin/psql -I../../../src/interfaces/libpq -I../../../src/
include -I/soft/gnu/readline/5.1/include  -c -o createdb.o createdb.c
[snip]
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-
labels -fno-strict-aliasing createdb.o common.o dumputils.o ../../../
src/backend/parser/keywords.o -L../../../src/port -lpgport -L../../../
src/interfaces/libpq -lpq -L../../../src/port  -Wl,-R/usr/local/
postgresql-8.1.3/lib -lpgport -lz -lreadline -ltermcap -lrt -lresolv -
lgen -lsocket -lnsl -ldl -lm  -o createdb
[snip]
==========================

This problem is not isolated to the createdb command. It happened on
every single binary in .../src/bin/scripts/. I needed to run the
build 10 times to make it through this directory when using the
latest version of GNU make. Note that the initial build of the files
in .../src/bin/scripts/ that fail all have greatly different syntax
on the link command than the ones that link properly. When the make
is run using the released version of GNU make or a when the link is
reattempted with 3.81beta2, the link arguments are much different.

I've gotten the software compile, but wanted to make sure people were
aware of this issue.

Steve

On Feb 22, 2006, at 11:52 AM, Steve Waltner wrote:
> Not on this system.
>
> I successfully compiled version 7.2.1 on a different Solaris 9
> system back in Nov 2004. I could always copy that installation across.
>
> I receive the same "main multiply-defined" error when trying to
> compile PostgreSQL 8.0.7 and 8.1.2 on this same system. I'm trying
> 7.4.12 now and will also install readline to see if the "./
> configure --without-readline" option is giving me trouble.
>
> Steve
>
> On Feb 22, 2006, at 11:33 AM, Mark Round wrote:
>> Do you have an older version of PostgreSQL installed ?
>>
>> On 2/22/06, Steve Waltner <steve.waltner@engenio.com> wrote:
>>> I have been unable to get PostreSQL 8.1.3 to compile on Solaris 9.

В списке pgsql-ports по дате отправления:

Предыдущее
От: Steve Waltner
Дата:
Сообщение: Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: Solaris 9 and PgSQL 8.1.3 - createdb Link Fails