Subject: bug#5655: 23.1; incorrect paths for crt1.o, crtn.o, etc.

From: Nathan Phillip Brink <[email-masked]>
Date: Sat, 27 Feb 2010 23:30:52 -0500 (EST)

https://bugs.gentoo.org/306831

Attempting to build a copy of emacs utilizing the 32-bit ABI available on an amd64 system revealed that emacs has hard-coded paths to files such as crt1.o, crtn.o, etc. in its Makefile.ins. This is also a problem when trying to build emacs on freebsd systems.

It would seem to me that an application shouldn't need to link directly against crt*.o. It appears to make the buildsystem quite implementation specific, for example.

Perhaps it would be good enough if emacs's autoconf scripts were able to divine the proper location for these crt files. You can see an example of how gentoo's emacs ebuild fixes this for freebsd people at http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-editors/emacs/emacs-23.1-r2.ebuild?view=markup (see the src_prepare() function and the crtbegin.o and crtend.o stuff.)

In GNU Emacs 23.1.1 (x86_64-pc-linux-gnu, GTK+ Version 2.14.7)
 of 2009-08-24 on ohnopublishing.net
configured using `configure  '--prefix=/usr' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--libdir=/usr/lib64' '--program-suffix=-emacs-23' '--infodir=/usr/share/info/emacs-23' '--with-sound' '--with-x' '--without-toolkit-scroll-bars' '--without-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm' '--without-xft' '--without-libotf' '--without-m17n-flt' '--with-x-toolkit=gtk' '--without-hesiod' '--with-kerberos' '--with-kerberos5' '--with-gpm' '--with-dbus' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CFLAGS=-O2 -pipe -march=athlon64 -g -ggdb' 'LDFLAGS=-Wl,--as-needed -Wl,-O1 -Wl,-t -Wl,--enable-new-dtags -Wl,--hash-style=both''

Important settings:
  value of $LC_ALL: nil
  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: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  dired-omit-mode: t
  display-time-mode: t
  server-mode: t
  global-cwarn-mode: t
  diff-auto-refine-mode: t
  tooltip-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
ESC [ 3 ~ ESC [ 3 ~ C-x C-s C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f RET ESC [ 3 ~ ESC [ 4 ~ ESC [ 3 
~ ESC [ 4 ~ ESC [ 1 ~ C-f C-f C-f C-f C-f C-f C-f C-f 
C-f SPC ESC [ 4 ~ C-b C-x C-s C-b C-b C-b C-b C-b C-b 
C-b C-b C-b C-b C-b ESC [ 4 ~ C-b SPC w h i c h SPC 
d C-b ESC [ 3 ~ C-b C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b ESC [ 4 ~ C-b C-b C-b C-b C-b C-b C-b ESC [ 
3 ~ ESC [ 3 ~ ESC [ 3 ~ ESC [ 3 ~ ESC [ 3 ~ u s i n 
g SPC d y n a m i c SPC l i n k i n g C-x C-s ESC [ 
3 ~ C-p C-p ESC [ 3 ~ SPC C-f C-f RET ESC [ 3 ~ ESC 
[ 4 ~ C-n C-b RET ESC [ 3 ~ C-x C-s C-n C-n C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-x C-s C-x 5 0 ESC x r e p TAB 
o TAB r TAB RET

Recent messages:
Saving file /home/ohnobinki/ohnobinki_overlay/sys-devel/libtool/files/2.2.6b/libtool-2.2.6b-ltdl.m4-no-la.patch...
Wrote /home/ohnobinki/ohnobinki_overlay/sys-devel/libtool/files/2.2.6b/libtool-2.2.6b-ltdl.m4-no-la.patch
Saving file /home/ohnobinki/ohnobinki_overlay/sys-devel/libtool/files/2.2.6b/libtool-2.2.6b-ltdl.m4-no-la.patch...
Wrote /home/ohnobinki/ohnobinki_overlay/sys-devel/libtool/files/2.2.6b/libtool-2.2.6b-ltdl.m4-no-la.patch
Saving file /home/ohnobinki/ohnobinki_overlay/sys-devel/libtool/files/2.2.6b/libtool-2.2.6b-ltdl.m4-no-la.patch...
Wrote /home/ohnobinki/ohnobinki_overlay/sys-devel/libtool/files/2.2.6b/libtool-2.2.6b-ltdl.m4-no-la.patch
(No changes need to be saved)
When done with this frame, type M-x delete-frame
Making completion list... [2 times]
call-interactively: End of buffer [3 times]