1
0
mirror of https://github.com/PDP-10/klh10.git synced 2026-04-12 07:05:30 +00:00

Eliminate CENV_SYS_STRERROR, use configure checks instead

This commit is contained in:
Olaf Seibert
2016-01-21 00:02:22 +01:00
parent 8d683650f7
commit 2b48b63e74
7 changed files with 118 additions and 44 deletions

View File

@@ -47,7 +47,11 @@ NETLIBS="$LIBS"
LIBS="$SAVE_LIBS"
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netinet/in.h sgtty.h stddef.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h termios.h unistd.h net/if_tun.h linux/if_tun.h linux/if_packet.h net/if_tap.h sys/mtio.h net/nit.h sys/dlpi.h net/if_dl.h net/if_types.h])
AC_CHECK_HEADERS([arpa/inet.h errno.h fcntl.h limits.h netinet/in.h sgtty.h \
stddef.h stdlib.h string.h sys/file.h sys/ioctl.h \
sys/socket.h sys/time.h termios.h unistd.h net/if_tun.h \
linux/if_tun.h linux/if_packet.h net/if_tap.h sys/mtio.h \
net/nit.h sys/dlpi.h net/if_dl.h net/if_types.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
@@ -63,7 +67,9 @@ AC_FUNC_FORK
AC_FUNC_FSEEKO
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([alarm dup2 gettimeofday localtime_r memset socket strcasecmp strchr strcspn strerror strncasecmp strpbrk strrchr strtol getifaddrs if_nameindex termios sigsetops sigaction nanosleep])
AC_CHECK_FUNCS([alarm dup2 gettimeofday localtime_r memset socket strcasecmp \
strchr strcspn strerror strncasecmp strpbrk strrchr strtol \
getifaddrs if_nameindex termios sigsetops sigaction nanosleep])
# Check for CPU.
# This requires install-sh, config.sub, config.guess from automake.
@@ -109,6 +115,53 @@ typedef char vaddr_t;
CENVFLAGS="$CENVFLAGS -include vaddr-sucks.h"
])
# -------------------------------------------------------------------------
# Check how to replace strerror()
# -------------------------------------------------------------------------
AC_MSG_CHECKING([whether sys_errlist exists])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#include <stdlib.h>
#include <stdio.h>
]], [[
return sys_errlist[sys_nerr-1];
]])],
[
# Compiles ok
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_SYS_ERRLIST], [1], [Define if char *sys_errlist[] exists])
],
[
# Compile error; try another variation
AC_MSG_RESULT([no])
AC_MSG_CHECKING([whether sys_errlist exists but needs a declaration])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#include <stdlib.h>
#include <stdio.h>
extern int sys_nerr;
extern char *sys_errlist[];
]], [[
return sys_errlist[sys_nerr-1];
]])],
[
# Compiles ok
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_SYS_ERRLIST], [1], [Define if char *sys_errlist[] exists])
AC_DEFINE([DECL_SYS_ERRLIST], [1], [Define if char *sys_errlist[] must be declared])
],
[
# Compile error
AC_MSG_RESULT([no?])
])
])
# -------------------------------------------------------------------------
# Check whether we want bridge support
# -------------------------------------------------------------------------
@@ -147,6 +200,15 @@ fi
# Output section. State which @VARIABLES@ are going to be substituted
# -------------------------------------------------------------------------
AH_TOP([
#ifndef CONFIG_H_INCLUDED
#define CONFIG_H_INCLUDED
])
AH_BOTTOM([
#endif /* CONFIG_H_INCLUDED */
])
AC_SUBST([CC])
AC_SUBST([CFLAGS])
AC_SUBST([DESTDIR])

View File

