Re: Re: [PATCHES] Fix for ODBC close
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: PostgreSQL odbc list <pgsql-odbc@postgresql.org>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2001-02-10T15:58:19Z
Lists: pgsql-hackers
> Bruce Momjian writes: > > > I just tried gcc and got: > > > > #$ gcc -shared -soname libpsqlodbc.so.0 -Bsymbolic info.o bind.o > > columninfo.o connection.o convert.o drvconn.o environ.o execute.o lobj.o > > misc.o options.o pgtypes.o psqlodbc.o qresult.o results.o socket.o > > parse.o statement.o gpps.o tuple.o tuplelist.o dlg_specific.o > > -L/usr/local/lib -L/usr/contrib/lib -lm -o libpsqlodbc.so.0.26 > > gcc: unrecognized option `-soname' > > gcc: file path prefix `symbolic' never used > > Try gcc -shared -Wl,-soname,libpsqlodbc.so.0 -Wl,-Bsymbolic ... OK, this works: gcc -shared -Wl,-Bsymbolic,-soname,libpsqlodbc.so.0 info.o bind.o columninfo.o connection.o convert.o drvconn.o environ.o execute.o lobj.o misc.o options.o pgtypes.o psqlodbc.o qresult.o results.o socket.o parse.o statement.o gpps.o tuple.o tuplelist.o dlg_specific.o -L/usr/local/lib -L/usr/contrib/lib -lm -lc -o libpsqlodbc.so.0.26 I replaced the 'ld' with 'gcc -Wl', and that prevents the need for the crt1.o. It still requires -lc: ifneq ($(PORTNAME), bsdi) LINK.shared += $(shlib_symbolic) else LINK.shared = gcc -shared -Wl,-Bsymbolic,-soname,$(soname) SHLIB_LINK += -lc endif It seems the -Bsymbolic needs the gcc, while other links are OK with ld. We may find this is true on many platforms. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026