summaryrefslogtreecommitdiffstats
path: root/tools/build/src/cklength.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-01-21 18:28:09 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-01-21 18:28:09 +0000
commit9ad1f135fafcca1d43766dc928e50e4de201614c (patch)
treed5f4890c13c84ed691264e62101e6eecc9e46831 /tools/build/src/cklength.c
parentChanged reference from PROJECT_ROOT to RTEMS_ROOT. (diff)
downloadrtems-9ad1f135fafcca1d43766dc928e50e4de201614c.tar.bz2
Added autoconf support for strerror/sys_errlist per Ralf Corsepius'
direction. This fixes a problem reported by Steve Evans of Radstone since he is using glibc2.
Diffstat (limited to '')
-rw-r--r--tools/build/src/cklength.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/tools/build/src/cklength.c b/tools/build/src/cklength.c
index ef271971fc..4b712a1d63 100644
--- a/tools/build/src/cklength.c
+++ b/tools/build/src/cklength.c
@@ -35,6 +35,24 @@ maximum line length. The default maximum line length is 80.\n\
#include <memory.h>
#include <stdarg.h>
+#include "config.h"
+
+#ifndef VMS
+#ifndef HAVE_STRERROR
+extern int sys_nerr;
+extern char *sys_errlist[];
+
+#define strerror( _err ) \
+ ((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
+
+#else /* HAVE_STRERROR */
+char *strerror ();
+#endif
+#else /* VMS */
+char *strerror (int,...);
+#endif
+
+
#define BUFFER_SIZE 512
#define SUCCESS 0
@@ -231,8 +249,6 @@ error(int error_flag, ...)
{
va_list arglist;
register char *format;
- extern char *sys_errlist[];
- extern int sys_nerr;
int local_errno;
extern int errno;
@@ -250,12 +266,7 @@ error(int error_flag, ...)
va_end(arglist);
if (local_errno)
- if ((local_errno > 0) && (local_errno < sys_nerr))
- (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]);
- else
- (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno);
- else
- (void) fprintf(stderr, "\n");
+ (void) fprintf(stderr, " (%s)\n", strerror(local_errno));
(void) fflush(stderr);