comp.lang.ada
 help / color / mirror / Atom feed
From: rrr.eee.27@gmail.com
Subject: Re: Things AVR-Ada needs to sort out - calling Rolf
Date: Tue, 29 Nov 2016 10:32:26 -0800 (PST)
Date: 2016-11-29T10:32:26-08:00	[thread overview]
Message-ID: <7730ace9-1961-4844-98f1-6f47d6848e06@googlegroups.com> (raw)
In-Reply-To: <145e7204-aa27-4bb6-9c46-7f3700030a84@googlegroups.com>

On Monday, November 28, 2016 at 7:39:45 PM UTC+1, Lucretia wrote:
> Hi,
 
Hi,

> Looking back at AVR stuff again and I still cannot believe Rolf Ebert hacks up the GCC build so much still.

That depends on the meaning of "so much".

I ported my patches for building gcc to gcc-5.3 and last February to gcc-6.2.

> As of GCC-4.9.4, the ability to build bare metal GNAT builds has been put back in place, see https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/ada/gcc-interface/Makefile.in?r1=218003&r2=219183&pathrev=219183 for the patch.

I read about it in the gcc-patches mailing, but cannot find it in your reference.  Actually I always wanted to move my build patches to your (or Simon's) way.
 
> This then renders 23-gcc-4.7-ada-Makefile.patch and 24-gcc-4.7-ada-gnattools.patch unnecessary and quite possibly no_25-gcc-4.7-ada-gnattools_bug55243.patch too. 

I still use the first two ones (23-gcc..., 25-gcc...). The last one is prefixed with a no_ indicating that it wasn't necessary anymore when you picked it up (my build script only accepts patches starting with numbers and ending in .patch)
 
> The -ffreestanding is part of the C standard for compiling OS kernels where there is no C runtime libs and has nothing to do with Ada, this should be removed, it should never have even been there. Therefore, 71-gcc-4.7-ada-freestanding.patch is irrelevant.

Perhaps the name of the patch is misleading. Actually when I first created it (gcc-3.4?) it removed about 200 bytes in the generated code from the binder file. It still makes the generated binder code a few bytes smaller. I could live without it, definitely.

> As for 72-gcc-4.7-ada-timebase.patch, I'm not sure about this one. Is there really a need for this at all? Why does the time duration need to be changed for AVR?

That patch is also an attempt to reduce the code size on the target. Deviating from the Ada standard I can use a time base of 1ms and a time variable of only 32 bits. A few years ago 64 bit integers didn't work well on AVR.

> Given the above, I cannot see the need for 73-gcc-4.7-ada-gnat1_print_path.patch either.

I already removed that one in gcc-4.9, 5.3 and 6.2
 
> The way to build this new compiler is to use --disable-libada in the configure command then:
> 
> make all-gcc
> make all-target-libgcc
> make -C gcc cross-gnattools ada.all.cross
> make install-strip-gcc install-target-libgcc

Actually, I have difficulties to make that work. 

> as can be seen here - https://github.com/Lucretia/free-ada/blob/develop/includes/bare_metal.inc

I looked at your script last February. In the end I sticked to my patches because I wanted to proceed and did not want to beautify my set of patches.

> I think if this were sorted out, it would make building the compiler easier and any extra patches could be passed onto the FSF for inclusion into the source, with proper copyright assignments in place. You would only then require your custom runtime to be distributed to be built.

There aren't any extra patches anymore that need to be included in the upstream gcc!


Thanks for your hints. I'll see if I can streamline building AVR-Ada in the future.

best regards
    Rolf

  reply	other threads:[~2016-11-29 18:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-28 18:39 Things AVR-Ada needs to sort out - calling Rolf Lucretia
2016-11-29 18:32 ` rrr.eee.27 [this message]
2016-11-29 21:18   ` Lucretia
2016-11-29 23:14     ` Luke A. Guest
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox