c++ patch

Marc Glisse marc.glisse at normalesup.org
Sun May 21 15:10:57 CEST 2006

On Tue, 16 May 2006, Torbjorn Granlund wrote:

>  I attach a patch that I am using. It in particular helps me on
>  solaris, where I use:
>  CC=cc
>  ABI=32
>  CXXFLAGS=-library=stlport4
> Thanks.  (Are there problems with ABI=64, or you just trying to limit
> the blinding speed of sparc?)

Most of the libraries are available with the 32 bits ABI by default, and I 
am using gmp together with other libraries, so they have to use the same 
ABI, and I did not want to recompile the others. By the way, I thought 
having a 32 bits ABI did not prevent from using 64 bit types internally 
and did not slow down the computations much, but I may have misunderstood 
the way things work. (and I know you are not a huge fan of sparc...)

How did you guess it was sparc? It might as well have been a random PC 
running solaris-x86, and on amd64 there is the same dual ABI as on sparc.

>  Some cxx tests (t-binary t-ops t-prec t-ternary t-unary) still
>  fail to compile, but I believe it is because of bugs in the
>  compiler (whereas what I patched looks like bugs in the code).
> Is it determinable whether the compilation failures are bugs in the
> compiler or bugs in the code, in this advanced language?
> When I have tried to compile smoe C++ code with GCC, each syntax error
> gives about 300 MB worth of error messages.  Of course, such error
> messages can take some time to decipher.  :-)

After a long time of using it, you get used to some errors. I had already 
met all the error messages I met with gmpxx on pieces of code in an other 
library, so I just guessed the reasons were similar. To be certain, one 
would have to post on a c++ newsgroup like comp.lang.c++.moderated where 
people can quote from the standard as well as others can quote from the 

>  there are a number of missing std:: for c++ use. Since gmp-impl.h
>  is not installed, it can just use the easy "using namespace
>  std;". For gmp.h, I did something cleaner (It is better for
>  standard conformance, but I am not sure it may not hurt some
>  broken c++ compiler).

I am not saying this is the only way, or even the best, just one 
possibility. Some might prefer to put everything in a namespace gmp (but 
it would break compatibility), which would make using "using std::va_list" 
and others less of an issue. Others would say to use the *.h headers 
instead of the c* headers... I don't think there is anything widely 
accepted for C++-aware C headers.

>  I will check again after the next patch to sun's c++ compiler
>  (the one released today was a disappointment).
> When is the next patch going to be available?

I don't know, likely around september.

Marc Glisse

More information about the gmp-bugs mailing list