[rtems commit] sh/simsh: Add per-section compilation and linking support

Joel Sherrill joel at rtems.org
Fri Mar 11 20:14:54 UTC 2016


Module:    rtems
Branch:    master
Commit:    f34c41a2539d04c0b7a2900cd7e7a94dbe7cf76e
Changeset: http://git.rtems.org/rtems/commit/?id=f34c41a2539d04c0b7a2900cd7e7a94dbe7cf76e

Author:    Joel Sherrill <joel at rtems.org>
Date:      Thu Mar 10 17:09:20 2016 -0600

sh/simsh: Add per-section compilation and linking support

updates #2577.

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

   text	   data	    bss	    	  dec	    	  hex	filename
  73984	   7220	   7036	  88240	  158b0	ticker.exe
  21284	   6388	   2856	  30528	   7740	minimum.exe
 368616	  17820	  36256	 422692	  67324	pppd.exe
 162660	   7876	   9936	 180472	  2c0f8	capture.exe
  87812	   7308	   7121	 102241	  18f61	nsecs.exe
 152564	   7592	   7604	 167760	  28f50	paranoia.exe
 161260	  16640	   8108	 186008	  2d698	cdtest.exe
  71256	   7220	   7012	  85488	  14df0	base_sp.exe
  73852	   7248	  10852	  91952	  16730	unlimited.exe
  86888	   7192	   7016	 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:

   text	   data	    bss	    	  dec	    	  hex	filename
  68260	   5688	   5984	  79932	  1383c	ticker.exe
  11724	   4364	   1824	  17912	   45f8	minimum.exe
 331732	  13000	  34424	 379156	  5c914	pppd.exe
 153408	   6312	   8892	 168612	  292a4	capture.exe
  82804	   5776	   6073	  94653	  171bd	nsecs.exe
 145108	   6056	   6560	 157724	  2681c	paranoia.exe
 153036	   6196	   7060	 166292	  28994	cdtest.exe
  64236	   5684	   5964	  75884	  1286c	base_sp.exe
  66684	   5712	   9808	  82204	  1411c	unlimited.exe
  79304	   5656	   5956	  90916	  16324	hello.exe
 193844	   6936	  13148	 213928	  343a8	loopback.exe

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

   text	   data	    bss	    	  dec	    	  hex	filename
  71344	   7168	   7040	  85552	  14e30	ticker.exe
  19156	   6352	   2860	  28368	   6ed0	minimum.exe
 366744	  17768	  36244	 420756	  66b94	pppd.exe
 160612	   7824	   9940	 178376	  2b8c8	capture.exe
  85156	   7256	   7125	  99537	  184d1	nsecs.exe
 149796	   7540	   7608	 164944	  28450	paranoia.exe
 158908	  16588	   8112	 183608	  2cd38	cdtest.exe
  69112	   7168	   7016	  83296	  14560	base_sp.exe
  71692	   7196	  10856	  89744	  15e90	unlimited.exe
  84792	   7140	   7020	  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:

   text	   data	    bss	    	  dec	    	  hex	filename
  66404	   5688	   5984	  78076	  130fc	ticker.exe
  11340	   4364	   1824	  17528	   4478	minimum.exe
 331044	  13000	  34424	 378468	  5c664	pppd.exe
 152640	   6312	   8892	 167844	  28fa4	capture.exe
  80580	   5776	   6073	  92429	  1690d	nsecs.exe
 143652	   6056	   6560	 156268	  2626c	paranoia.exe
 151980	   6196	   7060	 165236	  28574	cdtest.exe
  63404	   5684	   5964	  75052	  1252c	base_sp.exe
  65836	   5712	   9808	  81356	  13dcc	unlimited.exe
  78616	   5656	   5956	  90228	  16074	hello.exe
 193140	   6936	  13148	 213224	  340e8	loopback.exe

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

   text	   data	    bss	    	  dec	    	  hex	filename
  72736	   6140	   7040	  85916	  14f9c	ticker.exe
  19156	   5324	   2860	  27340	   6acc	minimum.exe
 368864	  16740	  36252	 421856	  66fe0	pppd.exe
 159756	   6796	   9932	 176484	  2b164	capture.exe
  88228	   6228	   7109	 101565	  18cbd	nsecs.exe
 122684	   6460	   7380	 136524	  2154c	paranoia.exe
 157508	  15740	   8100	 181348	  2c464	cdtest.exe
  70504	   6140	   7000	  83644	  146bc	base_sp.exe
  73116	   6168	  10856	  90140	  1601c	unlimited.exe
  81616	   6112	   7012	  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:

   text	   data	    bss	    	  dec	    	  hex	filename
  67956	   5688	   5984	  79628	  1370c	ticker.exe
  11404	   4364	   1824	  17592	   44b8	minimum.exe
 333228	  13000	  34416	 380644	  5cee4	pppd.exe
 151864	   6312	   8884	 167060	  28c94	capture.exe
  83828	   5776	   6073	  95677	  175bd	nsecs.exe
 116764	   6004	   6332	 129100	  1f84c	paranoia.exe
 150740	   6196	   7052	 163988	  28094	cdtest.exe
  64940	   5684	   5964	  76588	  12b2c	base_sp.exe
  67404	   5712	   9808	  82924	  143ec	unlimited.exe
  75616	   5656	   5964	  87236	  154c4	hello.exe
 192956	   6936	  13156	 213048	  34038	loopback.exe

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

   text	   data	    bss	    	  dec	    	  hex	filename
  73104	   6052	   7172	  86328	  15138	ticker.exe
  19908	   5280	   2996	  28184	   6e18	minimum.exe
 369572	  16652	  36380	 422604	  672cc	pppd.exe
 160384	   6708	  10076	 177168	  2b410	capture.exe
  88628	   6140	   7257	 102025	  18e89	nsecs.exe
 133776	   6424	   7744	 147944	  241e8	paranoia.exe
 157496	  15616	   8248	 181360	  2c470	cdtest.exe
  70920	   6052	   7148	  84120	  14898	base_sp.exe
  73532	   6080	  10988	  90600	  161e8	unlimited.exe
  82180	   6024	   7156	  95360	  17480	hello.exe
 217852	  10544	  14472	 242868	  3b4b4	loopback.exe

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

   text	   data	    bss	    	  dec	    	  hex	filename
  68388	   5688	   6120	  80196	  13944	ticker.exe
  12572	   4364	   1960	  18896	   49d0	minimum.exe
 333776	  13000	  34548	 381324	  5d18c	pppd.exe
 152444	   6312	   9016	 167772	  28f5c	capture.exe
  84276	   5776	   6209	  96261	  17805	nsecs.exe
 127888	   6056	   6684	 140628	  22554	paranoia.exe
 150632	   6196	   7184	 164012	  280ac	cdtest.exe
  65500	   5684	   6100	  77284	  12de4	base_sp.exe
  67964	   5712	   9944	  83620	  146a4	unlimited.exe
  76260	   5656	   6096	  88012	  157cc	hello.exe
 193280	   6936	  13288	 213504	  34200	loopback.exe

