Re: AIX 4.3.1, 7.0.3 build annoyances: C++ comments, make all, macro problem

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: AIX 4.3.1, 7.0.3 build annoyances: C++ comments, make all, macro problem
Дата
Msg-id Pine.LNX.4.30.0101022122570.758-100000@peter.localdomain
обсуждение исходный текст
Ответ на Re: AIX 4.3.1, 7.0.3 build annoyances: C++ comments, make all, macro problem  ("Travis W. Pouarz" <twp1@duke.edu>)
Список pgsql-bugs
Travis W. Pouarz writes:

> ar crs libpgtcl.a pgtcl.o pgtclCmds.o pgtclId.o
> touch libpgtcl.a
> ../../../src/backend/port/aix/mkldexport.sh libpgtcl.a > libpgtcl.exp
> cc -O -qtune=p2sc -qmaxmem=8192 -Wl,-H512 -Wl,-bM:SRE
> -Wl,-bI:../../../src/backend/postgres.imp -Wl,-bE:libpgtcl.exp -o
> libpgtcl.so libpgtcl.a
> -L/.../austin.ibm.com/fs/projects/gsys/pkg/readline-4.1/lib
> -L/.../austin.ibm.com/fs/projects/gsys/lib
> -L/.../austin.ibm.com/fs/projects/gsys/pkg/readline-4.1/lib
> -L/.../austin.ibm.com/fs/projects/gsys/lib
> -L../../../src/interfaces/libpq -lpq  -lc
> ...
> ld: 0711-317 ERROR: Undefined symbol: .Tcl_SetVar2
> ld: 0711-317 ERROR: Undefined symbol: .Tcl_SetVar
> ld: 0711-317 ERROR: Undefined symbol: .Tcl_AppendResult
> ld: 0711-317 ERROR: Undefined symbol: .Tcl_Preserve
> ...

On other platforms it is not an error if a shared library link leaves
unresolved symbols.  (I'm not totally convinced whether this is desirable,
but that's the way we have set them up.)  On AIX >=4 it should work to add
the option -Wl,-berok ("external references okay") at an opportune place
in src/makefiles/Makefile.aix.  Please try that.

>   so I added -ltcl8.0 to LDFLAGS in src/Makefile.global:

Hmm, I guess one reason that this is not done by default is to allow using
libpgtcl with various Tcl versions, to be decided at the time the
executable is linked.  Not sure if this is really feasible, though.

> /.../austin.ibm.com/fs/projects/gsys/lib/tcl8.0/ldAix /bin/ld -bhalt:4
> -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -o pltcl.so pltcl.o
> -L/.../austin.ibm.com/fs/projects/gsys/lib -ltcl8.0 -lld  -lm -lbsd -lc
> noDotA="pltcl.so"
> ld: 0711-317 ERROR: Undefined symbol: .nocachegetattr
> ld: 0711-317 ERROR: Undefined symbol: .heap_getsysattr
> ld: 0711-317 ERROR: Undefined symbol: .SearchSysCache
> ld: 0711-317 ERROR: Undefined symbol: .elog
> ld: 0711-317 ERROR: Undefined symbol: .ReleaseSysCache
> ld: 0711-317 ERROR: Undefined symbol: .OidFunctionCall3
> ld: 0711-317 ERROR: Undefined symbol: .pfree
> ld: 0711-317 ERROR: Undefined symbol: Warn_restart
> ld: 0711-317 ERROR: Undefined symbol: .FunctionCall3
> ld: 0711-317 ERROR: Undefined symbol: .SPI_execp
> ld: 0711-317 ERROR: Undefined symbol: SPI_processed
> ld: 0711-317 ERROR: Undefined symbol: SPI_tuptable
> ...

Okay, same answer as above here really, but unfortunately we're using the
magic flags provided by Tcl here, so either we override them (or augment
them) in the AIX case, or we do something like

>   so I added -bI:/tmp/postgresql-snapshot/src/backend/postgres.imp to TCL_SHLIB_LD
>   in src/pl/tcl/Makefile.tcldefs:

The -Wl,-berok will lose on AIX 3*, so if anyone cares run run PG with Tcl
on that platform we'll have to think harder.

--
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/

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

Предыдущее
От: "Travis W. Pouarz"
Дата:
Сообщение: Re: AIX 4.3.1, 7.0.3 build annoyances: C++ comments, make all, macro problem
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: PostgreSQL 7.0.3: Memory leak in ESQL library