This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: (fhandler_base::lseek): Include high order bits in return.


Patch checked in. I also added an empty declaration of struct stat64 which caused the initial warning message in the first place.

-- Jeff J.

Corinna Vinschen wrote:
Ping?

Corinna

On Mon, Nov 24, 2003 at 04:15:13PM +0100, Corinna Vinschen wrote:

On Sat, Nov 22, 2003 at 08:28:13PM -0500, Christopher Faylor wrote:

The patch below causes compile warnings to be issued for cygwin when
stat.h is included:

In file included from /netrel/generic/cygwin/newlib/libc/include/sys/fcntl.h:164,
                from /netrel/generic/cygwin/winsup/cygwin/include/fcntl.h:14,
                from /netrel/generic/cygwin/winsup/testsuite/winsup.api/crlf.c:144:
/netrel/generic/cygwin/newlib/libc/include/sys/stat.h:144: warning: `struct stat64' declared inside parameter list
/netrel/generic/cygwin/newlib/libc/include/sys/stat.h:144: warning: its scope is only this definition or declaration, which is probably not what you want

It could presumably cause errors for unistd.h/_lseek64 as well.

I noticed this problem while trying to run the cygwin test suite.

These declarations should really only exist when building newlib. They are not for building applications. I'd propose the below patch:

Corinna

	* libc/include/fcntl.h: Declare syscalls only when building newlib.
	* libc/include/stat.h: Ditto.
	* libc/include/unistd.h: Ditto.

Index: libc/include/sys/fcntl.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/sys/fcntl.h,v
retrieving revision 1.3
diff -u -p -r1.3 fcntl.h
--- libc/include/sys/fcntl.h	18 Nov 2003 19:17:17 -0000	1.3
+++ libc/include/sys/fcntl.h	24 Nov 2003 14:59:03 -0000
@@ -169,10 +169,12 @@ extern int fcntl _PARAMS ((int, int, ...

/* Provide _<systemcall> prototypes for functions provided by some versions
   of newlib.  */
+#ifdef _COMPILING_NEWLIB
extern int _open _PARAMS ((const char *, int, ...));
extern int _fcntl _PARAMS ((int, int, ...));
#ifdef __LARGE64_FILES
extern int _open64 _PARAMS ((const char *, int, ...));
+#endif
#endif

#ifdef __cplusplus
Index: libc/include/sys/stat.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/sys/stat.h,v
retrieving revision 1.14
diff -u -p -r1.14 stat.h
--- libc/include/sys/stat.h	18 Nov 2003 19:17:17 -0000	1.14
+++ libc/include/sys/stat.h	24 Nov 2003 14:59:04 -0000
@@ -137,7 +137,7 @@ int	_EXFUN(mknod,( const char *__path, m

/* Provide prototypes for most of the _<systemcall> names that are
   provided in newlib for some compilers.  */
-#ifndef __INSIDE_CYGWIN__
+#ifdef _COMPILING_NEWLIB
int	_EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
int	_EXFUN(_stat,( const char *__path, struct stat *__sbuf ));
#ifdef __LARGE64_FILES
Index: libc/include/sys/unistd.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/sys/unistd.h,v
retrieving revision 1.46
diff -u -p -r1.46 unistd.h
--- libc/include/sys/unistd.h	18 Nov 2003 19:17:17 -0000	1.46
+++ libc/include/sys/unistd.h	24 Nov 2003 14:59:04 -0000
@@ -165,6 +165,7 @@ extern char *suboptarg;			/* getsubopt(3
int	 getsubopt(char **, char * const *, char **);
#endif /* _POSIX_SOURCE */

+#ifdef _COMPILING_NEWLIB
/* Provide prototypes for most of the _<systemcall> names that are
   provided in newlib for some compilers.  */
int     _EXFUN(_close, (int __fildes ));
@@ -180,6 +181,7 @@ void *  _EXFUN(_sbrk,  (ptrdiff_t __incr
int     _EXFUN(_unlink, (const char *__path ));
_READ_WRITE_RETURN_TYPE _EXFUN(_write, (int __fd, const void *__buf, size_t __nbyte ));
int     _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] ));
+#endif

#if defined(__CYGWIN__) || defined(__rtems__) || defined(__sh__)
#if !defined(__INSIDE_CYGWIN__)

--
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]