Re: Compile fix for SCO OPenServer
* Boyd Lynn Gerber <gerberb@zenez.com> [080730 17:28]:
> How about doing a fresh
>
> working directory. And just for the fun of it try...
Unfortunately, I can't use configure, apparently that SCO box does'nt have a new enough toolc change for M4/autoconf/etc...
But I've never had to use configure before, I've always just built with make (gmake on boxes with borked make)
> tech0 > CC=cc CXX=CC CFLAGS="-Kalloca -Kthread" CPPFLAGS="-Kalloca
> -Kthread" ./configure
> tech0 > gmake
So, with gmake, that "generally" works. I still need to add:
SNPRINTF_RETURNS_BOGUS=1 NO_MKDTEMP=1
> tech0 > CC=cc CXX=CC ./configure
> tech0 > gmake
And here, until I rid CFLAGS of -Wall, it fails.
Show 17 quoted lines
> > Unfortunately, I have access to only that one SCO box, so I have no idea
> > of mkdtemp and sprintf problems are on all SCO, or just R=5 ones.
> >
> > That allows me to build with NO_POSIX_ONLY_PROGRAMS=1, because for some reason, the
> > linker complains on linking git-shell:
> > Undefined first referenced
> > symbol in file
> > hexval_table abspath.o
> > null_sha1 abspath.o
> > trust_executable_bit abspath.o
> > has_symlinks abspath.o
> > UX:ld: ERROR: Symbol referencing errors. No output written to git-shell
> >
> > These are all extern varualbes declared in cache.h, but no defined in
> > any of the objects git-shell links, normally not a problem, but this is SCO.
>
> I do not see the problem on my systems.
aidan@jpradley:~/git$ touch abspath.c
aidan@jpradley:~/git$ gmake V=1 git-shell
cc -o abspath.o -c -Kalloca -Kthread -I/usr/local/include -DNO_IPV6 -DSHA1_HEADER='<openssl/sha.h>' -DSNPRINTF_RETURNS_BOGUS -DNO_STRCASESTR -DNO_MKDTEMP -DNO_HSTRERROR -DNO_MEMMEM abspath.c
cc -g -Kalloca -Kthread -I/usr/local/include -DNO_IPV6 -DSHA1_HEADER='<openssl/sha.h>' -DSNPRINTF_RETURNS_BOGUS -DNO_STRCASESTR -DNO_MKDTEMP -DNO_HSTRERROR -DNO_MEMMEM -o git-shell -L/usr/local/lib abspath.o ctype.o exec_cmd.o quote.o strbuf.o usage.o wrapper.o shell.o compat/lib.a
Undefined first referenced
symbol in file
hexval_table abspath.o
null_sha1 abspath.o
trust_executable_bit abspath.o
has_symlinks abspath.o
UX:ld: ERROR: Symbol referencing errors. No output written to git-shell
gmake: *** [git-shell] Error 1
aidan@jpradley:~/git$ cat config.mak
NO_OENSSL=1
NO_MKDTEMP=1
SHELL=/bin/bash
SNPRINTF_RETURNS_BOGUS=1
CFLAGS=-Kalloca
CPPFLAGS=-Kalloca
I've found that if I set CFLAGS to -O2, it links properly:
aidan@jpradley:~/git$ touch abspath.c
aidan@jpradley:~/git$ gmake V=1 git-shell
cc -o abspath.o -c -Kalloca -O2 -Kthread -I/usr/local/include -DNO_IPV6 -DSHA1_HEADER='<openssl/sha.h>' -DSNPRINTF_RETURNS_BOGUS -DNO_STRCASESTR -DNO_MKDTEMP -DNO_HSTRERROR -DNO_MEMMEM abspath.c
cc -Kalloca -O2 -Kthread -I/usr/local/include -DNO_IPV6 -DSHA1_HEADER='<openssl/sha.h>' -DSNPRINTF_RETURNS_BOGUS -DNO_STRCASESTR -DNO_MKDTEMP -DNO_HSTRERROR -DNO_MEMMEM -o git-shell -L/usr/local/lib abspath.o ctype.o exec_cmd.o quote.o strbuf.o usage.o wrapper.o shell.o compat/lib.a
So I think it's "not inlining" stuff like:
static inline unsigned int hexval(unsigned char c)
{
return hexval_table[c];
}
So, finally, it pretty much works on SCO out of the box - here's my
settings, which which the test suite passed (well, is passing, I'm at
t5400, but I expect it to all pass again with these settings): aidan@jpradley:~/git$ cat config.mak
NO_TCLTK=1
NO_MKDTEMP=1
SHELL=/bin/bash
SNPRINTF_RETURNS_BOGUS=1
CFLAGS=-O2
--
Aidan Van Dyk Create like a god,
aidan@highrise.ca command like a king,
http://www.highrise.ca/ work like a slave.