Porting GMP v4.1.4 to QNX4

mts.spb.suxx@mail.ru mts.spb.suxx at mail.ru
Sat Sep 24 15:12:18 CEST 2005

Hello List,

 After I've put the following (thanks to KBOB) in "gmp-h.in":
  || define (_STDIO_H_INCLUDED) /* QNX4 */

 so it looks like this:

#if defined (FILE)
        || defined (H_STDIO)                           \
        || defined (_H_STDIO)    /* AIX */             \
        || defined (_STDIO_H)    /* glibc, Sun, SCO */ \
        || defined (_STDIO_H_)  /* BSD, OSF */         \
        || defined (__STDIO_H__) /* IRIX */            \
        || defined (_STDIO_INCLUDED) /* HPUX */        \
        || defined (__dj_include_stdio_h_) /*HPUX */   \
        || defined (_FILE_DEFINED) /* Microsift */     \
        || defined (__STDIO__) /* Apple MPW MrC */     \
        || defined (_STDIO_H_INCLUDED) /* QNX4 */
#define _GMP_H_HAVE_FILE 1

the package does "./configure --host=none" itself correctly.

However, I get the same three failed tests as before:

Making check in tests
make[3]: Entering directory `//2/works/gmp-4.1.4/tests'
PASS: t-bswap
PASS: t-constants
PASS: t-count_zeros
PASS: t-gmpmax
PASS: t-modlinv
All 5 tests passed
make[3]: Entering directory `//2/works/gmp-4.1.4/tests/mpn'
PASS: t-asmtype
PASS: t-aors_1
PASS: t-iord_u
PASS: t-mp_bases
PASS: t-scan
All 5 tests passed
make[3]: Entering directory `//2/works/gmp-4.1.4/tests/mpz'
PASS: t-addsub
PASS: t-cmp
PASS: t-mul
PASS: t-mul_i
PASS: t-tdiv
PASS: t-tdiv_ui
PASS: t-fdiv
PASS: t-fdiv_ui
PASS: t-cdiv_ui
PASS: t-gcd
PASS: t-gcd_ui
PASS: t-lcm
PASS: dive
PASS: dive_ui
PASS: t-sqrtrem
PASS: convert
PASS: io
PASS: t-inp_str
PASS: logic
PASS: bit
PASS: t-powm
PASS: t-powm_ui
PASS: t-pow
PASS: t-div_2exp
PASS: reuse
PASS: t-root
PASS: t-perfsqr
PASS: t-jac
PASS: t-bin
PASS: t-get_d
PASS: t-get_si
PASS: t-set_si
PASS: t-fac_ui
PASS: t-fib_ui
PASS: t-lucnum_ui
PASS: t-scan
PASS: t-fits
PASS: t-divis
PASS: t-divis_2exp
PASS: t-cong
PASS: t-cong_2exp
PASS: t-sizeinbase
PASS: t-set_str
PASS: t-aorsmul
PASS: t-cmp_d
PASS: t-cmp_si
PASS: t-hamdist
PASS: t-oddeven
PASS: t-popcount
PASS: t-set_f
PASS: t-io_raw
PASS: t-import
PASS: t-export
All 53 tests passed
make[3]: Entering directory `//2/works/gmp-4.1.4/tests/mpq'
PASS: t-aors
PASS: t-cmp
PASS: t-cmp_ui
PASS: t-cmp_si
PASS: t-equal
PASS: t-get_d
PASS: t-get_str
PASS: t-inp_str
PASS: t-md_2exp
PASS: t-set_f
PASS: t-set_str
All 11 tests passed
make[3]: Entering directory `//2/works/gmp-4.1.4/tests/mpf'
PASS: t-add
PASS: t-sub
PASS: t-conv
PASS: t-sqrt
PASS: t-muldiv
PASS: t-dm2exp
PASS: reuse
PASS: t-get_d
PASS: t-cmp_si
PASS: t-fits
PASS: t-get_si
PASS: t-gsprec
PASS: t-int_p
PASS: t-set_si
PASS: t-trunc
All 15 tests passed
make[3]: Entering directory `//2/works/gmp-4.1.4/tests/rand'
PASS: t-lc2exp
PASS: t-rand
All 2 tests passed
make[3]: Entering directory `//2/works/gmp-4.1.4/tests/misc'

//2/works/gmp-4.1.4/tests/misc/t-printf terminated (SIGSEGV) at 0007:0100EEE2.
Segmentation fault
FAIL: t-printf
gmp_sscanf wrong result
gmp_sscanf wrong upto
  fmt   "%Zd"
  input "0"
  ignore 0
  ret   want=1
        got =1
  value want=0
        got =-999
  upto  want =1
        got  =-555
ABORT instruction
FAIL: t-scanf
GNU MP: Cannot allocate memory (size=134278328)
ABORT instruction
FAIL: t-locale
3 of 3 tests failed

KBOB feels that they fail because of va_copy() is somehow crippled on
QNX4. But I think this is because of no int64 support available in
Watcom C v10.6B
I suspect that things like "%Zd" and other such printf() extentions
are not handled on QNX4.

Please comment.

Any way, the GMP v4.1.4 seems to work on QNX4 well (as far as I could
test it by linking with it).
If I try to "./configure" letting it to guess the host type -
configuration fails - I think Watcom's ASM is somehow incompatible
with the sources of the GMP package. So, I can't tune the port for the

Best regards,

More information about the gmp-discuss mailing list