[Ecls-list] Help cross-compiling ECL for ARM EABI (was: Can ECL run on the Nokia S60?)

Elliott Slaughter elliottslaughter at gmail.com
Mon Mar 2 08:06:08 UTC 2009


Well, I just compiled libgc1c2 myself, using the same toolchain and libc6
version as I did for ECL, and it still crashes, so I guess we can conclude
that the cause of the crash is something else during my build process.

Any assistance would still be greatly appreciated.

On Sun, Mar 1, 2009 at 10:48 PM, Elliott Slaughter <
elliottslaughter at gmail.com> wrote:

> Hi,
>
> I'm trying to cross compile ECL for Linux on ARM EABI, and have run into
> some problems, the end result being that ECL crashes on the target device. I
> would appreciate any assistance in debugging or getting this build to work.
> Thanks in advance.
>
> I have outlined my steps below (some of this may or may not be related, so
> please stay with me):
>
> I am compiling using a x86 Linux machine to a Nokia n810 running Maemo (a
> Linux derivative) on ARM EABI, using the Maemo SDK+ toolchain. I am trying
> to compile ECL from the newest CVS, using an ECL I just built from CVS on
> the build machine.
>
> When I started the cross compile, I didn't know what values were
> appropriate in cross_config for ARM processors, so I just left the defaults.
> (I can't find any references online for this, so I still can't check whether
> they were correct or not.) If any of the following configuration settings
> are wrong, please let me know:
>
> ECL_STACK_DIR=up
> CL_FIXNUM_TYPE=int
> CL_FIXNUM_BITS=32
> CL_FIXNUM_MAX=536870911L
> CL_FIXNUM_MIN=-536870912L
> ECL_BIGENDIAN=no
> ECL_NEWLINE=LF
> ### 1.5) Can we guess how many characters are available for reading from
> ###      the FILE structure?
> ###          0 = no
> ###          1 = (f)->_IO_read_end - (f)->_IO_read_ptr
> ###          2 = (f)->_r
> ###          3 = (f)->_cnt
> ECL_FILE_CNT=0
> ECL_TO_RUN=/usr/bin/ecl
>
> Continuing, the build process seemed to go well enough, except for a
> failure to compile defsystem.lisp:
>
> ;;; No class named TOPOLOGICAL-SORT-NODE.
> ;;; Error: in file ext:defsystem;defsystem.lisp, position 117, and form
> ;;;   (DEFINE-STRUCTURE 'TOPOLOGICAL-SORT-NODE 'TOPSORT- ...)
> ;;; The form (SI::DEFINE-STRUCTURE 'TOPOLOGICAL-SORT-NODE 'TOPSORT- 'NIL
> 'NIL '((COLOR :WHITE :TYPE (MEMBER :GRAY :BLACK :WHITE))) '((COLOR :WHITE
> (MEMBER :GRAY :BLACK :WHITE) NIL 0 NIL)) 'COPY-TOPOLOGICAL-SORT-NODE 'NIL
> 'NIL 'NIL '(MAKE-TOPOLOGICAL-SORT-NODE) '1 'NIL 'NIL
> 'TOPOLOGICAL-SORT-NODE-P) was not evaluated successfully.
> Cannot find out entry point for binary file
> ;;; You are recommended to compile again.Broken at TOP-LEVEL. File:
> #P"/home/elliott/src/ecl-9.1.0/src/lsp/top.lsp" (Form #26)No restarts
> available.
>
> I figured I could live without defsystem, so I continued and finished the
> build.
>
> The build compiled, and I built a debian package and attempted to install
> it on the phone. I immediately found out that I was missing libgc1c2. Using
> lenny debian sources, I found a binary, with one minor problem: it depended
> on libc6 >= 2.7 and the device comes with 2.5. Hoping it would work anyways,
> I installed libgc1c2, and then ecl. When I ran ecl, I got the following
> error:
>
> # ecl
>
> Internal or unrecoverable error in:
>
> Lisp initialization error.
>
>   [22: Invalid argument]
> Aborted
>
> Hoping to find out more about this rather opaque error, I installed gdb and
> got a backtrace:
>
> # gdb ecl
> GNU gdb 6.8-debian
> Copyright (C) 2008 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <
> http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "arm-linux-gnueabi"...
> (no debugging symbols found)
> (gdb) run
> Starting program: /usr/bin/ecl
> (no debugging symbols found)
>
> Internal or unrecoverable error in:
>
> Lisp initialization error.
>
>   [22: Invalid argument]
>
> Program received signal SIGABRT, Aborted.
> 0x4024ce74 in raise () from /lib/libc.so.6
> (gdb) where
> #0  0x4024ce74 in raise () from /lib/libc.so.6
> #1  0x4024e450 in abort () from /lib/libc.so.6
> #2  0x4011a990 in ecl_internal_error ()
>    from /usr/lib/libecl.so.9.1
> #3  0x4011b19c in ?? ()
>    from /usr/lib/libecl.so.9.1
>
> Which still leaves me with no clear idea of what exactly is going wrong.
>
> Given the above information, what seems the most likely cause of the error?
> How might I be able to get better information for debugging?
>
> Do I need to worry about compatibility with the libc version? (I have tried
> and failed to upgrade libc on the device, so if this is the issue than I
> probably need to go and compile libgc1c2 for the old libc, not the other way
> around.)
>
> Does anyone have recent experience with compiling ECL for an ARM
> (especially EABI) device? Are there any known issues involved? Does anyone
> currently have a working binary?
>
> Thanks again. Any assistence would be appreciated.
>
> On Mon, Feb 23, 2009 at 7:55 PM, Elliott Slaughter <
> elliottslaughter at gmail.com> wrote:
>
>> Hi,
>>
>> Has anyone here had any success in getting ECL to compile/run on a
>> Nokia phone (e.g. the S60)?
>>
>> Is this something I could reasonably expect to get up and running in a
>> week?
>>
>> Thanks.
>>
>> --
>> Elliott Slaughter
>>
>> "Any road followed precisely to its end leads precisely nowhere." -
>> Frank Herbert
>>
>
>
>
> --
> Elliott Slaughter
>
> "Any road followed precisely to its end leads precisely nowhere." - Frank
> Herbert
>



-- 
Elliott Slaughter

"Any road followed precisely to its end leads precisely nowhere." - Frank
Herbert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20090302/6c21cb8d/attachment.html>


More information about the ecl-devel mailing list