diff options
-rw-r--r-- | Src/params.c | 14 | ||||
-rw-r--r-- | configure.in | 3 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Src/params.c b/Src/params.c index d5c419daf..cdaecb199 100644 --- a/Src/params.c +++ b/Src/params.c @@ -453,6 +453,10 @@ createparamtable(void) char **new_environ, **envp, **envp2, **sigptr, **t; char buf[50], *str, *iname; int num_env, oae = opts[ALLEXPORT]; +#ifdef HAVE_UNAME + struct utsname unamebuf; + char *machinebuf; +#endif paramtab = realparamtab = newparamtable(151, "paramtab"); @@ -538,7 +542,17 @@ createparamtable(void) /* Add the standard non-special parameters */ set_pwd_env(); +#ifdef HAVE_UNAME + if(uname(&unamebuf)) setsparam("MACHTYPE", ztrdup(MACHTYPE)); + else + { + machinebuf = ztrdup(unamebuf.machine); + setsparam("MACHTYPE", machinebuf); + } + +#else setsparam("MACHTYPE", ztrdup(MACHTYPE)); +#endif setsparam("OSTYPE", ztrdup(OSTYPE)); setsparam("TTY", ztrdup(ttystrname)); setsparam("VENDOR", ztrdup(VENDOR)); diff --git a/configure.in b/configure.in index 6e5d670fe..b2617701d 100644 --- a/configure.in +++ b/configure.in @@ -826,7 +826,8 @@ AC_CHECK_FUNCS(strftime difftime gettimeofday \ mmap munmap msync \ cap_get_proc \ getrlimit \ - setlocale) + setlocale \ + uname) AC_FUNC_STRCOLL if test $ac_cv_func_setpgrp = yes; then |