guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gmp now working, but number.c:147 isinf declared implicitly.


From: Hugh Sasse
Subject: Re: Gmp now working, but number.c:147 isinf declared implicitly.
Date: Thu, 18 Jan 2007 12:21:46 +0000 (WET)

I have managed to get a relatively successful build:

gmake  check-TESTS
gmake[4]: Entering directory 
`/export/home/Scratch/hgs/guile-1.8.1/test-suite/standalone'
PASS: test-system-cmds
PASS: test-require-extension
PASS: test-num2integral
PASS: test-round
PASS: test-gh
PASS: test-asmobs
PASS: test-list
PASS: test-unwind
PASS: test-conversion
==================
All 9 tests passed
==================
gmake[4]: Leaving directory 
`/export/home/Scratch/hgs/guile-1.8.1/test-suite/standalone'
gmake[3]: Leaving directory 
`/export/home/Scratch/hgs/guile-1.8.1/test-suite/standalone'
gmake[2]: Leaving directory 
`/export/home/Scratch/hgs/guile-1.8.1/test-suite/standalone'
gmake[2]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1/test-suite'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/test-suite'
gmake[1]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/test-suite'
Making check in benchmark-suite
gmake[1]: Entering directory 
`/export/home/Scratch/hgs/guile-1.8.1/benchmark-suite'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory 
`/export/home/Scratch/hgs/guile-1.8.1/benchmark-suite'
Making check in lang
gmake[1]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1/lang'
Making check in elisp
gmake[2]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1/lang/elisp'
Making check in internals
gmake[3]: Entering directory 
`/export/home/Scratch/hgs/guile-1.8.1/lang/elisp/internals'
gmake[3]: Nothing to be done for `check'.
gmake[3]: Leaving directory 
`/export/home/Scratch/hgs/guile-1.8.1/lang/elisp/internals'
Making check in primitives
gmake[3]: Entering directory 
`/export/home/Scratch/hgs/guile-1.8.1/lang/elisp/primitives'
gmake[3]: Nothing to be done for `check'.
gmake[3]: Leaving directory 
`/export/home/Scratch/hgs/guile-1.8.1/lang/elisp/primitives'
gmake[3]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1/lang/elisp'
gmake[3]: Nothing to be done for `check-am'.
gmake[3]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/lang/elisp'
gmake[2]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/lang/elisp'
gmake[2]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1/lang'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/lang'
gmake[1]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/lang'
Making check in am
gmake[1]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1/am'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/am'
gmake[1]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1'
gmake  check-TESTS
gmake[2]: Entering directory `/export/home/Scratch/hgs/guile-1.8.1'
Testing /scratch/hgs/guile-1.8.1/pre-inst-guile ...
with GUILE_LOAD_PATH=/scratch/hgs/guile-1.8.1/test-suite
Running alist.test
Running and-let-star.test
Running arbiters.test
Running bit-operations.test
Running c-api.test
Running chars.test
Running common-list.test
Running continuations.test
Running elisp.test
Running environments.test
Running eval.test
UNRESOLVED: eval.test: promises: basic promise behaviour: a forced promise does 
not reference its environment
Running exceptions.test
Running filesys.test
Running format.test
Running fractions.test
Running ftw.test
Running gc.test
Running getopt-long.test
Running goops.test
Running guardians.test
UNRESOLVED: guardians.test: standard guardian functionality: guarding 
independent objects: re-guarding non-immediates
UNRESOLVED: guardians.test: standard guardian functionality: guarding weakly 
referenced objects: guarded element of weak vector gets eventually removed from 
weak vector
Running hash.test
Running hooks.test
Running import.test
Running interp.test
Running list.test
Running load.test
Running modules.test
Running numbers.test
Running optargs.test
Running options.test
Running poe.test
Running popen.test
Running ports.test
Running posix.test
FAIL: posix.test: putenv: removing
FAIL: posix.test: setenv: removing
FAIL: posix.test: unsetenv: something
FAIL: posix.test: unsetenv: empty
Running q.test
Running r4rs.test
Running r5rs_pitfall.test
Running ramap.test
Running reader.test
Running receive.test
Running regexp.test
Running socket.test
Running srcprop.test
Running srfi-1.test
Running srfi-10.test
Running srfi-11.test
Running srfi-13.test
Running srfi-14.test
UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:letter (membership)
UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:letter (size)
UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:lower-case (size)
UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:upper-case (size)
ERROR: srfi-14.test: Latin-1 (8-bit charset): char-set:punctuation (membership) 
- arguments: ((unbound-variable #f "Unbound variable: ~S" (thrown) #f))
Running srfi-19.test
Running srfi-26.test
Running srfi-31.test
Running srfi-34.test
Running srfi-39.test
Running srfi-4.test
Running srfi-6.test
Running srfi-60.test
Running srfi-9.test
Running strings.test
Running structs.test
Running symbols.test
Running syncase.test
Running syntax.test
UNRESOLVED: syntax.test: while: in empty environment: empty body
UNRESOLVED: syntax.test: while: in empty environment: initially false
UNRESOLVED: syntax.test: while: in empty environment: iterating
Running threads.test
Running time.test
Running unif.test
Running version.test
Running weaks.test

Totals for this test run:
passes:                 11744
failures:               4
unexpected passes:      0
expected failures:      25
unresolved test cases:  10
untested test cases:    0
unsupported test cases: 13
errors:                 1

FAIL: check-guile
===================
1 of 1 tests failed
===================
gmake[2]: *** [check-TESTS] Error 1
gmake[2]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1'
gmake[1]: *** [check-am] Error 2
gmake[1]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1'
gmake: *** [check-recursive] Error 1
You have new mail in /var/mail/hgs
bash-2.05$


So the failure is that putenv test where there seems to be no way 
to remove an environment variable using C under Solaris.  Which 
seems bizarre.  I have looked through `man -s 3 intro` and can see
the putenv() & getenv() functions, but nothing to remove an environment
variable.

We are not the only ones banging into this problem:

http://gollem.science.uva.nl/SWI-Prolog/mailinglist/archive/2006/q1/0155.html

makes pretty disturbing reading.  Given this a basic requirement of
shells, I don't understand this lack of an unsetenv() function.

And there's this:

http://www.gnu.org/software/autoconf/manual/html_node/Function-Portability.html

which doesn't really give a solution either.

Despite:

http://bugs.netmrg.net/view.php?id=400

I find
bash-2.05$ man clearenv
No manual entry for clearenv.
You have new mail in /var/mail/hgs
bash-2.05$ man -s 3 clearenv
No entry for clearenv in section(s) 3 of the manual.
bash-2.05$


How did I get to a relatively successful build?

Well, I applied the patches:

--- /scratch/hgs/guile-1.8.1/libguile/posix.c   2006-10-04 04:35:07.000000000 
+0100
+++ /scratch/hgs/guile-1.8.1/libguile/posix.c   2007-01-16 12:04:53.481602000 
+0000
@@ -1315,6 +1315,11 @@
 #ifdef __MINGW32__
   size_t len = strlen (c_str);
 #endif
+#ifndef HAVE_UNSETENV
+# ifndef __MINGW32__
+  size_t len = strlen (c_str);
+# endif
+#endif

   if (strchr (c_str, '=') == NULL)
     {


and


--- guile-1.8.1/libguile/c-tokenize.c.orig      2003-08-23 18:35:14.000000000 
+0100
+++ guile-1.8.1/libguile/c-tokenize.c   2007-01-18 11:20:43.256310000 +0000
@@ -20,7 +20,12 @@
 #include <string.h>
 #include <errno.h>
 #include <stdlib.h>
+#ifdef HAVE_STDINT_H
 #include <stdint.h> /* May break IA64 test-noansi-r */
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h> 
+#endif
 
 /* end standard C headers. */
 

And I used
gcc (GCC) 3.4.6
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Which I built after all the hassles with gcc-4.

And I used --disable-error-on-warning

OK, so what about gcc-4?

gcc (GCC) 4.1.0
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gives me, using the same build script:

(cd .libs && gcc  -g -O2 -c -fno-builtin "guileS.c")
rm -f .libs/guileS.c .libs/guile.nm .libs/guile.nmS .libs/guile.nmT
gcc -g -O2 -Wall -Wmissing-prototypes -o .libs/guile .libs/guileS.o 
-D_REENTRANT -pthreads guile-guile.o -Wl,--export-dynamic  ./.libs/libguile.so 
-lrt /usr/local/lib/libgmp.so -lsocket -lnsl -lm /usr/local/lib/libltdl.so -ldl 
-Wl,--rpath -Wl,/usr/local/lib
./.libs/libguile.so: undefined reference to `isinf'
collect2: ld returned 1 exit status
gmake[3]: *** [guile] Error 1
gmake[3]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/libguile'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1/libguile'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/export/home/Scratch/hgs/guile-1.8.1'
gmake: *** [all] Error 2


I'm not sure what to make of this difference in behaviour.

So, is there anything else you would find it helpful to know?
And have you any advice about my GCC-4.1.0 (which would be off-topic,
but you can just say "no". :-))

        Hugh




reply via email to

[Prev in Thread] Current Thread [Next in Thread]