Subject: bug#10896: 23.4; --with-crt-dir was required since crt1.0 not found (on *32bit* system)

From: ishikawa <[email-masked]>
Date: Mon, 27 Feb 2012 12:04:02 +0900

This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your report will be posted to the [email-masked] mailing list
and the gnu.emacs.bug news group, and at http://debbugs.gnu.org.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug.  If you can, give
a recipe starting from `emacs -Q':

Compilation failed unless --with-crt-dir was specified during configure on a
32 bit system.

downloaded 23.4 and ran configure as below:
./configure --with-x-toolkit=gtk --without-xim

But then during the subsequent make
it failed due to the dependency on /usr/lib/crt1.0 to make temacs.

Upon investigation, the make variable CRT_DIR is set to /usr/lib
in src/Makefile.
And despite the comment that it is used only on amdx86-64 and ibms390x,
somehow it is being used on this 32-bit Debian system.

Quote from src/Makefile:
# Only used by amdx86-64 and ibms390x GNU/Linux.
CRT_DIR=/usr/lib

It is used in STARTFILES which is referenced as target of temacs
STARTFILES = pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o

crt1.0 is not under /usr/lib on my system. I had to search for it myself.
So I bit the bullet and specified --with-crt-dir in configure line as
below. And the compilation succeeded.

./configure --with-x-toolkit=gtk --without-xim
--with-crt-dir=/usr/lib/i386-linux-gnu

However, something is fishy here. Since
this is NOT a 64 bit system, and not ibms390, CRT_DIR should not be used if
I believe the comment in src/Makefile.
In my use of emacs for more than 20 years, I don't think I ever needed
to specify this CRT_DIR via --with-crt-dir on a popular target.
Maybe the logic to set CRT_DIR is a little broken here?
(Or maybe Debian users are very small or that the users of Debian who
compiles his/her emacs are rarity these days.)

FYI, uname -a prints out the following:
Linux debian-vbox-ci 2.6.39-2-686-pae #1 SMP Tue Jul 5 03:48:49 UTC 2011
i686 GNU/Linux

TIA

Chiaki Ishikawa

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/local/share/emacs/23.4/etc/DEBUG.

In GNU Emacs 23.4.1 (i686-pc-linux-gnu, GTK+ Version 2.24.9)
 of 2012-02-27 on debian-vbox-ci
Windowing system distributor `The X.Org Foundation', version 11.0.11103901
configured using `configure  '--with-x-toolkit=gtk' '--without-xim'
'--with-crt-dir=/usr/lib/i386-linux-gnu''

Important settings:
  value of $LC_ALL: ja_JP.ujis
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ja_JP.UTF-8
  value of $XMODIFIERS: @im=kinput2
  locale-coding-system: japanese-iso-8bit-unix
  default enable-multibyte-characters: t

Major mode: Apropos

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-x C-f C-g <escape> x m a n <return> e m a c s b u
g s <return> <escape> x e m a c s b u <tab> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> r e p o r t b u <tab> <backspace> C-g C-h
v C-g C-h a b u g <return> C-x o C-v C-v C-v <escape>
x r e p o r t - e m a c s - b u g <return>

Recent messages:
before font setup
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit
Invoking man emacsbugs in the background
Please wait: formatting the emacsbugs man page...
emacsbugs man page formatted
error in process sentinel: Man-bgproc-sentinel: Can't find the emacsbugs manpage
error in process sentinel: Can't find the emacsbugs manpage
Quit [2 times]
Type C-x 1 to remove help window.

Load-path shadows:
/usr/local/share/emacs/site-lisp/tree-widget/tree-widget hides
/usr/local/share/emacs/23.4/lisp/tree-widget
/usr/local/share/emacs/site-lisp/egg/its/thai hides
/usr/local/share/emacs/23.4/lisp/language/thai
/usr/local/share/emacs/23.4/lisp/textmodes/spell hides /home/ishikawa/bin/spell
/usr/local/share/emacs/site-lisp/tree-widget/dir-tree hides
/home/ishikawa/bin/dir-tree
/usr/local/share/emacs/23.4/lisp/textmodes/ispell hides
/home/ishikawa/bin/ispell
/usr/local/share/emacs/site-lisp/tree-widget/tree-widget-examples hides
/home/ishikawa/bin/tree-widget-examples
/usr/local/share/emacs/23.4/lisp/tempo hides /home/ishikawa/bin/tempo
/usr/local/share/emacs/site-lisp/tree-widget/tree-widget hides
/home/ishikawa/bin/tree-widget

Features:
(shadow sort mail-extr message sendmail ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
mailabbrev nnheader gnus-util netrc gmm-utils wid-edit mailheader
canlock sha1 hex-util hashcash warnings help-mode view apropos help-fns
man assoc dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui easymenu
dvc-register dvc-utils dvc-emacs ewoc dvc-defs dvc-site regexp-opt
server rmail rfc2047 rfc2045 ietf-drums time-date qp mm-util mail-prsvr
mail-utils emacsbug lpr autoinsert japan-util egg-util tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd font-setting
tool-bar dnd fontset image fringe lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind font-render-setting gtk
x-toolkit x multi-tty emacs)