GNU bug report logs - #17806
24.4.50; Branch emacs-24 fails to beuild on Debian

Previous Next

Package: emacs;

Reported by: Manoj Srivastava <srivasta <at> golden-gryphon.com>

Date: Wed, 18 Jun 2014 23:39:01 UTC

Severity: normal

Found in version 24.4.50

Done: Paul Eggert <eggert <at> cs.ucla.edu>

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 17806 in the body.
You can then email your comments to 17806 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#17806; Package emacs. (Wed, 18 Jun 2014 23:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Manoj Srivastava <srivasta <at> golden-gryphon.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 18 Jun 2014 23:39:02 GMT) Full text and rfc822 format available.

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

From: Manoj Srivastava <srivasta <at> golden-gryphon.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Wed, 18 Jun 2014 15:37:57 -0700
[Message part 1 (text/plain, inline)]
Hi,

        Here is what happened:
% git clone git://repo.or.cz/emacs.git
% git co emacs-24
 
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Debian GNU/Linux unstable (sid)

Configured using:
--8<---------------cut here---------------start------------->8---
 `configure --with-x-toolkit=lucid --with-dbus --with-gpm --with-pop=yes
 --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-x
 --with-imagemagick --with-xft --with-rsvg --with-libotf
 --enable-link-time-optimization --without-w32 --with-sound=yes'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF
GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF
XFT ZLIB

Configured for `x86_64-unknown-linux-gnu'.

  Where should the build process find the source code?    .
  What compiler should emacs be built with?               gcc -std=gnu99 -g3 -O2 -flto=4
  Should Emacs use the GNU version of malloc?             yes
      (Using Doug Lea's new malloc from the GNU C Library.)
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    x11
  What toolkit should Emacs use?                          LUCID
  Where do we find X Windows header files?                Standard dirs
  Where do we find X Windows libraries?                   Standard dirs
  Does Emacs use -lXaw3d?                                 yes
  Does Emacs use -lXpm?                                   yes
  Does Emacs use -ljpeg?                                  yes
  Does Emacs use -ltiff?                                  yes
  Does Emacs use a gif library?                           yes -lgif
  Does Emacs use a png library?                           yes -lpng12
  Does Emacs use -lrsvg-2?                                yes
  Does Emacs use imagemagick?                             yes
  Does Emacs support sound?                               yes
  Does Emacs use -lgpm?                                   yes
  Does Emacs use -ldbus?                                  yes
  Does Emacs use -lgconf?                                 yes
  Does Emacs use GSettings?                               yes
  Does Emacs use a file notification library?             yes -lgio (gfile)
  Does Emacs use access control lists?                    yes -lacl
  Does Emacs use -lselinux?                               yes
  Does Emacs use -lgnutls?                                yes
  Does Emacs use -lxml2?                                  yes
  Does Emacs use -lfreetype?                              yes
  Does Emacs use -lm17n-flt?                              yes
  Does Emacs use -lotf?                                   yes
  Does Emacs use -lxft?                                   yes
  Does Emacs directly use zlib?                           yes
  Does Emacs use toolkit scroll bars?                     yes
--8<---------------cut here---------------end--------------->8---


The build fails with:
--8<---------------cut here---------------start------------->8---
rm -f libgnu.a
ar cru libgnu.a allocator.o binary-io.o c-ctype.o c-strcasecmp.o c-strncasecmp.o careadlinkat.o close-stream.o count-one-bits.o count-trailing-zeros.o md5.o sha1.o sha256.o sha512.o dtoastr.o dtotimespec.o filemode.o  gettime.o pipe2.o acl-errno-valid.o file-has-acl.o qcopy-acl.o qset-acl.o stat-time.o strftime.o  timespec.o timespec-add.o timespec-sub.o u64.o unistd.o utimens.o openat-die.o save-cwd.o fcntl.o sig2str.o
ranlib libgnu.a
make[2]: Leaving directory '/usr/local/src/emacs/lib'
make[1]: Leaving directory '/usr/local/src/emacs/lib'
make -C lib-src all
make[1]: Entering directory '/usr/local/src/emacs/lib-src'
gcc -std=gnu99     -I. -I../src -I../lib -I. -I./../src -I./../lib    -g3 -O2 -flto=4 -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"24.4.50\"" -o etags ./etags.c regex.o ../lib/libgnu.a  
/tmp/ccfQ4ArO.ltrans1.ltrans.o: In function `get_language_from_filename':
/usr/local/src/emacs/lib-src/./etags.c:1434: undefined reference to `c_strcasecmp'
/usr/local/src/emacs/lib-src/./etags.c:1447: undefined reference to `c_strcasecmp'
/tmp/ccfQ4ArO.ltrans4.ltrans.o: In function `HTML_labels.lto_priv.77':
/usr/local/src/emacs/lib-src/./etags.c:5136: undefined reference to `c_strncasecmp'
/usr/local/src/emacs/lib-src/./etags.c:5193: undefined reference to `c_strncasecmp'
/usr/local/src/emacs/lib-src/./etags.c:5137: undefined reference to `c_strncasecmp'
/usr/local/src/emacs/lib-src/./etags.c:5194: undefined reference to `c_strncasecmp'
/usr/local/src/emacs/lib-src/./etags.c:5195: undefined reference to `c_strncasecmp'
/tmp/ccfQ4ArO.ltrans4.ltrans.o:/usr/local/src/emacs/lib-src/./etags.c:5195: more undefined references to `c_strncasecmp' follow
collect2: error: ld returned 1 exit status
Makefile:322: recipe for target 'etags' failed
make[1]: *** [etags] Error 1
make[1]: Leaving directory '/usr/local/src/emacs/lib-src'
Makefile:361: recipe for target 'lib-src' failed
make: *** [lib-src] Error 2
--8<---------------cut here---------------end--------------->8---



Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_COLLATE: POSIX
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8

Features:
(shadow sort emacsbug gnus-cite cookie1 gnus-fun ecomplete nnir nndraft
nnmh nnspool utf-7 gnus-topic gnutls network-stream starttls nnfolder
time-stamp nnml gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-cache spam spam-stat gnus-uu yenc gnus-registry registry bbdb-gnus
gnus-demon nntp nnrss mm-url gnus-load mule-util ede/emacs remember
tabify cdlatex texmathp org-docview doc-view image-mode org-w3m org-irc
org-indent org-info org-gnus org-bibtex bibtex org-bbdb org-crypt org-id
org-mouse org-journal edit-server auto-complete-config auto-complete
popup dropdown-list java-snippets yasnippet ess-toolbar ess-mouse
mouseme ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l
essd-els ess-sas-d ess-sas-l ess-sas-a ess-sta-d ess-sta-l make-regexp
ess-sp6-d ess-sp3-d ess-julia ess-r-d ess-tracebug ess-roxy ess-help
ess-developer ess-r-args eldoc ess-s-l ess ess-inf ess-mode
ess-noweb-mode ess-utils ess-custom executable ess-compat ess-site
tex-fold font-latex tex browse-kill-ring dictionary link connection
dedicated all highlight-symbol identica-mode json url-http url-auth
url-gw boxquote flymake-yaml flymake-perlcritic flymake-shell
flymake-easy flymake flycheck rx f dash s perltidy-mode perlcritic
debian-changelog-mode add-log smart-tab ecb ecb-symboldef ecb-analyse
ecb-compatibility ecb-winman-support ecb-autogen autoload lisp-mnt
ecb-tod ecb-cycle ecb-eshell ecb-help ecb-jde ecb-method-browser
ecb-semantic-wrapper ecb-semantic ecb-file-browser ecb-speedbar
ecb-layout compile ecb-create-layout ecb-compilation ecb-common-browser
ecb-navigate ecb-mode-line ecb-face tree-buffer ecb-upgrade
ecb-cedet-wrapper ecb-util member-function elec-pair erc-hl-nicks color
edmacro kmacro info package manoj-dark-theme my-faces server hilit-chg
diary-lib diary-loaddefs my-org ob-sh ox-icalendar ox-ascii ox-beamer
ox-latex ox-man ox-md ox-html ox-publish 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-texinfo ox-org ox org-element avl-tree
iimage org-clock org-habit org-protocol org-agenda org-table org
org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs cal-menu calendar cal-loaddefs country-info
bbdb-rf ede/cpp-root vc-git vm-autoloads vm bbdb-vm vm-vars vm-virtual
vm-summary-faces vm-pop vm-imap vm-thread vm-mime vm-mouse vm-toolbar
vm-menu vm-window vm-folder vm-crypto vm-summary vm-motion vm-undo
vm-misc vm-message vm-macro vm-version bbdb-print bbdb-snarf mail-extr
my-irc erc-ezbounce erc-dcc cl-macs erc-spelling flyspell ispell
erc-sound erc-services erc-replace erc-page erc-desktop-notifications
notifications dbus xml erc-notify erc-log erc-bbdb bbdb-hooks bbdb-gui
bbdb-com cl bbdb timezone erc-autoaway 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
thingatpt pp debian-bug apt-utils jka-compr browse-url apt-sources table
icomplete ido ibuffer wdired dired-x epa-dired hashcash gnus-dired
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus
gnus-ems gnus-compat url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util url-parse url-vars mailcap
nnheader message rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mail-utils sasl sasl-anonymous sasl-login sasl-plain
printing ps-print ps-def lpr ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util ediff cap-words superword subword
hideshow inversion semantic/db-file data-debug cedet-files srecode/mode
semantic/wisent semantic/wisent/wisent srecode/insert srecode/filters
srecode/args srecode/find srecode/map srecode/ctxt srecode/compile
srecode/dictionary srecode/table semantic/mru-bookmark semantic/db-mode
ede/dired semantic/decorate/include semantic/decorate/mode
semantic/bovine/c hideif cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs semantic/bovine/c-by
semantic/lex-spp semantic/idle semantic/bovine/gcc semantic/dep
semantic/bovine ede/proj ede/make ede/proj-comp ede/autoconf-edit
autoconf autoconf-mode semantic/db-global semantic/symref/global
semantic/symref cedet-global semantic/ia semantic/analyze/refs
semantic/db-find semantic/db-ref semantic/senator semantic/decorate
pulse semantic/analyze semantic/scope semantic/analyze/fcn semantic/ctxt
srecode semantic/sb semantic/sort semantic/format semantic/tag-ls
semantic/find cedet-cscope ede/generic semantic/db semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local
ede/shell eieio-opt help-mode find-func ede/speedbar ede/files ede
ede/base gv ede/auto ede/source eieio-base eieio-speedbar speedbar
sb-image ezimage dframe eieio-custom cedet hippie-exp mouse-copy
gse-number-rect linum autorevert filenotify filladapt autoinsert header2
whitespace flow-ctrl cua-rect rect which-func imenu framepop tramp-cache
tramp-sh tramp tramp-compat auth-source eieio byte-opt bytecomp
byte-compile cconv eieio-core gnus-util mm-util mail-prsvr
password-cache tramp-loaddefs trampver shell pcomplete comint ansi-color
ring format-spec recentf tree-widget wid-edit cl-loaddefs cl-lib
easymenu delsel paren time cua-base cus-start cus-load custom-emacs23
secrets epa-file epa derived epg epg-config preview-latex tex-site
auto-loads dired emacs-vers debian-el debian-el-loaddefs
jabber-autoloads emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode dpkg-dev-el dpkg-dev-el-loaddefs
devhelp develock advice help-fns bbdb-autoloads time-date 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 x-toolkit x multi-tty emacs)

Memory information:
((conses 16 8242472 7865629)
 (symbols 48 214789 1)
 (miscs 40 7854 251)
 (strings 32 2863048 2923164)
 (string-bytes 1 132639305)
 (vectors 16 98769)
 (vector-slots 8 5949757 40893)
 (floats 8 1962 603)
 (intervals 56 12369 373)
 (buffers 960 30)
 (heap 1024 705679 202266))

        manoj
-- 
Brogan's Constant: People tend to congregate in the back of the church
and the front of the bus.
Manoj Srivastava <srivasta <at> acm.org> <http://www.golden-gryphon.com/>  
4096R/C5779A1C E37E 5EC5 2A01 DA25 AD20  05B6 CF48 9438 C577 9A1C
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Thu, 19 Jun 2014 02:57:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manoj Srivastava <srivasta <at> golden-gryphon.com>
Cc: 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Thu, 19 Jun 2014 05:56:26 +0300
> From: Manoj Srivastava <srivasta <at> golden-gryphon.com>
> Date: Wed, 18 Jun 2014 15:37:57 -0700
> 
> ar cru libgnu.a allocator.o binary-io.o c-ctype.o c-strcasecmp.o c-strncasecmp.o careadlinkat.o close-stream.o count-one-bits.o count-trailing-zeros.o md5.o sha1.o sha256.o sha512.o dtoastr.o dtotimespec.o filemode.o  gettime.o pipe2.o acl-errno-valid.o file-has-acl.o qcopy-acl.o qset-acl.o stat-time.o strftime.o  timespec.o timespec-add.o timespec-sub.o u64.o unistd.o utimens.o openat-die.o save-cwd.o fcntl.o sig2str.o
> ranlib libgnu.a
> make[2]: Leaving directory '/usr/local/src/emacs/lib'
> make[1]: Leaving directory '/usr/local/src/emacs/lib'
> make -C lib-src all
> make[1]: Entering directory '/usr/local/src/emacs/lib-src'
> gcc -std=gnu99     -I. -I../src -I../lib -I. -I./../src -I./../lib    -g3 -O2 -flto=4 -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"24.4.50\"" -o etags ./etags.c regex.o ../lib/libgnu.a  
> /tmp/ccfQ4ArO.ltrans1.ltrans.o: In function `get_language_from_filename':
> /usr/local/src/emacs/lib-src/./etags.c:1434: undefined reference to `c_strcasecmp'
> /usr/local/src/emacs/lib-src/./etags.c:1447: undefined reference to `c_strcasecmp'
> /tmp/ccfQ4ArO.ltrans4.ltrans.o: In function `HTML_labels.lto_priv.77':
> /usr/local/src/emacs/lib-src/./etags.c:5136: undefined reference to `c_strncasecmp'
> /usr/local/src/emacs/lib-src/./etags.c:5193: undefined reference to `c_strncasecmp'

How can this happen, when you've just created libgnu.a with both
c-strcasecmp.o and c-strncasecmp.o, and the link command line mentions
libgnu.a?

What symbols does "nm -A" report in c-strcasecmp.o and c-strncasecmp.o?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Thu, 19 Jun 2014 03:42:02 GMT) Full text and rfc822 format available.

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

From: Glenn Morris <rgm <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Wed, 18 Jun 2014 23:41:53 -0400
>> -DVERSION="\"24.4.50\"" 

Also note the above. This is not a clean build of the emacs-24 branch.

(Simply switching branches from something that contained a trunk build to
emacs-24 and typing `make' isn't supported.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Thu, 19 Jun 2014 06:41:02 GMT) Full text and rfc822 format available.

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

From: Manoj Srivastava <srivasta <at> golden-gryphon.com>
To: Glenn Morris <rgm <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Wed, 18 Jun 2014 23:35:06 -0700
[Message part 1 (text/plain, inline)]
On Wed, Jun 18 2014, Glenn Morris wrote:

>>> -DVERSION="\"24.4.50\"" 
>
> Also note the above. This is not a clean build of the emacs-24 branch.
>
> (Simply switching branches from something that contained a trunk build to
> emacs-24 and typing `make' isn't supported.)

        ok. I git a new clone. I checkout out the emacs-24 branch. I
 ensured there was no extraneous files.

%  ./autogen.sh
% ./configure --with-x-toolkit=lucid --with-dbus --with-gpm \
     --with-pop=yes --with-xpm --with-jpeg --with-tiff --with-gif \
      --with-png --with-x --with-imagemagick --with-xft --with-rsvg \
        --with-libotf --enable-link-time-optimization --without-w32 \
         --with-sound=yes
--8<---------------cut here---------------start------------->8---
Configured for `x86_64-unknown-linux-gnu'.

  Where should the build process find the source code?    .
  What compiler should emacs be built with?               gcc -std=gnu99 -g3 -O2 -flto=4
  Should Emacs use the GNU version of malloc?             yes
      (Using Doug Lea's new malloc from the GNU C Library.)
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    x11
  What toolkit should Emacs use?                          LUCID
  Where do we find X Windows header files?                Standard dirs
  Where do we find X Windows libraries?                   Standard dirs
  Does Emacs use -lXaw3d?                                 yes
  Does Emacs use -lXpm?                                   yes
  Does Emacs use -ljpeg?                                  yes
  Does Emacs use -ltiff?                                  yes
  Does Emacs use a gif library?                           yes -lgif
  Does Emacs use a png library?                           yes -lpng12 -lz -lm
  Does Emacs use -lrsvg-2?                                yes
  Does Emacs use imagemagick?                             yes
  Does Emacs support sound?                               yes
  Does Emacs use -lgpm?                                   yes
  Does Emacs use -ldbus?                                  yes
  Does Emacs use -lgconf?                                 yes
  Does Emacs use GSettings?                               yes
  Does Emacs use a file notification library?             yes -lgio (gfile)
  Does Emacs use access control lists?                    yes -lacl
  Does Emacs use -lselinux?                               yes
  Does Emacs use -lgnutls?                                yes
  Does Emacs use -lxml2?                                  yes
  Does Emacs use -lfreetype?                              yes
  Does Emacs use -lm17n-flt?                              yes
  Does Emacs use -lotf?                                   yes
  Does Emacs use -lxft?                                   yes
  Does Emacs directly use zlib?                           yes
  Does Emacs use toolkit scroll bars?                     yes
--8<---------------cut here---------------end--------------->8---


% make bootstrap

--8<---------------cut here---------------start------------->8---

rm -f libgnu.a
ar cru libgnu.a allocator.o binary-io.o c-ctype.o c-strcasecmp.o c-strncasecmp.o careadlinkat.o close-stream.o count-one-bits.o count-trailing-zeros.o md5.o sha1.o sha256.o sha512.o dtoastr.o dtotimespec.o filemode.o  gettime.o pipe2.o acl-errno-valid.o file-has-acl.o qcopy-acl.o qset-acl.o stat-time.o strftime.o  timespec.o timespec-add.o timespec-sub.o u64.o unistd.o utimens.o openat-die.o save-cwd.o fcntl.o pthread_sigmask.o sig2str.o
ranlib libgnu.a
make[3]: Leaving directory '/usr/local/src/tmp/emacs/lib'
make[2]: Leaving directory '/usr/local/src/tmp/emacs/lib'
cd lib-src && make all -w                         \
  CC='gcc -std=gnu99' CFLAGS='-g3 -O2 -flto=4' CPPFLAGS='' \
  LDFLAGS='' MAKE='make'
make[2]: Entering directory '/usr/local/src/tmp/emacs/lib-src'
gcc -std=gnu99 -c     -I. -I../src -I../lib -I. -I./../src -I./../lib   -g3 -O2 -flto=4 ./../src/regex.c
gcc -std=gnu99     -I. -I../src -I../lib -I. -I./../src -I./../lib    -g3 -O2 -flto=4 -DEMACS_NAME="\"GNU Emacs\"" \
  -DVERSION="\"24.3.91\"" ./etags.c \
  regex.o ../lib/libgnu.a   -o etags
/tmp/cc22Aczk.ltrans1.ltrans.o: In function `get_language_from_filename':
/usr/local/src/tmp/emacs/lib-src/./etags.c:1434: undefined reference to `c_strcasecmp'
/usr/local/src/tmp/emacs/lib-src/./etags.c:1447: undefined reference to `c_strcasecmp'
/tmp/cc22Aczk.ltrans4.ltrans.o: In function `HTML_labels.lto_priv.77':
/usr/local/src/tmp/emacs/lib-src/./etags.c:5136: undefined reference to `c_strncasecmp'
/usr/local/src/tmp/emacs/lib-src/./etags.c:5193: undefined reference to `c_strncasecmp'
/usr/local/src/tmp/emacs/lib-src/./etags.c:5137: undefined reference to `c_strncasecmp'
/usr/local/src/tmp/emacs/lib-src/./etags.c:5194: undefined reference to `c_strncasecmp'
/usr/local/src/tmp/emacs/lib-src/./etags.c:5195: undefined reference to `c_strncasecmp'
/tmp/cc22Aczk.ltrans4.ltrans.o:/usr/local/src/tmp/emacs/lib-src/./etags.c:5195: more undefined references to `c_strncasecmp' follow
collect2: error: ld returned 1 exit status
Makefile:321: recipe for target 'etags' failed
make[2]: *** [etags] Error 1
make[2]: Leaving directory '/usr/local/src/tmp/emacs/lib-src'
Makefile:363: recipe for target 'lib-src' failed
make[1]: *** [lib-src] Error 2
make[1]: Leaving directory '/usr/local/src/tmp/emacs'
Makefile:1092: recipe for target 'bootstrap' failed
make: *** [bootstrap] Error 2
[1]    9379 exit 2     make bootstrap
--8<---------------cut here---------------end--------------->8---

        So it still does happen with a clean build in Debian unstable.

% nm -A c-strcasecmp.o
c-strcasecmp.o:0000000000000001 C __gnu_lto_slim
c-strcasecmp.o:0000000000000001 C __gnu_lto_v1
% nm -A  c-strncasecmp.o
c-strncasecmp.o:0000000000000001 C __gnu_lto_slim
c-strncasecmp.o:0000000000000001 C __gnu_lto_v1

        Also, if I explicitly add ../lib/c-strcasecmp.o
 ../lib/c-strncasecmp.o  to the compile line for etags, it does
 compile.

        I have no idea what is going on here.

        I was indeed able to compile this on Debian stable (the same
 source tree copied into a debian stavle virt), so it is an interaction
 with the tool chain that is currently in Debian unstable/testing.

        manoj

-- 
I think your opinions are reasonable, except for the one about my mental
instability. -- Psychology Professor, Farifield University
Manoj Srivastava <srivasta <at> acm.org> <http://www.golden-gryphon.com/>  
4096R/C5779A1C E37E 5EC5 2A01 DA25 AD20  05B6 CF48 9438 C577 9A1C
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Thu, 19 Jun 2014 08:43:01 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Manoj Srivastava <srivasta <at> golden-gryphon.com>, Glenn Morris <rgm <at> gnu.org>
Cc: 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Thu, 19 Jun 2014 12:42:26 +0400
On 06/19/2014 10:35 AM, Manoj Srivastava wrote:

> I have no idea what is going on here.

What versions of gcc and binutils you're using? It looks like
your tools has some problems handling object files with GIMPLE
sections generated with -flto.

Your recipe works fine for me (Fedora 20, gcc 4.8.2, binutils 2.24).

Dmitry





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Thu, 19 Jun 2014 17:31:01 GMT) Full text and rfc822 format available.

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

From: Manoj Srivastava <srivasta <at> golden-gryphon.com>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: Glenn Morris <rgm <at> gnu.org>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Thu, 19 Jun 2014 10:22:39 -0700
[Message part 1 (text/plain, inline)]
On Thu, Jun 19 2014, Dmitry Antipov wrote:

> What versions of gcc and binutils you're using? It looks like
> your tools has some problems handling object files with GIMPLE
> sections generated with -flto.

> Your recipe works fine for me (Fedora 20, gcc 4.8.2, binutils 2.24).

% gcc --version
gcc (Debian 4.9.0-7) 4.9.0

% make --version
GNU Make 4.0
Built for x86_64-pc-linux-gnu

% ld -v
GNU ld (GNU Binutils for Debian) 2.24.51.20140617

        The difference seems to be gcc.  Version 4.9.0 seems to be the
 default for the next release of Debian. Emacs still builds fine on the
 released version, but will fail for anyone running testing or unstable,
 as far as I can tell.

        manoj
-- 
Beauty and harmony are as necessary to you as the very breath of life.
Manoj Srivastava <srivasta <at> acm.org> <http://www.golden-gryphon.com/>  
4096R/C5779A1C E37E 5EC5 2A01 DA25 AD20  05B6 CF48 9438 C577 9A1C
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Thu, 19 Jun 2014 18:40:02 GMT) Full text and rfc822 format available.

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

From: Sven Joachim <svenjoac <at> gmx.de>
To: Manoj Srivastava <srivasta <at> golden-gryphon.com>
Cc: 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Thu, 19 Jun 2014 20:39:17 +0200
On 2014-06-19 19:22 +0200, Manoj Srivastava wrote:

> On Thu, Jun 19 2014, Dmitry Antipov wrote:
>
>> What versions of gcc and binutils you're using? It looks like
>> your tools has some problems handling object files with GIMPLE
>> sections generated with -flto.
>
>> Your recipe works fine for me (Fedora 20, gcc 4.8.2, binutils 2.24).
>
> % gcc --version
> gcc (Debian 4.9.0-7) 4.9.0
>
> % make --version
> GNU Make 4.0
> Built for x86_64-pc-linux-gnu
>
> % ld -v
> GNU ld (GNU Binutils for Debian) 2.24.51.20140617
>
>         The difference seems to be gcc.  Version 4.9.0 seems to be the
>  default for the next release of Debian. Emacs still builds fine on the
>  released version, but will fail for anyone running testing or unstable,
>  as far as I can tell.

Considering "--enable-link-time-optimization" is not the default, this
seems a bit exaggerated.  That being said, I can confirm the bug with
GCC 4.9, building with GCC 4.8 succeeds.

Cheers,
       Sven




Reply sent to Paul Eggert <eggert <at> cs.ucla.edu>:
You have taken responsibility. (Fri, 20 Jun 2014 06:18:02 GMT) Full text and rfc822 format available.

Notification sent to Manoj Srivastava <srivasta <at> golden-gryphon.com>:
bug acknowledged by developer. (Fri, 20 Jun 2014 06:18:02 GMT) Full text and rfc822 format available.

Message #28 received at 17806-done <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Manoj Srivastava <srivasta <at> golden-gryphon.com>
Cc: 17806-done <at> debbugs.gnu.org
Subject: Re: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Thu, 19 Jun 2014 23:17:28 -0700
The GCC 4.9.0 release notes say that if you compile with -flto you're 
supposed to archive with gcc-ar (not ar) and use gcc-ranlib (not 
ranlib).  (I at first thought they were kidding! but that is indeed what 
the notes say.)

I tried doing that, but it dumped core for me on Fedora 20.  I've never 
had much luck with GCC's link time optimization, to be honest -- crashes 
and glitches like these seem to happen every time I use it.

Anyway, I installed a workaround as emacs-24 bzr 117264 (at least, it 
fixed the bug for me on Fedora 20) and am closing the bug report.  The 
workaround causes the Emacs build procedure to use GCC's 
-ffat-lto-objects option, thus reverting to how GCC 4.8 does it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 07:22:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: srivasta <at> golden-gryphon.com, eggert <at> cs.ucla.edu, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 10:20:47 +0300
> Date: Thu, 19 Jun 2014 23:17:28 -0700
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> Cc: 17806-done <at> debbugs.gnu.org
> 
> I've never had much luck with GCC's link time optimization, to be
> honest -- crashes and glitches like these seem to happen every time
> I use it.

Speaking of which: can you debug programs produced with LTO?  On
Windows, I have trouble, because GDB cannot find the source file
corresponding to the object file, see

  https://sourceware.org/ml/gdb-patches/2014-02/msg00426.html

But that could be Windows-specific.  Does "info source" work for you
in such programs?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 07:57:02 GMT) Full text and rfc822 format available.

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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: srivasta <at> golden-gryphon.com, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 00:56:31 -0700
Eli Zaretskii wrote:
> Does "info source" work for you in such programs?

Yes and no.  It reports some information, but preprocessor macros are 
lost so it's not as good as when compiling without LTO.  For example:

(gdb) b emacs_open
Breakpoint 3 at 0x490330: file sysdep.c, line 2143.
(gdb) r
Starting program: 
/home/eggert/src/gnu/emacs/emacs-24-sc/src/bootstrap-emacs
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffe1260700 (LWP 2323)]

Breakpoint 3, emacs_open (
    file=0x1333ea8 "/usr/local/share/emacs/24.3.91/site-lisp/subdirs.el",
    oflags=oflags <at> entry=0, mode=mode <at> entry=0) at sysdep.c:2143
(gdb) info source
Current source file is sysdep.c
Compilation directory is /home/eggert/src/gnu/emacs/emacs-24-sc/src
Located in /home/eggert/src/gnu/emacs/emacs-24-sc/src/sysdep.c
Contains 3445 lines.
Source language is c.
Compiled with (null) debugging format.
Does not include preprocessor macro info.
(gdb) p O_CLOEXEC
No symbol "O_CLOEXEC" in current context.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 08:16:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: srivasta <at> golden-gryphon.com, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 11:15:09 +0300
> Date: Fri, 20 Jun 2014 00:56:31 -0700
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> CC: 17806 <at> debbugs.gnu.org, srivasta <at> golden-gryphon.com
> 
> (gdb) info source
> Current source file is sysdep.c
> Compilation directory is /home/eggert/src/gnu/emacs/emacs-24-sc/src
> Located in /home/eggert/src/gnu/emacs/emacs-24-sc/src/sysdep.c
> Contains 3445 lines.
> Source language is c.
> Compiled with (null) debugging format.
> Does not include preprocessor macro info.
> (gdb) p O_CLOEXEC
> No symbol "O_CLOEXEC" in current context.

Right.  That "null" instead of debugging format name is also part of
the problem.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 17:16:02 GMT) Full text and rfc822 format available.

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

From: Glenn Morris <rgm <at> gnu.org>
To: 17806 <at> debbugs.gnu.org
Cc: eggert <at> cs.ucla.edu
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 13:15:36 -0400
Paul Eggert wrote:

> never had much luck with GCC's link time optimization, to be honest --
> crashes and glitches like these seem to happen every time I use it.

Why does Emacs even have --enable-link-time-optimization as a configure
option? Does it provide any measurable benefit? (Apart from "crashes a
lot"? :) ) Should the configure option description add a general warning?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 19:49:02 GMT) Full text and rfc822 format available.

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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Glenn Morris <rgm <at> gnu.org>, 17806 <at> debbugs.gnu.org
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>,
 Dmitry Antipov <dmantipov <at> yandex.ru>
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 12:48:02 -0700
[Message part 1 (text/plain, inline)]
Glenn Morris wrote:
> Why does Emacs even have --enable-link-time-optimization as a configure
> option? Does it provide any measurable benefit?

It's supposed to have better runtime performance.  In my standard little 
benchmark, though, --enable-link-time-optimization slowed down runtime 
CPU performance by 14% (x86-64, GCC 4.9.0).  It did shrink the 
executable's text size by 2.4%, but I'd rather have the CPU performance.

I installed the attached as emacs-24 bzr 117269 to try to discourage 
casual use.  Another possibility would be to remove 
--enable-link-time-optimization, but I suppose that should be done in 
the trunk if it's done at all.  I'll CC: this to Dmitry as he added the 
option in the first place.
[lto-diag.patch (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 21:07:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>, Glenn Morris <rgm <at> gnu.org>,
 Dmitry Antipov <dmantipov <at> yandex.ru>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 17:06:19 -0400
>> Why does Emacs even have --enable-link-time-optimization as a configure
>> option? Does it provide any measurable benefit?
> It's supposed to have better runtime performance.  In my standard little
> benchmark, though, --enable-link-time-optimization slowed down runtime CPU

Don't know what benchmark you use, but I generally use byte-compilation
of Emacs's files as my own benchmark.  It's kind of lousy (since it
constantly changes), but it is one real-life code where a lot of Elisp
is executed.

> I installed the attached as emacs-24 bzr 117269 to try to discourage casual
> use.  Another possibility would be to
> remove --enable-link-time-optimization, but I suppose that should be done in
> the trunk if it's done at all.  I'll CC: this to Dmitry as he added the
> option in the first place.

If it tends to break (and since IIUC it's new in 24.4), we could also
remove it from 24.4.


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Fri, 20 Jun 2014 23:56:01 GMT) Full text and rfc822 format available.

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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>, Glenn Morris <rgm <at> gnu.org>,
 Dmitry Antipov <dmantipov <at> yandex.ru>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Fri, 20 Jun 2014 16:55:33 -0700
Stefan Monnier wrote:
> I generally use byte-compilation
> of Emacs's files as my own benchmark.

I tried that benchmark (i.e., remove all *.elc files and then time 
'make', on emacs-24 bzr 117270, Fedora 20 x86-64, GCC 4.9.0), and if I 
take the sum of user+system CPU time the version with link time 
optimization was 0.12% faster.  I don't know whether that's within the 
margin of error for measurement.  So it could be that LTO is a 
performance win, albeit a tiny one, for that sort of thing.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Sat, 21 Jun 2014 03:47:02 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>, 
 Paul Eggert <eggert <at> cs.ucla.edu>
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Sat, 21 Jun 2014 07:46:10 +0400
On 06/21/2014 01:06 AM, Stefan Monnier wrote:

> If it tends to break (and since IIUC it's new in 24.4), we could also
> remove it from 24.4.

Well, this is considered experimental and known for its controversial results
(for example, see http://www.phoronix.com/scan.php?page=news_item&px=MTI5ODE).
I didn't make representative benchmarks; as for the crashes, code compiled with
'-O2 -flto' looks more stable than '-O3 -march=native -mtune=native' (YMMV).

After all, --enable-link-time-optimization is not enabled by default (and never
should be), users aren't enforced to enable it - so I don't see a problem here;
INSTALL may warn about potentially unstable results of using this option.

Dmitry





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Sat, 21 Jun 2014 12:55:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>, Glenn Morris <rgm <at> gnu.org>,
 Dmitry Antipov <dmantipov <at> yandex.ru>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Sat, 21 Jun 2014 08:54:42 -0400
> I tried that benchmark (i.e., remove all *.elc files and then time 'make',
> on emacs-24 bzr 117270, Fedora 20 x86-64, GCC 4.9.0), and if I take the sum
> of user+system CPU time the version with link time optimization was 0.12%
> faster.  I don't know whether that's within the margin of error for

Definitely smaller than the margin of error, yes.  Especially if you use
multiple cores (i.e. "-jN" where N is not 1), since the work done
depends on scheduling (depending on circumstances some loads will find
a .elc file already or not).


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Sat, 21 Jun 2014 20:00:04 GMT) Full text and rfc822 format available.

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

From: Glenn Morris <rgm <at> gnu.org>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: Manoj Srivastava <srivasta <at> golden-gryphon.com>,
 Paul Eggert <eggert <at> cs.ucla.edu>, Stefan Monnier <monnier <at> iro.umontreal.ca>,
 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Sat, 21 Jun 2014 15:58:58 -0400
Dmitry Antipov wrote:

> Well, this is considered experimental and known for its controversial results
[...]
> After all, --enable-link-time-optimization is not enabled by default
> (and never should be), users aren't enforced to enable it - so I don't
> see a problem here; INSTALL may warn about potentially unstable
> results of using this option.

I do not feel that the Emacs's documentation reflects the above.
People have already suggested enabling this option by default:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13834

As it stands, I think people just see "optimization == better".




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Tue, 24 Jun 2014 14:57:01 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Glenn Morris <rgm <at> gnu.org>
Cc: Paul Eggert <eggert <at> cs.ucla.edu>, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Tue, 24 Jun 2014 18:56:22 +0400
On 06/20/2014 09:15 PM, Glenn Morris wrote:

> Why does Emacs even have --enable-link-time-optimization as a configure
> option? Does it provide any measurable benefit? (Apart from "crashes a
> lot"? :) ) Should the configure option description add a general warning?

BTW, RedHat's compiler engineer claims that LTO has made substantial progress
in gcc-4.9: http://vmakarov.fedorapeople.org/spec/2014/2014.html

(from https://gcc.gnu.org/ml/gcc/2014-06/msg00254.html).

Dmitry





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Tue, 24 Jun 2014 16:29:01 GMT) Full text and rfc822 format available.

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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Tue, 24 Jun 2014 09:27:50 -0700
Dmitry Antipov wrote:
> RedHat's compiler engineer claims that LTO has made substantial progress
> in gcc-4.9: http://vmakarov.fedorapeople.org/spec/2014/2014.html

Those comments say that GCC 4.9.0 compiles much faster than GCC 4.8.3 
when LTO is used.  And that's understandable: in 4.9.0, -flto defaults 
to -fno-fat-lto-objects.  Unfortunately, this is the change that broke 
the Emacs build.  Emacs has worked around the problem by compiling with 
-ffat-lto-objects, but this negates the compile-time performance 
advantage of 4.9.0.

4.9.0 has not made significant improvements in run-time performance over 
4.8.3 when LTO is used, and for Emacs LTO has only minor (and sometimes 
even negative) run-time performance improvements compared to non-LTO.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17806; Package emacs. (Tue, 24 Jun 2014 16:40:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: dmantipov <at> yandex.ru, 17806 <at> debbugs.gnu.org
Subject: Re: bug#17806: 24.4.50; Branch emacs-24 fails to beuild on Debian
Date: Tue, 24 Jun 2014 19:39:15 +0300
> Date: Tue, 24 Jun 2014 09:27:50 -0700
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> Cc: 17806 <at> debbugs.gnu.org
> 
> Dmitry Antipov wrote:
> > RedHat's compiler engineer claims that LTO has made substantial progress
> > in gcc-4.9: http://vmakarov.fedorapeople.org/spec/2014/2014.html
> 
> Those comments say that GCC 4.9.0 compiles much faster than GCC 4.8.3 
> when LTO is used.  And that's understandable: in 4.9.0, -flto defaults 
> to -fno-fat-lto-objects.  Unfortunately, this is the change that broke 
> the Emacs build.  Emacs has worked around the problem by compiling with 
> -ffat-lto-objects, but this negates the compile-time performance 
> advantage of 4.9.0.
> 
> 4.9.0 has not made significant improvements in run-time performance over 
> 4.8.3 when LTO is used, and for Emacs LTO has only minor (and sometimes 
> even negative) run-time performance improvements compared to non-LTO.

I wonder if we should say something about this in PROBLEMS.  After
all, LTO is the latest buzz-hot feature, so people will probably try
it with Emacs.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 23 Jul 2014 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 301 days ago.

Previous Next


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