On Mar 28, 2016, at 19:06, Richard L. Hamilton <rlhamil2 at gmail.com> wrote:
On Mar 28, 2016, at 13:30, J.C. Cleaver <cleaver at terabithia.org> wrote:
On Mon, March 28, 2016 9:00 am, Richard Hamilton wrote:
I should have probably mentioned this before; but at least older Solaris (e.g. Solaris 9) does NOT have setenv(); but for some reason, configure.client thinks it does. Typically once this reminds me, I just edit include/config.h to fix that, remove the .o files, and try again. :-)
Hi,
That's odd. I don't have access to a Solaris box running that at the moment, but does ./build/test-setenv.c actually compile successfully there?
Nope:
bash-2.05$ cc test-setenv.c -o test-setenv "test-setenv.c", line 5: warning: implicit function declaration: setenv Undefined first referenced symbol in file setenv test-setenv.o ld: fatal: Symbol referencing errors. No output written to test-setenv bash-2.05$ nm /usr/lib/libc.so.1|grep setenv bash-2.05$
Solaris 10 and later has it in libc; but Solaris 9 doesn't.
The test: $CC -c -o build/testfile.o $CFLAGS build/test-setenv.c 1>/dev/null 2>&1 in build/genconfig.sh, only compiles to .o, and doesn't attempt to link; therefore, it isn't actually determining whether the symbol is defined. :-) Note also from the error message above "implicit function declaration: setenv", that it wasn't in any included header file, either. Had the attempt been to compile to an executable (linking too), a non-zero return code would have been spotted.