[packages/mksh] - updated to 41 - workaround broken compile-time assertions in GCC 4.7

baggins baggins at pld-linux.org
Wed Dec 12 14:32:00 CET 2012


commit 9b0c41bb83bddf69e504efc719bdfff4597e5361
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Wed Dec 12 14:31:23 2012 +0100

    - updated to 41
    - workaround broken compile-time assertions in GCC 4.7

 mksh-distro.patch         |  8 +++---
 mksh-mkshrc_support.patch |  6 ++---
 mksh.spec                 | 65 ++++++++++++++++++++++++++++++++++++++++++-----
 3 files changed, 65 insertions(+), 14 deletions(-)
---
diff --git a/mksh.spec b/mksh.spec
index b09af31..1442f64 100644
--- a/mksh.spec
+++ b/mksh.spec
@@ -4,12 +4,12 @@
 Summary:	MirBSD Korn Shell
 Summary(pl.UTF-8):	Powłoka Korna z MirBSD
 Name:		mksh
-Version:	40f
+Version:	41
 Release:	1
 License:	BSD
 Group:		Applications/Shells
-Source0:	http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.cpio.gz
-# Source0-md5:	22c9570660c2efadf36de7b620d06966
+Source0:	http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.tgz
+# Source0-md5:	70eca50d9340412714ef09b7060ebde9
 Source1:	%{name}-mkshrc
 Patch0:		%{name}-mkshrc_support.patch
 Patch1:		%{name}-circumflex.patch
@@ -89,11 +89,46 @@ mv mksh/* .; rmdir mksh
 
 sed -i -e 's#@DISTRO@#PLD/Linux 3.0#g' check.t sh.h
 
+# we'll need this later due to -DMKSH_GCC55009
+cat >rtchecks <<'EOF'
+typeset -i sari=0
+typeset -Ui uari=0
+typeset -i x=0
+print -r -- $((x++)):$sari=$uari.
+let --sari --uari
+print -r -- $((x++)):$sari=$uari.
+sari=2147483647 uari=2147483647
+print -r -- $((x++)):$sari=$uari.
+let ++sari ++uari
+print -r -- $((x++)):$sari=$uari.
+let --sari --uari
+let 'sari *= 2' 'uari *= 2'
+let ++sari ++uari
+print -r -- $((x++)):$sari=$uari.
+let ++sari ++uari
+print -r -- $((x++)):$sari=$uari.
+sari=-2147483648 uari=-2147483648
+print -r -- $((x++)):$sari=$uari.
+let --sari --uari
+print -r -- $((x++)):$sari=$uari.
+EOF
+
+cat >rtchecks.expected <<'EOF'
+0:0=0.
+1:-1=4294967295.
+2:2147483647=2147483647.
+3:-2147483648=2147483648.
+4:-1=4294967295.
+5:0=0.
+6:-2147483648=2147483648.
+7:2147483647=2147483647.
+EOF
+
 %build
 install -d out
 
 CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
+CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
 LDFLAGS="%{rpmldflags}" \
 CPPFLAGS="%{rpmcppflags}" \
 sh ./Build.sh -Q -r -j -c lto
@@ -103,17 +138,33 @@ if ! tty -s; then
 	skip_tests="-C regress:no-ctty"
 fi
 
-%{?with_tests:./test.sh -v $skip_tests}
+%if %{with tests}
+./mksh rtchecks >rtchecks.got 2>&1
+if ! cmp --quiet rtchecks.got rtchecks.expected ; then
+	echo "rtchecks failed"
+	diff -Naurp %{SOURCE3} rtchecks.got
+	exit 1
+fi
+./test.sh -v $skip_tests
+%endif
 mv mksh out/mksh.dynamic
 
 %if %{with static}
 CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
+CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
 LDFLAGS="%{rpmldflags} -static" \
 CPPFLAGS="%{rpmcppflags}" \
 sh ./Build.sh -Q -r -j -c lto
 
-%{?with_tests:./test.sh -v $skip_tests}
+%if %{with tests}
+./test.sh -v $skip_tests
+./mksh rtchecks >rtchecks.got 2>&1
+if ! cmp --quiet rtchecks.got rtchecks.expected ; then
+	echo "rtchecks failed"
+	diff -Naurp %{SOURCE3} rtchecks.got
+	exit 1
+fi
+%endif
 mv mksh out/mksh.static
 %endif
 
diff --git a/mksh-distro.patch b/mksh-distro.patch
index 5588c57..904654d 100644
--- a/mksh-distro.patch
+++ b/mksh-distro.patch
@@ -5,8 +5,8 @@ diff -ur mksh.org/check.t mksh/check.t
  # http://www.research.att.com/~gsf/public/ifs.sh
  
  expected-stdout:
--	@(#)MIRBSD KSH R40 2012/04/06
-+	@(#)MIRBSD KSH R40 2012/04/06 @DISTRO@
+-	@(#)MIRBSD KSH R41 2012/11/30
++	@(#)MIRBSD KSH R41 2012/11/30 @DISTRO@
  description:
  	Check version of shell.
  stdin:
@@ -17,8 +17,8 @@ diff -ur mksh.org/sh.h mksh/sh.h
  #ifdef EXTERN
  __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.484.2.16 2012/03/24 21:22:43 tg Exp $");
  #endif
--#define MKSH_VERSION "R40 2012/04/06"
-+#define MKSH_VERSION "R40 2012/04/06 @DISTRO@"
+-#define MKSH_VERSION "R41 2012/11/30"
++#define MKSH_VERSION "R41 2012/11/30 @DISTRO@"
  
  /* arithmetic types: C implementation */
  #if !HAVE_CAN_INTTYPES
diff --git a/mksh-mkshrc_support.patch b/mksh-mkshrc_support.patch
index 5d95bd9..a653979 100644
--- a/mksh-mkshrc_support.patch
+++ b/mksh-mkshrc_support.patch
@@ -8,11 +8,11 @@
 -		    DOTILDE);
 +                env_file = substitute(substitute("${ENV}", 0), DOTILDE);
  		if (*env_file != '\0')
- 			include(env_file, 0, NULL, 1);
+ 			include(env_file, 0, NULL, true);
 +                else { 
 +			env_file = substitute(MKSHRC_PATH, DOTILDE);
-+			include("/etc/mkshrc", 0, NULL, 1);
-+			include(env_file, 0, NULL, 1);
++			include("/etc/mkshrc", 0, NULL, true);
++			include(env_file, 0, NULL, true);
 +                        }
  	}
  
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mksh.git/commitdiff/9b0c41bb83bddf69e504efc719bdfff4597e5361



More information about the pld-cvs-commit mailing list