---

 c/src/lib/libbsp/sh/shsim/make/custom/simsh1.cfg  | 5 ++++-
 c/src/lib/libbsp/sh/shsim/make/custom/simsh2.cfg  | 5 ++++-
 c/src/lib/libbsp/sh/shsim/make/custom/simsh2e.cfg | 5 ++++-
 c/src/lib/libbsp/sh/shsim/make/custom/simsh4.cfg  | 5 ++++-
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/c/src/lib/libbsp/sh/shsim/make/custom/simsh1.cfg b/c/src/lib/libbsp/sh/shsim/make/custom/simsh1.cfg
index 86dc108..84e891a 100644
--- a/c/src/lib/libbsp/sh/shsim/make/custom/simsh1.cfg
+++ b/c/src/lib/libbsp/sh/shsim/make/custom/simsh1.cfg
@@ -13,4 +13,7 @@ RTEMS_CPU_MODEL=shgdb
 CPU_CFLAGS = -m1
 
 # 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
diff --git a/c/src/lib/libbsp/sh/shsim/make/custom/simsh2.cfg b/c/src/lib/libbsp/sh/shsim/make/custom/simsh2.cfg
index bf18cc6..8d23897 100644
--- a/c/src/lib/libbsp/sh/shsim/make/custom/simsh2.cfg
+++ b/c/src/lib/libbsp/sh/shsim/make/custom/simsh2.cfg
@@ -13,4 +13,7 @@ RTEMS_CPU_MODEL=shgdb
 CPU_CFLAGS = -m2
 
 # 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
diff --git a/c/src/lib/libbsp/sh/shsim/make/custom/simsh2e.cfg b/c/src/lib/libbsp/sh/shsim/make/custom/simsh2e.cfg
index 84f06e2..c47e40f 100644
--- a/c/src/lib/libbsp/sh/shsim/make/custom/simsh2e.cfg
+++ b/c/src/lib/libbsp/sh/shsim/make/custom/simsh2e.cfg
@@ -8,8 +8,11 @@ RTEMS_CPU=sh
 RTEMS_CPU_MODEL=shgdb
 
 #  This contains the compiler options necessary to select the CPU model
-#  and (hopefully) optimize for it. 
+#  and (hopefully) optimize for it.
 CPU_CFLAGS = -m2e -ml
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
diff --git a/c/src/lib/libbsp/sh/shsim/make/custom/simsh4.cfg b/c/src/lib/libbsp/sh/shsim/make/custom/simsh4.cfg
index 9245a85..076ba3d 100644
--- a/c/src/lib/libbsp/sh/shsim/make/custom/simsh4.cfg
+++ b/c/src/lib/libbsp/sh/shsim/make/custom/simsh4.cfg
@@ -8,8 +8,11 @@ RTEMS_CPU=sh
 RTEMS_CPU_MODEL=shgdb
 
 #  This contains the compiler options necessary to select the CPU model
-#  and (hopefully) optimize for it. 
+#  and (hopefully) optimize for it.
 CPU_CFLAGS = -m4 -ml
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections




More information about the vc mailing list