From ripley at stats.ox.ac.uk  Fri Oct  1 15:32:08 2004
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Fri Oct  1 15:32:13 2004
Subject: (PR#7257) Re: [Rd] bzip2 directory won't build on OSF1 due to
	C99 code and -std1 option
In-Reply-To: <Pine.LNX.4.61.0410011400240.31942@qnzvnan.rov.np.hx>
Message-ID: <Pine.LNX.4.44.0410011426410.24383-100000@gannet.stats>

I believe this occurs because the configure test for `inline' is not using
the R_XTRA_CFLAGS, which is a pervasive design problem (we have noted it
occurs with PIC flags as well).  If you set -std1 in CFLAGS then it should 
be used in the configure test which should conclude `inline' is not 
allowed.

[I use CFLAGS for making my test compilers as picky as possible.]

On Fri, 1 Oct 2004, Michael Hoffman wrote:

> On Fri, 1 Oct 2004, Prof Brian Ripley wrote:
> 
> > What `C99 code' is that?
> 
> Specifically it uses the inline keyword. I do not believe that is
> supported by a strict C89 compiler.
> 
> > Please don't expect us to guess what you have in mind, for we
> > haven't a clue.
> 
> Please accept my apologies for an inadequate bug report. This might
> make things easier to understand:
> 
> mh5@ecs4d /ecs4/scratch2/ensembl/mh5/sandbox/R-2.0.0/src/extra/bzip2
> $ make
> making blocksort.d from blocksort.c
> making bzlib.d from bzlib.c
> making compress.d from compress.c
> making crctable.d from crctable.c
> making decompress.d from decompress.c
> making huffman.d from huffman.c
> making randtable.d from randtable.c
> gmake[1]: Entering directory `/ecs4/scratch2/ensembl/mh5/sandbox/R-2.0.0/src/extra/bzip2'
> gmake[1]: `Makedeps' is up to date.
> gmake[1]: Leaving directory `/ecs4/scratch2/ensembl/mh5/sandbox/R-2.0.0/src/extra/bzip2'
> gmake[1]: Entering directory `/ecs4/scratch2/ensembl/mh5/sandbox/R-2.0.0/src/extra/bzip2'
> cc -I. -I. -I../../../src/include -I../../../src/include -I/usr/local/include -DHAVE_CONFIG_H -std1 -ieee_with_inexact  -fast -arch ev6 -c blocksort.c -o blocksort.o
> cc: Error: blocksort.c, line 79: Missing ";". (nosemi)
> void fallbackSimpleSort ( UInt32* fmap,
> ^
> cc: Info: blocksort.c, line 78: "inline" is a keyword in the C99 revision of the C standard.  Using it as an identifier will prevent your program from conforming to that standard. (futurekeywd2)
> R_INLINE
> ^
> cc: Error: blocksort.c, line 395: Missing ";". (nosemi)
> Bool BZmainGtU ( UInt32  i1,
> ^
> cc: Error: blocksort.c, line 631: Missing ";". (nosemi)
> UChar mmed3 ( UChar a, UChar b, UChar c )
> ^
> gmake[1]: *** [blocksort.o] Error 1
> gmake[1]: Leaving directory `/ecs4/scratch2/ensembl/mh5/sandbox/R-2.0.0/src/extra/bzip2'
> gmake: *** [R] Error 2
> 
> Configure output at the end of the message.
> 
> > AFAIK, R's configure does not know about OSF1 v5.x, so it is quite likely
> > that the assumptions (which are inside
> >
> > case "${host_cpu}" in
> >  alpha*)
> >
> > ) are wrong for that untested platform.  The code in the bzip2 directory
> > has not been changed for a very long time, except for possibly allowing
> > inlining (and for which there is a configure test).
> 
> Well I'm not going to posit any hypotheses or note that inlining won't
> work on this platform if the -std1 option is uesd. ;-)
> 
> > Note that feedback 3 days before release is too late for
> > configuration changes to be made.
> 
> I'll just have to live with that :-)
> 

-- 
Brian D. Ripley,                  ripley@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


(PR#7257) Re: [Rd] bzip2 directory won't build on OSF1 due to C99 code and -std1 option
Prof Brian Ripley