Sun Jul 28 12:54:53 2013 UTC ()
fixes missng restore stack address.
PR pkg/47906

Bump PKGREVISION.


(obache)
diff -r1.17 -r1.18 pkgsrc/lang/g95/Makefile
diff -r1.15 -r1.16 pkgsrc/lang/g95/distinfo
diff -r0 -r1.1 pkgsrc/lang/g95/patches/patch-libf95.a-0.93_runtime_main.c

cvs diff -r1.17 -r1.18 pkgsrc/lang/g95/Makefile (expand / switch to context diff)
--- pkgsrc/lang/g95/Makefile 2013/06/01 14:44:01 1.17
+++ pkgsrc/lang/g95/Makefile 2013/07/28 12:54:52 1.18
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.17 2013/06/01 14:44:01 tron Exp $
+# $NetBSD: Makefile,v 1.18 2013/07/28 12:54:52 obache Exp $
 
 DISTNAME=	g95_source
 PKGNAME=	g95-0.93
-PKGREVISION=	2
+PKGREVISION=	3
 CATEGORIES=	lang
 MASTER_SITES=	http://ftp.g95.org/v${PKGVERSION_NOREV}/
 EXTRACT_SUFX=	.tgz

cvs diff -r1.15 -r1.16 pkgsrc/lang/g95/distinfo (expand / switch to context diff)
--- pkgsrc/lang/g95/distinfo 2013/05/20 05:47:34 1.15
+++ pkgsrc/lang/g95/distinfo 2013/07/28 12:54:52 1.16
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.15 2013/05/20 05:47:34 adam Exp $
+$NetBSD: distinfo,v 1.16 2013/07/28 12:54:52 obache Exp $
 
 SHA1 (g95_source.tgz) = b5e503fd6459b65cbda73190685f9490230d9cff
 RMD160 (g95_source.tgz) = 98d03e9a1835f4b3553a72a798bdf1d90a757176
@@ -26,3 +26,4 @@
 SHA1 (patch-libf95.a-0.93_math_ff.c) = 353121bc08a86765d18b0e6f051ba91f7e65e9c2
 SHA1 (patch-libf95.a-0.93_math_x87.S) = d1eb02bd2358b6abb9b8dc3e32629cba540adcc4
 SHA1 (patch-libf95.a-0.93_quad_power16.c) = fc7375aa90ecf75bb8ba26d41739614040b16e09
+SHA1 (patch-libf95.a-0.93_runtime_main.c) = 8b870b363c3f0d108979fe44248632b77258eb0d

File Added: pkgsrc/lang/g95/patches/patch-libf95.a-0.93_runtime_main.c
$NetBSD: patch-libf95.a-0.93_runtime_main.c,v 1.1 2013/07/28 12:54:52 obache Exp $

* fixes missing restore stack address.  PR pkg/47906

--- libf95.a-0.93/runtime/main.c.orig	2010-04-18 15:47:28.000000000 +0000
+++ libf95.a-0.93/runtime/main.c
@@ -50,9 +50,11 @@ int main(int argc, char *argv[]) {
  * unaligned. */
 
 #if HAVE_REAL_10 == 1 || HAVE_REAL_10 == 2
+    int diff;
     asm("mov %%esp, %%eax\n"
 	"and $0x04, %%eax\n"
-	"sub %%eax, %%esp\n" : : : "%eax");
+	"movl %%eax, %0\n"
+	"sub %%eax, %%esp\n" : "=r"(diff) : : "%eax");
 #endif
 
     g95_runtime_start(argc, argv);
@@ -62,5 +64,10 @@ int main(int argc, char *argv[]) {
     memory_done();
     g95_runtime_stop();
 
+#if HAVE_REAL_10 == 1 || HAVE_REAL_10 == 2
+    asm("mov %0, %%eax\n"
+	"add %%eax, %%esp\n" : : "r"(diff) : "%eax");
+#endif
+
     return 0;
 }