[rtems commit] arm/gdbarmsim: Add per-section compilation and linking support

Joel Sherrill joel at rtems.org
Sat Jan 9 19:59:40 UTC 2016


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

Author:    Aun-Ali Zaidi <admin at kodeit.net>
Date:      Sat Jan  9 13:05:12 2016 -0600

arm/gdbarmsim: Add per-section compilation and linking support

ARM1136JF-S
===========

The size of the sample executables without this option were:

   text	   data	  bss	dec	 hex	filename
  45920	   1392	4146980	4194292	 3ffff4	minimum.exe
  88704	   1668	4103908	4194280	 3fffe8	base_sp.exe
 109060	   1756	4083460	4194276	 3fffe4	nsecs.exe
 186464	   2144	4005668	4194276	 3fffe4	capture.exe
 200824	   1696	3991776	4194296	 3ffff8	cdtest.exe
 174568	   2044	4017668	4194280	 3fffe8	paranoia.exe
 102836	   1636	4089828	4194300	 3ffffc	hello.exe
 549204	   5580	3639488	4194272	 3fffe0	fileio.exe
  92060	   1668	4100576	4194304	 400000	ticker.exe
 265276	   6440	3922560	4194276	 3fffe4	loopback.exe
 588468	   1904	3603904	4194276	 3fffe4	cxx_iostream.exe
 441248	  12556	3740480	4194284	 3fffec	pppd.exe
  91712	   1692	4100900	4194304	 400000	unlimited.exe

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

   text	   data	  bss	dec	 hex	filename
  28228	   1212	4164864	4194304	 400000	minimum.exe
  79944	   1636	4112708	4194288	 3ffff0	base_sp.exe
 100388	   1724	4092164	4194276	 3fffe4	nsecs.exe
 175784	   2104	4016388	4194276	 3fffe4	capture.exe
 190152	   1672	4002464	4194288	 3ffff0	cdtest.exe
 165632	   2012	4026628	4194272	 3fffe0	paranoia.exe
  93276	   1604	4099396	4194276	 3fffe4	hello.exe
 530500	   5548	3658240	4194288	 3ffff0	fileio.exe
  83292	   1636	4109376	4194304	 400000	ticker.exe
 242724	   6328	3945248	4194300	 3ffffc	loopback.exe
 409528	   1880	3782884	4194292	 3ffff4	cxx_iostream.exe
 405816	  12392	3776068	4194276	 3fffe4	pppd.exe
  82476	   1668	4110144	4194288	 3ffff0	unlimited.exe

ARM1136J-S
==========

The size of the sample executables without this option were:

   text	   data	  bss	dec	 hex	filename
  45920	   1392	4146980	4194292	 3ffff4	minimum.exe
  88704	   1668	4103908	4194280	 3fffe8	base_sp.exe
 109060	   1756	4083460	4194276	 3fffe4	nsecs.exe
 186464	   2144	4005668	4194276	 3fffe4	capture.exe
 200824	   1696	3991776	4194296	 3ffff8	cdtest.exe
 174568	   2044	4017668	4194280	 3fffe8	paranoia.exe
 102836	   1636	4089828	4194300	 3ffffc	hello.exe
 549204	   5580	3639488	4194272	 3fffe0	fileio.exe
  92060	   1668	4100576	4194304	 400000	ticker.exe
 265276	   6440	3922560	4194276	 3fffe4	loopback.exe
 588468	   1904	3603904	4194276	 3fffe4	cxx_iostream.exe
 441248	  12556	3740480	4194284	 3fffec	pppd.exe
  91712	   1692	4100900	4194304	 400000	unlimited.exe

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

   text	   data	  bss	dec	 hex	filename
  28228	   1212	4164864	4194304	 400000	minimum.exe
  79944	   1636	4112708	4194288	 3ffff0	base_sp.exe
 100388	   1724	4092164	4194276	 3fffe4	nsecs.exe
 175784	   2104	4016388	4194276	 3fffe4	capture.exe
 190152	   1672	4002464	4194288	 3ffff0	cdtest.exe
 165632	   2012	4026628	4194272	 3fffe0	paranoia.exe
  93276	   1604	4099396	4194276	 3fffe4	hello.exe
 530500	   5548	3658240	4194288	 3ffff0	fileio.exe
  83292	   1636	4109376	4194304	 400000	ticker.exe
 242724	   6328	3945248	4194300	 3ffffc	loopback.exe
 409528	   1880	3782884	4194292	 3ffff4	cxx_iostream.exe
 405816	  12392	3776068	4194276	 3fffe4	pppd.exe
  82476	   1668	4110144	4194288	 3ffff0	unlimited.exe

