GNU bug report logs - #57028
29.0.50; Build error with configure when brew installed 12.1 libgccjit on macos

Previous Next

Package: emacs;

Reported by: Mark Barton <mbarton98 <at> gmail.com>

Date: Sun, 7 Aug 2022 05:24:01 UTC

Severity: normal

Tags: patch

Merged with 57015, 57023, 57029

Found in version 29.0.50

Fixed in version 29.1

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 57028 in the body.
You can then email your comments to 57028 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#57028; Package emacs. (Sun, 07 Aug 2022 05:24:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mark Barton <mbarton98 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 07 Aug 2022 05:24:01 GMT) Full text and rfc822 format available.

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

From: Mark Barton <mbarton98 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; Build error with configure when brew installed 12.1
 libgccjit on macos
Date: Sat, 6 Aug 2022 22:22:55 -0700
[Message part 1 (text/plain, inline)]
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 <at> 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 <at> 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))
[Message part 2 (text/html, inline)]
[configure.ac.macos_brew_test_libgccjit.patch (application/octet-stream, attachment)]
[Message part 4 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57028; Package emacs. (Sun, 07 Aug 2022 06:30:03 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Mark Barton <mbarton98 <at> gmail.com>
Cc: 57028 <at> debbugs.gnu.org
Subject: Re: bug#57028: 29.0.50;
 Build error with configure when brew installed 12.1 libgccjit on macos
Date: Sun, 07 Aug 2022 09:29:04 +0300
merge 57028 57015
thanks

> From: Mark Barton <mbarton98 <at> gmail.com>
> 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 <at> 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 <at> 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
>   |  
>   `----

This is the same issue as in bug#57015; I've now merged these two bug
reports.

Other than that, I confess to be utterly confused by the actual issue
that's the root cause of this, and I have no idea which of the
possible suggested solutions we should use, both on master and on the
release branch.  Updated proposals tend to be posted at high
frequency, which doesn't contribute to my sense of reliability of the
solutions.

I hope some macOS expert could chime in and clarify the issues enough
for us to make the decisions.




Merged 57015 57028. Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 07 Aug 2022 06:30:03 GMT) Full text and rfc822 format available.

Merged 57015 57028 57029. Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 07 Aug 2022 06:51:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57028; Package emacs. (Sun, 07 Aug 2022 07:16:01 GMT) Full text and rfc822 format available.

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

From: Mark Barton <mbarton98 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57028 <at> debbugs.gnu.org
Subject: Re: bug#57028: 29.0.50; Build error with configure when brew
 installed 12.1 libgccjit on macos
Date: Sun, 7 Aug 2022 00:15:09 -0700
[Message part 1 (text/plain, inline)]

> On Aug 6, 2022, at 11:29 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
> I hope some macOS expert could chime in and clarify the issues enough
> for us to make the decisions.

57015 has a more precise solution than mine in 57028 since it uses readlink to follow the symbolic link to always get the path to the actual library. 

Mark

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

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57028; Package emacs. (Sun, 07 Aug 2022 08:50:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Mark Barton <mbarton98 <at> gmail.com>
Cc: 57028 <at> debbugs.gnu.org
Subject: Re: bug#57028: 29.0.50; Build error with configure when brew
 installed 12.1 libgccjit on macos
Date: Sun, 07 Aug 2022 11:49:36 +0300
> From: Mark Barton <mbarton98 <at> gmail.com>
> Date: Sun, 7 Aug 2022 00:15:09 -0700
> Cc: 57028 <at> debbugs.gnu.org
> 
>  On Aug 6, 2022, at 11:29 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
>  I hope some macOS expert could chime in and clarify the issues enough
>  for us to make the decisions.
> 
> 57015 has a more precise solution than mine in 57028 since it uses readlink to follow the symbolic link to
> always get the path to the actual library. 

But we then established that 'readlink' cannot be relied upon to exist
on any random system.  So AFAIU, that solution cannot be used.




Forcibly Merged 57015 57023 57028 57029. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 07 Aug 2022 13:00:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57028; Package emacs. (Sun, 07 Aug 2022 16:56:01 GMT) Full text and rfc822 format available.

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

From: Mark Barton <mbarton98 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57028 <at> debbugs.gnu.org
Subject: Re: bug#57028: 29.0.50; Build error with configure when brew
 installed 12.1 libgccjit on macos
Date: Sun, 7 Aug 2022 09:55:10 -0700

> On Aug 7, 2022, at 1:49 AM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
>> From: Mark Barton <mbarton98 <at> gmail.com>
>> Date: Sun, 7 Aug 2022 00:15:09 -0700
>> Cc: 57028 <at> debbugs.gnu.org
>> 
>> On Aug 6, 2022, at 11:29 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> 
>> I hope some macOS expert could chime in and clarify the issues enough
>> for us to make the decisions.
>> 
>> 57015 has a more precise solution than mine in 57028 since it uses readlink to follow the symbolic link to
>> always get the path to the actual library. 
> 
> But we then established that 'readlink' cannot be relied upon to exist
> on any random system.  So AFAIU, that solution cannot be used.


I forgot about grep having the -m parameter to restrict the number of matches. 

Here you see it returns the single directory that would be assigned to the env variable.
(python_training) bartm002 <at> C02FM1E2MD6T ~ % dirname $(brew ls -v libgccjit | grep -m 1 -E 'libgccjit\.(so|dylib)$')
/usr/local/Cellar/libgccjit/12.1.0/lib/gcc/current

Here I show the problem with multiple hits, the dirname result to be assigned is two lines.
(python_training) bartm002 <at> C02FM1E2MD6T ~ % dirname $(brew ls -v libgccjit | grep -m 2 -E 'libgccjit\.(so|dylib)$')
/usr/local/Cellar/libgccjit/12.1.0/lib/gcc/current
/usr/local/Cellar/libgccjit/12.1.0/lib/gcc/12

Either dirname result is good to use, just not both. Adding the "-m 1" to the existing grep would not introduce more dependencies.



bug marked as fixed in version 29.1, send any further explanations to 57029 <at> debbugs.gnu.org and ccqpein <ccqpein <at> protonmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Mon, 05 Sep 2022 18:45:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 04 Oct 2022 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 176 days ago.

Previous Next


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