problems compiling emacs natively on the nanonote

Niels Felsted Thorsen nift at maclisp.org
Sat Jun 18 07:54:40 EDT 2011


Hi

I'm very happy with emacs on the nanonote in the official image. Using
it with org-mode for notetaking. However it takes forever to start up
(~74 seconds measured here), and emacs on debian on the nanonote
starts up in a few seconds. As I understand it, it is because emacs
build under openwrt, there is problems running the "second stage" in
the build process.

So I thought, why not build emacs natively on the nanonote?

I downloaded the 23.3 sources of emacs, untarred, and ran 

./configure

This takes som time, but finishes without problems. Then:

make

Emacs starts compiling. First obstacle was (actually first obstacle
was more memory, so added some swapspace):

make[1]: *** No rule to make target `/usr/lib/crti.o', needed by `temacs'.  Stop.

Which after a search on the net was solved with:

root at BenNanoNote:/usr/lib# ln -s /usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3/crti.o .
root at BenNanoNote:/usr/lib# ln -s /usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3/crtn.o .
root at BenNanoNote:/usr/lib# ln -s /usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3/crti.o .

Then second obstacle was:

sysdep.o: In function `set_file_times':
/mnt/mmcblk0p2/src/emacs-23.3/src/sysdep.c:2748: warning: the use of
LEGACY `utimes' is discouraged, use `utime'
/usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3/libc.a(abort.os): In
function `abort':
abort.c:(.text+0x0): multiple definition of `abort'
emacs.o:/mnt/mmcblk0p2/src/emacs-23.3/src/emacs.c:431: first defined
here
collect2: ld returned 1 exit status
make[1]: *** [temacs] Error 1
make[1]: Leaving directory `/mnt/mmcblk0p2/src/emacs-23.3/src'
make: *** [src] Error 2
Command exited with non-zero status 2

I commented out the definition of "abort" in emacs.c (no idea if this
is wise). And it would continue compiling, but then fails at:

make[2]: Entering directory `/mnt/mmcblk0p2/src/emacs-23.3/lisp'
wd=/mnt/mmcblk0p2/src/emacs-23.3/lisp; subdirs=`(cd $wd; find . -type
d -print)`; for file in $subdirs; do case $file in */Old | */RCS |
*/CVS | */CVS/* | */.* | */.*/* | */=* | */cedet* ) ;; *) wins="$wins
$wd/$file" ;; esac; done; \
        for file in $wins; do \
           /mnt/mmcblk0p2/src/emacs-23.3/lisp/../update-subdirs $file;
	   \
        done;
make[2]: Leaving directory `/mnt/mmcblk0p2/src/emacs-23.3/lisp'
`/bin/pwd`/temacs --batch --load loadup bootstrap
Illegal instruction
make[1]: *** [bootstrap-emacs] Error 132
make[1]: Leaving directory `/mnt/mmcblk0p2/src/emacs-23.3/src'
make: *** [src] Error 2
Command exited with non-zero status 2
real    3h 8m 33s
user    2h 3m 04s
sys     15m 50.30s


Running temacs just fails with "Illegal instruction". So does anybody
have any idea why this could be the case?

-- 
Niels




More information about the discussion mailing list


interactive