ARM7TDMI
========

The size of the sample executables without this option were:

   text	   data	    bss	    dec	    hex	filename
  47344	   1392	4145540	4194276	 3fffe4	minimum.exe
  91352	   1668	4101284	4194304	 400000	base_sp.exe
 111728	   1756	4080804	4194288	 3ffff0	nsecs.exe
 190272	   2144	4001860	4194276	 3fffe4	capture.exe
 203632	   1696	3988960	4194288	 3ffff0	cdtest.exe
 179708	   2044	4012548	4194300	 3ffffc	paranoia.exe
 105184	   1636	4087460	4194280	 3fffe8	hello.exe
 562224	   5580	3626500	4194304	 400000	fileio.exe
  94788	   1668	4097824	4194280	 3fffe8	ticker.exe
 270812	   6440	3917024	4194276	 3fffe4	loopback.exe
 591284	   1904	3601088	4194276	 3fffe4	cxx_iostream.exe
 449596	  12556	3732128	4194280	 3fffe8	pppd.exe
  94400	   1692	4098212	4194304	 400000	unlimited.exe

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

   text	   data	    bss	    dec	    hex	filename
  29188	   1212	4163904	4194304	 400000	minimum.exe
  82432	   1636	4110212	4194280	 3fffe8	base_sp.exe
 102904	   1724	4089668	4194296	 3ffff8	nsecs.exe
 179208	   2104	4012964	4194276	 3fffe4	capture.exe
 192656	   1672	3999968	4194296	 3ffff8	cdtest.exe
 170132	   2012	4022148	4194292	 3ffff4	paranoia.exe
  95432	   1604	4097252	4194288	 3ffff0	hello.exe
 542896	   5548	3645860	4194304	 400000	fileio.exe
  85852	   1636	4106816	4194304	 400000	ticker.exe
 247700	   6328	3940256	4194284	 3fffec	loopback.exe
 412032	   1880	3780388	4194300	 3ffffc	cxx_iostream.exe
 413348	  12392	3768548	4194288	 3ffff0	pppd.exe
  84996	   1668	4107616	4194280	 3fffe8	unlimited.exe

ARM920
======

The size of the sample executables without this option were:

   text	   data	  bss	dec	 hex	filename
  47416	   1392	4145476	4194284	 3fffec	minimum.exe
  91420	   1668	4101216	4194304	 400000	base_sp.exe
 111812	   1756	4080736	4194304	 400000	nsecs.exe
 190340	   2144	4001796	4194280	 3fffe8	capture.exe
 203704	   1696	3988896	4194296	 3ffff8	cdtest.exe
 179692	   2044	4012548	4194284	 3fffec	paranoia.exe
 105256	   1636	4087396	4194288	 3ffff0	hello.exe
 562560	   5580	3626148	4194288	 3ffff0	fileio.exe
  94848	   1668	4097764	4194280	 3fffe8	ticker.exe
 270804	   6440	3917056	4194300	 3ffffc	loopback.exe
 591348	   1904	3601024	4194276	 3fffe4	cxx_iostream.exe
 449616	  12556	3732128	4194300	 3ffffc	pppd.exe
  94476	   1692	4098112	4194280	 3fffe8	unlimited.exe

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

   text	   data	  bss	dec	 hex	filename
  29268	   1212	4163808	4194288	 3ffff0	minimum.exe
  82508	   1636	4110144	4194288	 3ffff0	base_sp.exe
 102988	   1724	4089568	4194280	 3fffe8	nsecs.exe
 179276	   2104	4012900	4194280	 3fffe8	capture.exe
 192736	   1672	3999872	4194280	 3fffe8	cdtest.exe
 170124	   2012	4022148	4194284	 3fffec	paranoia.exe
  95504	   1604	4097188	4194296	 3ffff8	hello.exe
 543248	   5548	3645508	4194304	 400000	fileio.exe
  85920	   1636	4106724	4194280	 3fffe8	ticker.exe
 247676	   6328	3940288	4194292	 3ffff4	loopback.exe
 412104	   1880	3780292	4194276	 3fffe4	cxx_iostream.exe
 413392	  12392	3768516	4194300	 3ffffc	pppd.exe
  85080	   1668	4107556	4194304	 400000	unlimited.exe

