Re: GSoC 2016 Interested in Tracing was Re:

2016-03-10 Thread Vivek Kukreja
Sorry, I clicked on Reply by mistake instead of Reply All. Here is an offline 
exchange with Chris.

---

On 10/03/2016 06:39, Vivek Kukreja wrote:
> Hello Chris, Isaac
> I have run the modified hello world example and created a patch for it. I 
> cannot access your git server from my institute probably because of some 
> firewall issues. I will look into it.

Please keep me posted about the git access.

> Following is the output of diff command:
> --- rtems-4.11.0-rc1master/testsuites/samples/hello/init.c 2015-12-13 
> 04:22:53.0 -0800
> +++ rtems-4.11.0-rc1/testsuites/samples/hello/init.c 2016-03-09 
> 10:35:51.527042759 -0800
> @@ -28,7 +28,7 @@
>   )
>   {
> rtems_test_begin();
> -  printf( "Hello World\n" );
> +  printf( "Hello World- Modified by Vivek Kukreja 2016\n" );
> rtems_test_end();
> exit( 0 );
>   }
>

The https://devel.rtems.org/wiki/GSoC/GettingStarted pages asks you to 
post to the lists your patch and then update the GSoC 2016 page at 
https://devel.rtems.org/wiki/GSoC/2016. Can you please do this? Thanks.

>
> I have gone through some recent archives of the IRC and i have some questions:
>
> 1. RTEMS trace linker uses function wrapping to instrument linked files of 
> app to interact with capture engine(on-target) and fetching trace data. As 
> Isaac has described in this archive 
> https://www.mail-archive.com/devel@rtems.org/msg06199.html, barectf is a tool 
> used for tracing user-defined data/structs. Is it required and feasible as a 
> GSOC project to create support for this feature? As Chris said this would 
> require deciding the structure of things a bit.
> Also, can you throw some light on 'target integration' of the capture engine 
> with rtems-tld and what tasks does it entail currently?

I have updated the Open Project TraceTool wiki page. Please see have a 
look and see if that answers your questions.

> 2. LTTng and barectf support CTF generation. Its required that app/kernel 
> files linked using RTEMS trace linker generate either native CTF data or 
> trace-data that can be converted to CTF. Could you share some pointers/links 
> to understand the current architecture for CTF generation in RTEMS?

Currently there is no CTF support in RTEMS.

> I think this feature has few prerequisites yet many features will use this. 
> For example: live trace-reading(over TCP/IP) as Isaac suggested.

Live trace is a function of the back end of the Capture Engine. The 
Capture Engine at it's top takes in records from generated by barectf 
and buffers them and at it's back end it interfaces to transports to get 
the data off the target. This architecture disconnects the transport 
from the tracing and allows different transports to be used. For example 
it could TCP, or UDP, JTAG, SPI, or a UART. RTEMS users have a wide 
range of hardware and often debug interfaces are unique because of the 
costs they can add to hardware. Consider a satellite, adding a whole 
network interface, MAC and TCP/IP stack to trace during development is 
silly because there is no network in space yet all the hardware would 
need to be provided for and at a minimum it would take valuable board 
space. The key role of the Capture Engine is to provide a simple API for 
the transport layers. This work in the Capture Engine is either 
partially done or needs to be done.

A key function of the Capture engine is to provide concurrent buffering. 
This means low overhead buffering safe in an SMP context. This is harder 
than it appears. Keeping it separate from barectf and rtems-tld is 
important.

>
> I'm not sure how ambitious these projects are but given a chance i would like 
> to work on native CTF generation and live trace-reading with Isaac. Providing 
> support for tracing user-defined structs(like barectf) sounds interesting too 
> if that feature is required before CTF.
>

These are good GSoC tasks and we welcome your interest in the work.

Chris

___
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Participation in GSoC 2016

2016-03-10 Thread Darshit Shah

Hi,

I've been a little busy with my semester end exams and other things 
recently. But I have spent time looking into the RTEMS Priority 
Scheduler with Processor Affinities and the paper mentioned in the trac 
ticket.


At this point, I have a decent understanding of the paper and its 
algorithm and am looking into how we may implement it in RTEMS. To this 
end, I am looking for help / guidance.




This would be a good project. I would add a few steps to simply implementing
it.

+ Update the scheduling simulator since it is a lot easier to test using
that.
  It is also easier to ensure you keep the same behavior.

This sounds like it would be in important part of the implementation of 
the paper. However, I do not know anything about the existing scheduling
simulator. Any links to this and basic pointers on how I should go about 
extending it would be a great start. I'll incorporate this into my draft 
proposal as soon as I have a better idea of what needs to be done.


+ Propose criteria for knowing if the new algorithm is really better for
  RTEMS than the old one. Evaluating algorithms for RTEMS use involves
  big-O of the algorithm, data space requirements (and big-O of that),
  global knowledge required, and maybe other factors.

The new algorithm is almost definitely worse in time and space than the 
existing algorithm. Based on a preliminary analysis, it will be able to 
use the existing Priority Affinity Scheduler for the most part and add a 
O(|E|) complexity to each thread blocking and unblocking operation.  
Here, E is the set of all processor affinity assignments, so it will 
approximately add an extra linear increase in scheduling overhead w.r.t.  
the number of processes that use this scheduler.


I haven't specifically looked into the space requirements, but it will 
be worse than the existing scheduler.


However, the point to realize is that after these changes, more user 
programs that set processor affinities will be able to meet their 
deadlines as compared to the existing scheduler. This should happen 
despite the higher scheduling overheads.



+ Testing on scheduling simulator and in RTEMS testsuite to ensure
  it is functionally identical to the current algorithm.

Once again, some pointers tot he scheduling simulator would help me a 
lot.


If the algorithm is functionally identical to the current one and superior
in execution time/data requirements, then replacing it is a no brainer.
If there are trade-offs on when one is better than the other in real life,
then we will all have to characterize those.

I was thinking more along the lines of writing a new scheduler instead 
of replacing the existing one. A PriorityStringAPA scheduler that pretty 
much reuses all the existing priority affinity scheduler code apart from 
the two operations. This is because, with some task sets where the 
affinity assignments are not too restrictive, the lower overheads of the 
existing scheduler may be preferred over the new one.


I have also been writing my draft proposal for GSoC. A version is 
currently available on GDrive and a link has been put on on the student 
tracking page. However, I wanted to ask if sharing a PDF of the proposal 
would be possible. Since, I would be more comfortable in making the 
entire proposal in Latex and sharing the final PDF. If not, I can keep 
working on the proposal in Google Docs.


--
Thanking You,
Darshit Shah


signature.asc
Description: PGP signature
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: Participation in GSoC 2016

2016-03-10 Thread Gedare Bloom
Joel might answer about the state of the scheduling simulator.

I believe you eventually have to copy-paste your application into a
form, so it is better if you stick to plain text. I don't even know if
you can put images in. You may optionally link to a generated PDF,
too.

On Thu, Mar 10, 2016 at 6:13 AM, Darshit Shah  wrote:
> Hi,
>
> I've been a little busy with my semester end exams and other things
> recently. But I have spent time looking into the RTEMS Priority Scheduler
> with Processor Affinities and the paper mentioned in the trac ticket.
>
> At this point, I have a decent understanding of the paper and its algorithm
> and am looking into how we may implement it in RTEMS. To this end, I am
> looking for help / guidance.
>
>>
>> This would be a good project. I would add a few steps to simply
>> implementing
>> it.
>>
>> + Update the scheduling simulator since it is a lot easier to test using
>> that.
>>   It is also easier to ensure you keep the same behavior.
>>
> This sounds like it would be in important part of the implementation of the
> paper. However, I do not know anything about the existing scheduling
> simulator. Any links to this and basic pointers on how I should go about
> extending it would be a great start. I'll incorporate this into my draft
> proposal as soon as I have a better idea of what needs to be done.
>>
>>
>> + Propose criteria for knowing if the new algorithm is really better for
>>   RTEMS than the old one. Evaluating algorithms for RTEMS use involves
>>   big-O of the algorithm, data space requirements (and big-O of that),
>>   global knowledge required, and maybe other factors.
>>
> The new algorithm is almost definitely worse in time and space than the
> existing algorithm. Based on a preliminary analysis, it will be able to use
> the existing Priority Affinity Scheduler for the most part and add a O(|E|)
> complexity to each thread blocking and unblocking operation.  Here, E is the
> set of all processor affinity assignments, so it will approximately add an
> extra linear increase in scheduling overhead w.r.t.  the number of processes
> that use this scheduler.
>
> I haven't specifically looked into the space requirements, but it will be
> worse than the existing scheduler.
>
> However, the point to realize is that after these changes, more user
> programs that set processor affinities will be able to meet their deadlines
> as compared to the existing scheduler. This should happen despite the higher
> scheduling overheads.
>
>> + Testing on scheduling simulator and in RTEMS testsuite to ensure
>>   it is functionally identical to the current algorithm.
>>
> Once again, some pointers tot he scheduling simulator would help me a lot.
>>
>>
>> If the algorithm is functionally identical to the current one and superior
>> in execution time/data requirements, then replacing it is a no brainer.
>> If there are trade-offs on when one is better than the other in real life,
>> then we will all have to characterize those.
>>
> I was thinking more along the lines of writing a new scheduler instead of
> replacing the existing one. A PriorityStringAPA scheduler that pretty much
> reuses all the existing priority affinity scheduler code apart from the two
> operations. This is because, with some task sets where the affinity
> assignments are not too restrictive, the lower overheads of the existing
> scheduler may be preferred over the new one.
>
> I have also been writing my draft proposal for GSoC. A version is currently
> available on GDrive and a link has been put on on the student tracking page.
> However, I wanted to ask if sharing a PDF of the proposal would be possible.
> Since, I would be more comfortable in making the entire proposal in Latex
> and sharing the final PDF. If not, I can keep working on the proposal in
> Google Docs.
>
>
> --
> Thanking You,
> Darshit Shah
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 05/17] Add shared PCI support and enhance pc386 to support non-legacy PCI configuration space

2016-03-10 Thread Joel Sherrill
On Wed, Mar 9, 2016 at 8:21 PM, Gedare Bloom  wrote:

> On Wed, Mar 9, 2016 at 5:24 PM, Joel Sherrill  wrote:
> > This patch fundamentally results from enhancements to the pc386 BSP
> > to support systems which do **NOT** have the legacy PCI BIOS. The
> > patch adds support for detecting when legacy PCI BIOS is not
> > present and then using IO space to access to PCI Configuration Space.
> > This resulted in dynamically selected between two implementations
> > of PCI and refactoring out the shared methods.
> >
> > This patch adds shared implementations of pci_bus_count() and
> > pci_find_device(). Subsequent patches will remove implementations
> > of these methods in other BSPs where possible.
> > ---
> >  c/src/lib/libbsp/Makefile.am   |   3 +
> >  c/src/lib/libbsp/i386/Makefile.am  |   1 +
> >  c/src/lib/libbsp/i386/pc386/Makefile.am|   3 +
> >  c/src/lib/libbsp/i386/pc386/startup/bspstart.c |  31 ++-
> >  c/src/lib/libbsp/i386/shared/pci/pci_io.c  | 200 ++
> >  c/src/lib/libbsp/i386/shared/pci/pcibios.c | 149 ++
> >  c/src/lib/libbsp/shared/pci/pci_bus_count.c|  67 ++
> >  c/src/lib/libbsp/shared/pci/pci_find_device.c  | 274
> +
> >  8 files changed, 594 insertions(+), 134 deletions(-)
> >  create mode 100644 c/src/lib/libbsp/i386/shared/pci/pci_io.c
> >  create mode 100644 c/src/lib/libbsp/shared/pci/pci_bus_count.c
> >  create mode 100644 c/src/lib/libbsp/shared/pci/pci_find_device.c
> >
> > diff --git a/c/src/lib/libbsp/Makefile.am b/c/src/lib/libbsp/Makefile.am
> > index 16c276f..c54fdcb 100644
> > --- a/c/src/lib/libbsp/Makefile.am
> > +++ b/c/src/lib/libbsp/Makefile.am
> > @@ -29,6 +29,9 @@ EXTRA_DIST += shared/include/coverhd.h
> >  EXTRA_DIST += shared/gdbstub/rtems-stub-glue.c
> >  EXTRA_DIST += shared/include/bootcard.h
> >
> > +EXTRA_DIST += shared/pci/pci_bus_count.c
> > +EXTRA_DIST += shared/pci/pci_find_device.c
> > +
> >  include_bspdir = $(includedir)/bsp
> >
> >  include_bsp_HEADERS =
> > diff --git a/c/src/lib/libbsp/i386/Makefile.am
> b/c/src/lib/libbsp/i386/Makefile.am
> > index f10b764..3b6df65 100644
> > --- a/c/src/lib/libbsp/i386/Makefile.am
> > +++ b/c/src/lib/libbsp/i386/Makefile.am
> > @@ -22,6 +22,7 @@ EXTRA_DIST += shared/irq/irq_init.c
> >
> >  # shared/pci
> >  EXTRA_DIST += shared/pci/pcibios.c
> > +EXTRA_DIST += shared/pci/pci_io.c
> >
> >  include $(top_srcdir)/../../../automake/subdirs.am
> >  include $(top_srcdir)/../../../automake/local.am
> > diff --git a/c/src/lib/libbsp/i386/pc386/Makefile.am
> b/c/src/lib/libbsp/i386/pc386/Makefile.am
> > index a9c645b..fc73afd 100644
> > --- a/c/src/lib/libbsp/i386/pc386/Makefile.am
> > +++ b/c/src/lib/libbsp/i386/pc386/Makefile.am
> > @@ -141,6 +141,9 @@ libbsp_a_SOURCES += ../../shared/gnatinstallhandler.c
> >
> >  # pci
> >  libbsp_a_SOURCES += ../../i386/shared/pci/pcibios.c
> > +libbsp_a_SOURCES += ../../i386/shared/pci/pci_io.c
> > +libbsp_a_SOURCES += ../../shared/pci/pci_bus_count.c
> > +libbsp_a_SOURCES += ../../shared/pci/pci_find_device.c
> >
> >  include_HEADERS += ../../i386/shared/comm/uart.h
> >  # startup
> > diff --git a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
> b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
> > index ac871f0..a0bbf66 100644
> > --- a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
> > +++ b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
> > @@ -34,17 +34,40 @@
> >  #include 
> >
> >  /*
> > + * PCI Bus Configuration
> > + */
> > +rtems_pci_config_t BSP_pci_configuration = {
> > +  (volatile unsigned char*)0,
> > +  (volatile unsigned char*)0,
> > +  NULL
> > +};
> > +
> > +const pci_config_access_functions *pci_bios_initialize(void);
> > +const pci_config_access_functions *pci_io_initialize(void);
> > +
> > +/*
> >   * Helper to initialize the PCI Bus
> >   */
> >  static void bsp_pci_initialize_helper(void)
> >  {
> >  #if (BSP_IS_EDISON == 0)
> > -  int pci_init_retval;
> > +  const pci_config_access_functions *pci_accessors;
> >
> > -  pci_init_retval = pci_initialize();
> > -  if (pci_init_retval != PCIB_ERR_SUCCESS) {
> > -  printk("PCI bus: could not initialize PCI BIOS interface\n");
> > +  pci_accessors = pci_bios_initialize();
> > +  if (pci_accessors != NULL) {
> > +printk("PCI bus: using PCI BIOS interface\n");
> > +BSP_pci_configuration.pci_functions = pci_accessors;
> > +return;
> >}
> > +
> > +  pci_accessors = pci_io_initialize();
> > +  if (pci_accessors != NULL) {
> > +printk("PCI bus: using PCI I/O interface\n");
> > +BSP_pci_configuration.pci_functions = pci_accessors;
> > +return;
> > +  }
> > +
> > +  printk("PCI bus: could not initialize PCI BIOS interface\n");
> >  #endif
> >  }
> >
> > diff --git a/c/src/lib/libbsp/i386/shared/pci/pci_io.c
> b/c/src/lib/libbsp/i386/shared/pci/pci_io.c
> > new file mode 100644
> > index 000..9103b5c
> > --- /dev/null
> > +++ b/c/src/lib/libbsp/i386/shared/pci/pci_io.c
> > @@ -0,0 +1,200 @@
> >

Re: [PATCH 12/17] libbsp/shared/console.c: Clean up memory allocation for per device data

2016-03-10 Thread Joel Sherrill
On Wed, Mar 9, 2016 at 8:15 PM, Gedare Bloom  wrote:

> On Wed, Mar 9, 2016 at 5:24 PM, Joel Sherrill  wrote:
> > ---
> >  c/src/lib/libbsp/shared/console.c | 49
> ---
> >  1 file changed, 36 insertions(+), 13 deletions(-)
> >
> > diff --git a/c/src/lib/libbsp/shared/console.c
> b/c/src/lib/libbsp/shared/console.c
> > index 81a70b1..d030065 100644
> > --- a/c/src/lib/libbsp/shared/console.c
> > +++ b/c/src/lib/libbsp/shared/console.c
> > @@ -7,7 +7,7 @@
> >   */
> >
> >  /*
> > - *  COPYRIGHT (c) 1989-2011.
> > + *  COPYRIGHT (c) 1989-2011, 2016.
> >   *  On-Line Applications Research Corporation (OAR).
> >   *
> >   *  The license and distribution terms for this file may be
> > @@ -46,13 +46,28 @@ void console_initialize_data(void)
> >if ( Console_Port_Tbl )
> >  return;
> >
> > +  /*
> > +   * Allocate memory for the table of device pointers.
> > +   */
> >Console_Port_Count = Console_Configuration_Count;
> >Console_Port_Tbl   = malloc( Console_Port_Count * sizeof( console_tbl
> * ) );
> >if (Console_Port_Tbl == NULL)
> >  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_0 );
> >
> > -  for (i=0 ; i < Console_Port_Count ; i++)
> > +  /*
> > +   * Allocate memory for the table of device specific data pointers.
> > +   */
> > +  Console_Port_Data  = calloc( Console_Port_Count, sizeof( console_data
> ) );
> why calloc ...
>
>
Good catch. Likely already there but just wasted time. Changing to malloc().


