From darwinskernel at gmail.com  Mon Aug 13 20:22:40 2012
From: darwinskernel at gmail.com (nobody)
Date: Mon, 13 Aug 2012 14:22:40 -0400
Subject: [Rd] compile fails with x86_64-alpine-linux-uclibc-gcc
In-Reply-To: <BE73D35E-4A05-4CCF-99DD-CB6715ECF9CF@r-project.org>
References: <20120813034532.GA17328@wall.e>
	<BE73D35E-4A05-4CCF-99DD-CB6715ECF9CF@r-project.org>
Message-ID: <20120813182240.GA30033@wall.e>

On Mon, Aug 13, 2012 at 10:49:26AM -0400, Simon Urbanek wrote:
> I suspect that your runtime/libc is defining fgetc as a macro which breaks any code that uses it as an identifier. Ideally, your runtime should be fixed to use a proper function, but you could probably work around it with something like
> 
> static char * fix_fgets(char *s, int n, FILE *stream) { return fgets(s, n, stream); }
> #undef fgets
> static char * fgets(char *s, int n, FILE *stream) { return fix_fgets(s, n, stream); }
> 
> Cheers,
> Simon

like this? :http://bpaste.net/show/40047/
if so, then i get this err msg:
connections.c:385:15: error: static declaration of 'fgets' follows non-static declaration
/usr/include/stdio.h:544:14: note: previous declaration of 'fgets' was here
connections.c: In function 'Rconn_fgetc':
connections.c:3192:11: error: expected identifier before '(' token
connections.c:3194:15: error: expected identifier before '(' token

and here is how it's declared in stdio.h on my system:

/* Get a newline-terminated string of finite length from STREAM.

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
     __wur;



[Rd] compile fails with x86_64-alpine-linux-uclibc-gcc
nobody