emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#15807: closed (guile-2.0.9 doesn't handle Apple cl


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#15807: closed (guile-2.0.9 doesn't handle Apple clang < 5 or llvm.org clang < 3.3 properly)
Date: Wed, 15 Jan 2014 20:15:02 +0000

Your message dated Wed, 15 Jan 2014 15:12:09 -0500
with message-id <address@hidden>
and subject line Re: bug#15807: guile-2.0.9 doesn't handle Apple clang < 5 or 
llvm.org clang < 3.3 properly
has caused the debbugs.gnu.org bug report #15807,
regarding guile-2.0.9 doesn't handle Apple clang < 5 or llvm.org clang < 3.3 
properly
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
15807: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15807
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 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



--- End Message ---
--- Begin Message --- Subject: Re: bug#15807: guile-2.0.9 doesn't handle Apple clang < 5 or llvm.org clang < 3.3 properly Date: Wed, 15 Jan 2014 15:12:09 -0500 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)
address@hidden (Ludovic Courtès) writes:

> Mark H Weaver <address@hidden> skribis:
>
>> So clang is pretending to be GCC (by defining __GNUC__), and then breaks
>> if we use the noreturn attribute which has been supported in GCC since
>> version 2.5 (released in 1993) ?  If so, I consider that a bug in clang.
>
> Agreed.  As long as Clang defines __GNUC__, we should ignore any such problem.

I'm closing this bug now, since we've not heard from the original
reporter since he filed the bug, and I believe the problem is already
now fixed (by changing "noreturn" to "__noreturn__" in Guile).

     Mark


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]