> > +  if ( Console_Port_Data == NULL ) {
> > +bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_3 );
> > +  }
> > +
> > +  /*
> > +   * Fill in the Console Table
> > +   */
> > +  for (i=0 ; i < Console_Port_Count ; i++) {
> >  Console_Port_Tbl[i] = &Console_Configuration_Ports[i];
> > +  }
> ... if you will immediately initialize it
>
> >  }
> >
> >  /*
> > @@ -69,10 +84,13 @@ void console_register_devices(
> >int  old_number_of_ports;
> >int  i;
> >
> > +  /*
> > +   * Initialize the console data elements
> > +   */
> >console_initialize_data();
> >
> >/*
> > -   *  console_initialize has been invoked so it is now too late to
> > +   *  console_initialize() has been invoked so it is now too late to
> > *  register devices.
> > */
> >if ( console_initialized ) {
> > @@ -86,23 +104,31 @@ void console_register_devices(
> >Console_Port_Count += number_of_ports;
> >Console_Port_Tbl = realloc(
> >  Console_Port_Tbl,
> > -Console_Port_Count * sizeof( console_tbl * )
> > +Console_Port_Count * sizeof(console_tbl *)
> >);
> >if ( Console_Port_Tbl == NULL ) {
> >  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_1 );
> >}
> >
> > -  Console_Port_Data  = calloc( Console_Port_Count, sizeof( console_data
> ) );
> > +  /*
> > +   * Since we can only add devices before console_initialize(),
> > +   * the data area will contain no information and must be zero
> > +   * before it is used. So extend the area and zero it out.
> > +   */
> > +  Console_Port_Data = realloc(
> > +Console_Port_Data,
> > +Console_Port_Count * sizeof(console_tbl *)
> > +  );
> >if ( Console_Port_Data == NULL ) {
> >  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_2 );
> >}
> > +  memset(&Console_Port_Data, '\0', Console_Port_Count *
> sizeof(console_tbl *));
> >
> >/*
> > *  Now add the new devices at the end.
> > */
> > -
> >for (i=0 ; i < number_of_ports ; i++) {
> > -Console_Port_Tbl[old_number_of_ports + i] = &new_ports[i];
> > +Console_Port_Tbl[old_number_of_ports + i]  = &new_ports[i];
> >}
> >  }
> >
> > @@ -249,14 +275,11 @@ rtems_device_driver console_initialize(
> >
> >/*
> > * If we have no devices which were registered earlier then we
> > -   * must still initialize pointers and set Console_Port_Data.
> > +   * must still initialize pointers for Console_Port_Tbl and
> > +   * Console_Port_Data.
> > */
> > -  if ( ! Console_Port_Tbl ) {
> > +  if ( !Console_Port_Tbl ) {
> >  console_initialize_data();
> > -Console_Port_Data  = calloc( Console_Port_Count, sizeof(
> console_data ) );
> > -if ( Console_Port_Data == NULL ) {
> > -  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_3 );
> > -}
> >}
> >
> >/*
> > --
> > 1.8.3.1
> >
> > ___
> > devel mailing list
> > devel@rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 12/17] libbsp/shared/console.c: Clean up memory allocation for per device data

2016-03-10 Thread Joel Sherrill
On Thu, Mar 10, 2016 at 10:35 AM, Joel Sherrill  wrote:

>
>
> On Wed, Mar 9, 2016 at 8:15 PM, Gedare Bloom  wrote:
>
>> On Wed, Mar 9, 2016 at 5:24 PM, Joel Sherrill  wrote:
>> > ---
>> >  c/src/lib/libbsp/shared/console.c | 49
>> ---
>> >  1 file changed, 36 insertions(+), 13 deletions(-)
>> >
>> > diff --git a/c/src/lib/libbsp/shared/console.c
>> b/c/src/lib/libbsp/shared/console.c
>> > index 81a70b1..d030065 100644
>> > --- a/c/src/lib/libbsp/shared/console.c
>> > +++ b/c/src/lib/libbsp/shared/console.c
>> > @@ -7,7 +7,7 @@
>> >   */
>> >
>> >  /*
>> > - *  COPYRIGHT (c) 1989-2011.
>> > + *  COPYRIGHT (c) 1989-2011, 2016.
>> >   *  On-Line Applications Research Corporation (OAR).
>> >   *
>> >   *  The license and distribution terms for this file may be
>> > @@ -46,13 +46,28 @@ void console_initialize_data(void)
>> >if ( Console_Port_Tbl )
>> >  return;
>> >
>> > +  /*
>> > +   * Allocate memory for the table of device pointers.
>> > +   */
>> >Console_Port_Count = Console_Configuration_Count;
>> >Console_Port_Tbl   = malloc( Console_Port_Count * sizeof(
>> console_tbl * ) );
>> >if (Console_Port_Tbl == NULL)
>> >  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_0 );
>> >
>> > -  for (i=0 ; i < Console_Port_Count ; i++)
>> > +  /*
>> > +   * Allocate memory for the table of device specific data pointers.
>> > +   */
>> > +  Console_Port_Data  = calloc( Console_Port_Count, sizeof(
>> console_data ) );
>> why calloc ...
>>
>>
> Good catch. Likely already there but just wasted time. Changing to
> malloc().
>

I think we both misread it. The calloc() is for data per port. The copy is
copying
the per port configuration data. They are different. Notice
Console_Port_Data
vs Console_Port_Tbl.

I think this is OK on closer look.

Anything else.

>
>
>> > +  if ( Console_Port_Data == NULL ) {
>> > +bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_3 );
>> > +  }
>> > +
>> > +  /*
>> > +   * Fill in the Console Table
>> > +   */
>> > +  for (i=0 ; i < Console_Port_Count ; i++) {
>> >  Console_Port_Tbl[i] = &Console_Configuration_Ports[i];
>> > +  }
>> ... if you will immediately initialize it
>>
>> >  }
>> >
>> >  /*
>> > @@ -69,10 +84,13 @@ void console_register_devices(
>> >int  old_number_of_ports;
>> >int  i;
>> >
>> > +  /*
>> > +   * Initialize the console data elements
>> > +   */
>> >console_initialize_data();
>> >
>> >/*
>> > -   *  console_initialize has been invoked so it is now too late to
>> > +   *  console_initialize() has been invoked so it is now too late to
>> > *  register devices.
>> > */
>> >if ( console_initialized ) {
>> > @@ -86,23 +104,31 @@ void console_register_devices(
>> >Console_Port_Count += number_of_ports;
>> >Console_Port_Tbl = realloc(
>> >  Console_Port_Tbl,
>> > -Console_Port_Count * sizeof( console_tbl * )
>> > +Console_Port_Count * sizeof(console_tbl *)
>> >);
>> >if ( Console_Port_Tbl == NULL ) {
>> >  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_1 );
>> >}
>> >
>> > -  Console_Port_Data  = calloc( Console_Port_Count, sizeof(
>> console_data ) );
>> > +  /*
>> > +   * Since we can only add devices before console_initialize(),
>> > +   * the data area will contain no information and must be zero
>> > +   * before it is used. So extend the area and zero it out.
>> > +   */
>> > +  Console_Port_Data = realloc(
>> > +Console_Port_Data,
>> > +Console_Port_Count * sizeof(console_tbl *)
>> > +  );
>> >if ( Console_Port_Data == NULL ) {
>> >  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_2 );
>> >}
>> > +  memset(&Console_Port_Data, '\0', Console_Port_Count *
>> sizeof(console_tbl *));
>> >
>> >/*
>> > *  Now add the new devices at the end.
>> > */
>> > -
>> >for (i=0 ; i < number_of_ports ; i++) {
>> > -Console_Port_Tbl[old_number_of_ports + i] = &new_ports[i];
>> > +Console_Port_Tbl[old_number_of_ports + i]  = &new_ports[i];
>> >}
>> >  }
>> >
>> > @@ -249,14 +275,11 @@ rtems_device_driver console_initialize(
>> >
>> >/*
>> > * If we have no devices which were registered earlier then we
>> > -   * must still initialize pointers and set Console_Port_Data.
>> > +   * must still initialize pointers for Console_Port_Tbl and
>> > +   * Console_Port_Data.
>> > */
>> > -  if ( ! Console_Port_Tbl ) {
>> > +  if ( !Console_Port_Tbl ) {
>> >  console_initialize_data();
>> > -Console_Port_Data  = calloc( Console_Port_Count, sizeof(
>> console_data ) );
>> > -if ( Console_Port_Data == NULL ) {
>> > -  bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_3 );
>> > -}
>> >}
>> >
>> >/*
>> > --
>> > 1.8.3.1
>> >
>> > ___
>> > devel mailing list
>> > devel@rtems.org
>> > http://lists.rtems.org/mailman/listinfo/devel
>>
>
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH] score: Add and use _Objects_Get_local()

2016-03-10 Thread Gedare Bloom
looks ok

On Mon, Mar 7, 2016 at 10:03 AM, Sebastian Huber
 wrote:
> This simplifies the handling with local-only objects.
>
> Update #2555.
> ---
>  cpukit/posix/include/rtems/posix/timerimpl.h  |  4 +-
>  cpukit/posix/src/timerdelete.c| 36 +
>  cpukit/posix/src/timergetoverrun.c| 26 -
>  cpukit/posix/src/timergettime.c   | 37 +
>  cpukit/posix/src/timersettime.c   | 78 
> ---
>  cpukit/rtems/include/rtems/rtems/timerimpl.h  |  4 +-
>  cpukit/rtems/src/timercancel.c| 26 -
>  cpukit/rtems/src/timercreate.c| 72 +++--
>  cpukit/rtems/src/timerdelete.c| 36 +
>  cpukit/rtems/src/timergetinfo.c   | 39 +-
>  cpukit/rtems/src/timerreset.c | 74 +
>  cpukit/score/Makefile.am  |  1 +
>  cpukit/score/include/rtems/score/objectimpl.h | 23 
>  cpukit/score/src/objectgetlocal.c | 52 ++
>  14 files changed, 242 insertions(+), 266 deletions(-)
>  create mode 100644 cpukit/score/src/objectgetlocal.c
>
> diff --git a/cpukit/posix/include/rtems/posix/timerimpl.h 
> b/cpukit/posix/include/rtems/posix/timerimpl.h
> index 2eefd70..bf25629 100644
> --- a/cpukit/posix/include/rtems/posix/timerimpl.h
> +++ b/cpukit/posix/include/rtems/posix/timerimpl.h
> @@ -94,14 +94,12 @@ void _POSIX_Timer_TSR( Watchdog_Control *the_watchdog );
>   */
>  RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Get (
>timer_tid,
> -  Objects_Locations *location,
>ISR_lock_Context  *lock_context
>  )
>  {
> -  return (POSIX_Timer_Control *) _Objects_Get_isr_disable(
> +  return (POSIX_Timer_Control *) _Objects_Get_local(
>  &_POSIX_Timer_Information,
>  (Objects_Id) id,
> -location,
>  lock_context
>);
>  }
> diff --git a/cpukit/posix/src/timerdelete.c b/cpukit/posix/src/timerdelete.c
> index c39de8e..5301a70 100644
> --- a/cpukit/posix/src/timerdelete.c
> +++ b/cpukit/posix/src/timerdelete.c
> @@ -44,33 +44,25 @@ int timer_delete(
>*   because rtems_timer_delete stops the timer before deleting it.
>*/
>POSIX_Timer_Control *ptimer;
> -  Objects_Locationslocation;
>ISR_lock_Context lock_context;
> -  Per_CPU_Control *cpu;
>
>_Objects_Allocator_lock();
> -  ptimer = _POSIX_Timer_Get( timerid, &location, &lock_context );
> -  switch ( location ) {
>
> -case OBJECTS_LOCAL:
> -  _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object );
> -  cpu = _POSIX_Timer_Acquire_critical( ptimer, &lock_context );
> -  ptimer->state = POSIX_TIMER_STATE_FREE;
> -  _Watchdog_Remove(
> -&cpu->Watchdog.Header[ PER_CPU_WATCHDOG_RELATIVE ],
> -&ptimer->Timer
> -  );
> -  _POSIX_Timer_Release( cpu, &lock_context );
> -  _POSIX_Timer_Free( ptimer );
> -  _Objects_Allocator_unlock();
> +  ptimer = _POSIX_Timer_Get( timerid, &lock_context );
> +  if ( ptimer != NULL ) {
> +Per_CPU_Control *cpu;
>
> -  return 0;
> -
> -#if defined(RTEMS_MULTIPROCESSING)
> -case OBJECTS_REMOTE:
> -#endif
> -case OBJECTS_ERROR:
> -  break;
> +_Objects_Close( &_POSIX_Timer_Information, &ptimer->Object );
> +cpu = _POSIX_Timer_Acquire_critical( ptimer, &lock_context );
> +ptimer->state = POSIX_TIMER_STATE_FREE;
> +_Watchdog_Remove(
> +  &cpu->Watchdog.Header[ PER_CPU_WATCHDOG_RELATIVE ],
> +  &ptimer->Timer
> +);
> +_POSIX_Timer_Release( cpu, &lock_context );
> +_POSIX_Timer_Free( ptimer );
> +_Objects_Allocator_unlock();
> +return 0;
>}
>
>_Objects_Allocator_unlock();
> diff --git a/cpukit/posix/src/timergetoverrun.c 
> b/cpukit/posix/src/timergetoverrun.c
> index 0a28fa7..0a7b9fa 100644
> --- a/cpukit/posix/src/timergetoverrun.c
> +++ b/cpukit/posix/src/timergetoverrun.c
> @@ -30,27 +30,19 @@ int timer_getoverrun(
>timer_t   timerid
>  )
>  {
> -  int  overrun;
>POSIX_Timer_Control *ptimer;
> -  Objects_Locationslocation;
>ISR_lock_Context lock_context;
> -  Per_CPU_Control *cpu;
>
> -  ptimer = _POSIX_Timer_Get( timerid, &location, &lock_context );
> -  switch ( location ) {
> +  ptimer = _POSIX_Timer_Get( timerid, &lock_context );
> +  if ( ptimer != NULL ) {
> +Per_CPU_Control *cpu;
> +int  overrun;
>
> -case OBJECTS_LOCAL:
> -  cpu = _POSIX_Timer_Acquire_critical( ptimer, &lock_context );
> -  overrun = ptimer->overrun;
> -  ptimer->overrun = 0;
> -  _POSIX_Timer_Release( cpu, &lock_context );
> -  return overrun;
> -
> -#if defined(RTEMS_MULTIPROCESSING)
> -case OBJECTS_REMOTE:
> -#endif
> -case OBJECTS_ERROR:
> -  break;
> +cpu = _POSIX_Timer_Acquire_critical( ptimer, &lock_context );
> +overrun = ptimer->overrun;
> +ptimer->overrun = 0;
> +_POSIX_Timer_Release( cpu, &lo

Re: GSOC 2016

2016-03-10 Thread Gedare Bloom
Joel should comment on this. He has been making a recent effort at
unifying the PCI implementations in the BSP layer. However, we also
have the new "drvmgr" framework in cpukit/libdrvmgr that supports PCI
plus a lot of other devices and busses.

On Tue, Mar 8, 2016 at 12:19 PM, animesh pathak  wrote:
> Hi,
> Thanks for informing. Another interesting idea on which I would like to work
> upon, from the Ideas page is "Unified Interrupts and Devices" . In case this
> project is already assigned to someone please suggest me the project which I
> can pick up, and can get started with.
> Regarding my skills, I have good knowledge of GNU/Linux environment,
> operating system related things like Processes, CPU Scheduling, System
> calls, Concurrency and Threading, Locking mechanisms, File systems etc and
> also I have implemented custom syscalls in xv6 os. I have experience in
> programming languages like C, C++, Python, JavaScript and have a good
> algorithmic background.
>
> Regards
>
> On Tue, Mar 8, 2016 at 8:59 AM, Gedare Bloom  wrote:
>>
>> Hi Animesh,
>>
>> I think the condition variables will be fixed by another developer
>> (Sebastian Huber). Any other projects catch your eye?
>>
>> On Sat, Mar 5, 2016 at 5:31 AM, animesh pathak 
>> wrote:
>> > Hello everyone,
>> > I am Animesh Chandra Pathak.
>> > I am pursuing my BTech in Computer Science at IIIT Hyderabad.
>> > I am interested in working with RTEMS as a part of Google summer of code
>> > 2016 project.
>> >
>> > I have successfully completed the Getting Started part as mentioned in
>> > the
>> > quick start and modified the hello world programme. Now when I am trying
>> > to
>> > compile the network-demos, I am getting "error: too few arguments to
>> > function 'mg_start' ". How should I do to compile this ?
>> > Screenshot is attached.
>> >
>> > I want to work on the "Implement Classic API and supercore condition
>> > variables" as a part of Google summer of code project.
>> >
>> > what should I do before applying for Google summer of code ?
>> >
>> > ___
>> > devel mailing list
>> > devel@rtems.org
>> > http://lists.rtems.org/mailman/listinfo/devel
>
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GSOC 2016

2016-03-10 Thread Joel Sherrill
On Thu, Mar 10, 2016 at 11:18 AM, Gedare Bloom  wrote:

> Joel should comment on this. He has been making a recent effort at
> unifying the PCI implementations in the BSP layer. However, we also
> have the new "drvmgr" framework in cpukit/libdrvmgr that supports PCI
> plus a lot of other devices and busses.
>

Gedare.. are you thinking of libpci or both liibdrvmgr and the new libpci

I didn't push on using libpci although I looked at it brief. Both are only
used by SPARC BSPs at the moment but would be good to bring over
to the other.

I left a ticket (https://devel.rtems.org/ticket/2635) where some PowerPC
BSPs couldn't immediately use my shared pci_find_device.c because
I didn't promote out pci_scan().

It would be good to get that issue addressed and then start migrating
BSPs to use libpci and whatever is useful from what I did cleanup
up the pc386.

Between the two of those, there should be a nice GSoC project and
it would be appreciated.

+ migrate to use of libpci including enhancements as needed

I do not know enough about the driver manager to know which BSPs
should use it.  The pc386 may be a good candidate. I think if the
devices are dynamically detected on the BSP, it makes sense. But
not sure.

--joel


>
> On Tue, Mar 8, 2016 at 12:19 PM, animesh pathak 
> wrote:
> > Hi,
> > Thanks for informing. Another interesting idea on which I would like to
> work
> > upon, from the Ideas page is "Unified Interrupts and Devices" . In case
> this
> > project is already assigned to someone please suggest me the project
> which I
> > can pick up, and can get started with.
> > Regarding my skills, I have good knowledge of GNU/Linux environment,
> > operating system related things like Processes, CPU Scheduling, System
> > calls, Concurrency and Threading, Locking mechanisms, File systems etc
> and
> > also I have implemented custom syscalls in xv6 os. I have experience in
> > programming languages like C, C++, Python, JavaScript and have a good
> > algorithmic background.
> >
> > Regards
> >
> > On Tue, Mar 8, 2016 at 8:59 AM, Gedare Bloom  wrote:
> >>
> >> Hi Animesh,
> >>
> >> I think the condition variables will be fixed by another developer
> >> (Sebastian Huber). Any other projects catch your eye?
> >>
> >> On Sat, Mar 5, 2016 at 5:31 AM, animesh pathak 
> >> wrote:
> >> > Hello everyone,
> >> > I am Animesh Chandra Pathak.
> >> > I am pursuing my BTech in Computer Science at IIIT Hyderabad.
> >> > I am interested in working with RTEMS as a part of Google summer of
> code
> >> > 2016 project.
> >> >
> >> > I have successfully completed the Getting Started part as mentioned in
> >> > the
> >> > quick start and modified the hello world programme. Now when I am
> trying
> >> > to
> >> > compile the network-demos, I am getting "error: too few arguments to
> >> > function 'mg_start' ". How should I do to compile this ?
> >> > Screenshot is attached.
> >> >
> >> > I want to work on the "Implement Classic API and supercore condition
> >> > variables" as a part of Google summer of code project.
> >> >
> >> > what should I do before applying for Google summer of code ?
> >> >
> >> > ___
> >> > devel mailing list
> >> > devel@rtems.org
> >> > http://lists.rtems.org/mailman/listinfo/devel
> >
> >
> ___
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: A virtio front-end driver for RTEMS

2016-03-10 Thread Gedare Bloom
I'm glad to hear this. The path of least resistance would be to merge
the driver into the pc386 BSP on rtems.git. That bsp tree is currently
undergoing a lot of activity, but once you get your driver merged I
would imagine it is not too hard to maintain. It would also be of
interest to get instructions for using RTEMS-pc386 on KVM added to the
RTEMS wiki.

By merging the driver into RTEMS it will be more easily shared and can
be community-maintained especially if we can eventually get the KVM
version included in our planned continuous integration efforts.

Gedare

On Tue, Mar 8, 2016 at 5:43 AM, Jinhyun  wrote:
> Hi,
> I am a graduate student of System Software Lab at Konkuk University
> (http://sslab.konkuk.ac.kr).
> We are implementing a virtio front-end network driver for RTEMS and have
> published some preliminary results in ACM SIGBED Review
> (http://sigbed.seas.
> upenn.edu/archives/2016-01/EWiLi15_5.pdf).
> The current version of our implementation runs quite stably with RTEMS-pc386
> over KVM hypervisor (linux 3.18.0).
> Now we are trying to make it work over VirtualBox.
>
> If the RTEMS community is interested in our work, we’d like to open the
> source codes and contribute to RTEMS. However, currently, we are not sure
> whether our virtio driver is better to be incorporated in an RTEMS
> source branch or to be managed separately through our own GitHub for
> example. Please give your advice.
>
> with best regards,
> Jin-Hyun
>
>
>
> ___
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

[PATCH 02/32] atsamv-testsuite.tcfg: new file]

2016-03-10 Thread Joel Sherrill
---
 c/src/lib/libbsp/arm/atsam/make/custom/atsamv-testsuite.tcfg | 6 ++
 1 file changed, 6 insertions(+)
 create mode 100644 c/src/lib/libbsp/arm/atsam/make/custom/atsamv-testsuite.tcfg

diff --git a/c/src/lib/libbsp/arm/atsam/make/custom/atsamv-testsuite.tcfg 
b/c/src/lib/libbsp/arm/atsam/make/custom/atsamv-testsuite.tcfg
new file mode 100644
index 000..82b8ab4
--- /dev/null
+++ b/c/src/lib/libbsp/arm/atsam/make/custom/atsamv-testsuite.tcfg
@@ -0,0 +1,6 @@
+#
+# The ATSAMV BSP has too little memory for some tests.
+#
+
+fileio
+pppd
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 07/32] arm/realview_pbx_a9_qemu: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

NOTE: In contrast to other BSPs, this was built with SMP enabled to
  ensure the _smp variant was built properly.

For the realview_pbx_a9_qemu BSP variant without this option,
sample executable sizes were as follows:

   textdata bss   dec hex   filename
 1297761692 267238996   267370464   fefbfe0 ticker.exe
  927291452 267276272   267370453   fefbfd5 minimum.exe
 6244041980 266744076   267370460   fefbfdc cxx_iostream.exe
 5977875936 266766716   267370439   fefbfc7 fileio.exe
 470724   14336 266885392   267370452   fefbfd4 pppd.exe
 2196482448 267148360   267370456   fefbfd8 capture.exe
 1403981780 267228276   267370454   fefbfd6 nsecs.exe
 2009722100 267167384   267370456   fefbfd8 paranoia.exe
 1931881716 267175568   267370472   fefbfe8 cdtest.exe
 1255121692 267243260   267370464   fefbfe0 base_sp.exe
 1293921724 267239348   267370464   fefbfe0 unlimited.exe
 1265641668 267242240   267370472   fefbfe8 hello.exe
 2893366708 267074400   267370444   fefbfcc loopback.exe

For the realview_pbx_a9_qemu BSP variant with this option,
sample executable sizes were as follows:

   textdata bss   dec hex   filename
 1228121684 267245960   267370456   fefbfd8 ticker.exe
  613661368 267307732   267370466   fefbfe2 minimum.exe
 4091001948 266959408   267370456   fefbfd8 cxx_iostream.exe
 5790935928 266785444   267370465   fefbfe1 fileio.exe
 435584   14084 266920804   267370472   fefbfe8 pppd.exe
 2074122432 267160600   267370444   fefbfcc capture.exe
 1340061772 267234668   267370446   fefbfce nsecs.exe
 1937442092 267174608   267370444   fefbfcc paranoia.exe
 1847961716 267183960   267370472   fefbfe8 cdtest.exe
 1182881684 267250484   267370456   fefbfd8 base_sp.exe
 1186361700 267250136   267370472   fefbfe8 unlimited.exe
 1154881628 267253344   267370460   fefbfdc hello.exe
 2682766508 267095664   267370448   fefbfd0 loopback.exe

For the realview_pbx_a9_qemu_smp BSP variant without this option,
sample executable sizes were as follows:

   textdata bss   dec hex   filename
 1297761692 267238996   267370464   fefbfe0 ticker.exe
  927291452 267276272   267370453   fefbfd5 minimum.exe
 6244041980 266744076   267370460   fefbfdc cxx_iostream.exe
 5977915936 266766712   267370439   fefbfc7 fileio.exe
 470724   14336 266885392   267370452   fefbfd4 pppd.exe
 2196482448 267148360   267370456   fefbfd8 capture.exe
 1403981780 267228276   267370454   fefbfd6 nsecs.exe
 2009722100 267167384   267370456   fefbfd8 paranoia.exe
 1931881716 267175568   267370472   fefbfe8 cdtest.exe
 1255121692 267243260   267370464   fefbfe0 base_sp.exe
 1293921724 267239348   267370464   fefbfe0 unlimited.exe
 1265641668 267242240   267370472   fefbfe8 hello.exe
 2893366708 267074400   267370444   fefbfcc loopback.exe

For the realview_pbx_a9_qemu_smp BSP variant with this option,
sample executable sizes were as follows:

   textdata bss   dec hex   filename
 1228121684 267245960   267370456   fefbfd8 ticker.exe
  613661368 267307732   267370466   fefbfe2 minimum.exe
 4091001948 266959408   267370456   fefbfd8 cxx_iostream.exe
 5790975928 266785440   267370465   fefbfe1 fileio.exe
 435584   14084 266920804   267370472   fefbfe8 pppd.exe
 2074122432 267160600   267370444   fefbfcc capture.exe
 1340061772 267234668   267370446   fefbfce nsecs.exe
 1937442092 267174608   267370444   fefbfcc paranoia.exe
 1847961716 267183960   267370472   fefbfe8 cdtest.exe
 1182881684 267250484   267370456   fefbfd8 base_sp.exe
 1186361700 267250136   267370472   fefbfe8 unlimited.exe
 1154881628 267253344   267370460   fefbfdc hello.exe
 2682766508 267095664   267370448   fefbfd0 loopback.exe
---
 .../libbsp/arm/realview-pbx-a9/make/custom/realview_pbx_a9_qemu.cfg| 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/c/src/lib/libbsp/arm/realview-pbx-a9/make/custom/realview_pbx_a9_qemu.cfg 
b/c/src/lib/libbsp/arm/realview-pbx-a9/make/custom/realview_pbx_a9_qemu.cfg
index 5b63eed..19531d3 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/make/custom/realview_pbx_a9_qemu.cfg
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/make/custom/realview_pbx_a9_qemu.cfg
@@ -3,5 +3,8 @@ include $(RTEMS_ROOT)/make/custom/default.cfg
 RTEMS_CPU = arm
 
 CPU_CFLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard 
-mtune=cortex-a9
+CFLAGS_OPTIMI

[PATCH 03/32] arm/lpc24xx (lpc24xx variants) Add per-section compilation and linking support.

2016-03-10 Thread Joel Sherrill
updates #2577.

For the lpc2362 BSP variant:

The size of the sample executables without this option were:

   textdata bss dec  he filename
  651101820   31008   97938   17e92 ticker.exe
  219061088   31712   54706d5b2 minimum.exe
  783761908   30912  96   1b25c nsecs.exe
  632541820   31008   96082   17752 base_sp.exe
  651061844   30976   97926   17e86 unlimited.exe
  755381796   31040  108374   1a756 hello.exe

The size of the sample executables with this option were:

   textdata bss   dec hex   filename
  610421808   31008   93858   16ea2 ticker.exe
  14864 288   32512   47664ba30 minimum.exe
  746321896   30912  107440   1a3b0 nsecs.exe
  590701808   31008   91886   166ee base_sp.exe
  600301816   31008   92854   16ab6 unlimited.exe
  701221744   31072  102938   1921a hello.exe

For the lpc23xx_tli800 BSP variant:

The size of the sample executables without this option were:

   textdata bss   dec hex   filename
  651101820   31008   97938   17e92 ticker.exe
  219061088   31712   54706d5b2 minimum.exe
  783761908   30912  96   1b25c nsecs.exe
  632541820   31008   96082   17752 base_sp.exe
  651061844   30976   97926   17e86 unlimited.exe
  755381796   31040  108374   1a756 hello.exe

For the lpc23xx_tli800 BSP variant:

   textdata bss   dec hex   filename
  610421808   31008   93858   16ea2 ticker.exe
  14864 288   32512   47664ba30 minimum.exe
  746321896   30912  107440   1a3b0 nsecs.exe
  590701808   31008   91886   166ee base_sp.exe
  600301816   31008   92854   16ab6 unlimited.exe
  701221744   31072  102938   1921a hello.exe

For the lpc24xx_ea BSP variant:

The size of the sample executables without this option were:

   textdata bss   dec hex   filename
  644581724 3355376033619942200ffe6 ticker.exe
  214021088 3359747233619962200fffa minimum.exe
 5856142004 3303232033619938200ffe2 cxx_iostream.exe
 3720015808 3324214433619953200fff1 fileio.exe
 288766   12616 3331856033619942200ffe6 pppd.exe
 1353022360 3348227233619934200ffde capture.exe
  777321812 3354041633619960200fff8 nsecs.exe
 1262502100 3349158433619934200ffde paranoia.exe
 1369501756 3348124833619954200fff2 cdtest.exe
  626021724 3355561633619942200ffe6 base_sp.exe
  644621748 3355372833619938200ffe2 unlimited.exe
  748901700 3354336033619950200ffee hello.exe
 1769026500 3343654433619946200ffea loopback.exe

The size of the sample executables with this option were:

   textdata bss   dec hex   filename
  602341712 3355798433619930200ffda ticker.exe
  14360 288 3360531233619960200fff8 minimum.exe
 3684781976 3324950433619958200fff6 cxx_iostream.exe
 3620895796 3325206433619949200ffed fileio.exe
 268310   12464 916833619942200ffe6 pppd.exe
 1293822340 3348822433619946200ffea capture.exe
  738241800 3354432033619944200ffe8 nsecs.exe
 1222502088 3349561633619954200fff2 paranoia.exe
 1306941744 3348752033619958200fff6 cdtest.exe
  582621712 3355996833619942200ffe6 base_sp.exe
  592221720 3355900833619950200ffee unlimited.exe
  693141648 3354899233619954200fff2 hello.exe
 1643186400 3344921633619934200ffde loopback.exe

For the lpc24xx_ncs_ram BSP variant:

The size of the sample executables without this option were:

   textdata bss   dec hex   filename
  646061820 8387712 8454138  80fffa ticker.exe
  214021088 8431648 8454138  80fffa minimum.exe
 5857662100 7866240 8454106  80ffda cxx_iostream.exe
 3721585904 8076064 8454126  80ffee fileio.exe
 288918   12712 8152480 8454110  80ffde pppd.exe
 1354462456 8316224 8454126  80ffee capture.exe
  778801908 8374336 8454124  80ffec nsecs.exe
 1264022196 8325536 8454134  80fff6 paranoia.exe
 1371021852 8315168 8454122  80ffea cdtest.exe
  627501820 8389568 8454138  80fffa base_sp.exe
  646101844 8387680 8454134  80fff6 unlimited.exe
  750421796 8377280 8454118  80ffe6 hello.exe
 1770466596 8270496 8454138  80fffa loopback.exe

The size of the sample executables with this option were:

   textdata bss   dec hex   filename
  605381808 8391776 8454122  80ffea ticker.exe
  14360 288 8439488 8454136  80fff8 minimum.exe
 3687822072 8083264 8454118  80ffe6 cxx_iostream.exe
 3623985892 8085824 8454114  80

[PATCH 04/32] arm/lpc24xx (lpc40xx variants) Add per-section compilation and linking suppo

2016-03-10 Thread Joel Sherrill
updates #2577.

For the lpc40xx_ea_ram BSP variant without this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  638941724 3355433633619954200fff2 ticker.exe
  218021088 3359705633619946200ffea minimum.exe
 5498422004 3306809633619942200ffe6 cxx_iostream.exe
 3919585800 3322217633619934200ffde fileio.exe
 299670   12616 3330768033619966200fffe pppd.exe
 1341622360 3348342433619946200ffea capture.exe
  752041812 3354294433619960200fff8 nsecs.exe
 1259342100 3349190433619938200ffe2 paranoia.exe
 1281821748 3349001633619946200ffea cdtest.exe
  619021724 3355632033619946200ffea base_sp.exe
  635661748 3355462433619938200ffe2 unlimited.exe
  717021692 3354656033619954200fff2 hello.exe
 1807906500 3343267233619962200fffa loopback.exe

For the lpc40xx_ea_ram BSP variant with this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  591541712 3355907233619938200ffe2 ticker.exe
  13958 280 3360572833619966200fffe minimum.exe
 3364221960 3328156833619950200ffee cxx_iostream.exe
 3802225788 3323392033619930200ffda fileio.exe
 277050   12464 043233619946200ffea pppd.exe
 1275862340 3349001633619942200ffe6 capture.exe
  707801800 3354736033619940200ffe4 nsecs.exe
 1211262088 3349673633619950200ffee paranoia.exe
 1214661736 3349673633619938200ffe2 cdtest.exe
  570341712 3356121633619962200fffa base_sp.exe
  574941712 3356073633619942200ffe6 unlimited.exe
  653261640 3355299233619958200fff6 hello.exe
 1668626400 3344668833619950200ffee loopback.exe

For the lpc40xx_ea_rom_int BSP variant without this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  640621724 33557096336228822010b62 ticker.exe
  219701088 335577043358076220066da minimum.exe
 3921305800 33553064339509942060d12 fileio.exe
 299838   12616 3354650433858958204a58e pppd.exe
 1343302360 33556488336931782021dfa capture.exe
  753721812 33557000336341842013788 nsecs.exe
 1261022100 3355671233684914201fdb2 paranoia.exe
 1283501748 3355709633687194202069a cdtest.exe
  620701724 3355709633620890201039a base_sp.exe
  637341748 33557064336225462010a12 unlimited.exe
  718701692 335571283363069020129e2 hello.exe
 1809586500 3355261633740074202d52a loopback.exe

For the lpc40xx_ea_rom_int BSP variant with this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  593221712 3355709633618130200f8d2 ticker.exe
  14126 280 3355850433572910200482e minimum.exe
 3365901960 3355690433895454205341e cxx_iostream.exe
 3803945788 3355306433939246205df2e fileio.exe
 277218   12464 33546632338363142044d1a pppd.exe
 1277542340 33556488336865822020436 capture.exe
  709481800 33557000336297482012634 nsecs.exe
 1212942088 3355671233680094201eade paranoia.exe
 1216341736 3355709633680466201ec52 cdtest.exe
  572021712 3355709633616010200f08a base_sp.exe
  576621712 3355709633616470200f256 unlimited.exe
  654941640 335571603362429420110e6 hello.exe
 1670306400 33552712337261422029ebe loopback.exe
---
 c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc 
b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc
index 2c921db..5460a95 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc
+++ b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc
@@ -9,3 +9,6 @@ RTEMS_CPU = arm
 CPU_CFLAGS = -mthumb -march=armv7-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard 
-mtune=cortex-m4
 
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 06/32] arm/raspberrypi: Add per-section compilation and linking suppo

2016-03-10 Thread Joel Sherrill
updates #2577.

For the raspberrypi BSP variant without this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  915161724 134080496   134173736   7ff5428 ticker.exe
  578091480 134114460   134173749   7ff5435 minimum.exe
 8165242004 133355216   134173744   7ff5430 cxx_iostream.exe
 5611325808 133606812   134173752   7ff5438 fileio.exe
 444724   12624 133716388   134173736   7ff5428 pppd.exe
 1933442360 133978052   134173756   7ff543c capture.exe
 1096821812 134062236   134173730   7ff5422 nsecs.exe
 1754082100 133996244   134173752   7ff5438 paranoia.exe
 1871081756 133984880   134173744   7ff5430 cdtest.exe
  885481724 134083488   134173760   7ff5440 base_sp.exe
  914321748 134080552   134173732   7ff5424 unlimited.exe
 1036521700 134068384   134173736   7ff5428 hello.exe
 2711166508 133896112   134173736   7ff5428 loopback.exe

For the raspberrypi BSP variant with this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  857961700 134086236   134173732   7ff5424 ticker.exe
  344281408 134137896   134173732   7ff5424 minimum.exe
 5087201972 133663044   134173736   7ff5428 cxx_iostream.exe
 5445165776 133623452   134173744   7ff5430 fileio.exe
 409916   12452 133751380   134173748   7ff5434 pppd.exe
 1840202320 133987416   134173756   7ff543c capture.exe
 1044861788 134067476   134173750   7ff5436 nsecs.exe
 1685042068 134003164   134173736   7ff5428 paranoia.exe
 1787401732 133993272   134173744   7ff5430 cdtest.exe
  819881692 134090068   134173748   7ff5434 base_sp.exe
  824601716 134089568   134173744   7ff5430 unlimited.exe
  943161636 134077800   134173752   7ff5438 hello.exe
 2492286388 133918144   134173760   7ff5440 loopback.exe
---
 c/src/lib/libbsp/arm/raspberrypi/make/custom/raspberrypi.inc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/arm/raspberrypi/make/custom/raspberrypi.inc 
b/c/src/lib/libbsp/arm/raspberrypi/make/custom/raspberrypi.inc
index 3b4fb50..a8b6f26 100644
--- a/c/src/lib/libbsp/arm/raspberrypi/make/custom/raspberrypi.inc
+++ b/c/src/lib/libbsp/arm/raspberrypi/make/custom/raspberrypi.inc
@@ -7,6 +7,9 @@ include $(RTEMS_ROOT)/make/custom/default.cfg
 RTEMS_CPU = arm
 
 CFLAGS_OPTIMIZE_V ?= -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
 
 # This defines the operations performed on the linked executable.
 # is currently required.
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 10/32] arm/stm32f4: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the stm32f105rc BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  614441724   63880  127048   1f048 ticker.exe
  393971480   64104  104981   19a15 minimum.exe
 1316362360   63240  197236   30274 capture.exe
  728181812   63784  138414   21cae nsecs.exe
 1235082100   63496  189104   2e2b0 paranoia.exe
 1255641748   63848  191160   2eab8 cdtest.exe
  594881724   63880  125092   1e8a4 base_sp.exe
  611681748   63848  126764   1ef2c unlimited.exe
  692161692   63912  134820   20ea4 hello.exe
 1784926500   59400  244392   3baa8 loopback.exe

For the stm32f105rc BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  567201700   63880  122300   1ddbc ticker.exe
  237841400   64168   89352   15d08 minimum.exe
 1250962328   63272  190696   2e8e8 capture.exe
  684101788   63816  134014   20b7e nsecs.exe
 1184802076   63528  184084   2cf14 paranoia.exe
 1190121724   63880  184616   2d128 cdtest.exe
  546401700   63880  120220   1d59c base_sp.exe
  550801708   63880  120668   1d75c unlimited.exe
  628281636   63944  128408   1f598 hello.exe
 1644646388   59496  230348   383cc loopback.exe

For the stm32f4 BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  614201724  129416  192560   2f030 ticker.exe
  393731480  129640  170493   299fd minimum.exe
 5471602004  129160  678324   a59b4 cxx_iostream.exe
 3903295800  125352  521481   7f509 fileio.exe
 297452   12616  118824  428892   68b5c pppd.exe
 1316122360  128776  262748   4025c capture.exe
  727941812  129320  203926   31c96 nsecs.exe
 1234842100  129032  254616   3e298 paranoia.exe
 1255401748  129384  256672   3eaa0 cdtest.exe
  594641724  129416  190604   2e88c base_sp.exe
  611441748  129384  192276   2ef14 unlimited.exe
  691921692  129448  200332   30e8c hello.exe
 1784686500  124936  309904   4ba90 loopback.exe

For the stm32f4 BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  566401700  129416  187756   2dd6c ticker.exe
  237041400  129704  154808   25cb8 minimum.exe
 3337921956  129192  464940   7182c cxx_iostream.exe
 3784695776  125384  509629   7c6bd fileio.exe
 274684   12452  118952  406088   63248 pppd.exe
 1250162328  128808  256152   3e898 capture.exe
  683301788  129352  199470   30b2e nsecs.exe
 1184002076  129064  249540   3cec4 paranoia.exe
 1189321724  129416  250072   3d0d8 cdtest.exe
  545601700  129416  185676   2d54c base_sp.exe
  550001708  129416  186124   2d70c unlimited.exe
  627481636  129480  193864   2f548 hello.exe
 1643846388  125032  295804   4837c loopback.exe
---
 c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg 
b/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg
index 1256a52..edca4bf 100644
--- a/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg
+++ b/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg
@@ -5,3 +5,6 @@ RTEMS_CPU = arm
 CPU_CFLAGS = -march=armv7-m -mthumb
 
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 12/32] arm/xilinx_zynq: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the xilinx_zynq_a9_qemu BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
 1381921804 268279008   268419004   fffbfbc ticker.exe
 1028851564 268314576   268419025   fffbfd1 minimum.exe
 6329002092 267784004   268418996   fffbfb4 cxx_iostream.exe
 6062146048 267806752   268419014   fffbfc6 fileio.exe
 479152   14448 267925424   268419024   fffbfd0 pppd.exe
 2280762560 268188360   268418996   fffbfb4 capture.exe
 1488741892 268268260   268419026   fffbfd2 nsecs.exe
 2094482212 268207368   268419028   fffbfd4 paranoia.exe
 2016201828 268215560   268419008   fffbfc0 cdtest.exe
 1339881804 268283212   268419004   fffbfbc base_sp.exe
 1378721836 268279296   268419004   fffbfbc unlimited.exe
 1350401780 268282192   268419012   fffbfc4 hello.exe
 2978126820 268114384   268419016   fffbfc8 loopback.exe

For the xilinx_zynq_a9_qemu BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
 1381921804 268279008   268419004   fffbfbc ticker.exe
 1028851564 268314576   268419025   fffbfd1 minimum.exe
 6329002092 267784004   268418996   fffbfb4 cxx_iostream.exe
 6062146048 267806752   268419014   fffbfc6 fileio.exe
 479152   14448 267925424   268419024   fffbfd0 pppd.exe
 2280762560 268188360   268418996   fffbfb4 capture.exe
 1488741892 268268260   268419026   fffbfd2 nsecs.exe
 2094482212 268207368   268419028   fffbfd4 paranoia.exe
 2016201828 268215560   268419008   fffbfc0 cdtest.exe
 1339881804 268283212   268419004   fffbfbc base_sp.exe
 1378721836 268279296   268419004   fffbfbc unlimited.exe
 1350401780 268282192   268419012   fffbfc4 hello.exe
 2978126820 268114384   268419016   fffbfc8 loopback.exe

For the xilinx_zynq_zc702 BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  712281804 1072603792  1072676824  3fefbfd8ticker.exe
  480691564 1072627212  1072676845  3fefbfedminimum.exe
 5637442092 1072110984  1072676820  3fefbfd4cxx_iostream.exe
 4065985888 1072264352  1072676838  3fefbfe6fileio.exe
 313164   12704 1072350960  1072676828  3fefbfdcpppd.exe
 1395722440 1072534816  1072676828  3fefbfdccapture.exe
  830261892 1072591928  1072676846  3fefbfeensecs.exe
 1210602188 1072553576  1072676824  3fefbfd8paranoia.exe
 1338881828 1072541112  1072676828  3fefbfdccdtest.exe
  690081804 1072606012  1072676824  3fefbfd8base_sp.exe
  712681836 1072603720  1072676824  3fefbfd8unlimited.exe
  762601780 1072598792  1072676832  3fefbfe0hello.exe
 1886726596 1072481568  1072676836  3fefbfe4loopback.exe

For the xilinx_zynq_zc702 BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  651681788 1072609884  1072676840  3fefbfe8ticker.exe
  301841492 1072645164  1072676840  3fefbfe8minimum.exe
 3505882044 1072324204  1072676836  3fefbfe4cxx_iostream.exe
 3933105872 1072277640  1072676822  3fefbfd6fileio.exe
 289480   12548 1072374820  1072676848  3fefbff0pppd.exe
 1317402416 1072542680  1072676836  3fefbfe4capture.exe
  773061876 1072597648  1072676830  3fefbfdensecs.exe
 1149322164 1072559736  1072676832  3fefbfe0paranoia.exe
 1259041812 1072549128  1072676844  3fefbfeccdtest.exe
  628241788 1072612228  1072676840  3fefbfe8base_sp.exe
  631481796 1072611904  1072676848  3fefbff0unlimited.exe
  678201724 1072607296  1072676840  3fefbfe8hello.exe
 1732886484 1072497056  1072676828  3fefbfdcloopback.exe

For the xilinx_zynq_zc706 BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  712281804 1069458064  1069531096  3fbfbfd8ticker.exe
  480691564 1069481484  1069531117  3fbfbfedminimum.exe
 5637442092 1068965256  1069531092  3fbfbfd4cxx_iostream.exe
 4065985888 1069118624  1069531110  3fbfbfe6fileio.exe
 313164   12704 1069205232  1069531100  3fbfbfdcpppd.exe
 1395722440 1069389088

[PATCH 09/32] arm/smdk2410: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the smdk2410 BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  979241980 66992576670924803ffc000 ticker.exe
  382561400 67052800670924563ffbfe8 minimum.exe
 8209602268 66269220670924483ffbfe0 cxx_iostream.exe
 5769816056 66509440670924773ffbffd fileio.exe
 455008   12872 66624576670924563ffbfe8 pppd.exe
 1986962616 66891136670924483ffbfe0 capture.exe
 1160962068 66974308670924723ffbff8 nsecs.exe
 1818802364 66908224670924683ffbff4 paranoia.exe
 1912242012 66899232670924683ffbff4 cdtest.exe
  949161980 66995584670924803ffc000 base_sp.exe
  981842012 66992260670924563ffbfe8 unlimited.exe
 1078601956 66982656670924723ffbff8 hello.exe
 2782486764 66807456670924683ffbff4 loopback.exe

For the smdk2410 BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  915321820 66999104670924563ffbfe8 ticker.exe
  25508 380 67066564670924523ffbfe4 minimum.exe
 5122402068 66578148670924563ffbfe8 cxx_iostream.exe
 5594815904 66527072670924573ffbfe9 fileio.exe
 419052   12580 0836670924683ffbff4 pppd.exe
 1886042440 66901408670924523ffbfe4 capture.exe
 1102601908 66980288670924563ffbfe8 nsecs.exe
 1736082188 66916672670924683ffbff4 paranoia.exe
 1821841852 66908416670924523ffbfe4 cdtest.exe
  876601812 67003008670924803ffc000 base_sp.exe
  883361812 67002308670924563ffbfe8 unlimited.exe
  976041740 66993120670924643ffbff0 hello.exe
 2553526516 66830592670924603ffbfec loopback.exe
---
 c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg 
b/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg
index 874c5ad..c2b9273 100644
--- a/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg
+++ b/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg
@@ -13,3 +13,6 @@ CPU_CFLAGS = -mcpu=arm920t -DCPU_S3C2410
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 08/32] arm/rtl22xx: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the rtl22xx BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  872231820  436320  525363   80433 ticker.exe
  279151216  496224  525355   8042b minimum.exe
 409638   12704  103008  525350   80426 pppd.exe
 1832602456  339648  525364   80434 capture.exe
 1054411908  418016  525365   80435 nsecs.exe
 1682952204  354848  525347   80423 paranoia.exe
 1817681852  341728  525348   80424 cdtest.exe
  844191820  439136  525375   8043f base_sp.exe
  863471828  437184  525359   8042f unlimited.exe
  995951772  424000  525367   80437 hello.exe
 2525406596  266240  525376   80440 loopback.exe

For the rtl22xx BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  821411732  441472  525345   80421 ticker.exe
  20545 284  504512  525341   8041d minimum.exe
 379745   12484  133120  525349   80425 pppd.exe
 1755922360  347392  525344   80420 capture.exe
 1008511820  422688  525359   8042f nsecs.exe
 1630532108  360192  525353   80429 paranoia.exe
 1746921764  348896  525352   80428 cdtest.exe
  791931732  48  525373   8043d base_sp.exe
  787011716  444928  525345   80421 unlimited.exe
  915611644  432160  525365   80435 hello.exe
 2341166420  284832  525368   80438 loopback.exe

For the rtl22xx_t BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  621671820  461376  525363   80433 ticker.exe
  210031216  503136  525355   8042b minimum.exe
 3697375896  149728  525361   80431 fileio.exe
 286854   12704  225792  525350   80426 pppd.exe
 1330522456  389856  525364   80434 capture.exe
  754371908  448000  525345   80421 nsecs.exe
 1239592204  399200  525363   80433 paranoia.exe
 1346601852  388864  525376   80440 cdtest.exe
  603151820  463232  525367   80437 base_sp.exe
  617671828  461760  525355   8042b unlimited.exe
  721911772  451392  525355   8042b hello.exe
 1745886596  344192  525376   80440 loopback.exe

For the rtl22xx_t BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  590211732  464608  525361   80431 ticker.exe
  15757 284  509312  525353   80429 minimum.exe
 3660961972  157280  525348   80424 cxx_iostream.exe
 3609115808  158656  525375   8043f fileio.exe
 267485   12484  245376  525345   80421 pppd.exe
 1282242360  394784  525368   80438 capture.exe
  726111820  450944  525375   8043f nsecs.exe
 1210412108  402208  525357   8042d paranoia.exe
 1294881764  394112  525364   80434 cdtest.exe
  570491732  466592  525373   8043d base_sp.exe
  568331716  466816  525365   80435 unlimited.exe
  669211644  456800  525365   80435 hello.exe
 1631046420  355840  525364   80434 loopback.exe
---
 c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg   | 3 +++
 c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx_t.cfg | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg 
b/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg
index f213d0c..8d45746 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg
+++ b/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg
@@ -17,3 +17,6 @@ CPU_CFLAGS = -mcpu=arm7tdmi
 # NOTE2: some level of -O may be actually required by inline assembler (at 
least
 # -O2 so far.
 CFLAGS_OPTIMIZE_V = -Os -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
diff --git a/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx_t.cfg 
b/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx_t.cfg
index 9f26043..5cf8b662 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx_t.cfg
+++ b/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx_t.cfg
@@ -14,4 +14,6 @@ CPU_CFLAGS += -mthumb
 #CPU_CFLAGS += -mthumb-interwork -D __THUMB_INTERWORK__ -mthumb
 #CPU_ASFLAGS += -D __THUMB_INTERWORK__  -mthumb-interwork
 
-# Miscellaneous additions go here
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 13/32] bfin/eZKit533: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the eZKit533 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7516016289224   86012   14ffc ticker.exe
  4915613885964   56508dcbc minimum.exe
 4750805708   22440  503228   7adbc fileio.exe
 369432   12224   38436  420092   668fc pppd.exe
 1623442284   12136  176764   2b27c capture.exe
  9016817169296  101180   18b3c nsecs.exe
 15284020009828  164668   2833c paranoia.exe
  7416816289192   84988   14bfc base_sp.exe
  765201656   13020   91196   1643c unlimited.exe
  8797616009172   98748   181bc hello.exe
 2227166116   16540  245372   3be7c loopback.exe

For the eZKit533 BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  6840015909220   79210   1356a ticker.exe
  2822012655700   351858971 minimum.exe
 4581085670   22178  485956   76a44 fileio.exe
 3310408892   37588  377520   5c2b0 pppd.exe
 1510202214   12091  165325   285cd capture.exe
  8317216789304   94154   16fca nsecs.exe
 14336019589804  155122   25df2 paranoia.exe
  6520815869216   76010   128ea base_sp.exe
  669521606   13032   81590   13eb6 unlimited.exe
  7801615389196   88750   15aae hello.exe
 1953962834   16368  214598   34646 loopback.exe
---
 c/src/lib/libbsp/bfin/eZKit533/make/custom/eZKit533.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/bfin/eZKit533/make/custom/eZKit533.cfg 
b/c/src/lib/libbsp/bfin/eZKit533/make/custom/eZKit533.cfg
index 4fe7d69..ada3c32 100644
--- a/c/src/lib/libbsp/bfin/eZKit533/make/custom/eZKit533.cfg
+++ b/c/src/lib/libbsp/bfin/eZKit533/make/custom/eZKit533.cfg
@@ -14,3 +14,6 @@ CPU_CFLAGS =
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 00/32] Per Function Section Series

2016-03-10 Thread Joel Sherrill
This series of patches adds per-function section linking to
every BSP that it didn't obviously break. Obviously breaking
was a significant reduction in the size of the C++ samples.
If C++ was not supported on the target, then checking the
size of other samples. 

There should now be no BSP custom files which do not either
use per-function sections or have them disabled with a pointer
to a ticket.

Joel Sherrill (32):
  arm/lpc24xx (lpc17xx variants): Add per-section compilation and
linking support.
  atsamv-testsuite.tcfg: new file]
  arm/lpc24xx (lpc24xx variants) Add per-section compilation and linking
