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
--- 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
--- 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
$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;
}