GNU bug report logs - #45455
[nextstep]: Emacs master does not compile on Apple Silicon (arm64)

Previous Next

Package: emacs;

Reported by: Artem Loenko <artyom.loenko <at> mac.com>

Date: Sun, 27 Dec 2020 11:54:02 UTC

Severity: normal

Tags: fixed

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 45455 <at> debbugs.gnu.org (full text, mbox):

From: Artem Loenko <artyom.loenko <at> mac.com>
To: Philipp Stephani <p.stephani2 <at> gmail.com>
Cc: 45455 <at> debbugs.gnu.org
Subject: Re: bug#45455: [nextstep]: Emacs master does not compile on Apple
 Silicon (arm64)
Date: Sun, 27 Dec 2020 21:37:23 +0000
[Message part 1 (text/plain, inline)]
> DO_CODESIGN=$(patsubst arm-apple-darwin%,yes,arm-apple-darwin20.2.0)
> 
> indicating that at least here the architecture was detected as
> arm-apple-darwin20.2.0. On master it's aarch64-apple-darwin20.2.0 for
> me as well.

I believe that you see `arm-apple-darwin` in the emacs-27 branch because aarch64 support was incorporated only for Emacs master branch and was not backported. There is a commit – https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5d89a9c2846d32b4726faaf5c8652f3f23dc7d73 <https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5d89a9c2846d32b4726faaf5c8652f3f23dc7d73> with the following changes in the master:

diff --git a/build-aux/config.guess b/build-aux/config.guess
index 92bfc33e29..e94095c5fb 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2020 Free Software Foundation, Inc.
 
-timestamp='2020-04-26'
+timestamp='2020-07-12'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1342,6 +1342,9 @@ EOF
     *:Rhapsody:*:*)
 	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
 	exit ;;
+    arm64:Darwin:*:*)
+	echo aarch64-apple-darwin"$UNAME_RELEASE"
+	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p`
 	case $UNAME_PROCESSOR in

But in the `emacs-27` branch it calculates with a simple `uname -r` – to the `arm-apple-darwin` (I was able to reproduce it locally on the `emacs-27` branch).

> IIUC the only thing that this line does is to check whether to
> codesign the resulting binary. That's necessary on Apple Silicon.
> Maybe we should codesign on all macOS installations? It shouldn't hurt
> even if it's not needed.

Yes, you are right. The problem has nothing to do with `temacs`; it is about signing. I tried to call `codesign` explicitly, and everything works fine in this case. About codesigning for all macOS installations, I am not sure. Such change can break things in many unexpected ways from my point of view. It is better to stay on the safe side.

I see two options:

- Backport `arm64:Darwin:*:*)` support within `config.guess` to emacs-27 branch and switch to `aarch64-apple-darwin` everywhere
- Do not backport, but switch to `aarch64-apple-darwin` everywhere anyway :)

What do you think?

Regards,
Artem Loenko

[Message part 2 (text/html, inline)]

This bug report was last modified 4 years and 207 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.