support.
  arm/lpc24xx (lpc40xx variants) Add per-section compilation and linking
suppo
  arm/lpc32xx: Add per-section compilation and linking suppo
  arm/raspberrypi: Add per-section compilation and linking suppo
  arm/realview_pbx_a9_qemu: Add per-section compilation and linking
support
  arm/rtl22xx: Add per-section compilation and linking support
  arm/smdk2410: Add per-section compilation and linking support
  arm/stm32f4: Add per-section compilation and linking support
  arm/tms570: Add per-section compilation and linking support
  arm/xilinx_zynq: Add per-section compilation and linking support
  bfin/eZKit533: Add per-section compilation and linking support
  bfin/bf537Stamp: Add per-section compilation and linking support
  bfin/TLL6527M: Add per-section compilation and linking support
  epiphany/epiphany: Add per-section compilation and linking support
  pc386.cfg: Add disabled per-function-sections
  lm32/lm32_evr: Add per-section compilation and linking support
  lm32/lm32_evr: Add per-section compilation and linking support
  m32c/m32csim: Add per-section compilation and linking support
  m32csim.cfg: GCC PR37665 is fixed but there is still a compiler error.
Use -O0.
  nios2/nios2_iss: Add per-section compilation and linking support
  no_bsp.cfg: Add hints for CFLAGS and LDFLAGS
  or1k/generic_or1k: Add per-section compilation and linking support
  sh/gensh1: Add per-section compilation and linking support
  sh/gensh2: Add per-section compilation and linking support
  sh/gensh4: Add per-section compilation and linking support
  sh/simsh: Add per-section compilation and linking support
  powerpc/motorola_powerpc: Add per-section compilation and linking
support
  sparc64/niagara: Add per-section compilation and linking support
  sparc64/usiii: Add per-section compilation and linking support
  v850/gdbv850sim: Add per-section compilation and linking support

 c/src/lib/libbsp/arm/atsam/make/custom/atsamv-testsuite.tcfg |  6 ++
 c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx.inc |  4 
 c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc24xx.inc |  3 +++
 c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc |  3 +++
 c/src/lib/libbsp/arm/lpc32xx/make/custom/lpc32xx.inc |  3 +++
 c/src/lib/libbsp/arm/raspberrypi/make/custom/raspberrypi.inc |  3 +++
 .../arm/realview-pbx-a9/make/custom/realview_pbx_a9_qemu.cfg |  3 +++
 c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg |  3 +++
 c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx_t.cfg   |  4 +++-
 c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg   |  3 +++
 c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg |  3 +++
 c/src/lib/libbsp/arm/tms570/make/custom/tms570ls3137.inc |  7 ++-
 c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq.inc |  3 +++
 c/src/lib/libbsp/bfin/TLL6527M/make/custom/TLL6527M.cfg  |  3 +++
 c/src/lib/libbsp/bfin/bf537Stamp/make/custom/bf537Stamp.cfg  |  3 +++
 c/src/lib/libbsp/bfin/eZKit533/make/custom/eZKit533.cfg  |  3 +++
 .../epiphany/epiphany_sim/make/custom/epiphany_sim.cfg   |  3 +++
 c/src/lib/libbsp/i386/pc386/make/custom/pc386.cfg|  4 
 c/src/lib/libbsp/lm32/lm32_evr/make/custom/lm32_evr.cfg  |  3 +++
 c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg|  3 +++
 c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg| 10 +-
 c/src/lib/libbsp/nios2/nios2_iss/make/custom/nios2_iss.cfg   |  3 +++
 c/src/lib/libbsp/no_cpu/no_bsp/make/custom/no_bsp.cfg|  6 +-
 .../libbsp/or1k/generic_or1k/make/custom/generic_or1k.cfg|  3 +++
 .../libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg   |  5 -
 .../libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg  |  5 -
 .../libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg |  5 -
 .../libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg |  7 +--
 .../motorola_powerpc/make/custom/qemuprep-altivec.cfg|  5 -
 .../libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg |  5 -
 c/src/lib/libbsp/sh/gensh1/make/custom/gensh1.cfg|  3 +++
 c/src/lib/libbsp/sh/gensh2/make/custom/gensh2.cfg|  4 +++-
 c/src/lib/libbsp/sh/gensh4/make/custom/gensh4.cfg|  5 -
 c/src/lib/libbsp/sh/shsim/make/custom/simsh1.cfg |  5 -
 c/src/li

[PATCH 14/32] bfin/bf537Stamp: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the bf537Stamp BSP variant without this option sample
executables sizes were as follows:

   textdata bss   dec hex   filename
  7567218849224   86780   152fc ticker.exe
  4966816445964   57276dfbc minimum.exe
 4749365964   22456  503356   7ae3c fileio.exe
 369944   12480   38436  420860   66bfc pppd.exe
 1628562540   12136  177532   2b57c capture.exe
  9069619729280  101948   18e3c nsecs.exe
 15335222569828  165436   2863c paranoia.exe
  7468018849192   85756   14efc base_sp.exe
  770481912   13068   92028   1677c unlimited.exe
  8850418569220   99580   184fc hello.exe
 2232286372   16540  246140   3c17c loopback.exe

For the bf537Stamp BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  6852418469224   79594   136ea ticker.exe
  2834815215700   355698af1 minimum.exe
 4582325926   22182  486340   76bc4 fileio.exe
 3311649148   37592  377904   5c430 pppd.exe
 1511442470   12095  165709   2874d capture.exe
  8329619349308   94538   1714a nsecs.exe
 14348422149808  155506   25f72 paranoia.exe
  6533218429156   76330   12a2a base_sp.exe
  670801862   13032   81974   14036 unlimited.exe
  7814417949196   89134   15c2e hello.exe
 1955203090   16372  214982   347c6 loopback.exe
---
 c/src/lib/libbsp/bfin/bf537Stamp/make/custom/bf537Stamp.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/make/custom/bf537Stamp.cfg 
b/c/src/lib/libbsp/bfin/bf537Stamp/make/custom/bf537Stamp.cfg
index daa6a55..d533ca4 100644
--- a/c/src/lib/libbsp/bfin/bf537Stamp/make/custom/bf537Stamp.cfg
+++ b/c/src/lib/libbsp/bfin/bf537Stamp/make/custom/bf537Stamp.cfg
@@ -14,3 +14,6 @@ CPU_CFLAGS =
 # optimize flag: typically -O2
 # gcc-4.2.0 segfaults on -OX > -O0
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 16/32] epiphany/epiphany: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
For the epiphany_sim BSP variant without this option sample
executables sizes were as follows:

   textdata bss   dec hex   filename
 1987281792 16576900167774201cc ticker.exe
  741361148 16702144167774281d4 minimum.exe
 8394807892 15930052167774241d0 cxx_iostream.exe
 9576406160 15813636167774361dc fileio.exe
 3329042644 16441920167774681fc capture.exe
 2141761892 16561344167774121c4 nsecs.exe
 2911122208 16484100167774201cc paranoia.exe
 3120962208 16463108167774121c4 cdtest.exe
 1908881792 16584772167774521ec base_sp.exe
 1963361824 16579268167774281d4 unlimited.exe
 1953441768 16580356167774681fc hello.exe

For the epiphany_sim BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1877841752 16587908167774441e4 ticker.exe
  51560 292 16725568167774201cc minimum.exe
 5810403920 16192452167774121c4 cxx_iostream.exe
 9307366112 15840580167774281d4 fileio.exe
 3124482564 16462400167774121c4 capture.exe
 2044241852 16571136167774121c4 nsecs.exe
 2782482160 16497028167774361dc paranoia.exe
 2964882088 16478852167774281d4 cdtest.exe
 1780241752 16597636167774121c4 base_sp.exe
 1829521784 16592708167774441e4 unlimited.exe
 1816881728 16594052167774681fc hello.exe
---
 c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg 
b/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg
index 9eea2a0..1fef608 100644
--- a/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg
+++ b/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg
@@ -5,3 +5,6 @@ RTEMS_CPU = epiphany
 CPU_CFLAGS =
 
 CFLAGS_OPTIMIZE_V ?= -O0 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 11/32] arm/tms570: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the tms570ls3137_hdk BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  637601708  260224  325692   4f83c ticker.exe
  401971452  260480  302129   49c31 minimum.exe
 5573761972  26  819348   c8094 cxx_iostream.exe
 4002695792  256192  662253   a1aed fileio.exe
 304684   12608  249632  566924   8a68c pppd.exe
 1327442344  259616  394704   605d0 capture.exe
  755781796  260160  337534   5267e nsecs.exe
 1138442084  259872  375800   5bbf8 paranoia.exe
 1266881732  260224  388644   5ee24 cdtest.exe
  614801708  260224  323412   4ef54 base_sp.exe
  632201716  260224  325160   4f628 unlimited.exe
  684201668  260288  330376   50a88 hello.exe
 1811446492  255744  443380   6c3f4 loopback.exe

For the tms570ls3137_hdk BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  598241696  260256  321776   4e8f0 ticker.exe
  242681372  260576  286216   45e08 minimum.exe
 3466121936  260032  608580   94944 cxx_iostream.exe
 3889735780  256192  650945   9eec1 fileio.exe
 283096   12456  249760  545312   85220 pppd.exe
 1270162324  259648  388988   5ef7c capture.exe
  719661784  260160  333910   51856 nsecs.exe
 1099042072  259872  371848   5ac88 paranoia.exe
 1208161720  260224  382760   5d728 cdtest.exe
  574161696  260256  319368   4df88 base_sp.exe
  581881688  260256  320132   4e284 unlimited.exe
  630641616  260320  325000   4f588 hello.exe
 1678846392  255840  430116   69024 loopback.exe

For the tms570ls3137_hdk_intram BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  637601708  196384  261852   3fedc ticker.exe
  401971452  220192  261841   3fed1 minimum.exe
 1327442344  126752  261840   3fed0 capture.exe
  755781796  184484  261858   3fee2 nsecs.exe
 1138442084  145920  261848   3fed8 paranoia.exe
 1266881732  133440  261860   3fee4 cdtest.exe
  614801708  198656  261844   3fed4 base_sp.exe
  632201716  196900  261836   3fecc unlimited.exe
  684201668  191744  261832   3fec8 hello.exe

For the tms570ls3137_hdk_intram BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  598241696  200320  261840   3fed0 ticker.exe
  242681372  236196  261836   3fecc minimum.exe
 1270162324  132512  261852   3fedc capture.exe
  719661784  188096  261846   3fed6 nsecs.exe
 1099042072  149856  261832   3fec8 paranoia.exe
 1208161720  139296  261832   3fec8 cdtest.exe
  574161696  202720  261832   3fec8 base_sp.exe
  581881688  201956  261832   3fec8 unlimited.exe
  630641616  197152  261832   3fec8 hello.exe

For the tms570ls3137_hdk_sdram BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  637601708 8323104 8388572  7fffdc ticker.exe
  401971452 8346912 8388561  7fffd1 minimum.exe
 5573761972 7829220 8388568  7fffd8 cxx_iostream.exe
 4002755792 7982500 8388567  7fffd7 fileio.exe
 304684   12608 8071264 8388556  7fffcc pppd.exe
 1327442344 8253472 8388560  7fffd0 capture.exe
  755781796 8311204 8388578  7fffe2 nsecs.exe
 1138442084 8272640 8388568  7fffd8 paranoia.exe
 1266881732 8260160 8388580  7fffe4 cdtest.exe
  614801708 8325376 8388564  7fffd4 base_sp.exe
  632201716 8323620 8388556  7fffcc unlimited.exe
  684201668 8318464 8388552  7fffc8 hello.exe
 1811446492 8200928 8388564  7fffd4 loopback.exe

For the tms570ls3137_hdk_sdram BSP variant with this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  598241696 8327040 8388560  7fffd0 ticker.exe
  242681372 8362916 8388556  7fffcc minimum.exe
 3466121936 8040004 8388552  7fffc8 cxx_iostream.exe
 3889795780 7993796 8388555  7fffcb fileio.exe
 283096   12456 8092996 8388548  7fffc4 pppd.exe
 1270162324 8259232 8388572  7fffdc capture.exe
  719661784 8314816 8388566  7fffd6 nsecs.exe
 1099042072 8276576 8388552  7fffc8 paranoia.exe
 1208161720 8266016 8388552  7fffc8 cdtest.exe
  574161696 8329440 8388552  7fffc8 base_sp.exe
  581881688 8328676 8388552  7fffc8 unlimited.exe
  630641616 8323872 8388552  7fffc8 hello.exe
 1678846392 8214272 8388548  7fffc4 loopback.exe

For the tms570ls3137_hdk_with_loader BSP variant without this option,
sample executables sizes were as follows:

   textdata bss   dec hex   filename
  637601708  260224  325692   4f83c ticker.exe
  401971452  260480  302129   49c31 minimum.exe
 5573761972  26  819348   c8094 cxx_iostream.

[PATCH 15/32] bfin/TLL6527M: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the TLL6527M BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  746961660   71544  147900   241bc ticker.exe
  487561420   68348  118524   1cefc minimum.exe
 4745205740   84792  565052   89f3c fileio.exe
 368744   12256  100788  481788   759fc pppd.exe
 1618482316   74488  238652   3a43c capture.exe
  897041748   71680  163132   27d3c nsecs.exe
 1523762032   72148  226556   374fc paranoia.exe
  737041660   71512  146876   23dbc base_sp.exe
  761201688   75404  153212   2567c unlimited.exe
  875761632   71556  160764   273fc hello.exe
 2221726148   78876  307196   4affc loopback.exe

For the TLL6527M BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  687601622   71552  141934   22a6e ticker.exe
  283321265   68048   97645   17d6d minimum.exe
 4584005702   84514  548616   85f08 fileio.exe
 3311968924   99932  440052   6b6f4 pppd.exe
 1513562246   74447  228049   37ad1 capture.exe
  835281710   71640  156878   264ce nsecs.exe
 1437241990   72132  217846   352f6 paranoia.exe
  655721618   71544  138734   21dee base_sp.exe
  673681638   75372  144378   233fa unlimited.exe
  784441570   71524  151538   24ff2 hello.exe
 1956802866   78712  277258   43b0a loopback.exe
---
 c/src/lib/libbsp/bfin/TLL6527M/make/custom/TLL6527M.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/bfin/TLL6527M/make/custom/TLL6527M.cfg 
b/c/src/lib/libbsp/bfin/TLL6527M/make/custom/TLL6527M.cfg
index a7cef14..56aaecb 100644
--- a/c/src/lib/libbsp/bfin/TLL6527M/make/custom/TLL6527M.cfg
+++ b/c/src/lib/libbsp/bfin/TLL6527M/make/custom/TLL6527M.cfg
@@ -15,3 +15,6 @@ CPU_CFLAGS =-mcpu=bf527
 # optimize flag: typically -O2
 # gcc-4.2.0 segfaults on -OX > -O0
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 05/32] arm/lpc32xx: Add per-section compilation and linking suppo

2016-03-10 Thread Joel Sherrill
updates #2577.

For the lpc32xx_mzx BSP variant without this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  599201740 3373440833796068203afe4 ticker.exe
  246921088 3377030433796084203aff4 minimum.exe
 5927962148 3320113633796080203aff0 cxx_iostream.exe
 4140565952 3337607633796084203aff4 fileio.exe
 326320   12768 3345698833796076203afec pppd.exe
 1467282504 3364684033796072203afe8 capture.exe
  770641952 3371707233796088203aff8 nsecs.exe
 1371722244 3365667633796092203affc paranoia.exe
 1386001896 3365557633796072203afe8 cdtest.exe
  581281740 3373620033796068203afe4 base_sp.exe
  623241764 3373200433796092203affc unlimited.exe
  807961844 3371343633796076203afec hello.exe
 1965206652 3359290433796076203afec loopback.exe

For the lpc32xx_mzx BSP variant with this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  537811728 3374057633796085203aff5 ticker.exe
  14988 288 3378080833796084203aff4 minimum.exe
 3735522120 3342041233796084203aff4 cxx_iostream.exe
 4002085940 3338992433796072203afe8 fileio.exe
 301008   12616 3348244033796064203afe0 pppd.exe
 1389442484 3365465633796084203aff4 capture.exe
  715881940 3372254833796076203afec nsecs.exe
 1310682232 3366278033796080203aff0 paranoia.exe
 1308001884 3366340833796092203affc cdtest.exe
  521321728 3374222833796088203aff8 base_sp.exe
  553681736 3373896033796064203afe0 unlimited.exe
  735641792 3372073233796088203aff8 hello.exe
 1809846552 3360854433796080203aff0 loopback.exe

For the lpc32xx_mzx_stage_1 BSP variant without this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  513481740  192640  245728   3bfe0 ticker.exe
  206081088  224032  245728   3bfe0 minimum.exe
 1324402504  110784  245728   3bfe0 capture.exe
  685641952  175232  245748   3bff4 nsecs.exe
 1241962244  119296  245736   3bfe8 paranoia.exe
 1293721896  114464  245732   3bfe4 cdtest.exe
  497801740  194208  245728   3bfe0 base_sp.exe
  535881764  190400  245752   3bff8 unlimited.exe
  730841844  170816  245744   3bff0 hello.exe
 1729206644   66176  245740   3bfec loopback.exe

For the lpc32xx_mzx_stage_1 BSP variant with this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  469281728  197088  245744   3bff0 ticker.exe
  13562 288  231904  245754   3bffa minimum.exe
 1266562484  116608  245748   3bff4 capture.exe
  647041940  179104  245748   3bff4 nsecs.exe
 1202762232  123232  245740   3bfec paranoia.exe
 1231881884  120672  245744   3bff0 cdtest.exe
  455121728  198496  245736   3bfe8 base_sp.exe
  484961736  195520  245752   3bff8 unlimited.exe
  677001792  176256  245748   3bff4 hello.exe
 1604566544   78752  245752   3bff8 loopback.exe

For the lpc32xx_mzx_stage_2 BSP variant without this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  599201740 4378400 4440060  43bffc ticker.exe
  246921088 4414272 4440052  43bff4 minimum.exe
 5927962148 3845088 4440032  43bfe0 cxx_iostream.exe
 4140645952 4020032 4440048  43bff0 fileio.exe
 326320   12768 4100960 4440048  43bff0 pppd.exe
 1467282504 4290816 4440048  43bff0 capture.exe
  770641952 4361024 4440040  43bfe8 nsecs.exe
 1371722244 4300640 4440056  43bff8 paranoia.exe
 1386001896 4299552 4440048  43bff0 cdtest.exe
  581281740 4380192 4440060  43bffc base_sp.exe
  623241764 4375968 4440056  43bff8 unlimited.exe
  807961844 4357408 4440048  43bff0 hello.exe
 1965206652 4236864 4440036  43bfe4 loopback.exe

For the lpc32xx_mzx_stage_2 BSP variant with this option, sample executable
sizes were as follows:

   textdata bss   dec hex   filename
  537811728 4384544 4440053  43bff5 ticker.exe
  14988 288 4424768 4440044  43bfec minimum.exe
 3735522120 4064384 4440056  43bff8 cxx_iostream.exe
 4002165940 4033888 4440044  43bfec fileio.exe
 301008   12616 4126432 4440056  43bff8 pppd.exe
 1389442484 4298624 4440052  43bff4 capture.exe
  715881940 4366528 4440056  43bff8 nsecs.exe
 1310682232 4306752 4440052  43bff4 paranoia.exe
 1308001884 4307360 4440044  43bfec cdtest.exe
  521321728 4386176 4440036  43bfe4 base_sp.exe

[PATCH 01/32] arm/lpc24xx (lpc17xx variants): Add per-section compilation and linking support.

2016-03-10 Thread Joel Sherrill
updates #2577.

For the lpc17xx_ea_ram BSP variant:

The size of the sample executables without this option were:

   textdata bss   dec hex   filename
   63646   1724 3355459233619962200fffa ticker.exe
   21634   1088 3359721633619938200ffe2 minimum.exe
  549386   2004 3306854433619934200ffde cxx_iostream.exe
  392562   5800 3322160033619962200fffa fileio.exe
  299662  12616 3330768033619958200fff6 pppd.exe
  133838   2360 3348374433619942200ffe6 capture.exe
   75020   1812 3354310433619936200ffe0 nsecs.exe
  125706   2100 3349216033619966200fffe paranoia.exe
  127758   1748 3349043233619938200ffe2 cdtest.exe
   61686   1724 3355654433619954200fff2 base_sp.exe
   63370   1748 3355484833619966200fffe unlimited.exe
   71414   1692 3354684833619954200fff2 hello.exe
  180698   6500 3343276833619966200fffe loopback.exe

The size of the sample executables with this option enabled were:

   textdata bss   dec hex   filename
  589821712 3355926433619958200fff6 ticker.exe
  13818 280 3360585633619954200fff2 minimum.exe
 3361341960 3328185633619950200ffee cxx_iostream.exe
 3808105788 3323334433619942200ffe6 fileio.exe
 277010   12464 046433619938200ffe2 pppd.exe
 1273582340 3349024033619938200ffe2 capture.exe
  706721800 3354748833619960200fff8 nsecs.exe
 1207462088 3349712033619954200fff2 paranoia.exe
 1212821736 3349692833619946200ffea cdtest.exe
  569021712 3356134433619958200fff6 base_sp.exe
  573461712 3356089633619954200fff2 unlimited.exe
  650781640 3355321633619934200ffde hello.exe
 1667306400 3344681633619946200ffea loopback.exe

For the lpc17xx_ea_rom_int BSP variant:

The size of the sample executables without this option enabled were:

   textdata bss   dec hex   filename
  638141724 33557096336226342010a6a ticker.exe
  218021088 33557704335805942006632 minimum.exe
 3927345800 33553064339515982060f6e fileio.exe
 299830   12616 3354650433858950204a586 pppd.exe
 1340062360 33556488336928542021cb6 capture.exe
  751881812 335570003363400020136d0 nsecs.exe
 1258742100 3355671233684686201fcce paranoia.exe
 1279261748 335570963368677020204f2 cdtest.exe
  618541724 335570963362067420102c2 base_sp.exe
  635381748 3355706433622350201094e unlimited.exe
  715821692 335571283363040220128c2 hello.exe
 1808666500 3355261633739982202d4ce loopback.exe

The size of the sample executables with this option enabled were:

   textdata bss   dec hex   filename
  591501712 3355709633617958200f826 ticker.exe
  13986 280 335585043357277020047a2 minimum.exe
 3363021960 335569043389516620532fe cxx_iostream.exe
 3809825788 3355306433939834205e17a fileio.exe
 277178   12464 33546632338362742044cf2 pppd.exe
 1275262340 33556488336863542020352 capture.exe
  708401800 335570003362964020125c8 nsecs.exe
 1209142088 3355671233679714201e962 paranoia.exe
 1214501736 3355709633680282201eb9a cdtest.exe
  570701712 3355709633615878200f006 base_sp.exe
  575141712 3355709633616322200f1c2 unlimited.exe
  652461640 33557160336240462010fee hello.exe
 1668986400 33552712337260102029e3a loopback.exe

For the lpc17xx_plx800_ram BSP variant:

The size of the sample executables without this option enabled were:

   textdata bss dec hex filename
  638021820 3355433633619958200fff6 ticker.exe
  216301088 3359721633619934200ffde minimum.exe
 5495342100 3306832033619954200fff2 cxx_iostream.exe
 3927225896 3322134433619962200fffa fileio.exe
 299802   12712 3330742433619938200ffe2 pppd.exe
 1340022456 3348348833619946200ffea capture.exe
  751761908 3354284833619932200ffdc nsecs.exe
 1258622196 3349190433619962200fffa paranoia.exe
 1279221844 3349017633619942200ffe6 cdtest.exe
  618501820 3355628833619958200fff6 base_sp.exe
  635181844 3355459233619954200fff2 unlimited.exe
  71562 

[PATCH 31/32] sparc64/usiii: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the usiii BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1806082752 2113472 2296832  230c00 ticker.exe
 1141121760 2105312 2221184  21e480 minimum.exe
10413923168 2126160 3170720  3061a0 cxx_iostream.exe
 7122248912 2129200 2850336  2b7e20 fileio.exe
 595248   21568 2147872 2764688  2a2f90 pppd.exe
 2914883912 2117440 2412840  24d128 capture.exe
 2004962888 2113616 2317000  235ac8 nsecs.exe
 2793443392 2114112 2396848  2492b0 paranoia.exe
 3246562768 2115328 2442752  254600 cdtest.exe
 1786242752 2113440 2294816  230420 base_sp.exe
 1791522752 2117216 2299120  2314f0 unlimited.exe
 1909442688 2113424 2307056  2333f0 hello.exe
 381296   10752 2126400 2518448  266db0 loopback.exe

For the usiii BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
 1733122632 2113184 2289128  22ede8 ticker.exe
 102432 328 2100928 2203688  21a028 minimum.exe
 6265443032 2120400 2749976  29f618 cxx_iostream.exe
 6575848792 2128640 2795016  2aa608 fileio.exe
 555616   21264 2146816 2723696  298f70 pppd.exe
 2800163760 2117152 2400928  24a2a0 capture.exe
 1937922768 2113312 2309872  233ef0 nsecs.exe
 2385283264 2113808 2355600  23f190 paranoia.exe
 2775682664 2115040 2395272  248c88 cdtest.exe
 1705922624 2113152 2286368  22e320 base_sp.exe
 1691202616 2112816 2284552  22dc08 unlimited.exe
 1805282536 2109040 2292104  22f988 hello.exe
 354992   10528 2126016 2491536  260490 loopback.exe
---
 c/src/lib/libbsp/sparc64/usiii/make/custom/usiii.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/sparc64/usiii/make/custom/usiii.cfg 
b/c/src/lib/libbsp/sparc64/usiii/make/custom/usiii.cfg
index 66ab315..740e5b6 100644
--- a/c/src/lib/libbsp/sparc64/usiii/make/custom/usiii.cfg
+++ b/c/src/lib/libbsp/sparc64/usiii/make/custom/usiii.cfg
@@ -15,3 +15,6 @@ CPU_CFLAGS = -mcpu=ultrasparc3 -DUS3 -DSUN4U
 
 # optimize flag: typically -g -O2
 CFLAGS_OPTIMIZE_V = -g -O2
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 25/32] sh/gensh1: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the gensh1 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  6358676266788   78000   130b0 ticker.exe
  2504231702872   31084796c minimum.exe
 337626   47818   36260  421704   66f48 pppd.exe
 141298   201149684  171096   29c58 capture.exe
  7673880386865   91641   165f9 nsecs.exe
 130658   185227356  156536   26378 paranoia.exe
 144274   228747844  174992   2ab90 cdtest.exe
  6080268106756   74368   12280 base_sp.exe
  631387046   10580   80764   13b7c unlimited.exe
  7707454026748   89224   15c88 hello.exe
 201686   19922   14084  235692   398ac loopback.exe

For the gensh1 BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
  5929870546760   73112   11d98 ticker.exe
  1349015021844   1683641c4 minimum.exe
 298274   40526   35440  374240   5b5e0 pppd.exe
 133634   192789664  162576   27b10 capture.exe
  7310674466841   87393   15561 nsecs.exe
 124562   179267320  149808   24930 paranoia.exe
 138738   120267820  158584   26b78 cdtest.exe
  5521862346732   68184   10a58 base_sp.exe
  5347454229524   68420   10b44 unlimited.exe
  6689837665688   76352   12a40 hello.exe
 179362   14206   13924  207492   32a84 loopback.exe
---
 c/src/lib/libbsp/sh/gensh1/make/custom/gensh1.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/sh/gensh1/make/custom/gensh1.cfg 
b/c/src/lib/libbsp/sh/gensh1/make/custom/gensh1.cfg
index 4f80115..fb066ed 100644
--- a/c/src/lib/libbsp/sh/gensh1/make/custom/gensh1.cfg
+++ b/c/src/lib/libbsp/sh/gensh1/make/custom/gensh1.cfg
@@ -18,3 +18,6 @@ CPU_CFLAGS = -m1
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g 
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 20/32] m32c/m32csim: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the m32csim BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 14314811184664  148930   245c2 ticker.exe
  55140 584 876   56600dd18 minimum.exe
 26863818046598  277040   43a30 capture.exe
 16122611844712  167122   28cd2 nsecs.exe
 38950015185176  396194   60ba2 paranoia.exe
 13525611184638  141012   226d4 base_sp.exe
 13972811466482  147356   23f9c unlimited.exe
 16550010924638  171230   29cde hello.exe

For the m32csim BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 13758610964526  143208   22f68 ticker.exe
  31136 454 738   323287e48 minimum.exe
 25254017646458  260762   3fa9a capture.exe
 15571611624570  161448   276a8 nsecs.exe
 37860614925038  385136   5e070 paranoia.exe
 12452610924500  130118   1fc46 base_sp.exe
 12874611206344  136210   21412 unlimited.exe
 15427810664500  159844   27064 hello.exe
---
 c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg 
b/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg
index cee695d..491f000 100644
--- a/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg
+++ b/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg
@@ -15,3 +15,6 @@ CPU_CFLAGS = -mcpu=m32cm
 # see GCC PR37665
 #CFLAGS_OPTIMIZE_V = -Os -g
 CFLAGS_OPTIMIZE_V = -O0 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 24/32] or1k/generic_or1k: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the generic_or1k BSP variant without this option sample
executables sizes were as follows:

   textdata bss   dec hex   filename
 2550441780 33297600335544241f8 ticker.exe
 1884841496 33364448335544281fc minimum.exe
 829728   77432 32647264335544241f8 cxx_iostream.exe
11105886112 32437728335544281fc fileio.exe
 881676   14420 32658304335544001e0 pppd.exe
 4282002556 33123648335544041e4 capture.exe
 2740121868 33278528335544081e8 nsecs.exe
 3980842184 33154144335544121ec paranoia.exe
 3873487420 33159648335544161f0 cdtest.exe
 2477521780 33304896335544281fc base_sp.exe
 2538881808 33298720335544161f0 unlimited.exe
 2617921752 33290880335544241f8 hello.exe
 5696126792 32978016335544201f4 loopback.exe

For the generic_or1k BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 2298041760 33314592335461561ffdfac ticker.exe
 1187441424 33425984335461521ffdfa8 minimum.exe
 607344   29188 32909632335461641ffdfb4 cxx_iostream.exe
10641246088 32475936335461481ffdfa4 fileio.exe
 801832   14156 32730176335461641ffdfb4 pppd.exe
 3929082508 33150752335461681ffdfb8 capture.exe
 2499321848 33294368335461481ffdfa4 nsecs.exe
 3723202164 33171680335461641ffdfb4 paranoia.exe
 3611486980 33178016335461441ffdfa0 cdtest.exe
 2220041760 33322400335461641ffdfb4 base_sp.exe
 2228121772 33321568335461521ffdfa8 unlimited.exe
 2297641704 33314688335461561ffdfac hello.exe
 5155726576 33024000335461481ffdfa4 loopback.exe
---
 c/src/lib/libbsp/or1k/generic_or1k/make/custom/generic_or1k.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/or1k/generic_or1k/make/custom/generic_or1k.cfg 
b/c/src/lib/libbsp/or1k/generic_or1k/make/custom/generic_or1k.cfg
index fff00ae..9a00643 100644
--- a/c/src/lib/libbsp/or1k/generic_or1k/make/custom/generic_or1k.cfg
+++ b/c/src/lib/libbsp/or1k/generic_or1k/make/custom/generic_or1k.cfg
@@ -5,3 +5,6 @@ RTEMS_CPU = or1k
 CPU_CFLAGS = -O2
 
 CFLAGS_OPTIMIZE_V ?= -O0 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 30/32] sparc64/niagara: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the niagara BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1436162704 2113472 2259792  227b50 ticker.exe
  718721720 2105312 2178904  213f58 minimum.exe
 9836003128 2126160 3112888  2f7fb8 cxx_iostream.exe
 6484488864 2129200 2786512  2a84d0 fileio.exe
 548976   21520 2147872 2718368  297aa0 pppd.exe
 2533443872 2117440 2374656  243c00 capture.exe
 1615202840 2113616 2277976  22c258 nsecs.exe
 2155683344 2114112 2333024  239960 paranoia.exe
 2617442728 2115328 2379800  245018 cdtest.exe
 1396482704 2113440 2255792  226bb0 base_sp.exe
 1424162712 2117216 2262344  228548 unlimited.exe
 1504642648 2113424 2266536  2295a8 hello.exe
 343504   10704 2126400 2480608  25d9e0 loopback.exe

For the niagara BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1334082624 2113184 2249216  225200 ticker.exe
  57152 320 2100928 2158400  20ef40 minimum.exe
 5901603024 2120400 2713584  2967f0 cxx_iostream.exe
 6235688784 2128640 2760992  2a2120 fileio.exe
 503616   21256 2146816 2671688  28c448 pppd.exe
 2391523752 2117152 2360056  2402f8 capture.exe
 1521282760 2113312 2268200  229c28 nsecs.exe
 2038083256 2113808 2320872  2369e8 paranoia.exe
 2441282656 2115040 2361824  2409e0 cdtest.exe
 1286722616 2113152 220  223f58 base_sp.exe
 1294082608 2112816 2244832  2240e0 unlimited.exe
 1370402528 2109040 2248608  224fa0 hello.exe
 314256   10520 2126016 2450792  256568 loopback.exe
---
 c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg 
b/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg
index 187e1fa..1178993 100644
--- a/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg
+++ b/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg
@@ -15,3 +15,6 @@ CPU_CFLAGS = -mcpu=niagara -DSUN4V
 
 # optimize flag: typically -g -O2
 CFLAGS_OPTIMIZE_V = -g -O2
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 19/32] lm32/lm32_evr: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the milkymist BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1011609044   1  123537   1e291 ticker.exe
  3088826769169   42733a6ed minimum.exe
 592200   90020   26557  708777   ad0a9 fileio.exe
 456048   64528   42565  563141   897c5 pppd.exe
 203752   25404   16241  245397   3be95 capture.exe
 118216   10704   13437  142357   22c15 nsecs.exe
 197848   22468   13981  234297   39339 paranoia.exe
  974968760   13301  119557   1d305 base_sp.exe
 1003929120   17141  126653   1eebd unlimited.exe
 1210327720   13309  142061   22aed hello.exe
 289340   28120   20653  338113   528c1 loopback.exe

For the milkymist BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  934648748   1  115545   1c359 ticker.exe
  1714413089133   275856bc1 minimum.exe
 574024   87296   26301  687621   a7e05 fileio.exe
 415668   60652   41837  518157   7e80d pppd.exe
 190920   24712   16233  231865   389b9 capture.exe
 111800   10404   13405  135609   211b9 nsecs.exe
 187272   22064   13949  223285   36835 paranoia.exe
  876568440   13301  109397   1ab55 base_sp.exe
  890488736   17149  114933   1c0f5 unlimited.exe
 107316   13309  129513   1f9e9 hello.exe
 262820   26764   20557  310141   4bb7d loopback.exe
