bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#57028: 29.0.50; Build error with configure when brew installed 12.1


From: Mark Barton
Subject: bug#57028: 29.0.50; Build error with configure when brew installed 12.1 libgccjit on macos
Date: Sat, 6 Aug 2022 22:22:55 -0700

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
  |  
  `----

Attachment: configure.ac.macos_brew_test_libgccjit.patch
Description: Binary data




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))

reply via email to

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