(PR#7257) Re: [Rd] bzip2 directory won't build on OSF1 due to
C99 code and -std1 option
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Oct 1 15:32:08 CEST 2004
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 at 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 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
More information about the R-devel
mailing list