---
 c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg 
b/c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg
index ae691eb..97fcb9e 100644
--- a/c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg
+++ b/c/src/lib/libbsp/lm32/milkymist/make/custom/milkymist.cfg
@@ -19,6 +19,9 @@ CPU_CFLAGS = -mbarrel-shift-enabled -mmultiply-enabled \
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
 
 define bsp-post-link
$(OBJCOPY) -O binary --strip-all $(basename $@)$(EXEEXT) \
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 16/32] epiphany/epiphany_sim: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the epiphany_sim BSP variant without this option sample
executables sizes were as follows:

   textdata bss   dec hex   filename
 1987281792 16576900167774201cc ticker.exe
  741361148 16702144167774281d4 minimum.exe
 8394807892 15930052167774241d0 cxx_iostream.exe
 9576406160 15813636167774361dc fileio.exe
 3329042644 16441920167774681fc capture.exe
 2141761892 16561344167774121c4 nsecs.exe
 2911122208 16484100167774201cc paranoia.exe
 3120962208 16463108167774121c4 cdtest.exe
 1908881792 16584772167774521ec base_sp.exe
 1963361824 16579268167774281d4 unlimited.exe
 1953441768 16580356167774681fc hello.exe

For the epiphany_sim BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1877841752 16587908167774441e4 ticker.exe
  51560 292 16725568167774201cc minimum.exe
 5810403920 16192452167774121c4 cxx_iostream.exe
 9307366112 15840580167774281d4 fileio.exe
 3124482564 16462400167774121c4 capture.exe
 2044241852 16571136167774121c4 nsecs.exe
 2782482160 16497028167774361dc paranoia.exe
 2964882088 16478852167774281d4 cdtest.exe
 1780241752 16597636167774121c4 base_sp.exe
 1829521784 16592708167774441e4 unlimited.exe
 1816881728 16594052167774681fc hello.exe
---
 c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg 
b/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg
index 9eea2a0..1fef608 100644
--- a/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg
+++ b/c/src/lib/libbsp/epiphany/epiphany_sim/make/custom/epiphany_sim.cfg
@@ -5,3 +5,6 @@ RTEMS_CPU = epiphany
 CPU_CFLAGS =
 
 CFLAGS_OPTIMIZE_V ?= -O0 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 28/32] sh/simsh: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the simsh1 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7398472207036   88240   158b0 ticker.exe
  2128463882856   305287740 minimum.exe
 368616   17820   36256  422692   67324 pppd.exe
 16266078769936  180472   2c0f8 capture.exe
  8781273087121  102241   18f61 nsecs.exe
 15256475927604  167760   28f50 paranoia.exe
 161260   166408108  186008   2d698 cdtest.exe
  7125672207012   85488   14df0 base_sp.exe
  738527248   10852   91952   16730 unlimited.exe
  8688871927016  101096   18ae8 hello.exe
 219504   11712   14332  245548   3bf2c loopback.exe

For the simsh1 BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
  6826056885984   79932   1383c ticker.exe
  1172443641824   1791245f8 minimum.exe
 331732   13000   34424  379156   5c914 pppd.exe
 15340863128892  168612   292a4 capture.exe
  8280457766073   94653   171bd nsecs.exe
 14510860566560  157724   2681c paranoia.exe
 15303661967060  166292   28994 cdtest.exe
  6423656845964   75884   1286c base_sp.exe
  6668457129808   82204   1411c unlimited.exe
  7930456565956   90916   16324 hello.exe
 1938446936   13148  213928   343a8 loopback.exe

For the simsh2 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7134471687040   85552   14e30 ticker.exe
  1915663522860   283686ed0 minimum.exe
 366744   17768   36244  420756   66b94 pppd.exe
 16061278249940  178376   2b8c8 capture.exe
  8515672567125   99537   184d1 nsecs.exe
 14979675407608  164944   28450 paranoia.exe
 158908   165888112  183608   2cd38 cdtest.exe
  6911271687016   83296   14560 base_sp.exe
  716927196   10856   89744   15e90 unlimited.exe
  8479271407020   98952   18288 hello.exe
 217488   11660   14336  243484   3b71c loopback.exe

For the simsh2 BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
  6640456885984   78076   130fc ticker.exe
  1134043641824   175284478 minimum.exe
 331044   13000   34424  378468   5c664 pppd.exe
 15264063128892  167844   28fa4 capture.exe
  8058057766073   92429   1690d nsecs.exe
 14365260566560  156268   2626c paranoia.exe
 15198061967060  165236   28574 cdtest.exe
  6340456845964   75052   1252c base_sp.exe
  6583657129808   81356   13dcc unlimited.exe
  7861656565956   90228   16074 hello.exe
 1931406936   13148  213224   340e8 loopback.exe

For the simsh2e BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7273661407040   85916   14f9c ticker.exe
  1915653242860   273406acc minimum.exe
 368864   16740   36252  421856   66fe0 pppd.exe
 15975667969932  176484   2b164 capture.exe
  8822862287109  101565   18cbd nsecs.exe
 12268464607380  136524   2154c paranoia.exe
 157508   157408100  181348   2c464 cdtest.exe
  7050461407000   83644   146bc base_sp.exe
  731166168   10856   90140   1601c unlimited.exe
  8161661127012   94740   17214 hello.exe
 217336   10632   14328  242296   3b278 loopback.exe

For the simsh2e BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  6795656885984   79628   1370c ticker.exe
  1140443641824   1759244b8 minimum.exe
 333228   13000   34416  380644   5cee4 pppd.exe
 15186463128884  167060   28c94 capture.exe
  8382857766073   95677   175bd nsecs.exe
 11676460046332  129100   1f84c paranoia.exe
 15074061967052  163988   28094 cdtest.exe
  6494056845964   76588   12b2c base_sp.exe
  6740457129808   82924   143ec unlimited.exe
  7561656565964   87236   154c4 hello.exe
 1929566936   13156  213048   34038 loopback.exe

For the simsh4 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7310460527172   86328   15138 ticker.exe
  1990852802996   281846e18 minimum.exe
 369572   16652   36380  422604   672cc pppd.exe
 1603846708   10076  177168   2b410 capture.exe
  8862861407257  102025   18e89 nsecs.exe
 13377664247744  147944   241e8 paranoia.exe
 157496   156168248  181360   2c470 cdtest.exe
  7092060527148   84120   14898 base_sp.exe
  735326080   10988   90600   161e8 unlimited.exe
  8218060247156   95360  

[PATCH 17/32] pc386.cfg: Add disabled per-function-sections

2016-03-10 Thread Joel Sherrill
updates #2638.
---
 c/src/lib/libbsp/i386/pc386/make/custom/pc386.cfg | 4 
 1 file changed, 4 insertions(+)

diff --git a/c/src/lib/libbsp/i386/pc386/make/custom/pc386.cfg 
b/c/src/lib/libbsp/i386/pc386/make/custom/pc386.cfg
index 9f7428d..af912e7 100644
--- a/c/src/lib/libbsp/i386/pc386/make/custom/pc386.cfg
+++ b/c/src/lib/libbsp/i386/pc386/make/custom/pc386.cfg
@@ -19,6 +19,10 @@ endif
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+# Per function sections disabled per https://devel.rtems.org/ticket/2638
+# CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+# 
+# LDFLAGS = -Wl,--gc-sections
 
 # Here is the rule to actually build a $(ARCH)/foo$(EXEEXT)
 # It also builds $(ARCH)/foo.sr and $(ARCH)/foo.nm
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 32/32] v850/gdbv850sim: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

Had to add .rtemsroset to the linkcmds following the arm to get it
to link after turning on the per-secton options.

For the v850e1sim BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7694064564944   88340   15914 ticker.exe
  218961860 760   245165fc4 minimum.exe
 802270   45832   12837  860939   d230b cxx_iostream.exe
 473916   65152   18156  557224   880a8 fileio.exe
 384288   45724   34148  464160   71520 pppd.exe
 161648   184167840  187904   2de00 capture.exe
  9085667405021  102617   190d9 nsecs.exe
 158424   175125508  181444   2c4c4 paranoia.exe
 152938   129485821  171707   29ebb cdtest.exe
  7380862964912   85016   14c18 base_sp.exe
  7742065288756   92704   16a20 unlimited.exe
  8969247924916   99400   18448 hello.exe
 236138   18396   12240  266774   41216 loopback.exe

For the v850e1sim BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7673915524920   83211   1450b ticker.exe
  13682 228 748   146583942 minimum.exe
 4912846508   12026  509818   7c77a cxx_iostream.exe
 5179525632   17859  541443   84303 fileio.exe
 3797328864   33308  421904   67010 pppd.exe
 16918221767815  179173   2bbe5 capture.exe
  9130716404997   97944   17e98 nsecs.exe
 16743119205484  174835   2aaf3 paranoia.exe
 15632219365797  164055   280d7 cdtest.exe
  7259115484888   79027   134b3 base_sp.exe
  7621515768732   86523   151fb unlimited.exe
  8634615204892   92758   16a56 hello.exe
 2218102800   12076  236686   39c8e loopback.exe

For the v850e2sim BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  6978864524948   81188   13d24 ticker.exe
  209721856 788   236165c40 minimum.exe
 795748   45828   12841  854417   d0991 cxx_iostream.exe
 440586   64864   18160  523610   7fd5a fileio.exe
 352650   45644   34152  432446   6993e pppd.exe
 151172   184007844  177416   2b508 capture.exe
  8402867365025   95789   1762d nsecs.exe
 148268   175005512  171280   29d10 paranoia.exe
 145916   129365825  164677   28345 cdtest.exe
  6712462924916   78332   131fc base_sp.exe
  7045265088760   85720   14ed8 unlimited.exe
  8380047884920   93508   16d44 hello.exe
 221216   18372   12244  251832   3d7b8 loopback.exe

For the v850e2sim BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7015515524924   76631   12b57 ticker.exe
  14156 932 776   158643df8 minimum.exe
 4856506508   12030  504188   7b17c cxx_iostream.exe
 4853985632   17863  508893   7c3dd fileio.exe
 3514188864   33312  393594   6017a pppd.exe
 15951021767819  169505   29621 capture.exe
  8498916405001   91630   165ee nsecs.exe
 15797319205488  165381   28605 paranoia.exe
 14988019365801  157617   267b1 cdtest.exe
  6652915484892   72969   11d09 base_sp.exe
  6984715768736   80159   1391f unlimited.exe
  8113415204896   87550   155fe hello.exe
 2088782800   12080  223758   36a0e loopback.exe

For the v850e2v3sim BSP variant without this option sample
executables sizes were as follows:

   textdata bss   dec hex   filename
  6978464524948   81184   13d20 ticker.exe
  209721856 788   236165c40 minimum.exe
 791378   45808   12841  850027   cf86b cxx_iostream.exe
 436576   64848   18160  519584   7eda0 fileio.exe
 348982   45624   34152  428758   68ad6 pppd.exe
 147420   183807844  173644   2a64c capture.exe
  8402067365025   95781   17625 nsecs.exe
 148736   174805512  171728   29ed0 paranoia.exe
 142216   129165825  160957   274bd cdtest.exe
  6712062924916   78328   131f8 base_sp.exe
  7044865088760   85716   14ed4 unlimited.exe
  8004847684920   89736   15e88 hello.exe
 217432   18352   12244  248028   3c8dc loopback.exe

For the v850e2v3sim BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  7015115524924   76627   12b53 ticker.exe
  14156 932 776   158643df8 minimum.exe
 4814086508   12030  499946   7a0ea cxx_iostream.exe
 4813785632   17863  504873   7b429 fileio.exe
 3477408864   33312  389916   5f31c pppd.exe
 15573621767819  165731   28763 capture.exe
  8498116405001   91622   165e6 nsecs.exe
 15833119205488  165739   2876b paranoia.exe
 14616419365801  153901   2592d cdtest.exe
  6652515484892   72965   11d05 base_sp.exe
  6984315768736  

[PATCH 22/32] nios2/nios2_iss: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the nios2_iss BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 19869266726068  211432   339e8 ticker.exe
  7540819241892   79224   13578 minimum.exe
1044536   36308   14032 1094876  10b4dc cxx_iostream.exe
 877164   68972   19300  965436   ebb3c fileio.exe
 703628   48772   37196  789596   c0c5c pppd.exe
 336340   195328972  364844   5912c capture.exe
 21619669126148  229256   37f88 nsecs.exe
 319236   180486632  343916   53f6c paranoia.exe
 317556   129447020  337520   52670 cdtest.exe
 19298064766036  205492   322b4 base_sp.exe
 19806866809876  214624   34660 unlimited.exe
 20662848566036  217520   351b0 hello.exe
 459304   19208   13368  491880   78168 loopback.exe

For the nios2_iss BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 18704465606048  199652   30be4 ticker.exe
  50944 8281880   53652d194 minimum.exe
 731956   27876   13228  773060   bcbc4 cxx_iostream.exe
 848108   67272   19020  934400   e4200 fileio.exe
 645152   47968   36464  729584   b21f0 pppd.exe
 315092   187928952  342836   53b34 capture.exe
 20558867806128  218496   35580 nsecs.exe
 305684   179166612  330212   509e4 paranoia.exe
 305360   114767000  323836   4f0fc cdtest.exe
 17942863646016  191808   2ed40 base_sp.exe
 18203665489856  198440   30728 unlimited.exe
 18990847086016  200632   30fb8 hello.exe
 421696   18772   13280  453748   6ec74 loopback.exe
---
 c/src/lib/libbsp/nios2/nios2_iss/make/custom/nios2_iss.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/nios2/nios2_iss/make/custom/nios2_iss.cfg 
b/c/src/lib/libbsp/nios2/nios2_iss/make/custom/nios2_iss.cfg
index 8254eec..2bec4b1 100644
--- a/c/src/lib/libbsp/nios2/nios2_iss/make/custom/nios2_iss.cfg
+++ b/c/src/lib/libbsp/nios2/nios2_iss/make/custom/nios2_iss.cfg
@@ -19,6 +19,9 @@ CPU_CFLAGS = -mno-hw-mul -mno-hw-div
 # optimize flag: typically -O2
 # ATM, doesn't work with optimization levels > 0
 CFLAGS_OPTIMIZE_V = -O0 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
 
 define bsp-post-link
$(OBJCOPY) -O binary --strip-all $(basename $@)$(EXEEXT) \
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 23/32] no_bsp.cfg: Add hints for CFLAGS and LDFLAGS

2016-03-10 Thread Joel Sherrill
updates #2577.
---
 c/src/lib/libbsp/no_cpu/no_bsp/make/custom/no_bsp.cfg | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/make/custom/no_bsp.cfg 
b/c/src/lib/libbsp/no_cpu/no_bsp/make/custom/no_bsp.cfg
index 8c98f8b..944ebd9 100644
--- a/c/src/lib/libbsp/no_cpu/no_bsp/make/custom/no_bsp.cfg
+++ b/c/src/lib/libbsp/no_cpu/no_bsp/make/custom/no_bsp.cfg
@@ -7,4 +7,8 @@ include $(RTEMS_ROOT)/make/custom/default.cfg
 RTEMS_CPU=no_cpu
 RTEMS_CPU_MODEL=no_cpu_model
 
-# Miscellaneous additions go here
+# Miscellaneous additions go here. Typical options usually look like
+CFLAGS_OPTIMIZE_V += -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 18/32] lm32/lm32_evr: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the lm32_evr BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1957646892   13077  215733   34ab5 ticker.exe
  8421222649169   95645   1759d minimum.exe
1077108   82852   26293 1186253  1219cd fileio.exe
 763500   56340   44493  864333   d304d pppd.exe
 344948   22148   15977  383073   5d861 capture.exe
 2118768472   13169  233517   3902d nsecs.exe
 330020   18636   13685  362341   58765 paranoia.exe
 1859566452   13053  205461   32295 base_sp.exe
 1945166656   16893  218065   353d1 unlimited.exe
 2021645400   13013  220577   35da1 hello.exe
 474728   23220   20389  518337   7e8c1 loopback.exe

For the lm32_evr BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 1863886792   13045  206225   32591 ticker.exe
  5314011249137   63401f7a9 minimum.exe
1049556   80336   26045 1155937  11a361 fileio.exe
 685632   55056   43757  784445   bf83d pppd.exe
 323588   21400   15953  360941   581ed capture.exe
 2035408352   13137  225029   36f05 nsecs.exe
 316612   18512   13653  348777   55269 paranoia.exe
 1727246352   13021  192097   2ee61 base_sp.exe
 1767086528   16837  200073   30d89 unlimited.exe
 1829005260   13021  201181   311dd hello.exe
 436064   22840   20293  479197   74fdd loopback.exe
---
 c/src/lib/libbsp/lm32/lm32_evr/make/custom/lm32_evr.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/lm32/lm32_evr/make/custom/lm32_evr.cfg 
b/c/src/lib/libbsp/lm32/lm32_evr/make/custom/lm32_evr.cfg
index c1951d0..c26a628 100644
--- a/c/src/lib/libbsp/lm32/lm32_evr/make/custom/lm32_evr.cfg
+++ b/c/src/lib/libbsp/lm32/lm32_evr/make/custom/lm32_evr.cfg
@@ -19,6 +19,9 @@ CPU_CFLAGS =
 # optimize flag: typically -O2
 # ATM, doesn't work with optimization levels > 0
 CFLAGS_OPTIMIZE_V = -O0 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
 
 define bsp-post-link
