Subject: Re: bug#30992: Acknowledgement (27.0.50; Crash when graphics card switches)

From: Peter Dyballa <[email-masked]>
Date: Tue, 10 Apr 2018 22:23:25 +0200

> Am 10.4.2018 um 04:35 schrieb Richard Stallman <[email-masked]>:
> 
> Since Apple is so nasty about its C compiler, let's urge MacOS users
> to build Emacs with a free C compiler instead -- on principle.

Clang uses internally some GCC components. Its source code is freely available under the NCSA license (http://clang.llvm.org/, http://llvm.org/). And it's also the native compiler on Macs now. Without Xcode you cannot bootstrap GCC. Xcode is also needed for porting GNU Emacs to iPad or iPhone… (I presume)

And you don't have to pay for it – since decades. (Support will cost.)

> 
> Emacs still builds on MacOS with GCC, right?

Here is a first try to configure the NS variant of GNU Emacs 26.1-rc1 with GCC 7.3:

	checking for X... libraries /opt/local/lib, headers /opt/local/include
	checking AppKit/AppKit.h usability... no
	checking AppKit/AppKit.h presence... yes
	configure: WARNING: AppKit/AppKit.h: present but cannot be compiled
	configure: WARNING: AppKit/AppKit.h:     check for missing prerequisite headers?
	configure: WARNING: AppKit/AppKit.h: see the Autoconf documentation
	configure: WARNING: AppKit/AppKit.h:     section "Present But Cannot Be Compiled"
	configure: WARNING: AppKit/AppKit.h: proceeding with the compiler's result
	configure: WARNING:     ## ------------------------------------ ##
	configure: WARNING:     ## Report this to [email-masked] ##
	configure: WARNING:     ## ------------------------------------ ##
	checking for AppKit/AppKit.h... no
	configure: error: The include files (AppKit/AppKit.h etc) that
	are required for a Nextstep build are missing or cannot be compiled.
	Either fix this, or re-configure with the option '--without-ns'.

The same happens with GCC 5.5. With Clang 5.0 (not from Xcode) configuration does not abort here but comes to an end. The NS variant then builds and also runs as it does with Xcode's Clang 9.1.

Building the X client works with most if not all C compilers.

-rwxr-xr-x 1 root wheel 21577940 2018-04-10 21:09 /usr/local/bin/emacs-26.1 (NS) with Clang 5
-rwxr-xr-x 1 root wheel 21639508 2018-04-10 21:39 /usr/local/bin/emacs-26.1 (NS) with Clang 9

-rwxr-xr-x 1 root wheel 17198576 2018-04-10 21:53 /usr/local/bin/emacs-26.1 (Xaw3d) with GCC 7
-rwxr-xr-x 1 root wheel 17126304 2018-04-10 22:08 /usr/local/bin/emacs-26.1 (Xaw3d) with Clang 9

All run OK. For the moment.

(Xcode comes without gcc. It has symbolic-links cc and c++ both pointing to clang. And clang++ points to clang.)

—
Greetings

  Pete

It is so hot in some places that the people there have to live in other places.