From f00db85c98b8d9a4a18af53aa339e056d92edf7f Mon Sep 17 00:00:00 2001 From: tg <tg@mirbsd.org> Date: Wed, 23 Sep 2009 18:22:38 +0000 Subject: [PATCH] SUNWcc related fixes for normal and MKSH_SMALL --- Build.sh | 22 +++++++++++++++++----- var.c | 4 ++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Build.sh b/Build.sh index 79000e5..0cb5bf0 100644 --- a/Build.sh +++ b/Build.sh @@ -1,5 +1,5 @@ #!/bin/sh -srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.423 2009/08/30 13:22:37 tg Exp $' +srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.424 2009/09/23 18:22:37 tg Exp $' #- # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Thorsten Glaser <tg@mirbsd.org> @@ -912,11 +912,23 @@ NOWARN=$save_NOWARN # if ac_ifcpp 'ifdef MKSH_SMALL' isset_MKSH_SMALL '' \ "if a reduced-feature mksh is requested"; then - if test $ct = xlc; then - ac_flags 1 fnoinline -qnoinline - else + #XXX this sucks; fix it for *all* compilers + case $ct in + clang|icc|nwcc) ac_flags 1 fnoinline -fno-inline - fi + ;; + gcc) + NOWARN=$DOWARN; phase=u + ac_flags 1 fnoinline -fno-inline + NOWARN=$save_NOWARN; phase=x + ;; + sunpro) + ac_flags 1 fnoinline -xinline= + ;; + xlc) + ac_flags 1 fnoinline -qnoinline + ;; + esac : ${HAVE_MKNOD=0} : ${HAVE_REVOKE=0} diff --git a/var.c b/var.c index 5c112a7..7bb09fd 100644 --- a/var.c +++ b/var.c @@ -22,7 +22,7 @@ #include "sh.h" -__RCSID("$MirOS: src/bin/mksh/var.c,v 1.90 2009/09/23 18:04:58 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/var.c,v 1.91 2009/09/23 18:22:38 tg Exp $"); /* * Variables @@ -1450,7 +1450,7 @@ set_array(const char *var, bool reset, const char **vals) if (*ccp == ']' && level == 0 && ccp[1] == '=') { strndupx(cp, vals[i] + 1, ccp - (vals[i] + 1), ATEMP); - evaluate(substitute(cp, 0), &n, + evaluate(substitute(cp, 0), (mksh_ari_t *)&n, KSH_UNWIND_ERROR, true); ccp += 2; } else