#2542 closed defect (fixed)

Review cxx_iostream size change per function-section changes

Reported by: Joel Sherrill Owned by: joel.sherrill@…
Priority: normal Milestone: 5.1
Component: bsps Version: 5
Severity: normal Keywords:
Cc: Ralph Holmes Blocked By:
Blocking:

Description

It looks like some BSPs with their own linkcmds may have shrunk too much. Norm appears to be 50% while some went to 75-80%. A second look after catching the pattern indicates that the KEEP() section requirements in the linker scripts were not correct and it was missed.

Rather than reverting a bunch of patches, this ticket is to review all function-section patches from this one back in time for cxx_iostream shrinking too much.

commit 6d21c13e5094d490280a941cf0e8333f91f85715
Author: Ralph Holmes <ralph@…>
Date: Sat Jan 23 21:15:40 2016 +0000

powerpc/gen5200: Add per-section compilation and linking support.


For the brs5l BSP variant:



Change History (8)

comment:1 Changed on Jan 23, 2016 at 10:25:02 PM by Joel Sherrill

The following commits were made before this was noticed. Only those with a large cxx_iostream shrinkage or no cxx_iostream size need review.

arm/beagle: Add per-section compilation and linking support
arm/csb336: Add per-section compilation and linking support
arm/csb337: Add per-section compilation and linking support
arm/edb7312: Add per-section compilation and linking support
arm/gdbarmsim: Add per-section compilation and linking support
arm/gumstix: Add per-section compilation and linking support
arm/lm3s69xx: Add per-section compilation and linking support
arm/lpc176x: Add per-section compilation and linking support
m68k/av5282: Add per-section compilation and linking support.
m68k/csb360: Add per-section compilation and linking support.
m68k/gen68302: Add per-section compilation and linking support.
m68k/gen68340: Add per-section compilation and linking support.
m68k/gen68360: Add per-section compilation and linking support.
m68k/genmcf548x: Add per-section compilation and linking support.
m68k/mcf5206elite: Add per-section compilation and linking support.
m68k/mcf52235: Add per-section compilation and linking support.
m68k/mcf5225x: Add per-section compilation and linking support.
m68k/mcf5235: Add per-section compilation and linking support.
m68k/mcf5329: Add per-section compilation and linking support.
m68k/mrm332: Add per-section compilation and linking support.
m68k/mvme147: Add per-section compilation and linking support.
m68k/mvme147s: Add per-section compilation and linking support.
m68k/mvme162: Add per-section compilation and linking support.
m68k/mvme167: Add per-section compilation and linking support.
m68k/ods68302: Add per-section compilation and linking support.
m68k/uC5282: Add per-section compilation and linking support.
mips/csb350: Add per-section compilation and linking support.
mips/hurricane: Add per-section compilation and linking support.
mips/malta: Add per-section compilation and linking support.
mips/rbtx4925: Add per-section compilation and linking support.
mips/rbtx4938: Add per-section compilation and linking support.
powerpc/beatnik: Add per-section compilation and linking support.
powerpc/gen5200: Add per-section compilation and linking support.
powerpc/haleakala: Add per-section compilation and linking support.
powerpc/mbx8xx: Add per-section compilation and linking support.
powerpc/mpc8260ads: Add per-section compilation and linking support.
powerpc/mvme3100: Add per-section compilation and linking support.
powerpc/mvme5500: Add per-section compilation and linking support.
powerpc/qemuppc: Add per-section compilation and linking support.
powerpc/ss555: Add per-section compilation and linking support.
powerpc/t32mppc: Add per-section compilation and linking support.
powerpc/tqm8xx: Add per-section compilation and linking support.
powerpc/virtex4: Add per-section compilation and linking support.
powerpc/virtex5: Add per-section compilation and linking support.
powerpc/virtex: Add per-section compilation and linking support.

comment:2 Changed on Jan 23, 2016 at 10:27:17 PM by Joel Sherrill

Component: Generalbsps
Milestone: 4.11.14.12
Owner: set to joel.sherrill@…
Version: 4.104.12

comment:3 Changed on Jan 23, 2016 at 10:36:47 PM by Joel Sherrill

After a review of all potential BSPs, I have determined that these are the ones which are almost certainly missing KEEP() sections. This drops the set considerably.

As a practical matter, the BSPs will be converted to use a shared linkcmds.base or have the use of function-sections disabled by commenting out the added lines. We need to work out the details but the same comment should be added above those lines like this (review and approve):

# This BSP does not either (a) use a shared linkcmds base file or (b) include
# proper KEEP() directives in its linkcmds* files. Because of these arguments
# can not currently be enabled.

powerpc/mbx8xx: Add per-section compilation and linking support. - removed per #2545.
powerpc/haleakala: Add per-section compilation and linking support. - #2561.
powerpc/ss555: Add per-section compilation and linking support. - #2563.
powerpc/qemuppc: Add per-section compilation and linking support. - #2564.
powerpc/mpc8260ads: Add per-section compilation and linking support. #2565.
m68k/mvme162: Add per-section compilation and linking support. - now uses shared
m68k/gen68360: Add per-section compilation and linking support. - #2566.
m68k/mvme147s: Add per-section compilation and linking support. - now uses shared
m68k/mvme147: Add per-section compilation and linking support. - now uses shared
m68k/mrm332: Add per-section compilation and linking support. - #2657.
m68k/mcf5225x: Add per-section compilation and linking support. - #2568.
m68k/mcf5329: Add per-section compilation and linking support. - #2569.
m68k/mcf52235: Add per-section compilation and linking support. - #2570.
m68k/mcf5235: Add per-section compilation and linking support. - #2571.
m68k/mcf5206elite: Add per-section compilation and linking support. - #2572.
m68k/gen68340: Add per-section compilation and linking support. - #2573.
m68k/av5282: Add per-section compilation and linking support. - #2574.
m68k/mvme167: Add per-section compilation and linking support. - now uses shared
m68k/gen68302: Add per-section compilation and linking support. - removed per #2543.
m68k/uC5282: Add per-section compilation and linking support. - #2575.
m68k/ods68302: Add per-section compilation and linking support. - removed per #2544.
arm/lpc176x: Add per-section compilation and linking support. - #2576.

Last edited on Feb 6, 2016 at 4:24:22 PM by Joel Sherrill (previous) (diff)

comment:4 Changed on Jan 25, 2016 at 8:14:25 PM by Joel Sherrill <joel@…>

In 449905a8acaa5eac214c51ef2547b0321e86d6b2/rtems:

m68k/mvme*: switch to shared linkcmds.base

updates #2542.

comment:5 Changed on Feb 6, 2016 at 4:26:17 PM by Joel Sherrill

All BSPs which had function sections enabled and clearly broke cxx_iostream should now have per function section linking disabled and a separate ticket filed.

comment:6 Changed on Feb 6, 2016 at 4:26:33 PM by Joel Sherrill

Resolution: fixed
Status: newclosed

comment:7 Changed on May 11, 2017 at 7:31:02 AM by Sebastian Huber

Milestone: 4.124.12.0

comment:8 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

Note: See TracTickets for help on using tickets.