This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
--- Bridge Wu <mingqiao.wu@gmail.com> wrote: > I take a look at the URL you pointed. A question abou "system call > interface" section. > > "One area affected by alignment/struct packing is the few system calls > that pass structures or 64-bit types. To solve this problem a new > kernel syscall interface has been introduced. EABI kernels have an > option to support the old syscall interface (including old structure > layout rules) for running non-EABI binaries. However some features > (eg. ALSA) do not have the necessary kernel shims, so will only work > correctly from EABI binaries. > > Some third party EABI toolchains (eg. CodeSourcery 2005q3) use the old > kernel interface via userspace shims in glibc. This is now obsolete > and no longer supported by glibc. " > > I suppose this show the following combination should be fine since > both kernel and alsa use EABI. > > gcc-4.1.0/glibc-2.4 toolchain > kerenl-2.6.16 built with -mabi=aapcs-linux > busybox-1.01 rootfs > alsa lib and application built with -mabi=aapcs-linux > > But the result is disappointing. When we run alsa aplay application, > below error appears. But If we use codesourcery 2005q3-2 toolchain to > built the kernel, the result is ok. > > ALSA lib pcm_params.c:2154:(snd_pcm_hw_refine_slave) Slave PCM not usable > aplay: set_params: 860: Broken configuration for this PCM: no > configurations available > > Does anyone have met such problems? Possible reason? > > Another question is why we need use -mabi=aapcs-linux to build kernel > and application. > What's the difference of -mabi=aapcs and -mabi=aapcs-linux. There does > has difference in building kernel with these two options, but I > haven't got it. > Main difference is with enum sizes. aapcs defines them to be a varible sized type, while with aapcs they are always ints (4 bytes). I haven't looked into what else it changes but this did bite me when I was cross-compiling a native compiler with my arm-iwmmxt-linux-gnueabi patch. > On 4/27/06, Martin Guy <martinwguy@gmail.com> wrote: > > Hi again > > You will find a lot of answers to your questions in > > http://wiki.debian.org/ArmEabiPort > > > > > 1. How to support multiple abi? > > There is an option in the kernel config To be able to run both ABIs you'll need the OABI kernel option, an FPE, and a compatible userspace, or just use statically linked binaries.. > > > > > 2. Which floating point is used? > > EABI uses IEEE954 (754? 758? i forget) not FPA, as far as i understand. The two standard FP units for the ARM are the FPA (older ARMs and was indeed the original floating point co-processor for the ARM, the FPE emulates an FPA, it is mostly legacy stuff from the Acorn days) and the VFP. VFP is IEEE754 compatible. AAPCS/EABI uses the IEEE754 standard. I used to do a lot of ARM assembler programming back in late 80's early '90s on my ARM2! :) FP code didn't run quick back then... Steve Send instant messages to your online friends http://uk.messenger.yahoo.com -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |