From Kurt.Hornik at wu-wien.ac.at  Thu Dec 18 11:22:32 2008
From: Kurt.Hornik at wu-wien.ac.at (Kurt Hornik)
Date: Thu, 18 Dec 2008 11:22:32 +0100
Subject: [Rd] Tip for removing -c99 when compiling with icc
In-Reply-To: <alpine.LFD.2.00.0812180939560.1422@gannet.stats.ox.ac.uk>
References: <s3socz926c8.fsf@slagelg.uio.no>
	<alpine.LFD.2.00.0812180939560.1422@gannet.stats.ox.ac.uk>
Message-ID: <18762.9320.207962.565397@fangorn.hornik.net>

>>>>> Prof Brian Ripley writes:

> On Thu, 18 Dec 2008, Bj?rn-Helge Mevik wrote:
>> Dear developeRs,
>> 
>> As of icc 10, the -c99 option is deprecated, and generates a lot of
>> warnings when compiling R or R packages.
>> 
>> If you use CC="icc -std=c99" instead of just CC="icc", R's configure
>> will not add the -c99 option, and the code seems to compile and run just
>> fine.

> It's not really R, but autoconf's macro (I believe called from AC_PROG_CC) 
> which does

> for ac_arg in '' -std=gnu99 -c99 -qlanglvl=extc99

> One day autoconf will catch up with icc and try -std=c99 as well.  (It
> may already have done so: we are using the 3-year-old 2.61 as PD has
> that on the release system, Mac OS X still does ....)

>From a quick look: I e.g. on Debian testing have 2.61 (released 2006)
which has

dnl Try
dnl GCC         -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999)
dnl AIX         -qlanglvl=extc99 (unused restrictive mode: -qlanglvl=stdc99)
dnl Intel ICC   -c99
dnl IRIX        -c99
dnl Solaris     (unused because it causes the compiler to assume C99 semantics for
dnl             library functions, and this is invalid before Solaris 10: -xc99)
dnl Tru64       -c99

The Autoconf CVS otoh has

dnl Try
dnl GCC         -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999)
dnl AIX         -qlanglvl=extc99 (unused restrictive mode: -qlanglvl=stdc99)
dnl HP cc       -AC99
dnl Intel ICC   -std=c99, -c99 (deprecated)
dnl IRIX        -c99
dnl Solaris     -xc99=all (Forte Developer 7 C mishandles -xc99 on Solaris 9,
dnl             as it incorrectly assumes C99 semantics for library functions)
dnl Tru64       -c99

so I assume would do better ...

We could try doing some compiler-specific fixing in our configure code.

Best
-k

>> (Please don't hesitate to let me know if this is a bad idea. :-)

> It is fine: I'll add a note to the manual.

>> 
>> -- 
>> Regards,
>> Bj?rn-Helge Mevik
>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 

> -- 
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Tip for removing -c99 when compiling with icc
Kurt Hornik