h8300, m32c and PRIuPTR
Yaakov Selkowitz
yselkowi@redhat.com
Tue Mar 17 09:45:00 GMT 2015
On Mon, 2015-03-16 at 14:58 -0500, Joel Sherrill wrote:
> On 3/16/2015 2:49 PM, Yaakov Selkowitz wrote:
> > On Mon, 2015-03-16 at 14:32 -0500, Joel Sherrill wrote:
> >> On 3/16/2015 2:25 PM, Yaakov Selkowitz wrote:
> >>> On Mon, 2015-03-16 at 13:02 -0500, Joel Sherrill wrote:
> >>>> But remember, not every newlib target is an RTEMS target. This balance
> >>>> could shift based on the other bare machine targets. Does someone
> >>>> have *-elf targets handy for targets that do not have RTEMS to test using
> >>>> my script and test case?
> >>> Attached are what I ended up with after fixing the warnings.
> >>>
> >> Thanks!!! Can you add a unique #warning to each #define case and
> >> see what the distribution is?
> >>
> >> I hacked on my version and ended up with this:
> >>
> >> 2 #warning "CASE: 1 long long only"
> >> 8 #warning "CASE: 2 long but use int"
> >> 7 #warning "CASE: 3 long use long"
> >> 4 #warning "CASE: 4 int use int"
> > 11 CASE: 1
> > 147 CASE: 2
> > 88 CASE: 3
> > 11 CASE: 4
> Were you testing all the multilb flags to get that many combinations?
Yes, I used `$t-gcc -print-multi-lib` in a nested for loop to test all
multilibs.
> Which cpus used case 3 for you? I have
>
> bfin, i386, m32r, m68k, or1k, and some m32c and some h8300
I have those, plus aarch64{,_be} -mabi=ilp32, cris, epiphany, fido,
msp430 -mlarge, nds32{b,l}e, rx, sh64 (except for -m5-64media*), and
spu.
(BTW, why isn't BE just a multilib for aarch64 and arm instead of a
separate target? And why isn't nds32 a single target, as both nds32le
and nds32be support the other endianness as multilibs??)
> >> I could fold the two cases in the "long long" block into one. Maybe
> >> you have a target that uses the second case.
> > None of my targets used __STRINGIFY(ll##x).
> Then my local change to just use Case 1 with no if inside seems OK.
> There is no reason to keep that path.
Maybe leave an #error FIXME just in case?
> >> That will let us know how the if/else should go. Of course, one
> >> school of thought is that **ALL** targets should be listed and
> >> you get an error otherwise. That ensures that no one misses
> >> a spot where a porter should look.
> > Note that I'm still missing (at least) the following newlib targets:
> >
> > avr-elf: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64401
> > cr16-elf: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64424
> > iq2000-elf: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64400
> > m32c-elf: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64403
> > mep-elf: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64402
> > or1k-elf: requires GCC 5.0
> > xstormy16-elf: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64407
> We have or1k based on the external repository. I forgot to include it in the
> script. It is Case 3.
>
> avr is case 4. We have tools based on 4.9.2 for rtems.
Right, my issue is that libgcc's crtbegin.o does not compile for
avr-elf, and that file is skipped on avr-rtems.
> > I see you mentioned m32c earlier, do you have a patch for gcc-4.9.2?
> >
> RTEMS is stuck at 4.8.3 also.
Too bad. :-( Are any of the other broken targets working in 4.8?
--
Yaakov Selkowitz
Associate Software Engineer, ARM
Red Hat, Inc.
More information about the Newlib
mailing list