Thread: Which library has these symbols?

Which library has these symbols?

From
"Mohan, Ross"
Date:
So Close, Yet So Far!



Compiling PostgreSQL 8.0.2 on AIX5.3 under xlc7.00 and gnumake3.80:

xlc -O5 -q64  -L../../src/port   access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o parser/SUBSYS.o commands/SUBSYS.o
executor/SUBSYS.olib/SUBSYS.o libpq/SUBSYS.o main/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o port/SUBSYS.o
postmaster/SUBSYS.oregex/SUBSYS.o rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o utils/SUBSYS.o
../../src/timezone/SUBSYS.o-Wl,-bE:../../src/backend/postgres.imp  -lpgport_srv -lcygipc -lunix -lresolv -lPW -lgen
-lBSD-lcompat -lld -ldld -llc -lIPC -lipc -lsocket -lnsl -ldl -lm  -o postgres 
1586-404 (E) Archive library file "libcygipc.a" not found.
1586-404 (E) Archive library file "libunix.a" not found.
1586-404 (E) Archive library file "libresolv.a" not found.
1586-404 (E) Archive library file "libgen.a" not found.
1586-404 (E) Archive library file "libBSD.a" not found.
1586-404 (E) Archive library file "libcompat.a" not found.
1586-404 (E) Archive library file "libdld.a" not found.
1586-404 (E) Archive library file "liblc.a" not found.
1586-404 (E) Archive library file "libIPC.a" not found.
1586-404 (E) Archive library file "libipc.a" not found.
1586-404 (E) Archive library file "libsocket.a" not found.
ld: 0711-317 ERROR: Undefined symbol: .set_pglocale_pgservice
ld: 0711-317 ERROR: Undefined symbol: .pg_usleep
ld: 0711-317 ERROR: Undefined symbol: .pg_strcasecmp
ld: 0711-317 ERROR: Undefined symbol: .pg_set_noblock
ld: 0711-317 ERROR: Undefined symbol: .get_progname
ld: 0711-317 ERROR: Undefined symbol: .find_my_exec
ld: 0711-317 ERROR: Undefined symbol: .get_pkglib_path
ld: 0711-317 ERROR: Undefined symbol: .pg_strncasecmp
ld: 0711-317 ERROR: Undefined symbol: .get_share_path
ld: 0711-317 ERROR: Undefined symbol: .pg_tolower
ld: 0711-317 ERROR: Undefined symbol: .make_native_path
ld: 0711-317 ERROR: Undefined symbol: .canonicalize_path
ld: 0711-317 ERROR: Undefined symbol: .first_dir_separator
ld: 0711-317 ERROR: Undefined symbol: .first_path_separator
ld: 0711-317 ERROR: Undefined symbol: .get_parent_directory
ld: 0711-317 ERROR: Undefined symbol: .join_path_components
ld: 0711-317 ERROR: Undefined symbol: .rmtree
ld: 0711-317 ERROR: Undefined symbol: .pg_toupper
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
1586-347 (S) An error occurred during linking of the object produced by the IPA Link step.  The link return code was 8.
make[2]: *** [postgres] Error 1
make[2]: Leaving directory `/home/app/postgresql-8.0.2/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/app/postgresql-8.0.2/src'
make: *** [all] Error 2



My flags are:

CFLAGS=' -O5 -q64 '
LDFLAGS=' -Xlinker -lpgport -Xlinker -lpgtypes  -Xlinker -lpgport_srv '


I see some, but not all of these in ./src/port/libpgport.a. Anyways, it's
ignoring the loader flags anyways. Sorry for crosspost, but am a bit
desperate here.


Any ideas?


- Ross

Re: Which library has these symbols?

From
Tom Lane
Date:
"Mohan, Ross" <RMohan@arbinet.com> writes:
> So Close, Yet So Far!

The specific symbols being complained of should be in libpgport_srv (see
src/port).  Dunno why your platform is ignoring that library.  When you
find out, let us know ;-)

            regards, tom lane

Re: Which library has these symbols?

From
"Mohan, Ross"
Date:
Tom,

they're all over the place, repeated in different
libraries, kind of a pain. Didn't realize that. I'll
just give linker a bunch of LIBPATH and LIBNAME directives
and have it run around.


# ar -t ./postgresql-8.0.2/src/interfaces/ecpg/ecpglib/libecpg.a | egrep 'dirmod|path|pgstr|pgsleep'
path.o

# ar -t ./postgresql-8.0.2/src/interfaces/ecpg/pgtypeslib/libpgtypes.a | egrep 'dirmod|path|pgstr|pgsleep'
pgstrcasecmp.o

# ar -t ./postgresql-8.0.2/src/interfaces/libpq/libpq.a | egrep 'dirmod|path|pgstr|pgsleep'
pgstrcasecmp.o

# ar -t ./postgresql-8.0.2/src/port/libpgport.a | egrep 'dirmod|path|pgstr|pgsleep'
dirmod.o
path.o
pgsleep.o
pgstrcasecmp.o

# ar -t ./postgresql-8.0.2/src/port/libpgport_srv.a | egrep 'dirmod|path|pgstr|pgsleep'
dirmod_srv.o
path.o
pgsleep.o
pgstrcasecmp.o



I **really** want this in 64bit......funny this problem only shows
up in 64, not 32 mode. <sigh>


Thanks for commenting --- That's ALWAYS welcome!

-- Ross

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Tuesday, May 24, 2005 10:53 PM
To: Mohan, Ross
Cc: pgsql-ports@postgresql.org
Subject: Re: [PORTS] Which library has these symbols?


"Mohan, Ross" <RMohan@arbinet.com> writes:
> So Close, Yet So Far!

The specific symbols being complained of should be in libpgport_srv (see src/port).  Dunno why your platform is
ignoringthat library.  When you find out, let us know ;-) 

            regards, tom lane