* bug#22385: 24.5; Build failure with modules on OpenBSD @ 2016-01-16 17:43 Joakim Jalap 2016-01-17 16:22 ` Philipp Stephani 2016-01-17 22:30 ` Paul Eggert 0 siblings, 2 replies; 4+ messages in thread From: Joakim Jalap @ 2016-01-16 17:43 UTC (permalink / raw) To: 22385 [-- Attachment #1: Type: text/plain, Size: 1186 bytes --] Hello I discovered a little problem while trying to build emacs-25 with modules on OpenBSD-current. The problem is that an assertion fails because HAVE_ATTRIBUTE_CLEANUP is not true, even though I'm using clang which does support the cleanup attribute (I think). This is because the test for whether CC supports that attribute (m4/ax_gcc_var_attribute.m4 m4/ax_gcc_var_attribute.m4) only checks if there were warnings issued and if so decides that the compiler has no support. But OpenBSDs linker (I think it is) outputs the following warnings: /usr/X11R6/lib/libX11.so.16.1: warning: warning: strcpy() is almost always misused, please use strlcpy() /usr/X11R6/lib/libX11.so.16.1: warning: warning: strcat() is almost always misused, please use strlcat() /usr/X11R6/lib/libX11.so.16.1: warning: warning: sprintf() is often misused, please use snprintf() which are completely unrelated to lack of attribute support. The attached fix allows me to build. It isn't meant as a real solution, it's more to illustrate the problem. I guess another way to go migt be to run this test with empty linker flags, but I haven't tried that. Either way, I hope this is of some use. -- Joakim [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: openbsd-fix --] [-- Type: text/x-patch, Size: 1240 bytes --] diff --git m4/ax_gcc_var_attribute.m4 m4/ax_gcc_var_attribute.m4 index d12fce8..963af5e 100644 --- m4/ax_gcc_var_attribute.m4 +++ m4/ax_gcc_var_attribute.m4 @@ -55,6 +55,11 @@ #serial 3 AC_DEFUN([AX_GCC_VAR_ATTRIBUTE], [ + + dnl Temporarily make unknown attributes an error + OLDCFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror=attributes" + AS_VAR_PUSHDEF([ac_var], [ax_cv_have_var_attribute_$1]) AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [ @@ -124,15 +129,12 @@ AC_DEFUN([AX_GCC_VAR_ATTRIBUTE], [ [] )]) ], - dnl GCC doesn't exit with an error if an unknown attribute is - dnl provided but only outputs a warning, so accept the attribute - dnl only if no warning were issued. - [AS_IF([test -s conftest.err], - [AS_VAR_SET([ac_var], [no])], - [AS_VAR_SET([ac_var], [yes])])], + [AS_VAR_SET([ac_var], [yes])], [AS_VAR_SET([ac_var], [no])]) ]) + CFLAGS="$OLDCFLAGS" + AS_IF([test yes = AS_VAR_GET([ac_var])], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_VAR_ATTRIBUTE_$1), 1, [Define to 1 if the system has the `$1' variable attribute])], []) [-- Attachment #3: Type: text/plain, Size: 20273 bytes --] In GNU Emacs 24.5.1 (x86_64-unknown-openbsd, GTK+ Version 3.18.6) of 2015-12-09 on amd64.ports.openbsd.org Windowing system distributor `The X.Org Foundation', version 11.0.11704000 Configured using: `configure --build=amd64-unknown-openbsd --without-sound --with-x-toolkit=gtk3 --prefix=/usr/local --sysconfdir=/etc --mandir=/usr/local/man --infodir=/usr/local/info --localstatedir=/var --disable-silent-rules --disable-gtk-doc 'CFLAGS=-O2 -pipe -fno-pie' CPPFLAGS=-I/usr/local/include 'LDFLAGS=-L/usr/local/lib -nopie'' Important settings: locale-coding-system: nil Major mode: Org Minor modes in effect: show-paren-mode: t global-linum-mode: t rich-minority-mode: t global-cwarn-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t shell-dirtrack-mode: t global-semantic-idle-scheduler-mode: t global-semanticdb-minor-mode: t semantic-mode: t erc-notifications-mode: t erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-networks-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-match-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-netsplit-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t w3m-fb-mode: t global-hl-line-mode: t diff-auto-refine-mode: t global-company-mode: t company-mode: t TeX-PDF-mode: t TeX-source-correlate-mode: t flx-ido-mode: t ido-everywhere: t global-undo-tree-mode: t undo-tree-mode: t global-auto-revert-mode: t projectile-global-mode: t projectile-mode: t tooltip-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: t Recent messages: [2 times] Buffer is read-only (emacs gnus type) Buffer is read-only Describe-Function... Making completion list... Quit Entering debugger... Back to top level. Making completion list... [3 times] gnus-user-agent Load-path shadows: /home/joakim/.emacs.d/elpa/helm-20151106.2158/helm-multi-match hides /home/joakim/.emacs.d/elpa/helm-core-20151104.0/helm-multi-match /home/joakim/.emacs.d/elpa/org-20151005/org-protocol hides /usr/local/share/emacs/24.5/lisp/org/org-protocol /home/joakim/.emacs.d/elpa/org-20151005/org-pcomplete hides /usr/local/share/emacs/24.5/lisp/org/org-pcomplete /home/joakim/.emacs.d/elpa/org-20151005/org-eshell hides /usr/local/share/emacs/24.5/lisp/org/org-eshell /home/joakim/.emacs.d/elpa/org-20151005/org-element hides /usr/local/share/emacs/24.5/lisp/org/org-element /home/joakim/.emacs.d/elpa/org-20151005/ob-plantuml hides /usr/local/share/emacs/24.5/lisp/org/ob-plantuml /home/joakim/.emacs.d/elpa/org-20151005/ob-picolisp hides /usr/local/share/emacs/24.5/lisp/org/ob-picolisp /home/joakim/.emacs.d/elpa/org-20151005/ob-maxima hides /usr/local/share/emacs/24.5/lisp/org/ob-maxima /home/joakim/.emacs.d/elpa/org-20151005/ob-lilypond hides /usr/local/share/emacs/24.5/lisp/org/ob-lilypond /home/joakim/.emacs.d/elpa/org-20151005/ob-ledger hides /usr/local/share/emacs/24.5/lisp/org/ob-ledger /home/joakim/.emacs.d/elpa/org-20151005/ob-octave hides /usr/local/share/emacs/24.5/lisp/org/ob-octave /home/joakim/.emacs.d/elpa/org-20151005/ob-lob hides /usr/local/share/emacs/24.5/lisp/org/ob-lob /home/joakim/.emacs.d/elpa/org-20151005/org-inlinetask hides /usr/local/share/emacs/24.5/lisp/org/org-inlinetask /home/joakim/.emacs.d/elpa/org-20151005/org-footnote hides /usr/local/share/emacs/24.5/lisp/org/org-footnote /home/joakim/.emacs.d/elpa/org-20151005/ob-fortran hides /usr/local/share/emacs/24.5/lisp/org/ob-fortran /home/joakim/.emacs.d/elpa/org-20151005/ob-dot hides /usr/local/share/emacs/24.5/lisp/org/ob-dot /home/joakim/.emacs.d/elpa/org-20151005/ob-tangle hides /usr/local/share/emacs/24.5/lisp/org/ob-tangle /home/joakim/.emacs.d/elpa/org-20151005/ob-css hides /usr/local/share/emacs/24.5/lisp/org/ob-css /home/joakim/.emacs.d/elpa/org-20151005/ob-sql hides /usr/local/share/emacs/24.5/lisp/org/ob-sql /home/joakim/.emacs.d/elpa/org-20151005/ob-core hides /usr/local/share/emacs/24.5/lisp/org/ob-core /home/joakim/.emacs.d/elpa/org-20151005/org-datetree hides /usr/local/share/emacs/24.5/lisp/org/org-datetree /home/joakim/.emacs.d/elpa/org-20151005/org-capture hides /usr/local/share/emacs/24.5/lisp/org/org-capture /home/joakim/.emacs.d/elpa/org-20151005/ob-python hides /usr/local/share/emacs/24.5/lisp/org/ob-python /home/joakim/.emacs.d/elpa/org-20151005/ox-org hides /usr/local/share/emacs/24.5/lisp/org/ox-org /home/joakim/.emacs.d/elpa/org-20151005/org-plot hides /usr/local/share/emacs/24.5/lisp/org/org-plot /home/joakim/.emacs.d/elpa/org-20151005/ob-clojure hides /usr/local/share/emacs/24.5/lisp/org/ob-clojure /home/joakim/.emacs.d/elpa/org-20151005/ob-C hides /usr/local/share/emacs/24.5/lisp/org/ob-C /home/joakim/.emacs.d/elpa/org-20151005/org-irc hides /usr/local/share/emacs/24.5/lisp/org/org-irc /home/joakim/.emacs.d/elpa/org-20151005/ox-html hides /usr/local/share/emacs/24.5/lisp/org/ox-html /home/joakim/.emacs.d/elpa/org-20151005/ob-org hides /usr/local/share/emacs/24.5/lisp/org/ob-org /home/joakim/.emacs.d/elpa/org-20151005/org-id hides /usr/local/share/emacs/24.5/lisp/org/org-id /home/joakim/.emacs.d/elpa/org-20151005/org-w3m hides /usr/local/share/emacs/24.5/lisp/org/org-w3m /home/joakim/.emacs.d/elpa/org-20151005/org-macro hides /usr/local/share/emacs/24.5/lisp/org/org-macro /home/joakim/.emacs.d/elpa/org-20151005/ox-md hides /usr/local/share/emacs/24.5/lisp/org/ox-md /home/joakim/.emacs.d/elpa/org-20151005/org-src hides /usr/local/share/emacs/24.5/lisp/org/org-src /home/joakim/.emacs.d/elpa/org-20151005/org-docview hides /usr/local/share/emacs/24.5/lisp/org/org-docview /home/joakim/.emacs.d/elpa/org-20151005/ob-awk hides /usr/local/share/emacs/24.5/lisp/org/ob-awk /home/joakim/.emacs.d/elpa/org-20151005/ob-scala hides /usr/local/share/emacs/24.5/lisp/org/ob-scala /home/joakim/.emacs.d/elpa/org-20151005/org-attach hides /usr/local/share/emacs/24.5/lisp/org/org-attach /home/joakim/.emacs.d/elpa/org-20151005/ob-table hides /usr/local/share/emacs/24.5/lisp/org/ob-table /home/joakim/.emacs.d/elpa/org-20151005/org-feed hides /usr/local/share/emacs/24.5/lisp/org/org-feed /home/joakim/.emacs.d/elpa/org-20151005/org-compat hides /usr/local/share/emacs/24.5/lisp/org/org-compat /home/joakim/.emacs.d/elpa/org-20151005/ob-ocaml hides /usr/local/share/emacs/24.5/lisp/org/ob-ocaml /home/joakim/.emacs.d/elpa/org-20151005/ob-scheme hides /usr/local/share/emacs/24.5/lisp/org/ob-scheme /home/joakim/.emacs.d/elpa/org-20151005/org-bbdb hides /usr/local/share/emacs/24.5/lisp/org/org-bbdb /home/joakim/.emacs.d/elpa/org-20151005/ob-calc hides /usr/local/share/emacs/24.5/lisp/org/ob-calc /home/joakim/.emacs.d/elpa/org-20151005/org-ctags hides /usr/local/share/emacs/24.5/lisp/org/org-ctags /home/joakim/.emacs.d/elpa/org-20151005/org-archive hides /usr/local/share/emacs/24.5/lisp/org/org-archive /home/joakim/.emacs.d/elpa/org-20151005/org-entities hides /usr/local/share/emacs/24.5/lisp/org/org-entities /home/joakim/.emacs.d/elpa/org-20151005/ob-comint hides /usr/local/share/emacs/24.5/lisp/org/ob-comint /home/joakim/.emacs.d/elpa/org-20151005/ob-matlab hides /usr/local/share/emacs/24.5/lisp/org/ob-matlab /home/joakim/.emacs.d/elpa/org-20151005/org-mhe hides /usr/local/share/emacs/24.5/lisp/org/org-mhe /home/joakim/.emacs.d/elpa/org-20151005/ob-lisp hides /usr/local/share/emacs/24.5/lisp/org/ob-lisp /home/joakim/.emacs.d/elpa/org-20151005/ox-beamer hides /usr/local/share/emacs/24.5/lisp/org/ox-beamer /home/joakim/.emacs.d/elpa/org-20151005/org-rmail hides /usr/local/share/emacs/24.5/lisp/org/org-rmail /home/joakim/.emacs.d/elpa/org-20151005/org-colview hides /usr/local/share/emacs/24.5/lisp/org/org-colview /home/joakim/.emacs.d/elpa/org-20151005/org-gnus hides /usr/local/share/emacs/24.5/lisp/org/org-gnus /home/joakim/.emacs.d/elpa/org-20151005/ob-makefile hides /usr/local/share/emacs/24.5/lisp/org/ob-makefile /home/joakim/.emacs.d/elpa/org-20151005/ob-emacs-lisp hides /usr/local/share/emacs/24.5/lisp/org/ob-emacs-lisp /home/joakim/.emacs.d/elpa/org-20151005/ob-shen hides /usr/local/share/emacs/24.5/lisp/org/ob-shen /home/joakim/.emacs.d/elpa/org-20151005/ob-haskell hides /usr/local/share/emacs/24.5/lisp/org/ob-haskell /home/joakim/.emacs.d/elpa/org-20151005/ob-java hides /usr/local/share/emacs/24.5/lisp/org/ob-java /home/joakim/.emacs.d/elpa/org-20151005/ob-sqlite hides /usr/local/share/emacs/24.5/lisp/org/ob-sqlite /home/joakim/.emacs.d/elpa/org-20151005/ob-latex hides /usr/local/share/emacs/24.5/lisp/org/ob-latex /home/joakim/.emacs.d/elpa/org-20151005/ob-mscgen hides /usr/local/share/emacs/24.5/lisp/org/ob-mscgen /home/joakim/.emacs.d/elpa/org-20151005/ob-screen hides /usr/local/share/emacs/24.5/lisp/org/ob-screen /home/joakim/.emacs.d/elpa/org-20151005/org-macs hides /usr/local/share/emacs/24.5/lisp/org/org-macs /home/joakim/.emacs.d/elpa/org-20151005/org-timer hides /usr/local/share/emacs/24.5/lisp/org/org-timer /home/joakim/.emacs.d/elpa/org-20151005/ob-ref hides /usr/local/share/emacs/24.5/lisp/org/ob-ref /home/joakim/.emacs.d/elpa/org-20151005/ob-perl hides /usr/local/share/emacs/24.5/lisp/org/ob-perl /home/joakim/.emacs.d/elpa/org-20151005/org-faces hides /usr/local/share/emacs/24.5/lisp/org/org-faces /home/joakim/.emacs.d/elpa/org-20151005/org-table hides /usr/local/share/emacs/24.5/lisp/org/org-table /home/joakim/.emacs.d/elpa/org-20151005/ob-gnuplot hides /usr/local/share/emacs/24.5/lisp/org/ob-gnuplot /home/joakim/.emacs.d/elpa/org-20151005/ob-eval hides /usr/local/share/emacs/24.5/lisp/org/ob-eval /home/joakim/.emacs.d/elpa/org-20151005/ox-latex hides /usr/local/share/emacs/24.5/lisp/org/ox-latex /home/joakim/.emacs.d/elpa/org-20151005/ob-io hides /usr/local/share/emacs/24.5/lisp/org/ob-io /home/joakim/.emacs.d/elpa/org-20151005/ox-man hides /usr/local/share/emacs/24.5/lisp/org/ox-man /home/joakim/.emacs.d/elpa/org-20151005/org-habit hides /usr/local/share/emacs/24.5/lisp/org/org-habit /home/joakim/.emacs.d/elpa/org-20151005/org-crypt hides /usr/local/share/emacs/24.5/lisp/org/org-crypt /home/joakim/.emacs.d/elpa/org-20151005/ob-asymptote hides /usr/local/share/emacs/24.5/lisp/org/ob-asymptote /home/joakim/.emacs.d/elpa/org-20151005/org-mouse hides /usr/local/share/emacs/24.5/lisp/org/org-mouse /home/joakim/.emacs.d/elpa/org-20151005/org-version hides /usr/local/share/emacs/24.5/lisp/org/org-version /home/joakim/.emacs.d/elpa/org-20151005/org-indent hides /usr/local/share/emacs/24.5/lisp/org/org-indent /home/joakim/.emacs.d/elpa/org-20151005/ox-texinfo hides /usr/local/share/emacs/24.5/lisp/org/ox-texinfo /home/joakim/.emacs.d/elpa/org-20151005/org-mobile hides /usr/local/share/emacs/24.5/lisp/org/org-mobile /home/joakim/.emacs.d/elpa/org-20151005/ob-exp hides /usr/local/share/emacs/24.5/lisp/org/ob-exp /home/joakim/.emacs.d/elpa/org-20151005/ox-odt hides /usr/local/share/emacs/24.5/lisp/org/ox-odt /home/joakim/.emacs.d/elpa/org-20151005/ob-keys hides /usr/local/share/emacs/24.5/lisp/org/ob-keys /home/joakim/.emacs.d/elpa/org-20151005/ox-ascii hides /usr/local/share/emacs/24.5/lisp/org/ox-ascii /home/joakim/.emacs.d/elpa/org-20151005/org-agenda hides /usr/local/share/emacs/24.5/lisp/org/org-agenda /home/joakim/.emacs.d/elpa/org-20151005/ox-publish hides /usr/local/share/emacs/24.5/lisp/org/ox-publish /home/joakim/.emacs.d/elpa/org-20151005/ob-js hides /usr/local/share/emacs/24.5/lisp/org/ob-js /home/joakim/.emacs.d/elpa/org-20151005/ob-R hides /usr/local/share/emacs/24.5/lisp/org/ob-R /home/joakim/.emacs.d/elpa/org-20151005/org hides /usr/local/share/emacs/24.5/lisp/org/org /home/joakim/.emacs.d/elpa/org-20151005/org-list hides /usr/local/share/emacs/24.5/lisp/org/org-list /home/joakim/.emacs.d/elpa/org-20151005/org-install hides /usr/local/share/emacs/24.5/lisp/org/org-install /home/joakim/.emacs.d/elpa/org-20151005/ob-ditaa hides /usr/local/share/emacs/24.5/lisp/org/ob-ditaa /home/joakim/.emacs.d/elpa/org-20151005/org-info hides /usr/local/share/emacs/24.5/lisp/org/org-info /home/joakim/.emacs.d/elpa/org-20151005/ob hides /usr/local/share/emacs/24.5/lisp/org/ob /home/joakim/.emacs.d/elpa/org-20151005/ox-icalendar hides /usr/local/share/emacs/24.5/lisp/org/ox-icalendar /home/joakim/.emacs.d/elpa/org-20151005/ob-sass hides /usr/local/share/emacs/24.5/lisp/org/ob-sass /home/joakim/.emacs.d/elpa/org-20151005/org-loaddefs hides /usr/local/share/emacs/24.5/lisp/org/org-loaddefs /home/joakim/.emacs.d/elpa/org-20151005/ox hides /usr/local/share/emacs/24.5/lisp/org/ox /home/joakim/.emacs.d/elpa/org-20151005/org-clock hides /usr/local/share/emacs/24.5/lisp/org/org-clock /home/joakim/.emacs.d/elpa/org-20151005/ob-ruby hides /usr/local/share/emacs/24.5/lisp/org/ob-ruby /home/joakim/.emacs.d/elpa/org-20151005/org-bibtex hides /usr/local/share/emacs/24.5/lisp/org/org-bibtex /home/joakim/.emacs.d/elpa/emms-20150810.832/tq hides /usr/local/share/emacs/24.5/lisp/emacs-lisp/tq Features: (shadow bbdb-message mail-extr gnus-msg gnus-art mm-uu mml2015 debug org-rmail org-mhe org-irc org-info org-gnus org-docview org-bibtex bibtex org-bbdb org-element org-w3m ispell emacsbug mule-util view eieio-opt whitespace m4-mode smex sh-script smie executable misearch multi-isearch vc-git solarized-dark-theme solarized company-files company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-css company-nxml company-bbdb emms-mode-line emms-info-ogginfo emms-info-mp3info emms-player-vlc emms-player-mplayer emms-browser sort emms-playlist-sort emms-playlist-mode emms-last-played emms-player-mpd emms-url emms-cache emms-info later-do tq emms-source-playlist emms-source-file locate emms-player-simple emms-setup emms emms-compat paren linum-off linum rich-minority f90 fortran cus-edit cus-start cus-load py-autopep8 company-anaconda anaconda-mode pythonic f python cwarn company-irony irony-completion irony-snippet irony company-rtags company-template rtags popup repeat bookmark function-args semantic-directory semantic/ia etags srefactor subr-x srefactor-ui recentf tree-widget srecode/semantic semantic/senator semantic/decorate pulse srecode/insert srecode/filters srecode/args ede/speedbar ede/files ede ede/base ede/auto ede/source eieio-speedbar speedbar sb-image dframe eieio-custom srecode/find srecode/map srecode/ctxt srecode/compile srecode/dictionary srecode/table srecode semantic/doc semantic/bovine/c hideif semantic/bovine/c-by semantic/lex-spp semantic/bovine/gcc semantic/dep semantic/bovine semantic/analyze/refs semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs dsvn vc vc-dispatcher magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit magit-apply magit-wip magit-log magit-diff smerge-mode magit-core magit-process magit-popup magit-mode magit-git magit-section magit-utils git-commit log-edit pcvs-util add-log with-editor async-bytecomp async tramp-sh tramp tramp-compat tramp-loaddefs trampver shell comment-dwim-2 origami origami-parsers semantic/idle semantic/format ezimage semantic/tag-ls semantic/find semantic/ctxt inversion semantic/db-global semantic/symref/global semantic/symref semantic/db-find semantic/db-ref cedet-global semantic/db-mode semantic/db eieio-base semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet lice mentor xml-rpc url-http tls url-auth url-gw url-scgi google-translate-smooth-ui google-translate google-translate-default-ui google-translate-core-ui google-translate-core elfeed-show elfeed-db elfeed-lib avl-tree elfeed-search elfeed url-queue xml-query erc-desktop-notifications notifications erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete erc-track erc-match erc-button erc-fill erc-stamp erc-netsplit erc-goodies erc erc-backend erc-compat gnutls weechat-complete weechat-button weechat weechat-color rx weechat-relay bindat weechat-core s ucs-normalize conkeror-minor-mode w3m-lnum w3m-search w3m doc-view jka-compr image-mode w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util eww-lnum eww mm-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util shr browse-url bbdb-mua bbdb-com bbdb bbdb-site timezone notmuch hl-line notmuch-message notmuch-maildir-fcc notmuch-hello notmuch-tree notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-address notmuch-company notmuch-parser notmuch-wash diff-mode coolj notmuch-query goto-addr icalendar diary-lib diary-loaddefs notmuch-tag notmuch-lib mm-view mml-smime smime dig mailcap nnir gnus-sum gnus-group gnus-undo nnmail mail-source nnoo mbsync smtpmail sendmail gnus-sync gnus-start gnus-spec gnus-int gnus-range message idna rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win json gnus gnus-ems nnheader mail-utils wid-edit company-math math-symbol-lists company-auctex yasnippet company pcase latex tex-style tex dbus xml crm swiper ivy delsel ffap url-parse auth-source gnus-util mm-util mail-prsvr password-cache url-vars idomenu imenu ace-link ace-window em-smart esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc esh-groups eshell esh-module esh-mode esh-util multi-term term disp-table ehelp flx-ido flx ido avy-zap avy move-text undo-tree diff hydra lv multiple-cursors mc-hide-unmatched-lines-mode mc-separate-operations rectangular-region-mode mc-mark-pop mc-mark-more mc-cycle-cursors mc-edit-lines multiple-cursors-core rect org-table misc programmers-dvorak quail edmacro kmacro dired+ image-dired image-file dired-aux dired-x server pinentry autorevert filenotify projectile grep compile ibuf-ext ibuffer dash thingatpt ignoramus el-get el-get-autoloading el-get-list-packages el-get-dependencies el-get-build el-get-status pp el-get-methods el-get-fossil el-get-svn el-get-pacman el-get-github-zip el-get-github-tar el-get-http-zip el-get-http-tar el-get-hg el-get-go el-get-git-svn el-get-fink el-get-emacswiki el-get-http el-get-notify help-mode el-get-emacsmirror el-get-github el-get-git el-get-elpa el-get-darcs el-get-cvs el-get-bzr el-get-brew el-get-builtin el-get-apt-get el-get-recipes el-get-byte-compile el-get-custom el-get-core autoload lisp-mnt dired finder-inf org advice org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint comint ansi-color ring ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs tex-site eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core help-fns cl-macs cl gv cl-loaddefs cl-lib info easymenu package epg-config tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 1027147 421321) (symbols 48 76509 1) (miscs 40 863 1582) (strings 32 207041 118087) (string-bytes 1 6146562) (vectors 16 147798) (vector-slots 8 3193259 446740) (floats 8 17152 16902) (intervals 56 10608 3318) (buffers 960 31)) ^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#22385: 24.5; Build failure with modules on OpenBSD 2016-01-16 17:43 bug#22385: 24.5; Build failure with modules on OpenBSD Joakim Jalap @ 2016-01-17 16:22 ` Philipp Stephani 2016-01-17 22:30 ` Paul Eggert 1 sibling, 0 replies; 4+ messages in thread From: Philipp Stephani @ 2016-01-17 16:22 UTC (permalink / raw) To: Joakim Jalap, 22385 [-- Attachment #1: Type: text/plain, Size: 22823 bytes --] Thanks for reporting. I guess this should also reported against autoconf-archive because the m4 file is from there ( https://www.gnu.org/software/autoconf-archive/How-to-contribute.html). More generally, a test for a GCC-style attribute should use the __has_attribute builtin if available and only resort to brittler methods such as warning output checks if the builtin is unavailable. Joakim Jalap <joakim.jalap@fastmail.com> schrieb am Sa., 16. Jan. 2016 um 19:25 Uhr: > > Hello > > I discovered a little problem while trying to build emacs-25 with modules > on > OpenBSD-current. The problem is that an assertion fails because > HAVE_ATTRIBUTE_CLEANUP is not true, even though I'm using clang which does > support the cleanup attribute (I think). > > This is because the test for whether CC supports that attribute > (m4/ax_gcc_var_attribute.m4 m4/ax_gcc_var_attribute.m4) only checks if > there > were warnings issued and if so decides that the compiler has no support. > But > OpenBSDs linker (I think it is) outputs the following warnings: > > /usr/X11R6/lib/libX11.so.16.1: warning: warning: strcpy() is almost always > misused, please use strlcpy() > /usr/X11R6/lib/libX11.so.16.1: warning: warning: strcat() is almost always > misused, please use strlcat() > /usr/X11R6/lib/libX11.so.16.1: warning: warning: sprintf() is often > misused, please use snprintf() > > which are completely unrelated to lack of attribute support. > > The attached fix allows me to build. It isn't meant as a real solution, > it's more to illustrate the problem. > > I guess another way to go migt be to run this test with empty linker > flags, but > I haven't tried that. > > Either way, I hope this is of some use. > > -- Joakim > > > > In GNU Emacs 24.5.1 (x86_64-unknown-openbsd, GTK+ Version 3.18.6) > of 2015-12-09 on amd64.ports.openbsd.org > Windowing system distributor `The X.Org Foundation', version 11.0.11704000 > Configured using: > `configure --build=amd64-unknown-openbsd --without-sound > --with-x-toolkit=gtk3 --prefix=/usr/local --sysconfdir=/etc > --mandir=/usr/local/man --infodir=/usr/local/info --localstatedir=/var > --disable-silent-rules --disable-gtk-doc 'CFLAGS=-O2 -pipe -fno-pie' > CPPFLAGS=-I/usr/local/include 'LDFLAGS=-L/usr/local/lib -nopie'' > > Important settings: > locale-coding-system: nil > > Major mode: Org > > Minor modes in effect: > show-paren-mode: t > global-linum-mode: t > rich-minority-mode: t > global-cwarn-mode: t > global-git-commit-mode: t > async-bytecomp-package-mode: t > shell-dirtrack-mode: t > global-semantic-idle-scheduler-mode: t > global-semanticdb-minor-mode: t > semantic-mode: t > erc-notifications-mode: t > erc-list-mode: t > erc-menu-mode: t > erc-autojoin-mode: t > erc-ring-mode: t > erc-networks-mode: t > erc-pcomplete-mode: t > erc-track-mode: t > erc-match-mode: t > erc-button-mode: t > erc-fill-mode: t > erc-stamp-mode: t > erc-netsplit-mode: t > erc-irccontrols-mode: t > erc-noncommands-mode: t > erc-move-to-prompt-mode: t > erc-readonly-mode: t > w3m-fb-mode: t > global-hl-line-mode: t > diff-auto-refine-mode: t > global-company-mode: t > company-mode: t > TeX-PDF-mode: t > TeX-source-correlate-mode: t > flx-ido-mode: t > ido-everywhere: t > global-undo-tree-mode: t > undo-tree-mode: t > global-auto-revert-mode: t > projectile-global-mode: t > projectile-mode: t > tooltip-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > menu-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > column-number-mode: t > line-number-mode: t > auto-fill-function: do-auto-fill > transient-mark-mode: t > > Recent messages: > [2 times] > Buffer is read-only > (emacs gnus type) > Buffer is read-only > Describe-Function... > Making completion list... > Quit > Entering debugger... > Back to top level. > Making completion list... [3 times] > gnus-user-agent > > Load-path shadows: > /home/joakim/.emacs.d/elpa/helm-20151106.2158/helm-multi-match hides > /home/joakim/.emacs.d/elpa/helm-core-20151104.0/helm-multi-match > /home/joakim/.emacs.d/elpa/org-20151005/org-protocol hides > /usr/local/share/emacs/24.5/lisp/org/org-protocol > /home/joakim/.emacs.d/elpa/org-20151005/org-pcomplete hides > /usr/local/share/emacs/24.5/lisp/org/org-pcomplete > /home/joakim/.emacs.d/elpa/org-20151005/org-eshell hides > /usr/local/share/emacs/24.5/lisp/org/org-eshell > /home/joakim/.emacs.d/elpa/org-20151005/org-element hides > /usr/local/share/emacs/24.5/lisp/org/org-element > /home/joakim/.emacs.d/elpa/org-20151005/ob-plantuml hides > /usr/local/share/emacs/24.5/lisp/org/ob-plantuml > /home/joakim/.emacs.d/elpa/org-20151005/ob-picolisp hides > /usr/local/share/emacs/24.5/lisp/org/ob-picolisp > /home/joakim/.emacs.d/elpa/org-20151005/ob-maxima hides > /usr/local/share/emacs/24.5/lisp/org/ob-maxima > /home/joakim/.emacs.d/elpa/org-20151005/ob-lilypond hides > /usr/local/share/emacs/24.5/lisp/org/ob-lilypond > /home/joakim/.emacs.d/elpa/org-20151005/ob-ledger hides > /usr/local/share/emacs/24.5/lisp/org/ob-ledger > /home/joakim/.emacs.d/elpa/org-20151005/ob-octave hides > /usr/local/share/emacs/24.5/lisp/org/ob-octave > /home/joakim/.emacs.d/elpa/org-20151005/ob-lob hides > /usr/local/share/emacs/24.5/lisp/org/ob-lob > /home/joakim/.emacs.d/elpa/org-20151005/org-inlinetask hides > /usr/local/share/emacs/24.5/lisp/org/org-inlinetask > /home/joakim/.emacs.d/elpa/org-20151005/org-footnote hides > /usr/local/share/emacs/24.5/lisp/org/org-footnote > /home/joakim/.emacs.d/elpa/org-20151005/ob-fortran hides > /usr/local/share/emacs/24.5/lisp/org/ob-fortran > /home/joakim/.emacs.d/elpa/org-20151005/ob-dot hides > /usr/local/share/emacs/24.5/lisp/org/ob-dot > /home/joakim/.emacs.d/elpa/org-20151005/ob-tangle hides > /usr/local/share/emacs/24.5/lisp/org/ob-tangle > /home/joakim/.emacs.d/elpa/org-20151005/ob-css hides > /usr/local/share/emacs/24.5/lisp/org/ob-css > /home/joakim/.emacs.d/elpa/org-20151005/ob-sql hides > /usr/local/share/emacs/24.5/lisp/org/ob-sql > /home/joakim/.emacs.d/elpa/org-20151005/ob-core hides > /usr/local/share/emacs/24.5/lisp/org/ob-core > /home/joakim/.emacs.d/elpa/org-20151005/org-datetree hides > /usr/local/share/emacs/24.5/lisp/org/org-datetree > /home/joakim/.emacs.d/elpa/org-20151005/org-capture hides > /usr/local/share/emacs/24.5/lisp/org/org-capture > /home/joakim/.emacs.d/elpa/org-20151005/ob-python hides > /usr/local/share/emacs/24.5/lisp/org/ob-python > /home/joakim/.emacs.d/elpa/org-20151005/ox-org hides > /usr/local/share/emacs/24.5/lisp/org/ox-org > /home/joakim/.emacs.d/elpa/org-20151005/org-plot hides > /usr/local/share/emacs/24.5/lisp/org/org-plot > /home/joakim/.emacs.d/elpa/org-20151005/ob-clojure hides > /usr/local/share/emacs/24.5/lisp/org/ob-clojure > /home/joakim/.emacs.d/elpa/org-20151005/ob-C hides > /usr/local/share/emacs/24.5/lisp/org/ob-C > /home/joakim/.emacs.d/elpa/org-20151005/org-irc hides > /usr/local/share/emacs/24.5/lisp/org/org-irc > /home/joakim/.emacs.d/elpa/org-20151005/ox-html hides > /usr/local/share/emacs/24.5/lisp/org/ox-html > /home/joakim/.emacs.d/elpa/org-20151005/ob-org hides > /usr/local/share/emacs/24.5/lisp/org/ob-org > /home/joakim/.emacs.d/elpa/org-20151005/org-id hides > /usr/local/share/emacs/24.5/lisp/org/org-id > /home/joakim/.emacs.d/elpa/org-20151005/org-w3m hides > /usr/local/share/emacs/24.5/lisp/org/org-w3m > /home/joakim/.emacs.d/elpa/org-20151005/org-macro hides > /usr/local/share/emacs/24.5/lisp/org/org-macro > /home/joakim/.emacs.d/elpa/org-20151005/ox-md hides > /usr/local/share/emacs/24.5/lisp/org/ox-md > /home/joakim/.emacs.d/elpa/org-20151005/org-src hides > /usr/local/share/emacs/24.5/lisp/org/org-src > /home/joakim/.emacs.d/elpa/org-20151005/org-docview hides > /usr/local/share/emacs/24.5/lisp/org/org-docview > /home/joakim/.emacs.d/elpa/org-20151005/ob-awk hides > /usr/local/share/emacs/24.5/lisp/org/ob-awk > /home/joakim/.emacs.d/elpa/org-20151005/ob-scala hides > /usr/local/share/emacs/24.5/lisp/org/ob-scala > /home/joakim/.emacs.d/elpa/org-20151005/org-attach hides > /usr/local/share/emacs/24.5/lisp/org/org-attach > /home/joakim/.emacs.d/elpa/org-20151005/ob-table hides > /usr/local/share/emacs/24.5/lisp/org/ob-table > /home/joakim/.emacs.d/elpa/org-20151005/org-feed hides > /usr/local/share/emacs/24.5/lisp/org/org-feed > /home/joakim/.emacs.d/elpa/org-20151005/org-compat hides > /usr/local/share/emacs/24.5/lisp/org/org-compat > /home/joakim/.emacs.d/elpa/org-20151005/ob-ocaml hides > /usr/local/share/emacs/24.5/lisp/org/ob-ocaml > /home/joakim/.emacs.d/elpa/org-20151005/ob-scheme hides > /usr/local/share/emacs/24.5/lisp/org/ob-scheme > /home/joakim/.emacs.d/elpa/org-20151005/org-bbdb hides > /usr/local/share/emacs/24.5/lisp/org/org-bbdb > /home/joakim/.emacs.d/elpa/org-20151005/ob-calc hides > /usr/local/share/emacs/24.5/lisp/org/ob-calc > /home/joakim/.emacs.d/elpa/org-20151005/org-ctags hides > /usr/local/share/emacs/24.5/lisp/org/org-ctags > /home/joakim/.emacs.d/elpa/org-20151005/org-archive hides > /usr/local/share/emacs/24.5/lisp/org/org-archive > /home/joakim/.emacs.d/elpa/org-20151005/org-entities hides > /usr/local/share/emacs/24.5/lisp/org/org-entities > /home/joakim/.emacs.d/elpa/org-20151005/ob-comint hides > /usr/local/share/emacs/24.5/lisp/org/ob-comint > /home/joakim/.emacs.d/elpa/org-20151005/ob-matlab hides > /usr/local/share/emacs/24.5/lisp/org/ob-matlab > /home/joakim/.emacs.d/elpa/org-20151005/org-mhe hides > /usr/local/share/emacs/24.5/lisp/org/org-mhe > /home/joakim/.emacs.d/elpa/org-20151005/ob-lisp hides > /usr/local/share/emacs/24.5/lisp/org/ob-lisp > /home/joakim/.emacs.d/elpa/org-20151005/ox-beamer hides > /usr/local/share/emacs/24.5/lisp/org/ox-beamer > /home/joakim/.emacs.d/elpa/org-20151005/org-rmail hides > /usr/local/share/emacs/24.5/lisp/org/org-rmail > /home/joakim/.emacs.d/elpa/org-20151005/org-colview hides > /usr/local/share/emacs/24.5/lisp/org/org-colview > /home/joakim/.emacs.d/elpa/org-20151005/org-gnus hides > /usr/local/share/emacs/24.5/lisp/org/org-gnus > /home/joakim/.emacs.d/elpa/org-20151005/ob-makefile hides > /usr/local/share/emacs/24.5/lisp/org/ob-makefile > /home/joakim/.emacs.d/elpa/org-20151005/ob-emacs-lisp hides > /usr/local/share/emacs/24.5/lisp/org/ob-emacs-lisp > /home/joakim/.emacs.d/elpa/org-20151005/ob-shen hides > /usr/local/share/emacs/24.5/lisp/org/ob-shen > /home/joakim/.emacs.d/elpa/org-20151005/ob-haskell hides > /usr/local/share/emacs/24.5/lisp/org/ob-haskell > /home/joakim/.emacs.d/elpa/org-20151005/ob-java hides > /usr/local/share/emacs/24.5/lisp/org/ob-java > /home/joakim/.emacs.d/elpa/org-20151005/ob-sqlite hides > /usr/local/share/emacs/24.5/lisp/org/ob-sqlite > /home/joakim/.emacs.d/elpa/org-20151005/ob-latex hides > /usr/local/share/emacs/24.5/lisp/org/ob-latex > /home/joakim/.emacs.d/elpa/org-20151005/ob-mscgen hides > /usr/local/share/emacs/24.5/lisp/org/ob-mscgen > /home/joakim/.emacs.d/elpa/org-20151005/ob-screen hides > /usr/local/share/emacs/24.5/lisp/org/ob-screen > /home/joakim/.emacs.d/elpa/org-20151005/org-macs hides > /usr/local/share/emacs/24.5/lisp/org/org-macs > /home/joakim/.emacs.d/elpa/org-20151005/org-timer hides > /usr/local/share/emacs/24.5/lisp/org/org-timer > /home/joakim/.emacs.d/elpa/org-20151005/ob-ref hides > /usr/local/share/emacs/24.5/lisp/org/ob-ref > /home/joakim/.emacs.d/elpa/org-20151005/ob-perl hides > /usr/local/share/emacs/24.5/lisp/org/ob-perl > /home/joakim/.emacs.d/elpa/org-20151005/org-faces hides > /usr/local/share/emacs/24.5/lisp/org/org-faces > /home/joakim/.emacs.d/elpa/org-20151005/org-table hides > /usr/local/share/emacs/24.5/lisp/org/org-table > /home/joakim/.emacs.d/elpa/org-20151005/ob-gnuplot hides > /usr/local/share/emacs/24.5/lisp/org/ob-gnuplot > /home/joakim/.emacs.d/elpa/org-20151005/ob-eval hides > /usr/local/share/emacs/24.5/lisp/org/ob-eval > /home/joakim/.emacs.d/elpa/org-20151005/ox-latex hides > /usr/local/share/emacs/24.5/lisp/org/ox-latex > /home/joakim/.emacs.d/elpa/org-20151005/ob-io hides > /usr/local/share/emacs/24.5/lisp/org/ob-io > /home/joakim/.emacs.d/elpa/org-20151005/ox-man hides > /usr/local/share/emacs/24.5/lisp/org/ox-man > /home/joakim/.emacs.d/elpa/org-20151005/org-habit hides > /usr/local/share/emacs/24.5/lisp/org/org-habit > /home/joakim/.emacs.d/elpa/org-20151005/org-crypt hides > /usr/local/share/emacs/24.5/lisp/org/org-crypt > /home/joakim/.emacs.d/elpa/org-20151005/ob-asymptote hides > /usr/local/share/emacs/24.5/lisp/org/ob-asymptote > /home/joakim/.emacs.d/elpa/org-20151005/org-mouse hides > /usr/local/share/emacs/24.5/lisp/org/org-mouse > /home/joakim/.emacs.d/elpa/org-20151005/org-version hides > /usr/local/share/emacs/24.5/lisp/org/org-version > /home/joakim/.emacs.d/elpa/org-20151005/org-indent hides > /usr/local/share/emacs/24.5/lisp/org/org-indent > /home/joakim/.emacs.d/elpa/org-20151005/ox-texinfo hides > /usr/local/share/emacs/24.5/lisp/org/ox-texinfo > /home/joakim/.emacs.d/elpa/org-20151005/org-mobile hides > /usr/local/share/emacs/24.5/lisp/org/org-mobile > /home/joakim/.emacs.d/elpa/org-20151005/ob-exp hides > /usr/local/share/emacs/24.5/lisp/org/ob-exp > /home/joakim/.emacs.d/elpa/org-20151005/ox-odt hides > /usr/local/share/emacs/24.5/lisp/org/ox-odt > /home/joakim/.emacs.d/elpa/org-20151005/ob-keys hides > /usr/local/share/emacs/24.5/lisp/org/ob-keys > /home/joakim/.emacs.d/elpa/org-20151005/ox-ascii hides > /usr/local/share/emacs/24.5/lisp/org/ox-ascii > /home/joakim/.emacs.d/elpa/org-20151005/org-agenda hides > /usr/local/share/emacs/24.5/lisp/org/org-agenda > /home/joakim/.emacs.d/elpa/org-20151005/ox-publish hides > /usr/local/share/emacs/24.5/lisp/org/ox-publish > /home/joakim/.emacs.d/elpa/org-20151005/ob-js hides > /usr/local/share/emacs/24.5/lisp/org/ob-js > /home/joakim/.emacs.d/elpa/org-20151005/ob-R hides > /usr/local/share/emacs/24.5/lisp/org/ob-R > /home/joakim/.emacs.d/elpa/org-20151005/org hides > /usr/local/share/emacs/24.5/lisp/org/org > /home/joakim/.emacs.d/elpa/org-20151005/org-list hides > /usr/local/share/emacs/24.5/lisp/org/org-list > /home/joakim/.emacs.d/elpa/org-20151005/org-install hides > /usr/local/share/emacs/24.5/lisp/org/org-install > /home/joakim/.emacs.d/elpa/org-20151005/ob-ditaa hides > /usr/local/share/emacs/24.5/lisp/org/ob-ditaa > /home/joakim/.emacs.d/elpa/org-20151005/org-info hides > /usr/local/share/emacs/24.5/lisp/org/org-info > /home/joakim/.emacs.d/elpa/org-20151005/ob hides > /usr/local/share/emacs/24.5/lisp/org/ob > /home/joakim/.emacs.d/elpa/org-20151005/ox-icalendar hides > /usr/local/share/emacs/24.5/lisp/org/ox-icalendar > /home/joakim/.emacs.d/elpa/org-20151005/ob-sass hides > /usr/local/share/emacs/24.5/lisp/org/ob-sass > /home/joakim/.emacs.d/elpa/org-20151005/org-loaddefs hides > /usr/local/share/emacs/24.5/lisp/org/org-loaddefs > /home/joakim/.emacs.d/elpa/org-20151005/ox hides > /usr/local/share/emacs/24.5/lisp/org/ox > /home/joakim/.emacs.d/elpa/org-20151005/org-clock hides > /usr/local/share/emacs/24.5/lisp/org/org-clock > /home/joakim/.emacs.d/elpa/org-20151005/ob-ruby hides > /usr/local/share/emacs/24.5/lisp/org/ob-ruby > /home/joakim/.emacs.d/elpa/org-20151005/org-bibtex hides > /usr/local/share/emacs/24.5/lisp/org/org-bibtex > /home/joakim/.emacs.d/elpa/emms-20150810.832/tq hides > /usr/local/share/emacs/24.5/lisp/emacs-lisp/tq > > Features: > (shadow bbdb-message mail-extr gnus-msg gnus-art mm-uu mml2015 debug > org-rmail org-mhe org-irc org-info org-gnus org-docview org-bibtex > bibtex org-bbdb org-element org-w3m ispell emacsbug mule-util view > eieio-opt whitespace m4-mode smex sh-script smie executable misearch > multi-isearch vc-git solarized-dark-theme solarized company-files > company-oddmuse company-keywords company-etags company-gtags > company-dabbrev-code company-dabbrev company-capf company-cmake > company-xcode company-clang company-semantic company-eclim company-css > company-nxml company-bbdb emms-mode-line emms-info-ogginfo > emms-info-mp3info emms-player-vlc emms-player-mplayer emms-browser sort > emms-playlist-sort emms-playlist-mode emms-last-played emms-player-mpd > emms-url emms-cache emms-info later-do tq emms-source-playlist > emms-source-file locate emms-player-simple emms-setup emms emms-compat > paren linum-off linum rich-minority f90 fortran cus-edit cus-start > cus-load py-autopep8 company-anaconda anaconda-mode pythonic f python > cwarn company-irony irony-completion irony-snippet irony company-rtags > company-template rtags popup repeat bookmark function-args > semantic-directory semantic/ia etags srefactor subr-x srefactor-ui > recentf tree-widget srecode/semantic semantic/senator semantic/decorate > pulse srecode/insert srecode/filters srecode/args ede/speedbar ede/files > ede ede/base ede/auto ede/source eieio-speedbar speedbar sb-image dframe > eieio-custom srecode/find srecode/map srecode/ctxt srecode/compile > srecode/dictionary srecode/table srecode semantic/doc semantic/bovine/c > hideif semantic/bovine/c-by semantic/lex-spp semantic/bovine/gcc > semantic/dep semantic/bovine semantic/analyze/refs semantic/analyze > semantic/sort semantic/scope semantic/analyze/fcn cc-mode cc-fonts > cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs > dsvn vc vc-dispatcher magit-blame magit-stash magit-bisect magit-remote > magit-commit magit-sequence magit magit-apply magit-wip magit-log > magit-diff smerge-mode magit-core magit-process magit-popup magit-mode > magit-git magit-section magit-utils git-commit log-edit pcvs-util > add-log with-editor async-bytecomp async tramp-sh tramp tramp-compat > tramp-loaddefs trampver shell comment-dwim-2 origami origami-parsers > semantic/idle semantic/format ezimage semantic/tag-ls semantic/find > semantic/ctxt inversion semantic/db-global semantic/symref/global > semantic/symref semantic/db-find semantic/db-ref cedet-global > semantic/db-mode semantic/db eieio-base semantic/util-modes > semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local > cedet lice mentor xml-rpc url-http tls url-auth url-gw url-scgi > google-translate-smooth-ui google-translate google-translate-default-ui > google-translate-core-ui google-translate-core elfeed-show elfeed-db > elfeed-lib avl-tree elfeed-search elfeed url-queue xml-query > erc-desktop-notifications notifications erc-list erc-menu erc-join > erc-ring erc-networks erc-pcomplete erc-track erc-match erc-button > erc-fill erc-stamp erc-netsplit erc-goodies erc erc-backend erc-compat > gnutls weechat-complete weechat-button weechat weechat-color rx > weechat-relay bindat weechat-core s ucs-normalize conkeror-minor-mode > w3m-lnum w3m-search w3m doc-view jka-compr image-mode w3m-hist w3m-fb > bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util > eww-lnum eww mm-url url url-proxy url-privacy url-expand url-methods > url-history url-cookie url-domsuf url-util shr browse-url bbdb-mua > bbdb-com bbdb bbdb-site timezone notmuch hl-line notmuch-message > notmuch-maildir-fcc notmuch-hello notmuch-tree notmuch-show > notmuch-print notmuch-crypto notmuch-mua notmuch-address notmuch-company > notmuch-parser notmuch-wash diff-mode coolj notmuch-query goto-addr > icalendar diary-lib diary-loaddefs notmuch-tag notmuch-lib mm-view > mml-smime smime dig mailcap nnir gnus-sum gnus-group gnus-undo nnmail > mail-source nnoo mbsync smtpmail sendmail gnus-sync gnus-start gnus-spec > gnus-int gnus-range message idna rfc822 mml mml-sec mm-decode mm-bodies > mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev > gmm-utils mailheader gnus-win json gnus gnus-ems nnheader mail-utils > wid-edit company-math math-symbol-lists company-auctex yasnippet company > pcase latex tex-style tex dbus xml crm swiper ivy delsel ffap url-parse > auth-source gnus-util mm-util mail-prsvr password-cache url-vars idomenu > imenu ace-link ace-window em-smart esh-var esh-io esh-cmd esh-opt > esh-ext esh-proc esh-arg eldoc esh-groups eshell esh-module esh-mode > esh-util multi-term term disp-table ehelp flx-ido flx ido avy-zap avy > move-text undo-tree diff hydra lv multiple-cursors > mc-hide-unmatched-lines-mode mc-separate-operations > rectangular-region-mode mc-mark-pop mc-mark-more mc-cycle-cursors > mc-edit-lines multiple-cursors-core rect org-table misc > programmers-dvorak quail edmacro kmacro dired+ image-dired image-file > dired-aux dired-x server pinentry autorevert filenotify projectile grep > compile ibuf-ext ibuffer dash thingatpt ignoramus el-get > el-get-autoloading el-get-list-packages el-get-dependencies el-get-build > el-get-status pp el-get-methods el-get-fossil el-get-svn el-get-pacman > el-get-github-zip el-get-github-tar el-get-http-zip el-get-http-tar > el-get-hg el-get-go el-get-git-svn el-get-fink el-get-emacswiki > el-get-http el-get-notify help-mode el-get-emacsmirror el-get-github > el-get-git el-get-elpa el-get-darcs el-get-cvs el-get-bzr el-get-brew > el-get-builtin el-get-apt-get el-get-recipes el-get-byte-compile > el-get-custom el-get-core autoload lisp-mnt dired finder-inf org advice > org-macro org-footnote org-pcomplete pcomplete org-list org-faces > org-entities time-date noutline outline easy-mmode org-version > ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys > ob-comint comint ansi-color ring ob-core ob-eval org-compat org-macs > org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs > tex-site eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core > help-fns cl-macs cl gv cl-loaddefs cl-lib info easymenu package > epg-config tooltip electric uniquify ediff-hook vc-hooks lisp-float-type > mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe > tabulated-list newcomment lisp-mode prog-mode register page menu-bar > rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax > facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese > tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak > czech european ethiopic indian cyrillic chinese case-table epa-hook > jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button > faces cus-face macroexp files text-properties overlay sha1 md5 base64 > format env code-pages mule custom widget hashtable-print-readable > backquote make-network-process dbusbind gfilenotify dynamic-setting > system-font-setting font-render-setting move-toolbar gtk x-toolkit x > multi-tty emacs) > > Memory information: > ((conses 16 1027147 421321) > (symbols 48 76509 1) > (miscs 40 863 1582) > (strings 32 207041 118087) > (string-bytes 1 6146562) > (vectors 16 147798) > (vector-slots 8 3193259 446740) > (floats 8 17152 16902) > (intervals 56 10608 3318) > (buffers 960 31)) > [-- Attachment #2: Type: text/html, Size: 24152 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#22385: 24.5; Build failure with modules on OpenBSD 2016-01-16 17:43 bug#22385: 24.5; Build failure with modules on OpenBSD Joakim Jalap 2016-01-17 16:22 ` Philipp Stephani @ 2016-01-17 22:30 ` Paul Eggert 2016-01-17 23:58 ` Gabriele Svelto 1 sibling, 1 reply; 4+ messages in thread From: Paul Eggert @ 2016-01-17 22:30 UTC (permalink / raw) To: Joakim Jalap; +Cc: Gabriele Svelto, 22385-done [-- Attachment #1: Type: text/plain, Size: 1179 bytes --] Thanks for reporting the problem. The OpenBSD compiler warnings about strcpy etc. are false alarms, and these false alarms confuse the Emacs build procedure and therefore introduce bugs into the Emacs module code. We're lucky that a run-time assertion caught this. I installed the attached patch into the emacs-25 branch. It removes the offending test in 'configure', and so should fix the bug so I am boldly marking it as done. Please give the fix a try; if it doesn't work I can unmark the bug. Is there some way to tell the OpenBSD C compiler to not chatter about uses of strcpy, strcat, and sprintf? We don't want to use the OpenBSD-suggested replacements in Emacs, as that would be more likely to introduce bugs than to fix them. If we can suggest (or get 'configure' to use) a build-time option to suppress the false alarms that would save everybody some work and would help make Emacs more reliable. Although the OpenBSD porting problem with AX_GCC_VAR_ATTRIBUTE no longer affects Emacs, it might affect other programs that use that macro, so I'll CC: this to the macro's author Gabriele Svelto. Gabriele, the bug report is here: http://bugs.gnu.org/22385 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Port-cleanup-attribute-to-OpenBSD.patch --] [-- Type: text/x-diff; name="0001-Port-cleanup-attribute-to-OpenBSD.patch", Size: 9668 bytes --] From 1addf499c8318ecf2b00e1c60dfa56e67bc1689e Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Sun, 17 Jan 2016 14:10:26 -0800 Subject: [PATCH] Port cleanup attribute to OpenBSD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The OpenBSD C compiler issues false alarms about strcpy, strcat, and sprintf, and this messes up 'configure' when it tests for the cleanup attribute. Work around the problem by using __has_attribute directly. Problem reported by Joakim Jalap (Bug#22385). * configure.ac: Don’t use AX_GCC_VAR_ATTRIBUTE. * m4/ax_gcc_var_attribute.m4: Remove. * src/conf_post.h (__has_attribute): Provide a substitute, for non-GCC or older GCC compilers. All uses changed to assume the substitute. Check for the cleanup attribute. * src/emacs-module.c (module_has_cleanup): Just use __has_attribute. --- configure.ac | 1 - m4/ax_gcc_var_attribute.m4 | 141 --------------------------------------------- src/conf_post.h | 28 +++++---- src/emacs-module.c | 3 +- 4 files changed, 18 insertions(+), 155 deletions(-) delete mode 100644 m4/ax_gcc_var_attribute.m4 diff --git a/configure.ac b/configure.ac index 8c01aba..3aeba22 100644 --- a/configure.ac +++ b/configure.ac @@ -3327,7 +3327,6 @@ if test "${HAVE_MODULES}" = yes; then fi AC_SUBST(MODULES_OBJ) AC_SUBST(LIBMODULES) -AX_GCC_VAR_ATTRIBUTE(cleanup) AC_CHECK_FUNCS(dladdr) ### Use -lpng if available, unless '--with-png=no'. diff --git a/m4/ax_gcc_var_attribute.m4 b/m4/ax_gcc_var_attribute.m4 deleted file mode 100644 index d12fce8..0000000 --- a/m4/ax_gcc_var_attribute.m4 +++ /dev/null @@ -1,141 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_gcc_var_attribute.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_GCC_VAR_ATTRIBUTE(ATTRIBUTE) -# -# DESCRIPTION -# -# This macro checks if the compiler supports one of GCC's variable -# attributes; many other compilers also provide variable attributes with -# the same syntax. Compiler warnings are used to detect supported -# attributes as unsupported ones are ignored by default so quieting -# warnings when using this macro will yield false positives. -# -# The ATTRIBUTE parameter holds the name of the attribute to be checked. -# -# If ATTRIBUTE is supported define HAVE_VAR_ATTRIBUTE_<ATTRIBUTE>. -# -# The macro caches its result in the ax_cv_have_var_attribute_<attribute> -# variable. -# -# The macro currently supports the following variable attributes: -# -# aligned -# cleanup -# common -# nocommon -# deprecated -# mode -# packed -# tls_model -# unused -# used -# vector_size -# weak -# dllimport -# dllexport -# init_priority -# -# Unsupported variable attributes will be tested against a global integer -# variable and without any arguments given to the attribute itself; the -# result of this check might be wrong or meaningless so use with care. -# -# LICENSE -# -# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com> -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 3 - -AC_DEFUN([AX_GCC_VAR_ATTRIBUTE], [ - AS_VAR_PUSHDEF([ac_var], [ax_cv_have_var_attribute_$1]) - - AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([ - m4_case([$1], - [aligned], [ - int foo __attribute__(($1(32))); - ], - [cleanup], [ - int bar(int *t) { return *t; }; - ], - [common], [ - int foo __attribute__(($1)); - ], - [nocommon], [ - int foo __attribute__(($1)); - ], - [deprecated], [ - int foo __attribute__(($1)) = 0; - ], - [mode], [ - long foo __attribute__(($1(word))); - ], - [packed], [ - struct bar { - int baz __attribute__(($1)); - }; - ], - [tls_model], [ - __thread int bar1 __attribute__(($1("global-dynamic"))); - __thread int bar2 __attribute__(($1("local-dynamic"))); - __thread int bar3 __attribute__(($1("initial-exec"))); - __thread int bar4 __attribute__(($1("local-exec"))); - ], - [unused], [ - int foo __attribute__(($1)); - ], - [used], [ - int foo __attribute__(($1)); - ], - [vector_size], [ - int foo __attribute__(($1(16))); - ], - [weak], [ - int foo __attribute__(($1)); - ], - [dllimport], [ - int foo __attribute__(($1)); - ], - [dllexport], [ - int foo __attribute__(($1)); - ], - [init_priority], [ - struct bar { bar() {} ~bar() {} }; - bar b __attribute__(($1(65535/2))); - ], - [ - m4_warn([syntax], [Unsupported attribute $1, the test may fail]) - int foo __attribute__(($1)); - ] - )], [ - m4_case([$1], - [cleanup], [ - int foo __attribute__(($1(bar))) = 0; - foo = foo + 1; - ], - [] - )]) - ], - dnl GCC doesn't exit with an error if an unknown attribute is - dnl provided but only outputs a warning, so accept the attribute - dnl only if no warning were issued. - [AS_IF([test -s conftest.err], - [AS_VAR_SET([ac_var], [no])], - [AS_VAR_SET([ac_var], [yes])])], - [AS_VAR_SET([ac_var], [no])]) - ]) - - AS_IF([test yes = AS_VAR_GET([ac_var])], - [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_VAR_ATTRIBUTE_$1), 1, - [Define to 1 if the system has the `$1' variable attribute])], []) - - AS_VAR_POPDEF([ac_var]) -]) diff --git a/src/conf_post.h b/src/conf_post.h index 98ff12e..5c332a0 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -51,10 +51,21 @@ typedef bool bool_bf; #endif #endif -/* When not using Clang, assume its attributes and features are absent. */ +/* Simulate __has_attribute on compilers that lack it. It is used only + on arguments like alloc_size that are handled in this simulation. */ #ifndef __has_attribute -# define __has_attribute(a) false -#endif +# define __has_attribute(a) __has_attribute_##a +# define __has_attribute_alloc_size (4 < __GNUC__ + (3 <= __GNUC_MINOR__)) +# define __has_attribute_cleanup (3 < __GNUC__ + (4 <= __GNUC_MINOR__)) +# define __has_attribute_externally_visible \ + (4 < __GNUC__ + (1 <= __GNUC_MINOR__)) +# define __has_attribute_no_address_safety_analysis false +# define __has_attribute_no_sanitize_address \ + (4 < __GNUC__ + (8 <= __GNUC_MINOR__)) +#endif + +/* Simulate __has_feature on compilers that lack it. It is used only + to define ADDRESS_SANITIZER below. */ #ifndef __has_feature # define __has_feature(a) false #endif @@ -222,9 +233,7 @@ extern int emacs_setenv_TZ (char const *); #define NO_INLINE #endif -#if (__clang__ \ - ? __has_attribute (externally_visible) \ - : (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))) +#if __has_attribute (externally_visible) #define EXTERNALLY_VISIBLE __attribute__((externally_visible)) #else #define EXTERNALLY_VISIBLE @@ -253,9 +262,7 @@ extern int emacs_setenv_TZ (char const *); # define ATTRIBUTE_MALLOC #endif -#if (__clang__ \ - ? __has_attribute (alloc_size) \ - : 4 < __GNUC__ + (3 <= __GNUC_MINOR__)) +#if __has_attribute (alloc_size) # define ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) #else # define ATTRIBUTE_ALLOC_SIZE(args) @@ -278,8 +285,7 @@ extern int emacs_setenv_TZ (char const *); /* Attribute of functions whose code should not have addresses sanitized. */ -#if (__has_attribute (no_sanitize_address) \ - || 4 < __GNUC__ + (8 <= __GNUC_MINOR__)) +#if __has_attribute (no_sanitize_address) # define ATTRIBUTE_NO_SANITIZE_ADDRESS \ __attribute__ ((no_sanitize_address)) ADDRESS_SANITIZER_WORKAROUND #elif __has_attribute (no_address_safety_analysis) diff --git a/src/emacs-module.c b/src/emacs-module.c index b5e044e..79a077b 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c @@ -35,8 +35,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ \f /* Feature tests. */ -/* True if __attribute__ ((cleanup (...))) works, false otherwise. */ -#ifdef HAVE_VAR_ATTRIBUTE_CLEANUP +#if __has_attribute (cleanup) enum { module_has_cleanup = true }; #else enum { module_has_cleanup = false }; -- 2.5.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#22385: 24.5; Build failure with modules on OpenBSD 2016-01-17 22:30 ` Paul Eggert @ 2016-01-17 23:58 ` Gabriele Svelto 0 siblings, 0 replies; 4+ messages in thread From: Gabriele Svelto @ 2016-01-17 23:58 UTC (permalink / raw) To: Paul Eggert, Joakim Jalap; +Cc: 22385-done Hello Paul, thanks for getting in touch about this. There's a way to fix this issue in my macro and it's by running the test twice with and without the attribute and comparing the compiler error output instead of simply assuming that any error output means that the attribute is not supported. It's something I had considered doing in the beginning but deemed unnecessarily complicated at the time. Turns out I was wrong; I'll try to push a fix into autoconf-archive in the next few days. Gabriele On 17/01/2016 23:30, Paul Eggert wrote: > Thanks for reporting the problem. The OpenBSD compiler warnings about > strcpy etc. are false alarms, and these false alarms confuse the Emacs > build procedure and therefore introduce bugs into the Emacs module code. > We're lucky that a run-time assertion caught this. > > I installed the attached patch into the emacs-25 branch. It removes the > offending test in 'configure', and so should fix the bug so I am boldly > marking it as done. Please give the fix a try; if it doesn't work I can > unmark the bug. > > Is there some way to tell the OpenBSD C compiler to not chatter about > uses of strcpy, strcat, and sprintf? We don't want to use the > OpenBSD-suggested replacements in Emacs, as that would be more likely to > introduce bugs than to fix them. If we can suggest (or get 'configure' > to use) a build-time option to suppress the false alarms that would save > everybody some work and would help make Emacs more reliable. > > Although the OpenBSD porting problem with AX_GCC_VAR_ATTRIBUTE no longer > affects Emacs, it might affect other programs that use that macro, so > I'll CC: this to the macro's author Gabriele Svelto. Gabriele, the bug > report is here: > > http://bugs.gnu.org/22385 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-01-17 23:58 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-01-16 17:43 bug#22385: 24.5; Build failure with modules on OpenBSD Joakim Jalap 2016-01-17 16:22 ` Philipp Stephani 2016-01-17 22:30 ` Paul Eggert 2016-01-17 23:58 ` Gabriele Svelto
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.