summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel@rtems.org>2016-03-10 17:22:59 -0600
committerJoel Sherrill <joel@rtems.org>2016-03-11 09:59:34 -0600
commit45e5623e8b2339852cdd69cc47324baf6d0b1efc (patch)
tree8d5e01ddaefc6dd512e9d901f900634ae6f4f255
parentsh/simsh: Add per-section compilation and linking support (diff)
downloadrtems-45e5623e8b2339852cdd69cc47324baf6d0b1efc.tar.bz2
powerpc/motorola_powerpc: Add per-section compilation and linking support
updates #2577. closes #2579. In addition to the make/custom files, the ppcboot.lds file had to be updated to add a KEEP() on the .entry_point_section. 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
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mcp750.cfg5
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mtx603e.cfg5
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2100.cfg5
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/mvme2307.cfg7
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep-altivec.cfg5
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/make/custom/qemuprep.cfg5
-rw-r--r--c/src/lib/libbsp/powerpc/shared/startup/linkcmds2
7 files changed, 26 insertions, 8 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 8ff97b3a1a..98e8fd9055 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 6c7f59787c..aa91b05be2 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 d724b5dd1e..dadb275a04 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 ee00561d01..cf2ab28a4b 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 1dd1744a4d..87fbb25457 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 e5f11fc468..36df4afa32 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
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds
index d0d22a774e..a18382bd14 100644
--- a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds
+++ b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds
@@ -13,7 +13,7 @@ SECTIONS
{
.entry_point_section :
{
- *(.entry_point_section)
+ KEEP(*(.entry_point_section))
} > VECTORS
/*