Documenting my resolution to a build error caused when the brew update process upgraded me from libgccjit 11.3 to 12.1. Error message from configure ============================ ,---- | checking for gcc_jit_context_acquire in -lgccjit... no | configure: error: ELisp native compiler was requested, but libgccjit was not found. | Please try installing libgccjit or a similar package. | If you are sure you want Emacs be compiled without ELisp native compiler, | pass the --without-native-compilation option to configure. | make: *** [config.status] Error 1 `---- config.log section showing linker can't map file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ,---- | configure:19555: checking for gcc_jit_context_acquire in -lgccjit | configure:19578: gcc -o conftest -g3 -O2 -isystem /usr/local/Cellar/libffi/3.4.2/include -isystem /usr/local/Cellar/librsvg/2.54.4/include/librsvg-2.0 -isystem /usr/local/Cellar/gdk-pixbuf/2.42.8_1/include/gdk-pixbuf-2.0 -isystem /usr/local/Cellar/jpeg/9e/include -isystem /usr/local/Cellar/libtiff/4.4.0_1/include -isystem /usr/local/Cellar/glib/2.72.3/include -isystem /usr/local/Cellar/cairo/1.16.0_5/include/cairo -isystem /usr/local/Cellar/glib/2.72.3/include -isystem /usr/local/Cellar/glib/2.72.3/include/glib-2.0 -isystem /usr/local/Cellar/glib/2.72.3/lib/glib-2.0/include -isystem /usr/local/opt/gettext/include -isystem /usr/local/Cellar/pcre/8.45/include -isystem /usr/local/Cellar/pixman/0.40.0/include/pixman-1 -isystem /usr/local/Cellar/fontconfig/2.14.0/include -isystem /usr/local/opt/freetype/include/freetype2 -isystem /usr/local/Cellar/libpng/1.6.37/include/libpng16 -isystem /usr/local/Cellar/libxcb/1.15/include -isystem /usr/local/Cellar/libxrender/0.9.10/include -isystem /usr/local/Cellar/libxext/1.3.4/include -isystem /usr/local/Cellar/libx11/1.8.1/include -isystem /usr/local/Cellar/libxcb/1.15/include -isystem /usr/local/Cellar/libxau/1.0.9/include -isystem /usr/local/Cellar/libxdmcp/1.1.3/include -isystem /usr/local/Cellar/xorgproto/2022.1/include -isystem /usr/local/Cellar/webp/1.2.3_1/include -I/usr/local/Cellar/libgccjit/12.1.0/include conftest.c -lgccjit -lsqlite3 -L/usr/local/Cellar/libgccjit/12.1.0/lib/gcc/current | /usr/local/Cellar/libgccjit/12.1.0/lib/gcc/12 >&5 | ld: warning: dylib (/usr/local/Cellar/libgccjit/12.1.0/lib/gcc/current/libgccjit.dylib) was built for newer macOS version (12.4) than being linked (12.0) | ld: can't map file, errno=22 file '/usr/local/Cellar/libgccjit/12.1.0/lib/gcc/12' for architecture x86_64 | clang: error: linker command failed with exit code 1 (use -v to see invocation) | configure:19578: $? = 1 `---- configure.ac test for brew installed libgccjit ============================================== In the example below the test in configure.ac returns two lines and this appears to be the cause of the linker can't map file error. ,---- | (python_training) bartm002@C02FM1E2MD6T ~ % brew ls -v libgccjit | grep -E 'libgccjit\.(so|dylib)$' | /usr/local/Cellar/libgccjit/12.1.0/lib/gcc/current/libgccjit.dylib | /usr/local/Cellar/libgccjit/12.1.0/lib/gcc/12/libgccjit.dylib `---- Here is the listing to show that both paths are really the same with symbolic links. ,---- | /usr/local/Cellar/libgccjit/12.1.0/lib/gcc: | drwxr-xr-x 4 bartm002 admin 128 May 6 00:53 . | drwxr-xr-x 3 bartm002 admin 96 May 6 00:53 .. | drwxr-xr-x 4 bartm002 admin 128 May 6 00:53 12 | lrwxr-xr-x 1 bartm002 admin 28 May 6 00:53 libgccjit.0.dylib -> ../current/libgccjit.0.dylib | lrwxr-xr-x 1 bartm002 admin 26 May 6 00:53 libgccjit.dylib -> ../current/libgccjit.dylib | drwxr-xr-x 4 bartm002 admin 128 May 6 00:53 current | -rw-r--r-- 1 bartm002 admin 41M Aug 6 18:47 libgccjit.0.dylib | lrwxr-xr-x 1 bartm002 admin 17 May 6 00:53 libgccjit.dylib -> libgccjit.0.dylib `---- Here I modify the test to return only the first line and the build succeeds after this change. ,---- | (python_training) bartm002@C02FM1E2MD6T ~ % brew ls -v libgccjit | grep -E 'libgccjit\.(so|dylib)$' | head -n 1 | /usr/local/Cellar/libgccjit/12.1.0/lib/gcc/current/libgccjit.dylib `---- ,---- | diff --git a/configure.ac b/configure.ac | index 1a264275bd..2d88d0ac15 100644 | --- a/configure.ac | +++ b/configure.ac | @@ -4241,7 +4241,8 @@ AC_DEFUN | MAC_CFLAGS="-I$(dirname $($BREW ls -v libgccjit | \ | grep libgccjit.h))" | MAC_LIBS="-L$(dirname $($BREW ls -v libgccjit| \ | - grep -E 'libgccjit\.(so|dylib)$'))" | + grep -E 'libgccjit\.(so|dylib)$'| \ | + head -n 1))" | fi | fi | `---- In GNU Emacs 29.0.50 (build 1, x86_64-apple-darwin21.5.0, NS appkit-2113.50 Version 12.4 (Build 21F79)) of 2022-08-06 built on C02FM1E2MD6T Repository revision: 02ee0254873d4c102728c942dc9659f942c5cfa6 Repository branch: master Windowing system distributor 'Apple', version 10.3.2113 System Description: macOS 12.4 Configured using: 'configure --with-native-compilation --with-xwidgets' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP XIM XWIDGETS ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Dired by date Minor modes in effect: all-the-icons-dired-mode: t doom-modeline-mode: t pyenv-mode: t erc-autojoin-mode: t org-super-agenda-mode: t global-atomic-chrome-edit-mode: t git-identity-magit-mode: t global-git-gutter-mode: t global-git-commit-mode: t magit-auto-revert-mode: t global-auto-revert-mode: t global-hungry-delete-mode: t hungry-delete-mode: t lin-mode: t global-undo-tree-mode: t show-smartparens-global-mode: t smartparens-global-mode: t yas-global-mode: t yas-minor-mode: t shell-dirtrack-mode: t whole-line-or-region-global-mode: t whole-line-or-region-local-mode: t winner-mode: t global-so-long-mode: t hl-line-mode: t delete-selection-mode: t global-corfu-mode: t corfu-mode: t marginalia-mode: t savehist-mode: t vertico-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t window-divider-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /Users/bartm002/.emacs.d/elpa/transient-20220806.2224/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient Features: (shadow sort mail-extr emacsbug magit-patch magit-subtree magit-gitignore magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util magit-extras magit-delta xterm-color autoconf autoconf-mode dired-aux all-the-icons-dired dabbrev cape tabify elfeed-link org-capture cl-print org-colview org-plot ob-eukleides org-checklist org-collector org-invoice org-learn org-mairix org-toc help-fns radix-tree misearch multi-isearch speedbar ezimage dframe powershell plantuml-mode json-mode json-snatcher sql-indent cursor-sensor embark-consult consult-vertico consult compat-28 recentf tree-widget org-indent disp-table ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win ol-docview doc-view jka-compr image-mode exif ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi display-line-numbers flyspell ispell rainbow-delimiters doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path pyenv-mode pythonic ein erc-join erc-networks erc-goodies erc-backend erc erc-compat erc-loaddefs ox-slack ox-gfm ox-md org-modern org-table-sticky-header org-mouse ob-http ob-http-mode ob-gnuplot ob-plantuml ob-latex ob-org ob-dot ob-ditaa ob-js ob-C ob-shell ob-python smartparens-python python ob-sql org-crypt org-web-tools eww xdg mm-url gnus nnheader range esxml-query org-omnifocus org-devonthink org-sidebar org-ql-search org-ql-view ov org-super-agenda ht org-ql peg ts org-habit ox-clip htmlize org-pomodoro alert log4e notifications dbus gntp org-timer org-clock org-bullets org-eldoc ox-extra ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda org-refile ox-html table ox-ascii ox-publish ox org-contrib org-protocol iedit iedit-lib all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons atomic-chrome websocket bindat let-alist rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header ibuf-ext ibuffer ibuffer-loaddefs elfeed-tube elfeed-tube-utils aio elfeed-score elfeed-score-maint elfeed-score-scoring elfeed-score-serde elfeed-score-rule-stats elfeed-score-rules elfeed-score-log elfeed-org org-element elfeed-show elfeed-search vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view magit-bookmark bookmark elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree url-queue xml-query git-identity hydra lv f f-shortdoc shortdoc git-link magit-gitflow magit-lfs git-timemachine vc-git git-gutter magit-submodule magit-obsolete magit-popup magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff-mode git-commit log-edit message sendmail yank-media rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor server magit-mode transient magit-git magit-base magit-section crm compat-27 compat-26 compat dired-subtree dired-narrow dired-hacks-utils dired dired-loaddefs autorevert multiple-cursors mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core rect hungry-delete lin undo-tree diff yaml-mode rjsx-mode smartparens-html sgml-mode facemenu js2-mode etags fileloop generator smartparens-javascript js smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs smartparens-racket racket-mode racket-bug-report racket-collection tq racket-repl-buffer-name racket-stepper racket-logger racket-profile racket-smart-open racket-xp racket-xp-complete racket-imenu racket-edit hideshow racket-repl semantic/symref/grep grep semantic/symref semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet racket-show face-remap pos-tip racket-eldoc racket-company-doc racket-describe racket-scribble racket-visit shr pixel-fill kinsoku url-file puny svg xml dom racket-complete racket-common racket-parens racket-indent racket-font-lock racket-ppss racket-keywords-and-builtins racket-doc racket-browse-url racket-cmd racket-back-end racket-util racket-custom sh-script smie executable eglot array filenotify jsonrpc ert ewoc debug backtrace flymake-proc flymake smartparens-config smartparens-org smartparens-text smartparens-clojure smartparens use-package-diminish try yasnippet-classic-snippets yasnippet-snippets yasnippet ejc-sql-conf epa-file epa epg rfc6068 epg-config ejc-sql ejc-completion-common ejc-doc ejc-interaction clomacs simple-httpd net-utils ejc-eldoc ejc-format ejc-result-buffer ejc-result-mode cua-base ejc-lib s dash cider tramp-sh cider-debug cider-browse-ns cider-mode cider-find cider-inspector cider-completion cider-profile cider-eval cider-jar arc-mode archive-mode compile text-property-search cider-repl-history pulse derived cider-repl cider-resolve cider-test cider-overlays cider-stacktrace cider-doc cider-browse-spec cider-clojuredocs cider-eldoc cider-client cider-common xref project cider-connection cider-util color cider-popup sesman-browser nrepl-client tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell parse-time ls-lisp queue nrepl-dict spinner sesman vc vc-dispatcher clojure-mode lisp-mnt align imenu parseedn parseclj-parser parseclj-lex parseclj-alist sql view unfill whole-line-or-region move-text default-text-scale zoom-window winner comp comp-cstr warnings so-long hl-line delsel desktop frameset cus-edit pp cus-load wid-edit corfu exec-path-from-shell marginalia embark ffap thingatpt savehist orderless vertico ace-window avy transpose-frame edmacro kmacro modus-operandi-theme modus-themes pcase use-package-bind-key bind-key cl-extra help-mode use-package-ensure use-package-core org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color ring org-list org-faces org-entities noutline outline easy-mmode icons org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex iso8601 time-date ol org-keys oc org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs finder-inf all-the-icons-dired-autoloads all-the-icons-autoloads atomic-chrome-autoloads cape-autoloads cider-autoloads clojure-mode-autoloads consult-dir-autoloads corfu-autoloads deadgrep-autoloads diff-ansi-autoloads doom-modeline-autoloads dumb-jump-autoloads eglot-autoloads ein-autoloads elfeed-score-autoloads elfeed-tube-mpv-autoloads elfeed-tube-autoloads aio-autoloads embark-consult-autoloads consult-autoloads embark-autoloads expand-region-autoloads git-identity-autoloads git-link-autoloads gnuplot-autoloads hydra-autoloads rx lv-autoloads magit-delta-autoloads magit-autoloads git-commit-autoloads magit-section-autoloads marginalia-autoloads markdown-mode-autoloads mpv-autoloads multiple-cursors-autoloads org-contrib-autoloads async-autoloads org-modern-autoloads org-ql-autoloads ox-pandoc-autoloads pdf-tools-autoloads powershell-autoloads pydoc-autoloads python-pytest-autoloads projectile-autoloads pythonic-autoloads racket-mode-autoloads request-autoloads js2-mode-autoloads pos-tip-autoloads f-autoloads smartparens-autoloads reformatter-autoloads sudo-edit-autoloads transient-autoloads dash-autoloads vertico-autoloads with-editor-autoloads info compat-autoloads xterm-color-autoloads yaml-mode-autoloads yasnippet-snippets-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile cconv url-vars cl-loaddefs cl-lib rmc iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads xwidget-internal kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 3055653 115699) (symbols 48 74116 0) (strings 32 373014 26917) (string-bytes 1 12592723) (vectors 16 157216) (vector-slots 8 3466067 343745) (floats 8 1412 2165) (intervals 56 229510 1627) (buffers 992 40))