Thanks.  This is exactly the detail I needed.  Let me comment on each
item.


Nicolas Bazin wrote:
> Bruce,
> 
> The reason to move the socket library is that during configuration script
> execution, the binary created core dumps if not in the order I gave. You can
> check in the port list, some people have been complaining that they could
> not even go any further than the configure step and that is the reason.
> Here is the message you get otherwise:
> 
> checking test program... failed
> configure: error:
> *** Could not execute a simple test program.  This may be a problem
> *** related to locating shared libraries.  Check the file 'config.log'
> *** for the exact reason.
> 
> In config.log the last lines are:
> 
> configure:7516: checking test program
> configure:7525: gcc -o conftest -O2
> 
> 
> 
>  conftest.c -lz -lPW -lgen -lld -lnsl -lsocket -ldl -lm -lreadline -ltermcap
> 1>&5
> configure: failed program was:
> #line 7521 "configure"
> #include "confdefs.h"
> int main() { return 0; }

>From your link line, it seems -lnls is needed by -lsocket.  What I don't
know is whether there are other platforms that where -lnls needs
-lsocket.

        ... $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS

That last LIBS grows as configure runs, so that is why reordering fixes
things for SCO.

I don't see any immediate downside to moving it so I will apply the
change to 7.3.  Any platforms problems with the reordering will show up
during 7.3 beta testing.  I would need someone else to agree before
making this change in 7.2.X.


> pow is in the static library libm and SCO Openserver linker does not accept
> to link it in a so file. The modification I provide works whithout changing
> the way the code works. If there is another way to get libm linked in so
> Here is the message I get:
> 
> gcc -shared -Wl,-z,text -Wl,-h,libpsqlodbc.so.0 -Wl,-Bsymbolic info.o bind.o
> columninfo.o connection.o convert.o drvconn.o environ.o execute.o lobj.o
> md5.o misc.o options.o pgtypes.o psqlodbc.o qresult.o results.o socket.o
> parse.o statement.o tuple.o tuplelist.o dlg_specific.o odbcapi.o
> pps.o  -lsocket -lnsl -lm  -o libpsqlodbc.so.0.27
> relocations referenced
>         from file(s)
>         /usr/ccs/lib/libm.a(pow.o)
>         /usr/ccs/lib/libm.a(fmod.o)
>         /usr/ccs/lib/libm.a(merr.o)
>  fatal error: relocations remain against allocatable but non-writable
> section: .text
> 
> collect2: ld returned 1 exit status

Yes, the patch replaces pow(8,*) with a lookup table of 4 8^X values. 
So SCO provides a library you can't link to?  Or you can't mix *.so
libraries and static *.a libraries?  I am inclined ot add this patch to
the doc/FAQ_SCO file.  We really try to avoid major code uglyness to
work around operating system things that should work on their own.



> The TCL stuff is because Caldera distribution of TCL is compiled with their
> compiler. If you happen to use another compiler on your platform (gcc) it
> doesn't work anymore. Caldera compiler has -belf -Kpic options which are
> fully incompatible with gcc. That's why I though best to leave the TCL
> packages been compiled with the compiler used for postgresql.
> 
> Note that I have the same issue for perl modules, but I haven't found a
> proper way to correct the make files automatically generated. I understand
> that we would want the same compilation options but if you install TCL or
> PERL from packages you may not have the same compiler.

Not sure how to deal with this one.  Can you add something to FAQ_SCO or
should I add this patch.  Clearly this is very OS specific and probably
only true for certain versions of SCO.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to