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]

Re: some questions of gcc-4.1.0/glibc-2.4 toolchain


--- Bridge Wu <mingqiao.wu@gmail.com> wrote:

> Hi,
> 
> I got a toolchain with gcc-4.1.0/glibc-2.4/binutils-2.16.91.0.7 by
> using crossgcc. It has a litte difference with the old version. Here
> are some questions.
> 
> 1. How to support multiple abi?
> It can compile application with -mabi=aapcs. This can be observed with
> "arm-iwmmxt-linux-gnueabi-objdum -p a.out | grep private", the result
> is
>               private flags = 4000002: [Version4 EABI] [has entry point]
> 
> I suppose the toolchain should support old abi and the default is
> eabi. The test case shows the result with and without -mabi=aapcs is
> the same. But I cannot get an old abi object file. I cannot use
> -mabi=apcs option. I can use -mapcs, but the result is the same as
> -mabi=aapcs. How should I support multiple abi to the
> gcc-4.1.0/glibc-2.4 toolchain.
> 
Are you using my patch for arm-iwmmxt-linux-gnueabi?  I defaults to mcpu=iwmmxt
and mabi=aapcs-linux.  

Be aware that you need an aapcs compatible ABI for iWMMXt mode.  You will have
to make sure that your -march is set to something appropriate.

> 2. Which floating point is used?
> I ever used objdump to see private flags in binary file show the
> floating point format. But from item 1 we cannot know it. I checked
> the binutils source file, seems FPA used, but I'm not sure.
>
Again my patch uses VFP since the iWMMXt does it in hardware.  If you you want
to be backward compatible with OABI you'll have to use FPA and/or softfloat
since it was a part of the ABI.  You'll need to use multilib I believe.

> 3. How to modify gcc specs?
> I remembered there is a specs file which can control some behaviours
> of gcc. But following output shows the new toolchain uses built-in
> specs. Can I still modify gcc specs?
> $ arm-iwmmxt-linux-gnueabi-gcc -v
> Using built-in specs.
> Target: arm-iwmmxt-linux-gnueabi
> Configured with:
>
/home/test/gcc41-glibc24-binu216/build/arm-iwmmxt-linux-gnueabi/gcc-4.1.0-glibc-2.4/gcc-4.1.0/configure
> --target=arm-iwmmxt-linux-gnueabi --host=i686-host_pc-linux-gnu
> --prefix=/usr/local/bridge/arm-iwmmxt-linux-gnueabi --with-cpu=iwmmxt
> --with-float=soft --enable-cxx-flags=-msoft-float
>
--with-headers=/usr/local/bridge/arm-iwmmxt-linux-gnueabi/arm-iwmmxt-linux-gnueabi/include
>
--with-local-prefix=/usr/local/bridge/arm-iwmmxt-linux-gnueabi/arm-iwmmxt-linux-gnueabi
> --disable-nls --enable-threads=posix --enable-symvers=gnu
> --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared
> --enable-c99 --enable-long-long
> Thread model: posix
> gcc version 4.1.0
Ah, you've used softfloat.  That may won't use FPA or VFP unless you specifiy
-mfloat-hard.

Yes, you should be able to use your own specs in theory! :) Just make sure the
underlying support has been compiled in for any changes!

> 
> --
> best regards,
> -Bridge

I've only been digging deeply into this stuff for a couple of months so
although I don't think I've done anything wrong in my patch; at least nobody
has said anything!  It does seem to work! :)


Steve


		
___________________________________________________________ 
Does your mail provider give you FREE antivirus protection? 
Get Yahoo! Mail http://uk.mail.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]