Problems building on HP-UX/PA with --enable-cxx

Albert Chin gmp-bugs at mlists.thewrittenword.com
Thu Jul 9 02:12:06 UTC 2015


I tried building gmp-6.0.0a on HP-UX 11.31/PA with --enable-cxx and
encountered a build problem for the C++ component:
  $ gtar Jxf gmp-6.0.0a.tar.xz
  $ cd gmp-6.0.0
  gmp-6.0.0$ ./configure CXX=aCC CXXFLAGS="-AA" \
  M4=/opt/fsw/m414/bin/gm4 --enable-cxx
  ...
    Version:           GNU MP 6.0.0
    Host type:         hppa2.0w-hp-hpux11.31
    ABI:               2.0w
    Install prefix:    /usr/local
    Compiler:          cc
    Static libraries:  yes
    Shared libraries:  yes
  gmp-6.0.0$ gmake
  ...
gmake[2]: Entering directory `/opt/build/china/gmp-6.0.0/cxx'
/bin/sh ../libtool --tag=CXX   --mode=compile aCC -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMPXX -I..    -AA -c -o isfuns.lo isfuns.cc
libtool: compile:  aCC -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMPXX -I.. -AA -c isfuns.cc  +Z -DPIC -o .libs/isfuns.o
Error 548: "../gmpxx.h", line 1435 # The expression on the left side of the
    '.' (dot member access operator) must be a completed class object type;
    the type of the left side is 'const tentative class
    basic_string<char,std::char_traits<char>,std::allocator<char> >' and
    'class basic_string<char,std::char_traits<char>,std::allocator<char> >'
    has not been defined yet.
        if (mpz_init_set_str(mp, s.c_str(), base) != 0)
                                 ^                     
...
                               ^                  
Error 305: "../gmpxx.h", line 1479 # Function definitions must return
    completed object type or void.
      std::string get_str(int base = 10) const
                  ^^^^^^^                     
...
                  ^^^^^^^                     
Error 537: "../gmpxx.h", line 1482 # Cannot create a
    'basic_string<char,std::char_traits<char>,std::allocator<char> >' object;
    class basic_string<char,std::char_traits<char>,std::allocator<char> > has
    only been seen as an incomplete declaration.
        return std::string(temp.str);
                           ^^^^^^^^  
...

gmake[2]: *** [isfuns.lo] Error 1
gmake[2]: Leaving directory `/opt/build/china/gmp-6.0.0/cxx'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/opt/build/china/gmp-6.0.0'
gmake: *** [all] Error 2

So the HP-UX/PA compiler seems to think std::string is not a complete
type? Is the compiler making any sense or should we just build with
--disable-cxx?

-- 
albert chin (china at thewrittenword.com)


More information about the gmp-bugs mailing list