ARM CORTEX A9
=============

The size of the sample executables without this option were:

   text	   data	  bss	dec	 hex	filename
  46628	   1392	4146272	4194292	 3ffff4	minimum.exe
  89596	   1668	4103040	4194304	 400000	base_sp.exe
 109968	   1756	4082560	4194284	 3fffec	nsecs.exe
 187540	   2144	4004612	4194296	 3ffff8	capture.exe
 201824	   1696	3990752	4194272	 3fffe0	cdtest.exe
 176032	   2044	4016196	4194272	 3fffe0	paranoia.exe
 103636	   1636	4089028	4194300	 3ffffc	hello.exe
 550428	   5580	3638272	4194280	 3fffe8	fileio.exe
  93148	   1668	4099488	4194304	 400000	ticker.exe
 267048	   6440	3920800	4194288	 3ffff0	loopback.exe
 589380	   1904	3603008	4194292	 3ffff4	cxx_iostream.exe
 444292	  12556	3737440	4194288	 3ffff0	pppd.exe
  92568	   1692	4100036	4194296	 3ffff8	unlimited.exe

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

   text	   data	  bss	dec	 hex	filename
  28604	   1212	4164480	4194296	 3ffff8	minimum.exe
  80652	   1636	4112000	4194288	 3ffff0	base_sp.exe
 101116	   1724	4091460	4194300	 3ffffc	nsecs.exe
 176744	   2104	4015428	4194276	 3fffe4	capture.exe
 190956	   1672	4001664	4194292	 3ffff4	cdtest.exe
 166892	   2012	4025380	4194284	 3fffec	paranoia.exe
  93848	   1604	4098820	4194272	 3fffe0	hello.exe
 531552	   5548	3657184	4194284	 3fffec	fileio.exe
  84200	   1636	4108452	4194288	 3ffff0	ticker.exe
 244324	   6328	3943648	4194300	 3ffffc	loopback.exe
 410260	   1880	3782148	4194288	 3ffff0	cxx_iostream.exe
 408736	  12392	3773156	4194284	 3fffec	pppd.exe
  83140	   1668	4109472	4194280	 3fffe8	unlimited.exe

---

 c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136jfs.cfg  | 4 ++++
 c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136js.cfg   | 4 ++++
 c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm7tdmi.cfg    | 4 ++++
 c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg      | 4 ++++
 c/src/lib/libbsp/arm/gdbarmsim/make/custom/armcortexa9.cfg | 4 ++++
 5 files changed, 20 insertions(+)

diff --git a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136jfs.cfg b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136jfs.cfg
index efa7a9e..a802a8f 100644
--- a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136jfs.cfg
+++ b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136jfs.cfg
@@ -13,3 +13,7 @@ CPU_CFLAGS = -mcpu=arm1136jf-s
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+
+# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+LDFLAGS            = -Wl,--gc-sections
diff --git a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136js.cfg b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136js.cfg
index 5847fc2..7ae3e6b 100644
--- a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136js.cfg
+++ b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm1136js.cfg
@@ -13,3 +13,7 @@ CPU_CFLAGS = -mcpu=arm1136j-s
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+
+# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+LDFLAGS            = -Wl,--gc-sections
diff --git a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm7tdmi.cfg b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm7tdmi.cfg
index 6bcc460..28a2e76 100644
--- a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm7tdmi.cfg
+++ b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm7tdmi.cfg
@@ -13,3 +13,7 @@ CPU_CFLAGS = -mcpu=arm7tdmi
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+
+# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+LDFLAGS            = -Wl,--gc-sections
diff --git a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg
index 8d30b17..72478f8 100644
--- a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg
+++ b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg
@@ -13,3 +13,7 @@ CPU_CFLAGS = -mcpu=arm920
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+
+# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+LDFLAGS            = -Wl,--gc-sections
diff --git a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/armcortexa9.cfg b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/armcortexa9.cfg
index 2f19002..693eb9f 100644
--- a/c/src/lib/libbsp/arm/gdbarmsim/make/custom/armcortexa9.cfg
+++ b/c/src/lib/libbsp/arm/gdbarmsim/make/custom/armcortexa9.cfg
@@ -14,3 +14,7 @@ CPU_CFLAGS = -mcpu=cortex-a9
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g
+
+# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+LDFLAGS            = -Wl,--gc-sections



More information about the vc mailing list