@@ -229,10 +229,6 @@
# define CENV_SYSF_SIGSET (CENV_SYS_DECOSF|CENV_SYS_SUN|CENV_SYS_SOLARIS \
|CENV_SYS_XBSD|CENV_SYS_LINUX)
#endif
#ifndef CENV_SYSF_STRERROR /* Has strerror(3) */
# define CENV_SYSF_STRERROR (CENV_SYS_DECOSF|CENV_SYS_SOLARIS|CENV_SYS_XBSD \
|CENV_SYS_LINUX)
#endif
#ifndef CENV_SYSF_NANOSLEEP /* Has nanosleep(2) */
# define CENV_SYSF_NANOSLEEP (CENV_SYS_DECOSF|CENV_SYS_SOLARIS|CENV_SYS_XBSD \
|CENV_SYS_LINUX)

View File

@@ -43,6 +43,10 @@ static int decosfcclossage;
#include <stdlib.h>
#include <string.h> /* For strerror() if present */
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#include "dpsup.h"
#if CENV_SYS_DECOSF || CENV_SYS_SUN || CENV_SYS_SOLARIS || CENV_SYS_XBSD || CENV_SYS_LINUX
@@ -663,19 +667,19 @@ dp_strerror(int err)
{
if (err == -1 && errno != err)
return dp_strerror(errno);
#if CENV_SYSF_STRERROR
#if HAVE_STRERROR
return strerror(err);
#else
# if CENV_SYS_UNIX
# if HAVE_SYS_ERRLIST
{
# if !CENV_SYS_XBSD /* Already in signal.h */
# if DECL_SYS_ERRLIST
extern int sys_nerr;
extern char *sys_errlist[];
# endif
if (0 < err && err <= sys_nerr)
return (char *)sys_errlist[err];
return sys_errlist[err];
}
# endif
# endif /* HAVE_SYS_ERRLIST */
if (err == 0)
return "No error";
else {
@@ -683,7 +687,7 @@ dp_strerror(int err)
sprintf(ebuf, "Unknown-error-%d", err);
return ebuf;
}
#endif /* !CENV_SYSF_STRERROR */
#endif /* !HAVE_STRERROR */
}

View File

@@ -60,6 +60,10 @@
#include "rcsid.h"
#include "osdnet.h"
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#ifdef RCSID
RCSID(enaddr_c,"$Id: enaddr.c,v 2.6 2002/03/18 04:19:17 klh Exp $")
#endif
@@ -122,10 +126,6 @@ Usage: enaddr [-v] [<ifc> [default | <ifaddr>] [+<addmcast>] [-<delmcast>]]\n\
#if 1 /* Error and diagnostic stuff */
#if CENV_SYSF_STRERROR
# include <string.h> /* For strerror() */
#endif
/* Error and diagnostic output */
static const char *log_progname = LOG_PROGNAME;
@@ -134,19 +134,19 @@ char *log_strerror(int err)
{
if (err == -1 && errno != err)
return log_strerror(errno);
#if CENV_SYSF_STRERROR
#if HAVE_STRERROR
return strerror(err);
#else
# if CENV_SYS_UNIX
# if HAVE_SYS_ERRLIST
{
# if !CENV_SYS_XBSD /* Already in signal.h */
# if DECL_SYS_ERRLIST
extern int sys_nerr;
extern char *sys_errlist[];
# endif
if (0 < err && err <= sys_nerr)
return sys_errlist[err];
}
# endif
# endif /* HAVE_SYS_ERRLIST */
if (err == 0)
return "No error";
else {
@@ -154,7 +154,7 @@ char *log_strerror(int err)
sprintf(ebuf, "Unknown-error-%d", err);
return ebuf;
}
#endif /* !CENV_SYSF_STRERROR */
#endif /* !HAVE_STRERROR */
}

View File

