Re: Fwd: Is it possible to build Single GCC Executable for armv5, armv6, armv7-{cortex-xx-{A,R,M}},armv8 etc.?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/11/2019 13:33, sayed israr wrote:
---------- Forwarded message ---------
From: Israr Sayed <sd.israr@xxxxxxxxx>
Date: Mon, Nov 11, 2019 at 5:38 PM
Subject: Re: Is it possible to build Single GCC Executable for armv5,
armv6, armv7-{cortex-xx-{A,R,M}},armv8 etc.?
To: Jonathan Wakely <jwakely.gcc@xxxxxxxxx>


I am building GCC from sources.Where i can configure it with 2 ways:
(1) --with-arch  --with-cpu --with-fpu --with-float options .
(2) --with-multilib-list= .
In --with-multilib-list, we can configure for various combinations of
armv*-*-*.
For example, I want to build gcc for with arch = armv7, armv7-m, armv7e-m,
with float = hard, softfp, soft.
  with fpu = fpv, fpv4, fpv4-d16 etc..
whereas if in configure i mention --with-arch --with-fpu --with-float.That
will build GCC for those options only.
I have a prebuilt arm GCC binary for STM32F controllers, which is built for
whole range of armv7-M, armv7e-m along with FPUs.
there configure options show --with-multilib-list=rmprofile.
rmprofile is the multilib option for configure.Which is exactly what
gcc/config/arm/t-rmprofile file is about.
I hope i can explain my question better.

You can configure the compiler with --with-multlib-list=xxx

where xxx is any of "aprofile", "rmprofile" and "aprofile,rmprofile"

If you do this, DO NOT specify any of --with-fpu, --with-cpu, --with-tune or --with-arch.

Be warned, the full set of multilibs is LARGE. It requires a fast machine and/or a lot of time to build them all.

You can, of course, edit any of the files - the GPL gives you that right, but if you do so, you're most likely on your own. The multilib configurations are complex and rely heavily on GNU Makefile trickery to express all the required combinations.

R.

------------------------------------------------------

On Mon, Nov 11, 2019 at 11:40:39AM +0000, Jonathan Wakely wrote:
On Sun, 10 Nov 2019 at 11:36, Israr Sayed <sd.israr@xxxxxxxxx> wrote:

Digging into the sources of GCC I noticed in files gcc/config/arm/t-*,
There are multiple arm target options.

Reading [GCC internal Manual], These are called Target Makefile
Fragments, which will be included in main Makefile, like MULTILIB_OPTIONS,
MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_REQUIRED, MULTILIB_REUSE,
MULTILIB_EXTRA_OPTS, MULTILIB_OSDIRNAMES, MULTIARCH_DIRNAME.

What I am not able to understand that how to bring it in at the time of
configure.Which option to choose?

More over is it possible to edit those t-* files as per the requirement
and how?
Please Help.

I don't understand your question. Your email's subject talks about a
single GCC executable for multiple ARM variants, which is supported
automatically. When you configure GCC for an ARM target you can select
the specific processor type using the -march and/or -mcpu options. See
the documentation of command-line options in the GCC manual.

You don't need to do anything special to use the target makefile
fragments, they're used automatically, as needed.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux