On Sat, Mar 14, 2009 at 12:38:09PM +0000, Neil Jerram wrote: > Albert Chin <guile-de...@mlists.thewrittenword.com> writes: > > > I've built guile-1.8.6 on HP-UX 11.23/IA and 11.31/IA: > > $ gtar zxf guile-1.8.6.tar.gz > > $ cd guile-1.8.6 > > $ ./configure PTHREAD_CFLAGS="-mt" --disable-dependency-tracking > > ... > > $ gmake > > ... > > $ cd test-suite/standalone > > $ gmake check TESTS="test-num2integral test-conversion" > > ... > > ERROR: Stack overflow > > FAIL: test-num2integral > > ERROR: Stack overflow > > FAIL: test-conversion > > A few questions: > > 1. Do all of the standalone tests fail with a stack overflow, or just > those two?
Unknown. Some of the tests fail to dlopen some modules: ERROR: In procedure dynamic-link: ERROR: file: "libguile-srfi-srfi-1-v-3", message: "can't open the module" FAIL: test-require-extension ... ERROR: In procedure dynamic-link: ERROR: file: "libtest-asmobs", message: "can't open the module" FAIL: test-asmobs I haven't looked into why. > 2. Can you send us your libguile/stack-limit-calibration.scm? Attached. > 3. Can you explain what the setting of PTHREAD_CFLAGS is for? Because, without it, PTHREAD_CFLAGS is set to: s["PTHREAD_CFLAGS"]="-D_REENTRANT -mthreads" which is incorrect. -- albert chin (ch...@thewrittenword.com)
;; Stack limit calibration file. ;; ;; This file is automatically generated by Guile when it builds, in ;; order to set the stack limit to a value that reflects the stack ;; usage of the build platform (OS + compiler + compilation options), ;; specifically so that none of Guile's own tests (which are run by ;; `make check') fail because of a benign stack overflow condition. ;; ;; By a `benign' stack overflow condition, we mean one where the test ;; code is behaving correctly, but exceeds the configured stack limit ;; because the limit is set too low. A non-benign stack overflow ;; condition would be if a piece of test code behaved significantly ;; differently on some platform to how it does normally, and as a ;; result consumed a lot more stack. Although they seem pretty ;; unlikely, we would want to catch non-benign conditions like this, ;; and that is why we don't just do `(debug-set! stack 0)' when ;; running `make check'. ;; ;; Although the primary purpose of this file is to prevent `make ;; check' from failing without good reason, Guile developers and users ;; may also find the following information useful, when determining ;; what stack limit to configure for their own programs. (let (;; The stack high water mark measured when starting up the ;; standard Guile REPL on the current build platform. (top-repl-hwm-measured 28408) ;; The value of top-repl-hwm-measured that we get when building ;; Guile on an i686 PC GNU/Linux system, after configuring with ;; `./configure --enable-maintainer-mode --with-threads'. ;; (Hereafter referred to as the `canonical' build platform.) (top-repl-hwm-i686-pc-linux-gnu 9461) ;; Guile's default stack limit (i.e. the initial, C-coded value ;; of the 'stack debug option). In the context of this file, ;; the important thing about this number is that we know that ;; it allows all of the `make check' tests to pass on the ;; canonical build platform. (default-stack-limit 20000) ;; Calibrated stack limit. This is the default stack limit, ;; scaled by the factor between top-repl-hwm-i686-pc-linux-gnu ;; and top-repl-hwm-measured. (calibrated-stack-limit 60052)) ;; Configure the calibrated stack limit. (debug-set! stack calibrated-stack-limit))