This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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: [PATCH 4/4] MSP430: Deprecate -minrt option


On Sun, 17 Nov 2019 14:00:58 -0700
Jeff Law <law@redhat.com> wrote:

> On 11/7/19 2:41 PM, Jozef Lawrynowicz wrote:
> > Support for the MSP430 -minrt option has been removed from Newlib, since all the
> > associated behaviour is now dynamic. Initialization code run before main is only
> > included when needed.
> > 
> > This patch removes the final traces of -minrt from GCC.
> > 
> > -minrt used to modify the linking process in the following ways:
> > * Removing .init and .fini sections, by using a reduced crt0 and excluding crtn.
> > * Removing crtbegin and crtend (thereby not using crtstuff.c at all).
> >   + This meant that even if the program had constructors for global or
> >     static objects which must run before main, it would blindly remove them.
> > 
> > These causes of code bloat have been addressed by:
> > * switching to .{init,fini}_array instead of using .{init,fini} sections
> >   "Lean" code to run through constructors before main is only included if
> >   .init_array has contents.
> > * removing bloat (frame_dummy, *tm_clones*, *do_global_dtors*) from the
> >   crtstuff.c with the changes in the previous patches
> > 
> > Here are some examples of the total size of different "barebones" C programs to
> > show that the size previously achieved by -minrt is now matched by default:
> > 
> > program                 |old (with -minrt)      |new (without -minrt)
> > ---------------------------------------------------------------------
> > Empty main              |20                     |20
> > Looping main            |14                     |14
> > Looping main with data  |94                     |94
> > Looping main with bss   |56                     |56
> > 
> > 
> > 0004-MSP430-Remove-minrt-option.patch
> > 
> > From 6e561b45c118540f06d5828ec386d2dd79c13b62 Mon Sep 17 00:00:00 2001
> > From: Jozef Lawrynowicz <jozef.l@mittosystems.com>
> > Date: Wed, 6 Nov 2019 18:12:45 +0000
> > Subject: [PATCH 4/4] MSP430: Remove -minrt option
> > 
> > gcc/ChangeLog:
> > 
> > 2019-11-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
> > 
> > 	* config/msp430/msp430.h (STARTFILE_SPEC): Remove -minrt rules.
> > 	Use "if, then, else" syntax for specs.
> > 	(ENDFILE_SPEC): Likewise.
> > 	* config/msp430/msp430.opt: Mark -minrt as deprecated.
> > 	* doc/invoke.texi: Remove -minrt documentation.  
> This is fine.  I leave the decision whether or not to install now or
> wait for resolution on the other changes in this space as your decision.

Unfortunately without the other changes installed by default this option is
still required if users want the bare minimum code size.

Jozef
> 
> jeff
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]