<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MacOS on sonohen's tech blog</title><link>https://sonohen.net/tags/macos/</link><description>Recent content in MacOS on sonohen's tech blog</description><generator>Hugo -- gohugo.io</generator><language>ja-JP</language><lastBuildDate>Wed, 23 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sonohen.net/tags/macos/index.xml" rel="self" type="application/rss+xml"/><item><title>Emacs 31にしてからの設定見直し</title><link>https://sonohen.net/posts/2026/09/23/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><guid>https://sonohen.net/posts/2026/09/23/</guid><description>&lt;h2 id="環境"&gt;環境
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;brew install emacs-app --casks&lt;/code&gt; でインストールした &lt;code&gt;emacs&lt;/code&gt; を使用している。自分でコンパイルはしていない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;emacs --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GNU Emacs 31.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Development version fac653279dcb on HEAD branch; build date 2026-08-24.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (C) 2026 Free Software Foundation, Inc.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GNU Emacs comes with ABSOLUTELY NO WARRANTY.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You may redistribute copies of GNU Emacs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;under the terms of the GNU General Public License.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;For more information about these matters, see the file named COPYING.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;過去の &lt;code&gt;.emacs&lt;/code&gt; を引っ張り出してきて使おうとしたところ、久し振り過ぎて色々なところで躓いたので、そのときの記録を残すことにした。&lt;/p&gt;
&lt;h2 id="libgccjit-dot-so-が見つからない"&gt;&lt;code&gt;libgccjit.so&lt;/code&gt; が見つからない
&lt;/h2&gt;&lt;h3 id="警告内容"&gt;警告内容
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;⛔ Warning (native-compiler): libgccjit.so: error: error invoking gcc driver
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="原因"&gt;原因
&lt;/h3&gt;&lt;p&gt;macOSの &lt;code&gt;gcc&lt;/code&gt; を参照しているため。ネイティブコードにコンパイルするときに &lt;code&gt;gcc&lt;/code&gt; が &lt;code&gt;libgccjit&lt;/code&gt; を参照できずにエラーになっている模様。&lt;/p&gt;
&lt;h3 id="対処"&gt;対処
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;brew&lt;/code&gt; で &lt;code&gt;gcc&lt;/code&gt; と &lt;code&gt;libgccjit&lt;/code&gt; をインストールした。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;% brew install gcc libgccjit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;その上で &lt;code&gt;~/.emacs&lt;/code&gt; に以下の記述を追加し &lt;code&gt;brew&lt;/code&gt; でインストールした &lt;code&gt;gcc&lt;/code&gt; を呼び出すようにした。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(when (&lt;span style="color:#a6e22e"&gt;eq&lt;/span&gt; system-type &lt;span style="color:#e6db74"&gt;&amp;#39;darwin&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (setenv &lt;span style="color:#e6db74"&gt;&amp;#34;MACOSX_DEPLOYMENT_TARGET&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;27.0&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (let ((brew-prefix &lt;span style="color:#e6db74"&gt;&amp;#34;/opt/homebrew&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (setenv &lt;span style="color:#e6db74"&gt;&amp;#34;PATH&amp;#34;&lt;/span&gt; (&lt;span style="color:#a6e22e"&gt;concat&lt;/span&gt; brew-prefix &lt;span style="color:#e6db74"&gt;&amp;#34;/bin:&amp;#34;&lt;/span&gt; (getenv &lt;span style="color:#e6db74"&gt;&amp;#34;PATH&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (setq native-comp-compiler-path (&lt;span style="color:#a6e22e"&gt;concat&lt;/span&gt; brew-prefix &lt;span style="color:#e6db74"&gt;&amp;#34;/bin/gcc-16&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (setenv &lt;span style="color:#e6db74"&gt;&amp;#34;LIBRARY_PATH&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (&lt;span style="color:#a6e22e"&gt;concat&lt;/span&gt; brew-prefix &lt;span style="color:#e6db74"&gt;&amp;#34;/lib/gcc/16:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (getenv &lt;span style="color:#e6db74"&gt;&amp;#34;LIBRARY_PATH&amp;#34;&lt;/span&gt;)))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="missing-lexical-binding-cookie-という警告が出力される"&gt;&lt;code&gt;Missing 'lexical-binding' cookie&lt;/code&gt; という警告が出力される
&lt;/h2&gt;&lt;h3 id="警告内容"&gt;警告内容
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;⛔ Warning (files): Missing ‘lexical-binding’ cookie in &amp;#34;~/.emacs.d/elpa/ddskk-20260329.1317/skk-cursor.el&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You can add one with ‘M-x elisp-enable-lexical-binding RET’.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for more information.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="原因"&gt;原因
&lt;/h3&gt;&lt;p&gt;実装による。&lt;/p&gt;
&lt;h3 id="対処"&gt;対処
&lt;/h3&gt;&lt;p&gt;暫定対処となるが、以下の記述を &lt;code&gt;~/.emacs&lt;/code&gt; に追記する。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(when (require &lt;span style="color:#e6db74"&gt;&amp;#39;warnings&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (add-to-list &lt;span style="color:#e6db74"&gt;&amp;#39;warning-suppress-log-types&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;#39;&lt;/span&gt;(files missing-lexbind-cookie)))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>