This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH v2] Move MAXPATHLEN definition
- From: Joel Sherrill <Joel dot Sherrill at OARcorp dot com>
- To: Sebastian Huber <sebastian dot huber at embedded-brains dot de>
- Cc: "newlib at sourceware dot org" <newlib at sourceware dot org>
- Date: Wed, 16 Oct 2013 08:27:38 -0500
- Subject: Re: [PATCH v2] Move MAXPATHLEN definition
- Authentication-results: sourceware.org; auth=none
I am OK with this. But reviewing code from a phone is perilous. :)
If someone else beats me to committing this, thanks in advance.
--joel
Sebastian Huber <sebastian.huber@embedded-brains.de> wrote:
Glibc and FreeBSD define MAXPATHLEN in <sys/param.h>. An include of
<unistd.h> only lets MAXPATHLEN undefined on both systems. The change
brings Newlib in line with these systems. This change may break
applications which rely on the previous Newlib approach. The #ifndef
__CYGWIN__ was changed into a #ifndef MAXPATHLEN. Will this work for
Cygwin?
newlib/ChangeLog
2013-10-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libc/include/sys/unistd.h (MAXPATHLEN): Delete.
* libc/include/sys/param.h (MAXPATHLEN): Define.
* libc/sys/rtems/sys/param.h (MAXPATHLEN): Likewise.
* libc/unix/getcwd.c: Include <sys/param.h> for MAXPATHLEN.
---
newlib/libc/include/sys/param.h | 3 +++
newlib/libc/include/sys/unistd.h | 4 ----
newlib/libc/sys/rtems/sys/param.h | 2 --
newlib/libc/unix/getcwd.c | 1 +
4 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h
index 7e8762a..ef203d3 100644
--- a/newlib/libc/include/sys/param.h
+++ b/newlib/libc/include/sys/param.h
@@ -6,6 +6,7 @@
# define _SYS_PARAM_H
#include <sys/config.h>
+#include <sys/syslimits.h>
#include <machine/endian.h>
#include <machine/param.h>
@@ -19,6 +20,8 @@
# define PATHSIZE (1024)
#endif
+#define MAXPATHLEN PATH_MAX
+
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MIN(a,b) ((a) < (b) ? (a) : (b))
diff --git a/newlib/libc/include/sys/unistd.h b/newlib/libc/include/sys/unistd.h
index a5f66c0..f1aacfa 100644
--- a/newlib/libc/include/sys/unistd.h
+++ b/newlib/libc/include/sys/unistd.h
@@ -500,10 +500,6 @@ int _EXFUN(unlinkat, (int, const char *, int));
#define _CS_V6_ENV _CS_V7_ENV
#endif
-#ifndef __CYGWIN__
-# define MAXPATHLEN 1024
-#endif
-
#ifdef __cplusplus
}
#endif
diff --git a/newlib/libc/sys/rtems/sys/param.h b/newlib/libc/sys/rtems/sys/param.h
index eac24e9..808745f 100644
--- a/newlib/libc/sys/rtems/sys/param.h
+++ b/newlib/libc/sys/rtems/sys/param.h
@@ -156,9 +156,7 @@
* It should be set high enough to allow all legitimate uses, but halt
* infinite loops reasonably quickly.
*/
-#if !defined(__rtems__)
#define MAXPATHLEN PATH_MAX
-#endif
#define MAXSYMLINKS 32
/* Bit map related macros. */
diff --git a/newlib/libc/unix/getcwd.c b/newlib/libc/unix/getcwd.c
index b49a4b6..92f1b20 100644
--- a/newlib/libc/unix/getcwd.c
+++ b/newlib/libc/unix/getcwd.c
@@ -32,6 +32,7 @@
static char sccsid[] = "@(#)getcwd.c 5.11 (Berkeley) 2/24/91";
#endif /* LIBC_SCCS and not lint */
+#include <sys/param.h>
#include <sys/stat.h>
#include <errno.h>
#include <dirent.h>
--
1.7.7