[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15807: guile-2.0.9 doesn't handle Apple clang < 5 or llvm.org clang
From: |
Jack Howarth |
Subject: |
bug#15807: guile-2.0.9 doesn't handle Apple clang < 5 or llvm.org clang < 3.3 properly |
Date: |
Mon, 4 Nov 2013 19:51:36 -0500 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
The guile 2.0.9 sources incorrectly assumes that sll clang compilers support
the noreturn attribute which was only added in llvm.org clang 3.3 and Apple
clang 5.0.
In fink, we have fixed this with the following patch...
--- guile-2.0.9/libguile/__scm.h.orig 2013-11-01 22:57:06.000000000 -0400
+++ guile-2.0.9/libguile/__scm.h 2013-11-01 23:07:03.000000000 -0400
@@ -76,7 +76,10 @@
* Examples:
* 1) int foo (char arg) SCM_NORETURN;
*/
-#ifdef __GNUC__
+
+#if (defined(__apple_build_version__) && (__clang_major__ < 5)) ||
((__clang_major__ < 3) && (__clang_minor__ < 3))
+#define SCM_NORETURN
+#elif defined(__GNUC__)
#define SCM_NORETURN __attribute__ ((noreturn))
#else
#define SCM_NORETURN
Since the environmentals for __clang__, __clang_major__ and __clang_minor are
common to both Apple and llvm.org
clang, the (defined(__apple_build_version__) is used to limit the first test on
(__clang_major__ < 5) to Apple
clang. the second test for ((__clang_major__ < 3) && (__clang_minor__ < 3))
requires no additional restriction
since it is valid for both Apple and llvm clang in that version range. Without
this patch, builds on Xcode 4.6.3,
which uses Apple clang 4.2 that lacks noreturn attribute support will fail.
Jack
- bug#15807: guile-2.0.9 doesn't handle Apple clang < 5 or llvm.org clang < 3.3 properly,
Jack Howarth <=