make check fails on powerpc-ibm-aix5.3.0.0

Torbjorn Granlund tg at gmplib.org
Tue May 26 16:29:04 CEST 2009


"Eric Fernandez" <efernandez at physiomics-plc.com> writes:

  I'd like to report a check fail of GMP on AIX 5.3. Firstly, this problem
  has been seen with gmp-4.3.1, but I report it for the latest snapshot:
  gmp-4.4.-1-20090526
  
  - Problem:
  
  ./configure --prefix=$PREFIXGNU ABI=32
  make
  make check
  
  make[4]: Entering directory
  `/hpc/work/fernandz/gnusrc/gmp-4.4.-1-20090526/tests'
  PASS: t-bswap
  exec(): 0509-036 Cannot load program
  /hpc/work/fernandz/gnusrc/gmp-4.4.-1-20090526/tests/.libs/lt-t-constants
  because of the following errors:
          0509-130 Symbol resolution failed for lt-t-constants because:
          0509-136   Symbol __gmp_binvert_limb_table (number 28) is not
  exported from
                     dependent module
  /hpc/work/fernandz/gnu/lib/libgmp.a(libgmp.so.3).
          0509-192 Examine .loader section symbols with the
                   'dump -Tv' command.
  FAIL: t-constants
  PASS: t-count_zeros
  PASS: t-gmpmax
  PASS: t-hightomask
  exec(): 0509-036 Cannot load program
  /hpc/work/fernandz/gnusrc/gmp-4.4.-1-20090526/tests/.libs/lt-t-modlinv
  because of the following errors:
          0509-130 Symbol resolution failed for lt-t-modlinv because:
          0509-136   Symbol __gmp_binvert_limb_table (number 33) is not
  exported from
                     dependent module
  /hpc/work/fernandz/gnu/lib/libgmp.a(libgmp.so.3).
          0509-192 Examine .loader section symbols with the
                   'dump -Tv' command.
  FAIL: t-modlinv
  PASS: t-popc
  PASS: t-parity
  PASS: t-sub
  ====================================
  2 of 9 tests failed
  Please report to gmp-bugs at gmplib.org
  ====================================
  
I have now looked into this, and tried to reproduce it.  Unfortunately,
I don't understand how this can fail, and I have not been able to
reproduce it.  My machine is also a power5-ibm-aix5.3.0.0.  I do not
have the exact same compiler as you (only gcc 4.4 is installed on my
system).

The symbol __gmp_binvert_limb_table should be defined in mp_minv_tab.c
at the directory top level.  Its name is mangled by a #define in
gmp-impl.h from binvert_limb_table to __gmp_binvert_limb_table.

For your build, the symbol is defined in a C file, and read from many C
files as well as from one assembly file.

You mention your gcc version.  Does configure output confirm
that it chooses gcc?  Look for lines like these:

using ABI="32"
      CC="gcc -maix32"
      CFLAGS="-O2 -pedantic -mpowerpc"
      CPPFLAGS=""
      MPN_PATH=" powerpc32 generic"

Please also make sure no races of old builds are present in the source
directory.  We generally recommend that you build in a separate bject
directory, not in the source directory, since the latter is prone to
errors.  (You need a "make distclean" between builds.)

If you configure for target "none", does it still fail?  If it does,
then a C file cannot access a C symbol from a different file.  Pretty
basic compiler tools problem in that case.

-- 
Torbjörn


More information about the gmp-bugs mailing list