> > > Bruce Momjian writes:
> > >
> > > > I have applied the following patch to properly exit ODBC. I also
> > > > patched the ODBC makefile so it links under BSD/OS. The -Bsymbolic
> > > > under BSD/OS is very harsh under BSD/OS, requiring all symbols even in
> > > > libc and crt1.o to be resolved before creating the shared library.
> > >
> > > The -Bsymbolic switch is the same on all platforms that have it. You can
> > > link without it, but then you won't actually be able to use the ODBC
> > > driver. It seems like you need to link in a few other libraries to
> > > resolve all symbols.
> >
> > OK, if this is true on all platforms, why isn't -lc needed?
> >
>
> And if -lc is somehow done by default with ld -Bsymbolic, how do I deal
> with a link that accesses crt1.o startup symbols, like environ and
> __progname?
>
OK, the following fixes the link on BSDI, while allowing -Bsymbolic. I
have to explicitly include -R crt1.o to be used to resolve symbols, but
not to be linked in. Without -R, I get undefined 'main' which makes
sense.
I am still confused why other OS's work, unless -lc is assumed by ld,
and their libc's have no crt1.o references.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026