$(OBJCOPY) -O binary --strip-all $(basename $@)$(EXEEXT) \
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 27/32] sh/gensh4: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the gensh4 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  75538   106667264   93468   16d1c ticker.exe
  2181061663008   309847908 minimum.exe
 424370   69762   20476  514608   7da30 fileio.exe
 342538   50782   36468  429788   68edc pppd.exe
 150930   23130   10168  184228   2cfa4 capture.exe
  90578   110787348  109004   1a9cc nsecs.exe
 125010   221907824  155024   25d90 paranoia.exe
 153282   266868328  188296   2df88 cdtest.exe
  73426   104987232   91156   16414 base_sp.exe
  75186   10734   11072   96992   17ae0 unlimited.exe
  8565090707224  101944   18e38 hello.exe
 212390   22942   14556  249888   3d020 loopback.exe

For the gensh4 BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
  70418   102147228   87860   15734 ticker.exe
  1451448862984   223845770 minimum.exe
 411234   67894   20184  499312   79e70 fileio.exe
 309906   43666   35668  389240   5f078 pppd.exe
 143074   22414   10132  175620   2ae04 capture.exe
  86130   106067312  104048   19670 nsecs.exe
 118978   217147804  148496   24410 paranoia.exe
 147778   158148292  171884   29f6c cdtest.exe
  67890   100427196   85128   14c88 base_sp.exe
  69010   10254   11036   90300   160bc unlimited.exe
  7885085787204   94632   171a8 hello.exe
 189586   17346   14392  221324   3608c loopback.exe
---
 c/src/lib/libbsp/sh/gensh4/make/custom/gensh4.cfg | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/c/src/lib/libbsp/sh/gensh4/make/custom/gensh4.cfg 
b/c/src/lib/libbsp/sh/gensh4/make/custom/gensh4.cfg
index dd1a9f7..4eb20f9 100644
--- a/c/src/lib/libbsp/sh/gensh4/make/custom/gensh4.cfg
+++ b/c/src/lib/libbsp/sh/gensh4/make/custom/gensh4.cfg
@@ -23,4 +23,7 @@ RTEMS_CPU_MODEL=sh7750
 CPU_CFLAGS = -m4 -ml
 
 # optimize flag: typically -O2
-CFLAGS_OPTIMIZE_V = -O2 -g 
+CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 21/32] m32csim.cfg: GCC PR37665 is fixed but there is still a compiler error. Use -O0.

2016-03-10 Thread Joel Sherrill
---
 c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg 
b/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg
index 491f000..9629e48 100644
--- a/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg
+++ b/c/src/lib/libbsp/m32c/m32cbsp/make/custom/m32csim.cfg
@@ -7,13 +7,10 @@ include $(RTEMS_ROOT)/make/custom/default.cfg
 RTEMS_CPU=m32c
 RTEMS_CPU_MODEL=m32c
 
-#  This contains the compiler options necessary to select the CPU model
-#  and (hopefully) optimize for it.
 CPU_CFLAGS = -mcpu=m32cm
 
-# optimize flag: typically -O2
-# see GCC PR37665
-#CFLAGS_OPTIMIZE_V = -Os -g
+# Unreported GCC Bug results in ICE in cpu.c. Use -O0
+# CFLAGS_OPTIMIZE_V = -Os -g
 CFLAGS_OPTIMIZE_V = -O0 -g
 CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
 
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 26/32] sh/gensh2: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the gensh2 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
  6190675506784   76240   129d0 ticker.exe
  2408231342876   30092758c minimum.exe
 336698   47742   36256  420696   66b58 pppd.exe
 140210   200349684  169928   297c8 capture.exe
  7505879626861   89881   15f19 nsecs.exe
 128850   184467352  154648   25c18 paranoia.exe
 142898   227947844  173536   2a5e0 cdtest.exe
  5961867346752   73104   11d90 base_sp.exe
  620666970   10576   79612   136fc unlimited.exe
  7606653226732   88120   15838 hello.exe
 200630   19846   14080  234556   3943c loopback.exe

For the gensh2 BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
  5840270306768   72200   11a08 ticker.exe
  1321815021844   1656440b4 minimum.exe
 298562   40502   35448  374512   5b6f0 pppd.exe
 133826   192509660  162736   27bb0 capture.exe
  7182674226833   86081   15041 nsecs.exe
 124050   179027328  149280   24720 paranoia.exe
 138658   119987832  158488   26b18 cdtest.exe
  5533062106724   68264   10aa8 base_sp.exe
  5289853989516   67812   108e4 unlimited.exe
  6648237385684   75904   12880 hello.exe
 179618   14182   13916  207716   32b64 loopback.exe
---
 c/src/lib/libbsp/sh/gensh2/make/custom/gensh2.cfg | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/c/src/lib/libbsp/sh/gensh2/make/custom/gensh2.cfg 
b/c/src/lib/libbsp/sh/gensh2/make/custom/gensh2.cfg
index 00d0fbf..40038e6 100644
--- a/c/src/lib/libbsp/sh/gensh2/make/custom/gensh2.cfg
+++ b/c/src/lib/libbsp/sh/gensh2/make/custom/gensh2.cfg
@@ -13,8 +13,10 @@ RTEMS_CPU_MODEL=sh7045
 
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it.
-#
 CPU_CFLAGS = -m2
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g 
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 29/32] powerpc/motorola_powerpc: Add per-section compilation and linking support

2016-03-10 Thread Joel Sherrill
updates #2577.

For the mcp750 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 188997   29656   48361  267014   41306 ticker.exe
 150693   26116   44681  221490   36132 minimum.exe
 939941  217971   55585 1213497  128439 cxx_iostream.exe
 585125   98042   61033  744200   b5b08 fileio.exe
 506445   72164   76829  655438   a004e pppd.exe
 253397   40224   50409  344030   53fde capture.exe
 208597   31236   48437  288270   4660e nsecs.exe
 218981   42028   48961  309970   4bad2 paranoia.exe
 275605   47856   48585  372046   5ad4e cdtest.exe
 186309   29488   48329  264126   407be base_sp.exe
 188517   30424   52105  271046   422c6 unlimited.exe
 174725   28324   48257  251306   3d5aa hello.exe
 342601   41628   55433  439662   6b56e loopback.exe

For the mcp750 BSP variant with this option sample executables sizes
were as follows:

   textdata bss   dec hex   filename
 159345   19612   48329  227286   377d6 ticker.exe
 120417   15516   44649  180582   2c166 minimum.exe
 596905   50686   54737  702328   ab778 cxx_iostream.exe
 551185   88466   60745  700396   aafec fileio.exe
 453101   61848   76093  591042   904c2 pppd.exe
 228033   32444   50381  310858   4be4a capture.exe
 179585   21168   48405  249158   3cd46 nsecs.exe
 188785   31176   48933  268894   41a5e paranoia.exe
 249561   28688   48553  326802   4fc92 cdtest.exe
 156401   19444   48297  224142   36b8e base_sp.exe
 156977   19592   52073  228642   37d22 unlimited.exe
 142929   17544   48225  208698   32f3a hello.exe
 302045   33328   55321  390694   5f626 loopback.exe

For the mtx603e BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 189317   29640   48361  267318   41436 ticker.exe
 150997   26104   44681  221782   36256 minimum.exe
 940581  214151   55585 1210317  1277cd cxx_iostream.exe
 585317   98026   61033  744376   b5bb8 fileio.exe
 506893   72148   76829  655870   a01fe pppd.exe
 253813   40208   50409  344430   5416e capture.exe
 208917   31220   48437  288574   4673e nsecs.exe
 219301   42012   48961  310274   4bc02 paranoia.exe
 276021   47700   48585  372306   5ae52 cdtest.exe
 186629   29472   48329  264430   408ee base_sp.exe
 188837   30408   52105  271350   423f6 unlimited.exe
 175045   28312   48257  251614   3d6de hello.exe
 342953   41612   55433  439998   6b6be loopback.exe

For the mtx603e BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 159345   19612   48329  227286   377d6 ticker.exe
 120385   15516   44649  180550   2c146 minimum.exe
 597097   50686   54737  702520   ab838 cxx_iostream.exe
 551121   88466   60745  700332   aafac fileio.exe
 453197   61848   76093  591138   90522 pppd.exe
 228097   32444   50381  310922   4be8a capture.exe
 179569   21168   48405  249142   3cd36 nsecs.exe
 188785   31176   48933  268894   41a5e paranoia.exe
 249625   28688   48553  326866   4fcd2 cdtest.exe
 156369   19444   48297  224110   36b6e base_sp.exe
 156945   19592   52073  228610   37d02 unlimited.exe
 142929   17544   48225  208698   32f3a hello.exe
 302109   33328   55321  390758   5f666 loopback.exe

For the mvme2100 BSP variant without this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 185285   24424   48361  258070   3f016 ticker.exe
 146997   20880   44681  212558   33e4e minimum.exe
 936549  208935   55585 1201069  1253ad cxx_iostream.exe
 581285   92810   61033  735128   b3798 fileio.exe
 502861   66932   76829  646622   9ddde pppd.exe
 249781   34984   50409  335174   51d46 capture.exe
 204917   26004   48437  279358   4433e nsecs.exe
 215269   36788   48961  301018   497da paranoia.exe
 271989   42484   48585  363058   58a32 cdtest.exe
 182597   24256   48329  255182   3e4ce base_sp.exe
 184805   25192   52105  262102   3ffd6 unlimited.exe
 171045   23088   48257  242390   3b2d6 hello.exe
 338953   36388   55433  430774   692b6 loopback.exe

For the mvme2100 BSP variant with this option sample executables
sizes were as follows:

   textdata bss   dec hex   filename
 154449   18328   48329  221106   35fb2 ticker.exe
 115521   14232   44649  174402   2a942 minimum.exe
 592201   49402   54737  696340   aa014 cxx_iostream.exe
 546225   87182   60745  694152   a9788 fileio.exe
 448301   60564   76093  584958   8ecfe pppd.exe
 223201   31160   50349  304710   4a646 capture.exe
 174673   19884   48405  242962   3b512 nsecs.exe
 183889   29892   48933  262714   4023a paranoia.exe
 244729   27404   48553  320686   4e4ae cdtest.exe
 151473   18160   48297  217930   3534a base_sp.exe
 152049   18308   52073  222430   364de unlimited.exe
 138033   16260   48225  202518   31716 hello.exe
 297213   32044   55321  384578   5de42 loopback.exe


Re: [PATCH 17/17] fileio: Add command "com" to write to files

2016-03-10 Thread Chris Johns

On 10/03/2016 09:25, Joel Sherrill wrote:

This was used to open, write, and close the VGA console and
/dev/pcicom1 for testing purposes.


Does this do the same thing?

[/] # dd if=text.txt of=/dev/pcicom1

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 17/17] fileio: Add command "com" to write to files

2016-03-10 Thread Joel Sherrill
On Thu, Mar 10, 2016 at 6:42 PM, Chris Johns  wrote:

> On 10/03/2016 09:25, Joel Sherrill wrote:
>
>> This was used to open, write, and close the VGA console and
>> /dev/pcicom1 for testing purposes.
>>
>
> Does this do the same thing?
>
> [/] # dd if=text.txt of=/dev/pcicom1
>
>
I didn't mean to submit this. It was a test command so I could very
explicitly control calling open(), write(), and close(). I had debug
printk's turned on to see the register accesses for each.

That functionally does the same operations if you had a set of small files
but you wouldn't see a break between open(), write() and close().

I don't know if it is worth being in the tree or not. It was a quickly
thrown together utility for testing. If it has value, then we can rename
it and add some requirements.

My lspci command is similar. If we get every BSP to standard PCI
support, it might be useful but until then, it is just a test utility.


> Chris
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 17/17] fileio: Add command "com" to write to files

2016-03-10 Thread Chris Johns

On 11/03/2016 11:49, Joel Sherrill wrote:



On Thu, Mar 10, 2016 at 6:42 PM, Chris Johns mailto:chr...@rtems.org>> wrote:

On 10/03/2016 09:25, Joel Sherrill wrote:

This was used to open, write, and close the VGA console and
/dev/pcicom1 for testing purposes.


Does this do the same thing?

[/] # dd if=text.txt of=/dev/pcicom1


I didn't mean to submit this. It was a test command so I could very
explicitly control calling open(), write(), and close(). I had debug
printk's turned on to see the register accesses for each.



Best to keep as an example.


That functionally does the same operations if you had a set of small files
but you wouldn't see a break between open(), write() and close().


Files are easy to create and add to the root fs. There should be some in 
/etc.



I don't know if it is worth being in the tree or not. It was a quickly
thrown together utility for testing. If it has value, then we can rename
it and add some requirements.


I say out of the tree. Commands are easy to add and difficult to remove.


My lspci command is similar. If we get every BSP to standard PCI
support, it might be useful but until then, it is just a test utility.


This is useful. If it is not present someone will just invent it again. 
The doco needs to be added to docs repo. The shell doco source is ok to 
change. :)


Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Building RTEMS hello world image using CMake

2016-03-10 Thread Chris Johns

 [ Please excuse the delay. It took a while to get
   something worth posting sorted out. ]

On 04/03/2016 14:46, Sambeet Panigrahi wrote:

I wanted to build a hello world image of RTEMS using cmake. Can someone
provide me steps for doing so or point me to the right resources ?


I attach a couple of files from a friend of mine, Andi, who knows and 
works with cmake. I have not tried them and I do not know if they work.


If you have any questions please feel free to ask.

Chris
cmake_minimum_required(VERSION 2.8.11)

set(RTEMS_ROOT_PATH "/home/andi/development/rtems")
set(RTEMS_TOOLS_INSTALL_DIR "${RTEMS_ROOT_PATH}/4.12")
set(RTEMS_TOOLS_BSP_LIB_DIR "${RTEMS_ROOT_PATH}/4.12/sparc-rtems4.12/lib")
set(RTEMS_KERNEL_INSTALL_DIR"${RTEMS_ROOT_PATH}/sparc-sis")
set(RTEMS_KERNEL_BSP_LIB_DIR
"${RTEMS_ROOT_PATH}/sparc-sis/sparc-rtems4.12/sis/lib")

set(ENV{PATH} "${RTEMS_TOOLS_INSTALL_DIR}/bin:$ENV{PATH}")
set(RTEMS_TOOLS_BSP_INCLUDE_DIR   "${RTEMS_TOOLS_BSP_LIB_DIR}/include")
set(RTEMS_KERNEL_BSP_INCLUDE_DIR  "${RTEMS_KERNEL_BSP_LIB_DIR}/include")
set(RTEMS_COMPILE_OPTIONS "-B${RTEMS_KERNEL_BSP_LIB_DIR} 
-B${RTEMS_TOOLS_BSP_LIB_DIR} -specs bsp_specs -qrtems -mcpu=cypress") 

include(CMakeForceCompiler)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSORsparc)
cmake_force_c_compiler("${RTEMS_TOOLS_INSTALL_DIR}/bin/sparc-rtems4.12-gcc" 
GNU)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE  "RelWithDebInfo" CACHE STRING "")
endif()
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug RelWithDebInfo 
Release)

set(CMAKE_C_FLAGS_DEBUG "${RTEMS_COMPILE_OPTIONS} -g"  
CACHE STRING "")
set(CMAKE_C_FLAGS_RELWITHDEBINFO"${RTEMS_COMPILE_OPTIONS} -g -O2"  
CACHE STRING "")
set(CMAKE_C_FLAGS_RELEASE   "${RTEMS_COMPILE_OPTIONS} -O2 -DNDEBUG"
CACHE STRING "")

project(hello)

add_executable(HELLO hello.c)
target_include_directories(HELLO BEFORE PRIVATE   
   ${RTEMS_TOOLS_BSP_INCLUDE_DIR}
   ${RTEMS_KERNEL_BSP_INCLUDE_DIR})
/*
 *  Classic API Hello World
 */

#include 
#include 
#include 

rtems_task Init(rtems_task_argument argument);

rtems_task Init(rtems_task_argument argument)
{
  printf( "Hello there from rtems_task Init with arg %d\n", argument);
  
  exit( 0 );
}

/* configuration information */

#include 

/* NOTICE: the clock driver is explicitly disabled */
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM

#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_MAXIMUM_TASKS 1

#define CONFIGURE_INIT
#include 
/* end of file */
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Regarding GSOC 2016 BBB Mentor

2016-03-10 Thread punit vara
Hi,

I am ready with RTEMS hello world on Beagle bone black (
https://www.youtube.com/watch?v=FyOHU02bsvw&index=6&list=PL2muodf7ZnYcS18wkilESuJpZGj4mYSMJ)
and interested to improve BBB BSP . Currently I am testing GPIO and will
work on PWM driver for showcasing on my proposal. But I am afraid that I
have not listened anything from Ben Gras. Is some else will mentor me  ? If
not then should I stick with my BBB idea or go for another RTEMS project
for which some one can mentor me ? I have already asked this question
before but I am little worried that is why I created new thread. Any
suggestions will be appreciated.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: Regarding GSOC 2016 BBB Mentor

2016-03-10 Thread Jarielle Catbagan
Hello Punit,

I was working on porting the MicroMonitor (uMon) bootloader to the BBB last
year's GSoC 2015.  There is actually still some work that needs to be
done.  At the moment, Ethernet functionality and booting application images
still need to be implemented to get it to the point of making it a usable
bootloader for the BBB.  If you're interested in pursuing this as a
project, feel free to drop on by at umon-de...@rtems.org if you have any
questions.

Best,
Jarielle

On Thu, Mar 10, 2016 at 8:43 PM, punit vara  wrote:

> Hi,
>
> I am ready with RTEMS hello world on Beagle bone black (
> https://www.youtube.com/watch?v=FyOHU02bsvw&index=6&list=PL2muodf7ZnYcS18wkilESuJpZGj4mYSMJ)
> and interested to improve BBB BSP . Currently I am testing GPIO and will
> work on PWM driver for showcasing on my proposal. But I am afraid that I
> have not listened anything from Ben Gras. Is some else will mentor me  ? If
> not then should I stick with my BBB idea or go for another RTEMS project
> for which some one can mentor me ? I have already asked this question
> before but I am little worried that is why I created new thread. Any
> suggestions will be appreciated.
>
> ___
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel