[PATCH 29/32] powerpc/motorola_powerpc: Add per-section compilation and linking support
Joel Sherrill
joel at rtems.org
Fri Mar 11 00:15:34 UTC 2016
updates #2577.
For the mcp750 BSP variant without this option sample executables
sizes were as follows:
text data 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:
text data 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:
text data 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:
text data 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:
text data 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:
text data 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
For the mvme2307 BSP variant without this option sample executables
sizes were as follows:
text data bss dec hex filename
189781 29656 48361 267798 41616 ticker.exe
151221 26124 44681 222026 3634a minimum.exe
941701 214035 55585 1211321 127bb9 cxx_iostream.exe
586821 98050 61033 745904 b61b0 fileio.exe
509309 72164 76829 658302 a0b7e pppd.exe
254341 40232 50409 344982 54396 capture.exe
209493 31236 48437 289166 4698e nsecs.exe
219765 42036 48961 310762 4bdea paranoia.exe
276869 47700 48585 373154 5b1a2 cdtest.exe
187061 29488 48329 264878 40aae base_sp.exe
189269 30432 52105 271806 425be unlimited.exe
175477 28324 48257 252058 3d89a hello.exe
343593 41628 55433 440654 6b94e loopback.exe
For the mvme2307 BSP variant with this option sample executables
sizes were as follows:
text data bss dec hex filename
159921 19612 48329 227862 37a16 ticker.exe
120801 15516 44649 180966 2c2e6 minimum.exe
598393 50694 54737 703824 abd50 cxx_iostream.exe
552721 88466 60745 701932 ab5ec fileio.exe
455709 61848 76093 593650 90ef2 pppd.exe
228817 32444 50381 311642 4c15a capture.exe
180257 21176 48405 249838 3cfee nsecs.exe
189361 31184 48933 269478 41ca6 paranoia.exe
250665 28688 48553 327906 500e2 cdtest.exe
156945 19444 48297 224686 36dae base_sp.exe
157521 19592 52073 229186 37f42 unlimited.exe
143473 17552 48225 209250 33162 hello.exe
302877 33328 55321 391526 5f966 loopback.exe
For the qemuprep-altivec BSP variant without this option sample
executables sizes were as follows:
text data bss dec hex filename
188533 25288 47629 261450 3fd4a ticker.exe
150149 21740 43981 215870 34b3e minimum.exe
940373 213899 54853 1209125 127325 cxx_iostream.exe
585013 93674 60333 739020 b46cc fileio.exe
506173 67796 76129 650098 9eb72 pppd.exe
252965 35848 49677 338490 52a3a capture.exe
208133 26868 47705 282706 45052 nsecs.exe
218517 37652 48261 304430 4a52e paranoia.exe
276165 43792 47853 367810 59cc2 cdtest.exe
185845 25120 47597 258562 3f202 base_sp.exe
188053 26056 51373 265482 40d0a unlimited.exe
174261 23948 47525 245734 3bfe6 hello.exe
342233 37252 54701 434186 6a00a loopback.exe
For the qemuprep-altivec BSP variant with this option sample
executables sizes were as follows:
text data bss dec hex filename
161089 21244 47597 229930 3822a ticker.exe
122225 17908 43917 184050 2cef2 minimum.exe
595689 50718 54005 700412 aaffc cxx_iostream.exe
548433 87634 60009 696076 a9f0c fileio.exe
450029 61016 75357 586402 8f2a2 pppd.exe
224961 31612 49645 306218 4ac2a capture.exe
181329 22808 47673 251810 3d7a2 nsecs.exe
190561 33576 48201 272338 427d2 paranoia.exe
249593 31072 47821 328486 50326 cdtest.exe
158145 21076 47565 226786 375e2 base_sp.exe
158753 21984 51341 232078 38a8e unlimited.exe
144705 19944 47493 212142 33cae hello.exe
298941 32496 54585 386022 5e3e6 loopback.exe
For the qemuprep BSP variant without this option sample executables
sizes were as follows:
text data bss dec hex filename
186453 24912 47621 258986 3f3aa ticker.exe
147829 21372 43973 213174 340b6 minimum.exe
937413 213207 54845 1205465 1264d9 cxx_iostream.exe
583237 93306 60325 736868 b3e64 fileio.exe
505885 67420 76121 649426 9e8d2 pppd.exe
250949 35480 49669 336098 520e2 capture.exe
206037 26492 47697 280226 446a2 nsecs.exe
216469 37284 48253 302006 49bb6 paranoia.exe
273061 43104 47845 364010 58dea cdtest.exe
183733 24744 47589 256066 3e842 base_sp.exe
185941 25688 51365 262994 40352 unlimited.exe
172149 23572 47517 243238 3b626 hello.exe
340201 36876 54693 431770 6969a loopback.exe
For the qemuprep BSP variant with this option sample executables
sizes were as follows:
text data bss dec hex filename
153841 18412 47585 219838 35abe ticker.exe
114625 14308 43905 172838 2a326 minimum.exe
591417 49486 53993 694896 a9a70 cxx_iostream.exe
546353 87266 60001 693620 a9574 fileio.exe
449469 60648 75349 585466 8eefa pppd.exe
222641 31244 49637 303522 4a1a2 capture.exe
174049 19968 47661 241678 3b00e nsecs.exe
183313 29976 48189 261478 3fd66 paranoia.exe
244073 27488 47809 319370 4df8a cdtest.exe
150865 18244 47553 216662 34e56 base_sp.exe
151409 18384 51329 221122 35fc2 unlimited.exe
137361 16344 47481 201186 311e2 hello.exe
296733 32128 54577 383438 5d9ce loopback.exe
---
c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg | 5 ++++-
c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg | 5 ++++-
c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg | 5 ++++-
c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg | 7 +++++--
.../powerpc/motorola_powerpc/make/custom/qemuprep-altivec.cfg | 5 ++++-
c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg | 5 ++++-
6 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg
index 8ff97b3..98e8fd9 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg
@@ -8,12 +8,15 @@ RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc750
# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
+# and (hopefully) optimize for it.
#
CPU_CFLAGS = -mcpu=750 -Dmpc750
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g -mmultiple -mstring -mstrict-align
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
define bsp-post-link
$(default-bsp-post-link)
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg
index 6c7f597..aa91b05 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg
@@ -8,11 +8,14 @@ RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc6xx
# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
+# and (hopefully) optimize for it.
CPU_CFLAGS = -mcpu=603e -Dppc603e
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g -mmultiple -mstring -mstrict-align
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
define bsp-post-link
$(default-bsp-post-link)
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg
index d724b5d..dadb275 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg
@@ -8,11 +8,14 @@ RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc8240
# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
+# and (hopefully) optimize for it.
CPU_CFLAGS = -mcpu=603e -Dppc603e
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g -mmultiple -mstring -mstrict-align
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
define bsp-post-link
$(default-bsp-post-link)
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg
index ee00561..cf2ab28 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg
@@ -8,12 +8,15 @@ RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc604
# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
+# and (hopefully) optimize for it.
#
-CPU_CFLAGS = -mcpu=604 -mmultiple -mstring -mstrict-align -meabi
+CPU_CFLAGS = -mcpu=604 -mmultiple -mstring -mstrict-align -meabi
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
define bsp-post-link
$(default-bsp-post-link)
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep-altivec.cfg b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep-altivec.cfg
index 1dd1744..87fbb25 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep-altivec.cfg
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep-altivec.cfg
@@ -8,12 +8,15 @@ RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc7400
# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
+# and (hopefully) optimize for it.
#
CPU_CFLAGS = -mcpu=7400 -mmultiple -mstring -mstrict-align -D__ppc_generic
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
ifdef PURE_BINARY
define bsp-post-link
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg
index e5f11fc..36df4af 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg
@@ -8,12 +8,15 @@ RTEMS_CPU=powerpc
RTEMS_CPU_MODEL=mpc604
# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
+# and (hopefully) optimize for it.
#
CPU_CFLAGS = -mcpu=powerpc -mmultiple -mstring -mstrict-align -D__ppc_generic
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
ifdef PURE_BINARY
define bsp-post-link
--
1.8.3.1
More information about the devel
mailing list