Skip to content

[R-pkg-devel] Cran submission - warning with windows (cpp build library gmp)

3 messages · Antoine, Kevin Ushey, Martin Maechler

#
Dear all

I would like to update gmp package - this package link to a c++ library gmp.

But windows c++ compilation warns at:
 d:/Compiler/gcc-4.9.3/local330/include/gmp-x64.h:140:23: warning: ISO
C++ 1998 does not support 'long long' [-Wlong-long]

I have not this warning on linux.
On my computer I build latest version on gmplib, and header is a
little different and should not define a long long. I wonder if the
warning could be fixed by an update of external c++ library gmp.

How could I fix my package in order to pass the cran submission ?

Regards,

Antoine Lucas

gmp.h at line 140:
#ifdef __GMP_SHORT_LIMB
typedef unsigned int            mp_limb_t;
typedef int                     mp_limb_signed_t;
#else
#ifdef _LONG_LONG_LIMB
typedef unsigned long long int  mp_limb_t;
typedef long long int           mp_limb_signed_t;
#else
typedef unsigned long int       mp_limb_t;
typedef long int                mp_limb_signed_t;
#endif
#endif
#
The 'long long' type does not exist in the C++98 standard, so you need to
explicitly request C++11 or C++14 (the former which is now fairly broadly
supported across compilers on different systems).

For more detail, see in the R extensions manual:

https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-C_002b_002b11-code

Best,
Kevin

On Fri, Feb 22, 2019 at 5:08 AM Antoine Lucas <antoinelucas at gmail.com>
wrote:

  
  
#
> The 'long long' type does not exist in the C++98
    > standard, so you need to explicitly request C++11 or
    > C++14 (the former which is now fairly broadly supported
    > across compilers on different systems).

    > For more detail, see in the R extensions manual:

    > https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-C_002b_002b11-code

    > Best, Kevin

Indeed, thank you, Kevin.

In this case, it simply needs an extra line
   CXX_STD = CXX11
added to gmp/src/Makevars.in
(already done now).

Martin

    > On Fri, Feb 22, 2019 at 5:08 AM Antoine Lucas
> <antoinelucas at gmail.com> wrote:
>> Dear all
    >> 
    >> I would like to update gmp package - this package link to
    >> a c++ library gmp.
    >> 
    >> But windows c++ compilation warns at:
    >> d:/Compiler/gcc-4.9.3/local330/include/gmp-x64.h:140:23:
    >> warning: ISO C++ 1998 does not support 'long long'
    >> [-Wlong-long]
    >> 
    >> I have not this warning on linux.  On my computer I build
    >> latest version on gmplib, and header is a little
    >> different and should not define a long long. I wonder if
    >> the warning could be fixed by an update of external c++
    >> library gmp.
    >> 
    >> How could I fix my package in order to pass the cran
    >> submission ?
    >> 
    >> Regards,
    >> 
    >> Antoine Lucas
    >> 
    >> gmp.h at line 140: #ifdef __GMP_SHORT_LIMB typedef
    >> unsigned int mp_limb_t; typedef int mp_limb_signed_t;
    >> #else #ifdef _LONG_LONG_LIMB typedef unsigned long long
    >> int mp_limb_t; typedef long long int mp_limb_signed_t;
    >> #else typedef unsigned long int mp_limb_t; typedef long
    >> int mp_limb_signed_t; #endif #endif