Re: [lazarus] OpenMoko and FPC/Lazarus
Marc Weustink schrieb: Marc Weustink wrote: Florian Klaempfl wrote: Luca Olivetti schrieb: En/na Florian Klaempfl ha escrit: It should be enough to build FPC with OPT=-dFPC_ARMEL So it's now possible to produce eabi code with fpc? Well, I did initial support. If you provide bugs reports, I'll try to fix them. hmm... current openmoko versions are eabi, but when I run a testapp build by such fpc I get: Program received signal SIGILL, Illegal instruction. 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () (gdb) bt #0 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () #1 0x00012e1c in SYSTEM_FPGETRLIMIT$LONGINT$PRLIMIT$$LONGINT () #2 0x0001eef8 in SYSTEM_CHECKINITIALSTKLEN$LONGWORD$$LONGWORD () #3 0x0001efbc in SYSTEM_init () #4 0x0001a7ec in fpc_initializeunits () #5 0xe668 in main () at gtk2query.pp:263 I tried something more. I compiled FPC without FPC_ARMEL, but tweaked init_settings.fputype:=fpu_soft in globals.pas so it would use soft fpu. Now my testapp crashes on the first librarycall (how surprising), but passes the fpc_initializeunits (and manages to do some writeln). From this I assume syscalls in this case are correct and I guess there is some difference between syscall calling and library calling. As Luca suspected, this is the wrong way :) You've a kernel with old syscall support. You should find out why it crashes with -dFPC_ARMEL. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Florian Klaempfl wrote: Marc Weustink schrieb: Marc Weustink wrote: Florian Klaempfl wrote: Luca Olivetti schrieb: En/na Florian Klaempfl ha escrit: It should be enough to build FPC with OPT=-dFPC_ARMEL So it's now possible to produce eabi code with fpc? Well, I did initial support. If you provide bugs reports, I'll try to fix them. hmm... current openmoko versions are eabi, but when I run a testapp build by such fpc I get: Program received signal SIGILL, Illegal instruction. 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () (gdb) bt #0 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () #1 0x00012e1c in SYSTEM_FPGETRLIMIT$LONGINT$PRLIMIT$$LONGINT () #2 0x0001eef8 in SYSTEM_CHECKINITIALSTKLEN$LONGWORD$$LONGWORD () #3 0x0001efbc in SYSTEM_init () #4 0x0001a7ec in fpc_initializeunits () #5 0xe668 in main () at gtk2query.pp:263 I tried something more. I compiled FPC without FPC_ARMEL, but tweaked init_settings.fputype:=fpu_soft in globals.pas so it would use soft fpu. Now my testapp crashes on the first librarycall (how surprising), but passes the fpc_initializeunits (and manages to do some writeln). From this I assume syscalls in this case are correct and I guess there is some difference between syscall calling and library calling. As Luca suspected, this is the wrong way :) You've a kernel with old syscall support. You should find out why it crashes with -dFPC_ARMEL. I did this test only to see if there is a difference between calling conventions used for libraries and for syscalls. It was not an attempt to get this path to working. Assuming that there is a difference on purpose (need to sort that out), I tried to build a version with FPC_USE_LIBC to eliminate syscalls. After 2 patches, I got a RTL build with it, but it somehow fails to allocate mem. (fmmap returns -1) Also that needs to be investigated (it was way beyond my bedtime) Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Luca Olivetti wrote: En/na Marc Weustink ha escrit: From this I assume syscalls in this case are correct and I guess there is some difference between syscall calling and library calling. Maybe openmoko as an eabi kernel compiled with oabi compatibility? (otherwise I think old style syscalls wouldn't work). And, I don't know if there are differences in library calling, but sure there are differences in structure alignment (especially if there are enums in the structures). Yes, I know. But how can I tell the compiler that for syscalls oabi alignment should be used and for libraries eabi ? (assuming that is crashes on wrong alignment and that there is indeed such difference) Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Marc Weustink schrieb: Luca Olivetti wrote: En/na Marc Weustink ha escrit: From this I assume syscalls in this case are correct and I guess there is some difference between syscall calling and library calling. Maybe openmoko as an eabi kernel compiled with oabi compatibility? (otherwise I think old style syscalls wouldn't work). And, I don't know if there are differences in library calling, but sure there are differences in structure alignment (especially if there are enums in the structures). Yes, I know. But how can I tell the compiler that for syscalls oabi alignment should be used and for libraries eabi ? (assuming that is crashes on wrong alignment and that there is indeed such difference) You shouldn't. We simply need to fix -dFPC_ARMEL. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Thank you for the information :) Ido On Jan 20, 2008 10:12 PM, Luca Olivetti [EMAIL PROTECTED] wrote: En/na ik ha escrit: For someone that does not know arm cpus, what are oabi and eabi ? oabi (I don't think that's the proper definition, anyway o stands for old) is the previous arm binary interface. eabi is the new one. The linux kernel can be compiled with support for one, the other, or both (since one of the differences is in the syscall convention) From http://wiki.debian.org/ArmEabiPort In a nutshell EABI is the new Embedded ABI by ARM ltd. EABI is actually a family of ABI's and one of the subABIs is GNU EABI, for Linux. The effective changes for users are: * Floating point performance, with or without an FPU is very much faster, and mixing soft and hardfloat code is possible * Structure packing is not as painful as it used to be * More compatibility with various tools (in future - currently linux-elf is well supported) * A more efficient syscall convention * At present (with gcc-4.1.1) it works with ARMv4t, ARMv5t processors and above, but supporting ARMv4 (e.g., StrongARM) requires modification to GCC. See Thumb interworking below. Bye -- Luca _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives -- http://ik.homelinux.org/ _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Florian Klaempfl wrote: Luca Olivetti schrieb: En/na Florian Klaempfl ha escrit: It should be enough to build FPC with OPT=-dFPC_ARMEL So it's now possible to produce eabi code with fpc? Well, I did initial support. If you provide bugs reports, I'll try to fix them. hmm... current openmoko versions are eabi, but when I run a testapp build by such fpc I get: Program received signal SIGILL, Illegal instruction. 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () (gdb) bt #0 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () #1 0x00012e1c in SYSTEM_FPGETRLIMIT$LONGINT$PRLIMIT$$LONGINT () #2 0x0001eef8 in SYSTEM_CHECKINITIALSTKLEN$LONGWORD$$LONGWORD () #3 0x0001efbc in SYSTEM_init () #4 0x0001a7ec in fpc_initializeunits () #5 0xe668 in main () at gtk2query.pp:263 Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Marc Weustink wrote: Florian Klaempfl wrote: Luca Olivetti schrieb: En/na Florian Klaempfl ha escrit: It should be enough to build FPC with OPT=-dFPC_ARMEL So it's now possible to produce eabi code with fpc? Well, I did initial support. If you provide bugs reports, I'll try to fix them. hmm... current openmoko versions are eabi, but when I run a testapp build by such fpc I get: Program received signal SIGILL, Illegal instruction. 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () (gdb) bt #0 0x000129d0 in SYSTEM_FPSYSCALL$LONGINT$$LONGINT () #1 0x00012e1c in SYSTEM_FPGETRLIMIT$LONGINT$PRLIMIT$$LONGINT () #2 0x0001eef8 in SYSTEM_CHECKINITIALSTKLEN$LONGWORD$$LONGWORD () #3 0x0001efbc in SYSTEM_init () #4 0x0001a7ec in fpc_initializeunits () #5 0xe668 in main () at gtk2query.pp:263 I tried something more. I compiled FPC without FPC_ARMEL, but tweaked init_settings.fputype:=fpu_soft in globals.pas so it would use soft fpu. Now my testapp crashes on the first librarycall (how surprising), but passes the fpc_initializeunits (and manages to do some writeln). From this I assume syscalls in this case are correct and I guess there is some difference between syscall calling and library calling. Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Marc Weustink wrote: ik wrote: Hi, While google suggest rewards for developing applications for Android, there is an open source firmware named OpenMoko (http://openmoko.org/). I asked Michael Shiloh what are some of the requirement in building apps in different compilers (FPC to be exact, and I also mentioned Lazarus :)). Well all that is required is to bind ourself to the C libraries. I wonder what does it mean (other then binding) to make FPC and Lazarus to support such environment. I've been playing with that thought also (I've been following that project for a while now). It supports X and gtk so that part should work and AFAIK it runs some arm-linux so imo fpc could genererste some exe. Since there wasn't an (easy) emulator environment, I stopped thinging about it and didn't test. OK, thinks have inmroved and you now can run a qemu emulator :) I did some tests. First, just using the gnu-arm-linux binutils, I compiled a arm-linux trunk fpc and compiled a test (RTTIdump) console app. It runs fine on the emulated moko. Second I tried one of my simple test gtk2 apps. It compiles, but failed to link since the gnu-arm-linux binutils don't understand the format used for the X, gdk, gtk libs. I should have done some more initial reading, since openmoko brings its own binutils. After installing the openmoko toolchain I tried and linking my testapp failed again. Now ld was complaining that the .o files of the rtl had a wrong eabi version. Sure, true, indeed, I forgot to recompile fpc. And that ends in: /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s: Assembler messages: /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s:15225: Error: selected processor does not support `rfs r0' /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s:15228: Error: selected processor does not support `wfs r0' /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s:19155: Error: selected processor does not support `stfd f0,[r13]' It seems that the used arm core has no floatingpoint unit. Does fpc support softfloat ? (if yes, how to use ?) Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Marc Weustink schrieb: Marc Weustink wrote: ik wrote: Hi, While google suggest rewards for developing applications for Android, there is an open source firmware named OpenMoko (http://openmoko.org/). I asked Michael Shiloh what are some of the requirement in building apps in different compilers (FPC to be exact, and I also mentioned Lazarus :)). Well all that is required is to bind ourself to the C libraries. I wonder what does it mean (other then binding) to make FPC and Lazarus to support such environment. I've been playing with that thought also (I've been following that project for a while now). It supports X and gtk so that part should work and AFAIK it runs some arm-linux so imo fpc could genererste some exe. Since there wasn't an (easy) emulator environment, I stopped thinging about it and didn't test. OK, thinks have inmroved and you now can run a qemu emulator :) I did some tests. First, just using the gnu-arm-linux binutils, I compiled a arm-linux trunk fpc and compiled a test (RTTIdump) console app. It runs fine on the emulated moko. Second I tried one of my simple test gtk2 apps. It compiles, but failed to link since the gnu-arm-linux binutils don't understand the format used for the X, gdk, gtk libs. I should have done some more initial reading, since openmoko brings its own binutils. After installing the openmoko toolchain I tried and linking my testapp failed again. Now ld was complaining that the .o files of the rtl had a wrong eabi version. Sure, true, indeed, I forgot to recompile fpc. And that ends in: /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s: Assembler messages: /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s:15225: Error: selected processor does not support `rfs r0' /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s:15228: Error: selected processor does not support `wfs r0' /net/thunder/mnt/mirror1/src/fpc/trunk/rtl/units/arm-linux/system.s:19155: Error: selected processor does not support `stfd f0,[r13]' It seems that the used arm core has no floatingpoint unit. Does fpc support softfloat ? (if yes, how to use ?) It should be enough to build FPC with OPT=-dFPC_ARMEL _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
En/na Florian Klaempfl ha escrit: It should be enough to build FPC with OPT=-dFPC_ARMEL So it's now possible to produce eabi code with fpc? Great! (not that I grasp the full implications of oabi vs. eabi, but I'd like to make some experiment with my n800, which is an eabi system). Bye -- Luca Olivetti Wetron Automatización S.A. http://www.wetron.es/ Tel. +34 93 5883004 Fax +34 93 5883007 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
Luca Olivetti schrieb: En/na Florian Klaempfl ha escrit: It should be enough to build FPC with OPT=-dFPC_ARMEL So it's now possible to produce eabi code with fpc? Well, I did initial support. If you provide bugs reports, I'll try to fix them. Great! (not that I grasp the full implications of oabi vs. eabi, but I'd like to make some experiment with my n800, which is an eabi system). Bye _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] OpenMoko and FPC/Lazarus
Hi, While google suggest rewards for developing applications for Android, there is an open source firmware named OpenMoko (http://openmoko.org/). I asked Michael Shiloh what are some of the requirement in building apps in different compilers (FPC to be exact, and I also mentioned Lazarus :)). Well all that is required is to bind ourself to the C libraries. I wonder what does it mean (other then binding) to make FPC and Lazarus to support such environment. Ido -- http://ik.homelinux.org/ _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] OpenMoko and FPC/Lazarus
ik wrote: Hi, While google suggest rewards for developing applications for Android, there is an open source firmware named OpenMoko (http://openmoko.org/). I asked Michael Shiloh what are some of the requirement in building apps in different compilers (FPC to be exact, and I also mentioned Lazarus :)). Well all that is required is to bind ourself to the C libraries. I wonder what does it mean (other then binding) to make FPC and Lazarus to support such environment. I've been playing with that thought also (I've been following that project for a while now). It supports X and gtk so that part should work and AFAIK it runs some arm-linux so imo fpc could genererste some exe. Since there wasn't an (easy) emulator environment, I stopped thinging about it and didn't test. Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives