bug-gnulib
[Top][All Lists]
Advanced

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

Re: Emacs 28.1 doesn't compile on Mac OS 10.7.5


From: Jeffrey Walton
Subject: Re: Emacs 28.1 doesn't compile on Mac OS 10.7.5
Date: Sat, 16 Apr 2022 23:28:03 -0400

On Sat, Apr 16, 2022 at 10:21 PM Paul Eggert <eggert@cs.ucla.edu> wrote:
>
> On 4/15/22 09:22, Mattias Engdegård wrote:
> > Paul, would you consider something like that patch (repeated here) for 
> > gnulib?
>
> Sure, I installed the attached into Gnulib master on Savannah.
>
> I suppose it wouldn't hurt for an old Mac OS X expert to check the other
> uses of __clang_major__ in Emacs.

This looks like Apple Clang vs LLVM Clang. You should use
__apple_build_version__ to differentiate between the two.

Stepping back a bit, rather than doing the Clang gyrations everywhere
you use __clang_major__ , maybe you should define a couple of macros
like GNULIB_LLVM_CLANG_VER and GNULIB_APPLE_CLANG_VER in a fashion
similar to GCC_VERSION from
https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html:

    #define GCC_VERSION (__GNUC__ * 10000 \
                     + __GNUC_MINOR__ * 100 \
                     + __GNUC_PATCHLEVEL__)

Then you can check versions in the code like:

#if defined(__clang__) && defined(__apple_build_version__)
# define GNULIB_APPLE_CLANG_VER (__clang_major__ * 10000 +
__clang_minor__ * 100 + __clang_patchlevel__)
#elif defined(__clang__)
# define GNULIB_LLVM_CLANG_VER (__clang_major__ * 10000 +
__clang_minor__ * 100 + __clang_patchlevel__)
#elif defined(__GNUC__)
# define GNULIB_GCC_VER (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 +
__GNUC_PATCHLEVEL__)
#endif

#if (GNULIB_GCC_VER >= 40200) || \
    (GNULIB_APPLE_CLANG_VER >= 40200) || \
    (GNULIB_LLVM_CLANG_VER >= 30200)
   ...
#endif

Jeff



reply via email to

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