@@ -52,6 +52,10 @@
#include "osdsup.h"
#include "kn10ops.h"
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#if CENV_SYS_UNIX
# include <sys/types.h>
# include <sys/stat.h>
@@ -119,7 +123,7 @@
#endif /* CENV_USE_COMM_TOOLBOX */
#endif /* CENV_SYS_MAC */
#if CENV_SYSF_STRERROR
#if HAVE_STRERROR
extern char *strerror(int); /* Not always declared in string.h */
#endif
@@ -180,19 +184,19 @@ os_strerror(int err)
{
if (err == -1 && errno != err)
return os_strerror(errno);
#if CENV_SYSF_STRERROR
#if HAVE_STRERROR
return strerror(err);
#else
# if CENV_SYS_UNIX
# if HAVE_SYS_ERRLIST
{
# if !CENV_SYS_XBSD /* Already in signal.h */
# if DECL_SYS_ERRLIST
extern int sys_nerr;
extern char *sys_errlist[];
# endif
if (0 < err && err <= sys_nerr)
return sys_errlist[err];
}
# endif
# endif /* HAVE_SYS_ERRLIST */
if (err == 0)
return "No error";
else {
@@ -200,7 +204,7 @@ os_strerror(int err)
sprintf(ebuf, "Unknown-error-%d", err);
return ebuf;
}
#endif /* !CENV_SYSF_STRERROR */
#endif /* !HAVE_STRERROR */
}
/* Controlling terminal stuff

View File

@@ -63,7 +63,7 @@
# include <jsys.h>
# include <macsym.h> /* FLD macros */
# define char8 _KCCtype_char8
# define CENV_SYSF_STRERROR 1
# define HAVE_STRERROR 1
# define NULLDEV "NUL:"
# define FD_STDIN 0
# define FD_STDOUT 1
@@ -83,6 +83,10 @@
# define strCMP strcmp /* Temporary compat hack */
#endif
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#define MAXRECSIZE (1L<<16) /* was ((15*518*5)+512) */
#define FNAMSIZ 200
@@ -340,19 +344,19 @@ os_strerror(int err)
{
if (err == -1 && errno != err)
return os_strerror(errno);
#if CENV_SYSF_STRERROR
#if HAVE_STRERROR
return strerror(err);
#else
# if CENV_SYS_UNIX
# if HAVE_SYS_ERRLIST
{
#if !CENV_SYS_XBSD
# if DECL_SYS_ERRLIST
extern int sys_nerr;
extern char *sys_errlist[];
#endif
if (0 < err && err <= sys_nerr)
return (char *)sys_errlist[err];
}
# endif
if (0 < err && err <= sys_nerr)
return sys_errlist[err];
}
# endif /* HAVE_SYS_ERRLIST */
if (err == 0)
return "No error";
else {
@@ -360,7 +364,7 @@ os_strerror(int err)
sprintf(ebuf, "Unknown-error-%d", err);
return ebuf;
}
#endif /* !CENV_SYSF_STRERROR */
#endif /* !HAVE_STRERROR */
}
void errhan(void *arg, struct vmtape *t, char *s)

View File

@@ -57,6 +57,10 @@
# define FD_STDOUT 1
#endif
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#define FNAMSIZ 200
#define TRUE 1
@@ -218,19 +222,19 @@ os_strerror(int err)
{
if (err == -1 && errno != err)
return os_strerror(errno);
#if CENV_SYSF_STRERROR
#if HAVE_STRERROR
return strerror(err);
#else
# if CENV_SYS_UNIX
# if HAVE_SYS_ERRLIST
{
#if !CENV_SYS_XBSD
# if DECL_SYS_ERRLIST
extern int sys_nerr;
extern char *sys_errlist[];
#endif
if (0 < err && err <= sys_nerr)
return (char *)sys_errlist[err];
}
# endif
if (0 < err && err <= sys_nerr)
return sys_errlist[err];
}
# endif /* HAVE_SYS_ERRLIST */
if (err == 0)
return "No error";
else {
@@ -238,7 +242,7 @@ os_strerror(int err)
sprintf(ebuf, "Unknown-error-%d", err);
return ebuf;
}
#endif /* !CENV_SYSF_STRERROR */
#endif /* !HAVE_STRERROR */
}
void errhan(struct vdk_unit *t, char *s)