screen-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

incompatible execvpe, strlen, strcpy, strncpy in Cygwin 1.7


From: Andrew Schulman
Subject: incompatible execvpe, strlen, strcpy, strncpy in Cygwin 1.7
Date: Mon, 11 Jan 2010 16:56:43 -0500

Hi.  I've been building screen 4.0.3 for Cygwin 1.5 for several years now.
Now Cygwin 1.7 is out, and it appears that the Cygwin API has changed,
because I'm getting some build errors.

Can someone please advise what's the simplest or best way to correct for
these?

(1) The build fails with

extern.h:149: error: conflicting types for 'execvpe'

Indeed Cygwin's /usr/include/unistd.h has

int _EXFUN(execvpe, (const char *__file, char * const __argv[], char *const
__envp[] ));

while extern.h has

extern void  execvpe __P((char *, char **, char **));

execvpe() is defined in window.c:1387, so screen has its own private
implementation, apparently now incompatible with Cygwin's.

(2) 

Similarly, I get warnings about incompatible implicit declarations of
strlen, strcpy, and strncpy, e.g.

screen.c: In function 'main':
screen.c:473: warning: incompatible implicit declaration of built-in
function 'strcpy'
screen.c:642: warning: incompatible implicit declaration of built-in
function 'strlen'

/usr/include/string.h has

size_t   _EXFUN(strlen,(const char *));
char    *_EXFUN(strcpy,(char *, const char *));
char    *_EXFUN(strncpy,(char *, const char *, size_t));

I'm not sure what's wrong with this, since the function calls that are
triggering the warnings are just e.g.

(screen.c:473) strcpy(screenterm, "screen");
(screen.c:642) if (strlen(*++av) < 20)

where screenterm and av are of the right types.  

I'm also not sure what "built-in function 'strcpy'" means-- built into
what?  Does this mean that the compiler is using a different version of
strlen() et al. than the one in string.h?

Thanks,
Andrew.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]