Cruz Monrreal
c679dee286
Merge pull request #5848 from theotherjimmy/compile-py3
...
Python2+3: mbed compile, mbed test --compile, python unit tests
2018-02-07 15:48:18 -06:00
Cruz Monrreal
779ee843ea
Merge pull request #5797 from hosse005/master
...
ARMC5+6: Specify CPU for ARM scatter file preprocessor
2018-02-07 14:50:44 -06:00
deepikabhavnani
c50518e11c
-march not required if -mcpu is set
...
GCC_ARM throws warning if both architecture and core are set (though
correct). If CPU option is set correctly, architecture is set by compiler
itself.
2018-02-06 22:46:04 -06:00
Jimmy Brisson
db4c380b2b
Python2+3: build_travis.py and Travis tests
2018-02-05 11:07:37 -06:00
Jimmy Brisson
1dd39fbe80
Python2+3: mbed test --compile
2018-02-05 11:07:37 -06:00
Jimmy Brisson
c93a2bfa4c
Python2+3: Use absolute import where possible
2018-02-05 11:07:37 -06:00
Jimmy Brisson
cca4425af6
Python2+3: iteritems -> items
2018-02-05 11:04:36 -06:00
Jimmy Brisson
7abeec9744
Python2+3: clean argparse
2018-02-05 11:04:35 -06:00
Jimmy Brisson
10a91216f5
Python2+3: The rest of mbed compile
2018-02-05 11:04:01 -06:00
Jimmy Brisson
380ecb1b0e
Python2+3: working through many has_attr exceptions
2018-02-05 11:04:01 -06:00
Jimmy Brisson
68737f2762
Python2+3: Things import
2018-02-05 11:03:44 -06:00
Jimmy Brisson
9b8ba4dd98
Use relative path to scatter for include path
2018-02-02 11:53:51 -06:00
Jimmy Brisson
a92d0df4ae
Move region adding to mbedToolchain
2018-01-31 10:04:34 -06:00
PHST
3ce173b5ce
Simplify and Improve error/warning parser for arm_gcc
2018-01-24 08:48:15 +01:00
Evan Hosseini
9245b50a54
ARM: ARMC6: Update scatter file shebang include directory
2018-01-12 13:43:20 -06:00
Evan Hosseini
6b21a5539a
ARM: ARMC6: Copy headers along with the updated linker scatter file
...
* Need to copy headers into the build directory as well when also
writing an updated linker scatter file to the build directory
2018-01-10 15:46:20 -06:00
Evan Hosseini
3c21f1edfb
ARM: ARMC6: Fix for ARM linker script cpu formatting
2018-01-08 09:50:33 -06:00
Evan Hosseini
453a1d79f1
ARM: ARMC6: Specify CPU for ARM scatter file preprocessor
...
Fixes #5796
2018-01-05 15:16:57 -06:00
Cruz Monrreal II
65dd31489a
Merge pull request #5755 from jorisa/fix-make-paths
...
Fix for #5676 make.py generates duplicate file entries in link_files.txt
2017-12-28 20:57:20 +00:00
Joris Aerts
d3f6ea4ed2
Fix for #5676 make.py generates duplicate file entries in link_files.txt
2017-12-21 13:53:19 +01:00
TomoYamanaka
8e854b1c89
Add Cortex-A9 for ARMCC and ARMC6
...
I added the definition of "Cortex-A9" for core support of ARMCC and ARMC6 in arm.py.
2017-12-21 14:09:24 +09:00
Jimmy Brisson
ab8a8de1a7
Merge pull request #5317 from theotherjimmy/fix-arm-supported-check
...
Tools: Check for toolchain and core support for Arm Compilers
2017-10-23 10:33:22 -05:00
Jimmy Brisson
b0fc103de6
Check for core support in ARM toolchain
2017-10-20 10:05:37 -05:00
Jimmy Brisson
4673fb6580
Check for uARM support when compiling with uARM
2017-10-17 11:08:58 -05:00
Christopher Haster
9fd6c5ae56
Fix behaviour of empty .mbedignore
...
Should ignore nothing, currently ignores everything
An empty .mbedignore is easy to create when tinkering with a local repo
2017-10-13 11:52:13 -05:00
Jimmy Brisson
b9b4bb5c25
Move IAR flag passing to constructor
2017-09-26 08:59:01 -05:00
Jimmy Brisson
4de448142b
Merge pull request #5125 from theotherjimmy/improve-memap-performance
...
Refactor memap for speed
2017-09-21 11:40:41 -05:00
Anna Bridge
02a10e5974
Merge pull request #5094 from deepikabhavnani/m23_armc6
...
ARMC6 support for Cortex-M23
2017-09-19 10:25:33 +01:00
Jimmy Brisson
8c54c4efa8
Display full paths in armlink output
2017-09-18 16:40:52 -05:00
Deepika
eea29d34a7
Corrected check for ARM/ARMC6 toolchain
...
ARMC6 support required ARM compiler support as mandatory requirement which
should not be the case. Cortex-M23/M33 devices are not suuported by ARM compiler5
Adding ARMC6 without ARM in target.json should work now.
2017-09-14 14:14:35 -05:00
Deepika
60c600ac11
ARMC6 support for Cortex-M23
2017-09-13 17:07:05 -05:00
Jimmy Brisson
58372d3fdf
Allow ARMC6 to run post-binary-hooks marked for ARM
2017-09-13 14:50:06 -05:00
Anna Bridge
7b428916f5
Merge pull request #4949 from theotherjimmy/feature-armc5+armc6
...
NEW TOOLCHAIN: Add the ARMC6 Compiler
2017-09-13 10:39:15 +01:00
Jimmy Brisson
d56c19f253
Detect test skips with armc6
2017-09-11 13:20:33 -05:00
Jimmy Brisson
887d29372b
Check for support in ARMC6
2017-09-11 13:20:33 -05:00
Jimmy Brisson
f4b7d8ba77
Avoid forcing preprocessing
...
We avoid forcing preprocessing by not replacing the first line when it's
not a shebang (#!). Should work pretty darn well.
2017-09-11 13:20:32 -05:00
Jimmy Brisson
e9d3166a5e
Expose present get_compile_options API in Toolcahins
2017-09-11 13:20:32 -05:00
Jimmy Brisson
1fef5553b4
Parse deps the same for GCC_ARM and ARMC6
2017-09-11 13:17:54 -05:00
Jimmy Brisson
98b4768434
Initial toolchain class for ARMC6
...
While ARMC6 does use the same linker (armlink) as ARM Compiler 5, it
is not compatible.
The reason for this incompatibility are twofold:
* armlink may invoke the C preprocessor by adding a shebang
(`#!`) to the top of their input files.
* ARMC6 and ARMC5 differ in how you invoke the preprocessor:
* ARMC5: `#! armcc -E`
* ARMC6: `#! armclang -E`
This forces the tools to rewrite the shebang if it's wrong.
This does not yet handle dependencies properly
2017-09-11 13:17:54 -05:00
Deepika
ca1f24cc0e
Add -mcmse flag for GCC and improved logic for cpu core
2017-09-11 11:49:28 -05:00
Deepika
9422c351e4
Initial RTX and tools support for Cortex M-23/M-33 devices
2017-09-11 11:43:26 -05:00
Shrikant Tudavekar
ddc9e0840a
disable -f option for assembly files for IAR
2017-08-25 16:59:21 -05:00
Marcelo Salazar
5469be4de0
Fix to generate memory_usage key in report
2017-08-06 14:03:09 +01:00
Jimmy Brisson
8b31078d58
Add missing collect_include passing
2017-08-01 10:29:11 -05:00
Jimmy Brisson
2305a8c7e4
Merge pull request #4783 from theotherjimmy/refactor-exporter-ignores
...
Collect ignored directories in scan and use in exporters
2017-07-31 15:25:07 +00:00
Jimmy Brisson
c8e6cf5bdd
Collect ignores from scan resources and use in exporetrs
2017-07-26 14:31:22 -05:00
Jimmy Brisson
10a06a7083
Merge pull request #4733 from theotherjimmy/fix-old-builds
...
Prevent double define in very old builds
2017-07-17 11:07:59 -05:00
Martin Kojtal
441fda979d
tools: fix toolchain extend inc paths
...
inc paths might be a list or might not be (just single string). If they don't, we are ending up with non valid include paths (one letter include paths).
This as result would not compile.
2017-07-12 16:24:06 +01:00
Jimmy Brisson
d25560324c
Prevent double define in very old builds
...
Partially reverts 2ddf4b33cb
2017-07-10 15:59:54 -05:00
Jimmy Brisson
99b37b28bb
Merge pull request #4468 from moonchen/quote-include-paths
...
Put quotes around include files
2017-07-06 10:13:27 -05:00
Mo Chen
1b63202c27
Put quotes around include files
...
This fixes a problem when the path to include files have spaces.
See https://github.com/ARMmbed/mbed-os-example-uvisor/issues/31 for an
example of this problem.
Signed-off-by: Mo Chen <mo.chen@arm.com>
2017-06-20 14:00:38 -05:00
Jimmy Brisson
bf1a69b9be
Fill out remainder of LazyDict dict compatibility
2017-06-16 15:52:30 -05:00
Jimmy Brisson
7513d4f897
Correct len and iter operators for LazyDict
2017-06-16 15:28:10 -05:00
Jimmy Brisson
27c55d5c8d
Delay relative_to and win_to_unix operations over features
2017-06-16 15:16:24 -05:00
Jimmy Brisson
85748dbd21
Delay feature scan until it's rquired
2017-06-16 14:58:58 -05:00
Jimmy Brisson
55801b619d
Improve speed of .mbedignore processing
2017-06-16 13:36:56 -05:00
Yuguo Zou
02687b5ec5
A fix to enum issue
2017-06-03 20:14:54 +01:00
Yuguo Zou
7867a816d7
WiFi test fix for GCC
...
right now still need to add flag in gcc.py, we are fixing!
2017-06-03 20:14:51 +01:00
Yuguo Zou
53e837bce2
add support for REALTEK_RTL8195AM
2017-06-03 20:14:45 +01:00
Jimmy Brisson
4806229090
Fix bug in dependency handling
2017-05-31 09:54:09 -05:00
Jimmy Brisson
3123a1d394
Switch dependencies to their respective CIL flags
2017-05-19 16:30:49 -05:00
Jimmy Brisson
5152c1c7ac
Make object files depend on compiler flags
2017-05-19 16:29:55 -05:00
Sam Grove
94b67de439
Merge pull request #4202 from theotherjimmy/rom-size-injection
...
Add support for Unmanaged Bootloader
2017-05-18 09:34:13 -05:00
Sam Grove
943ef8648b
Merge pull request #4325 from theotherjimmy/fix-unicode
...
Decode STDERR from compiler
2017-05-18 09:26:06 -05:00
Jimmy Brisson
4ed87e2f3c
Decode STDERR from compiler
2017-05-15 14:13:50 -05:00
Bartek Szatkowski
2ddf4b33cb
CMSIS5: Remove ARM7 support and targets
2017-05-12 13:48:43 -05:00
Jimmy Brisson
58167a2071
All C files depend on mbed_app.json
2017-05-11 14:20:09 -05:00
Jimmy Brisson
bbde3797cb
Make binary depend on config directly
2017-05-08 13:33:37 -05:00
Jimmy Brisson
da9c10be48
Expand build reports in the tools
2017-04-20 11:03:15 -05:00
Jimmy Brisson
7c40343e74
Fix include paths for Windows builds
2017-04-11 14:26:14 -05:00
Sam Grove
cef31a7fa6
Merge pull request #4106 from theotherjimmy/fix-typo-toolchain
...
Fix a scoping typo in toolchains
2017-04-10 10:51:07 -05:00
Jimmy Brisson
d5ecd7adf8
Fix a scoping typo in toolchains
2017-04-03 15:43:22 -05:00
Jimmy Brisson
09afe23762
Upgrade OUTPUT_EXT and use it to pick binary type
...
targets.json contained a key for some targets, `OUTPUT_EXT`, which I
moved to `Target`, the root of all targets. Following on that, the tools
now use this extension provided by `OUTPUT_EXT` to determine the file
type of the output executable.
2017-03-29 16:46:21 -05:00
Anna Bridge
ae10ca8787
Merge pull request #3895 from theotherjimmy/find-exec-in-path
...
Use PATH env variable when gcc found in PATH
2017-03-14 14:41:32 +00:00
Jimmy Brisson
d20bcba89b
Remove static analysis scan
...
An earlier patch in this series relies on the assumption that all
toolchain construction goes through `prepare_toolchain`. This is still
not the case. The only remaining user of the `mbedToolchain` object that
does not go through `prepare_toolchain` is the static analysis scanner.
It's basically dead-code at this point. I say we remove it. So this
patch removes it.
2017-03-06 18:29:46 -06:00
Jimmy Brisson
fbb6f71be8
Ignore build directory from scan resources
...
This is a bug fix for the following bug (Github issue #437 ):
If two builds were run specifying a non-default build folder, the second
build would fail to link with duplicate symbols and may not fit on the
device. The root of this problem is that these non-default build folders
are not ignored by scan-resources, and therefore included in the build.
We fix this bug by ignoring the build directory passed into the tools.
2017-03-06 17:10:57 -06:00
Jimmy Brisson
a5745cadd9
Use PATH env variable when gcc found in PATH
...
Resolves the github issue #3790 : Blinky fails to build (on Mac) after
addition of linker script preprocessing feature. Paraphrasing, this
issue is that Homebrew on mac does not install `arm-none-eabi-gcc` in
the same location as `arm-none-eabi-cpp`, the C Pre-Processor. The tools
prior to this commit, and after turning on the pre-processing of the
linker-script will fail on any Mac homebrew installed toolchains.
This commit resolves the above issue by allowing the toolchain's path to
the executable to remain empty after a call to `check_executable`. When
this path is empty, the tools will search the PATH environment variable
for the executable.
2017-03-06 15:24:58 -06:00
Sam Grove
067f5a0fef
Merge pull request #3791 from theotherjimmy/remove-cr
...
Remove GCC_CR and refurbish LPCXpresso exporter
2017-02-22 13:33:14 -06:00
Jimmy Brisson
1d95604275
Remove GCC_CR
...
It has not worked since the introduction of build profiles
2017-02-16 15:03:24 -06:00
Liviu Ionescu
47b164b00b
Merge remote-tracking branch 'ARMmbed/master'
2017-02-09 19:11:44 +02:00
Sam Grove
9ae6f7aa49
Merge pull request #3730 from c1728p9/redirect_support
...
Add redirect support to toolchains
2017-02-09 09:51:32 -06:00
Sam Grove
2de453c8fa
Merge pull request #3706 from c1728p9/pre_process
...
Use the C Pre-Processor on GCC Linker scripts
2017-02-09 09:40:36 -06:00
Liviu Ionescu
b2638646b8
Merge remote-tracking branch 'ARMmbed/master'
2017-02-09 05:17:22 +02:00
Jimmy Brisson
c0f27597ec
Add redirect support to toolchains
...
We create an API for generating the linker flags needed to redirect
functions in an application
2017-02-08 17:34:35 -06:00
Jimmy Brisson
af4d848144
Use the C Pre-Processor on GCC Linker scirpts
...
This allows us to define parts of the linker script outside of the
linker script itself. In particular, we are interested in restricting
ROM to a subsection.
2017-02-08 17:26:36 -06:00
Brian Daniels
b0739d7520
Fixing Cortex-A and SARA_NBIOT_EVK build failures ( #3 )
...
* Adding Cortex-A support for gnuarmeclipse
* Preventing '-mthumb' from being added to Cortex-A builds.
Previously, both '-mthumb' and '-marm' were being supplied to the
compiler (in that order). Because '-marm' came last, the compiler
respected this option. This change makes it so '-mthumb' is added for
all 'Cortex-M' targets only.
* Renaming to capital .S for Eclipse compatibility
2017-02-07 21:18:18 +02:00
Brian Daniels
6be8278246
Adding case insensitive 'error' detection
...
GCC Assembler errors were being missed because it prints 'error'
with a captial 'E'. This change allows the 'e' to be either lower
case or upper case.
2017-02-02 12:27:59 -06:00
Sam Grove
65956d108e
Merge pull request #3677 from c1728p9/armcc_linker_flags
...
ARM - pass linker flags along to the linker
2017-02-02 11:05:59 -06:00
Russ Butler
660b221285
ARM - pass linker flags along to the linker
...
On the ARM toolchain linker flags specified in the build profile do
not get passed to armlink. This patch adds these flags to the
arguments sent to armlink.
2017-02-01 09:23:31 -06:00
Brian Daniels
3ad3a9f1d5
Adding fatal error detection to toolchians.
...
Before the toolchains would ignore error messages that contained the
string "Fatal error". This would lead to a silent failure unless the
compile command was ran with verbose options. This is now fixed.
2017-01-27 12:07:13 +02:00
Martin Kojtal
7316b89c1d
Merge pull request #3600 from theotherjimmy/refactor-sys-libs
...
[toolchains] Refactor sys libs
2017-01-26 10:30:27 +02:00
Jimmy Brisson
81df273849
Move sys_libs into mbedToolchain class
2017-01-17 11:57:35 -06:00
Jimmy Brisson
c14a5b94ec
Add docstrings
2017-01-13 12:01:26 -06:00
Jimmy Brisson
39a5caacab
Refactor scan resources to account for base_paths
2017-01-13 12:01:19 -06:00
Brian Daniels
105a9b3ea6
Removing aboslute path to Dlib config for IAR compiler
...
This fixes an issue where the absolute path causes a file error if the
compiler paths are configured incorrectly. It uses a relative path
instead now (the files appears to be in the default search path).
2016-12-09 12:02:55 -06:00
Brian Daniels
8f649493a3
Removing extra paths for standard the library for the ARM compiler
2016-12-09 11:29:36 -06:00
Martin Kojtal
9a61ef0368
Fix DEBUG target keyword for GCC_ARM
...
Fixes mbed-cli#402 bug. -g flag was changed to g3, thus this caused
a regression in producing TARGET_DEBUG for GCC_ARM.
2016-12-06 11:32:45 +00:00
Jimmy Brisson
c3915215e4
Allow dependency parsing to fail, gracefully continuing
2016-11-10 10:04:36 -06:00
Sam Grove
6bd44c59d3
Merge pull request #2990 from bridadan/parallel-test-build
...
[tools] Parallel building of tests
2016-10-19 05:41:24 -05:00
Russ Butler
9f6b346c88
Properly set flags for default_lib = small
...
Use newlib nano for targets which have the key "default_lib" set to
"small". Also support the legacy key of "default_build".
2016-10-12 20:36:09 -05:00
Brian Daniels
0e4b841cb3
Removing need for memap to printed through toolchains
2016-10-11 18:24:01 -05:00
Brian Daniels
655c37715c
Handling output of parallelized test building.
...
This makes use of the reports generated by the building of tests to
prevent output from interleaving when the build is parallelized. This
required some changes to memap to return a generated string from
the 'generate_output' function. I also had an option to stop the prints
from memap to prevent text from interleaving
2016-10-11 15:34:20 -05:00
Brian Daniels
14aff069b1
Modifying behavior of 'silent' option in toolchains
...
The 'silent' option has always been present in the toolchains API, however
it did not actually stop anything from being printed. Instead, it just
changed what was added to the build log. This make the 'silent' stop all
prints, but ensures that the output for the toolchain is still preserved
and accessible via the 'get_output' function.
2016-10-11 14:31:06 -05:00
Sam Grove
872363d809
Merge pull request #2854 from theotherjimmy/find-duplicates
...
[Tools] Find and report duplicates
2016-09-30 18:30:00 -05:00
Brian Daniels
64d09e1879
Adding uARM support default build profiles
2016-09-30 17:24:11 -05:00
Jimmy Brisson
5f8fbac56f
Add documentation of exposed functions
2016-09-30 15:14:22 -05:00
Jimmy Brisson
e012185602
Use toolchain notify for printing when finding dupes
2016-09-30 15:14:22 -05:00
Jimmy Brisson
9f7c82a37f
Deduplicate find-duplicate functionality
2016-09-30 15:13:53 -05:00
Jimmy Brisson
a85a384973
Add duplicate detection to project compilation
2016-09-30 15:13:53 -05:00
Jimmy Brisson
e2b248a4aa
Correct percent printing
2016-09-30 15:09:54 -05:00
Sam Grove
761ec4423b
Merge pull request #2856 from bridadan/fixing-missed-build-error-prints
...
[Tools] Making all toolchains print final compiler message
2016-09-30 15:01:20 -05:00
Sam Grove
1047ab4562
Merge pull request #2834 from bridadan/memap-consolidate
...
[tools] Making memap output consistent across output formats
2016-09-30 14:59:31 -05:00
Jimmy Brisson
7348b0131b
Add Debug or Release to labels depending on flags
...
This is a policy decision and it should /really/ be in the config system
ATM it's here for backward compatibility
2016-09-30 13:01:16 -05:00
Jimmy Brisson
fd04ea2125
Added property based regression test to travis
2016-09-29 10:20:05 -05:00
Jimmy Brisson
d88852d150
Replace -o with profiles
2016-09-29 10:20:05 -05:00
Jimmy Brisson
ceda396e18
Add simple build profiles to toolchains
2016-09-28 17:25:24 -05:00
Brian Daniels
10534019b9
Making all toolchains print final compiler message.
...
This functionality was already present in the ARM toolchain script, but
this commit adds this across all toolchain scripts. Solves an issue that
cropped up where a build error wasn't being printed unless the verbose
flag was used. This should now print any existing error messages that have
been printed when the compiler output is being parsed.
2016-09-28 14:42:35 -05:00
Brian Daniels
e8b06874a3
Making memap output consistent across output formats
...
This commit fixes an issue where the output from memap.py was not
consistent across all output formats. This issue stemmed from the fact
that a few important calculations were being performed at output
generation time. This has been moved to the 'parse' function and saved for
future use by the 'generate' functions.
Because this commit saves more data to the MemapParser instance, there
were some name collisions. The public member 'mem_summary' has been
renamed to 'mem_report'. 'mem_report' contains the data structure used by
the json generator. This includes both the section data and the memory
summary. The 'mem_summary' member now just contains the summary. The
summary includes total allocated heap, total static RAM, etc.
2016-09-27 16:51:16 -05:00
Sam Grove
28f9b27918
Merge pull request #2788 from theotherjimmy/print-percent
...
Print percent complete when building
2016-09-24 16:48:03 -05:00
Sam Grove
e9c556d356
Merge pull request #2757 from theotherjimmy/non-global-config
...
Refactor Target and Config away from global variables
2016-09-22 17:23:04 -05:00
Jimmy Brisson
2fe201cf10
Print percent complete when building
2016-09-22 15:10:03 -05:00
Sam Grove
0c0455bf3f
Merge pull request #2745 from pan-/disable_global_objects_destruction
...
Disable global objects destruction
2016-09-22 00:48:08 -05:00
Jimmy Brisson
d4f9820577
Refactor Target and Config away from global variables
2016-09-20 16:09:22 -05:00
Vincent Coubard
f4f8b491d1
Override exit and atexit functions from newlib.
...
This change simplify the exit and initialization process.
It also reduce the number of hidden memory allocation made by atexit.
2016-09-19 15:17:39 +01:00
Vincent Coubard
2f0b772c77
Disable destruction of global C++ objects when IAR is used.
...
This behavior is realized by enabling the flag --no_static_destruction
when the compilerin the invoked.
2016-09-19 11:59:24 +01:00
Brian Daniels
ba5ab753b1
Fixing missing import for os.path.exists
2016-09-17 21:12:47 -05:00
Sam Grove
663fdb796f
Merge pull request #2721 from theotherjimmy/profile-documentation
...
tools - Add documentation about profiles to the toolcahins
2016-09-16 17:38:13 -05:00
Sam Grove
a6f4b58405
Merge pull request #2675 from sarahmarshy/toolchain_path_check
...
Revise checking toolchain path
2016-09-16 17:31:41 -05:00
Sam Grove
054f232431
Merge pull request #2674 from theotherjimmy/correct_repo_files
...
tools - Correct adding repo_files
2016-09-16 17:30:13 -05:00
Jimmy Brisson
924d242b39
Add documentation about profiles to the toolcahins
2016-09-15 15:03:10 -05:00
Jimmy Brisson
00d2a45b91
Generalize make exporters for all toolchains
2016-09-15 11:42:52 -05:00
Sarah Marsh
8670598115
Abstract check_executable added
2016-09-13 16:26:58 -05:00
Sarah Marsh
ab92a5ace2
Toolchain check generic in mbedToolchain
2016-09-13 13:59:11 -05:00
Sarah Marsh
8b74c5b3c7
Docstrings. Empty executable search path handling.
2016-09-13 12:06:01 -05:00
Sarah Marsh
61dee45dca
Revise checking toolchain path
2016-09-12 18:54:39 -05:00
Jimmy Brisson
f48aa248b7
Correct adding repo_files
2016-09-12 16:19:55 -05:00
Tony Wu
c50b5c6651
Tools - Fix fill section size variation
...
The linking order of object files affects the actual code placement,
which in turn affects the size of fill section due to the number of
zeros required to maintain appropriate data/code alignment may change.
This is observed when building on Mac and Linux host.
example: mbed compile -m K64F -t GCC_ARM (build 1)
+---------------------+-------+-------+-------+
| Module | .text | .data | .bss |
+---------------------+-------+-------+-------+
| Fill | 120 | 4 | 2381 |
| Misc | 28755 | 2216 | 84 |
| features/frameworks | 4236 | 52 | 744 |
| hal/common | 2745 | 4 | 325 |
| hal/targets | 12116 | 12 | 200 |
| rtos/rtos | 119 | 4 | 0 |
| rtos/rtx | 5721 | 20 | 6786 |
| Subtotals | 53812 | 2312 | 10520 |
+---------------------+-------+-------+-------+
example: mbed compile -m K64F -t GCC_ARM (build 2)
+---------------------+-------+-------+-------+
| Module | .text | .data | .bss |
+---------------------+-------+-------+-------+
| Fill | 128 | 4 | 2381 |
| Misc | 28755 | 2216 | 84 |
| features/frameworks | 4236 | 52 | 744 |
| hal/common | 2745 | 4 | 325 |
| hal/targets | 12116 | 12 | 200 |
| rtos/rtos | 119 | 4 | 0 |
| rtos/rtx | 5721 | 20 | 6786 |
| Subtotals | 53820 | 2312 | 10520 |
+---------------------+-------+-------+-------+
This patch fixes fill section size variation by sorting object
files before passing to linker.
Signed-off-by: Tony Wu <tung7970@gmail.com>
2016-09-10 08:30:01 +08:00
Sarah Marsh
f6a15fd3c8
Refactor export subsystem
...
Makes several broad changes:
- removes dead code that dealt with the online build system
- replaces export function with a much simpler one that:
- does not copy any sources
- the zip file hits the disk
- the mbed_config.h hits the disk
- the project files hit the disk
- nothing else hits the disk
- exporters use Resource object scanned with a toolchain
- progen exporters don't optionally build a project instead they have a
build function that may be called afterwards
- much of the code passes pylint (have a score of 9 or above):
- project.py
- project_api.py
- export/__init__.py
- export/exporters.py
- test/export/build_test.py
2016-09-06 14:24:00 -05:00
Sam Grove
fe1f2b6066
Merge pull request #2563 from sarahmarshy/path_error_rev
...
Check if executble exists
2016-08-26 18:05:50 -05:00
Sarah Marsh
bd0acdc527
Check executable
2016-08-26 17:32:57 -05:00
Sam Grove
ea3526d657
Merge pull request #2418 from sarahmarshy/path_error_rev
...
Readable error when toolchain paths not set. Allow IAR and ARM toolchains to be set in user's PATH.
2016-08-26 13:10:48 -05:00
Vincent Coubard
fe322adc9c
Make selection of c library used consistent.
...
* rename "default_build" property into "default_lib"
* rename "standard" value for "default_build" into "std".
2016-08-23 16:04:56 +01:00
Vincent Coubard
73a925810c
Improve naming of the command line option which select the c library to use.
...
* rename 'small-build' into 'small-lib'
* rename 'standard-build' into 'std-lib'
2016-08-23 15:42:08 +01:00
Vincent Coubard
afde624a26
Rename big-build option into standard-build.
...
With this change, the name is more descriptive and aligned with the targets
definitions in hal/targets.json.
2016-08-23 15:38:44 +01:00
Russ Butler
6a31ffbf3e
Heap statistics
...
Keep track of the current size allocated, maximum size allocated,
number of allocations, failed allocations and total size allocated for
both GCC and ARM. Report the maximum size allocated at the end of
testing.
Also, add a test to verify heap metrics are working as expected.
2016-08-22 18:32:51 -05:00
Martin Kojtal
862db41be3
Merge pull request #2468 from bridadan/fix-gcc-diagnostic-pattern
...
Tools - Fixing issue where GCC fails to report compile errors when non-verbose
2016-08-19 13:48:54 +01:00
Sarah Marsh
cd229bacc3
Allow users to set armcc and iccarm in path.
...
Raise exceptin instead of exit.
Corrected error for arm-none-eabi-gcc/g++ set in path.
2016-08-17 09:14:05 -05:00
Brian Daniels
20ddba6e90
Fixing issue where GCC fails to report compile errors when non-verbose
...
The output of the GCC compiler is such that the toolchain regex sometimes
got hung up on the ':' charcter being printed in front of the drive letter when
running on Windows. This PR changes the matching logic to be more flexible
by using 'search' to check the entire string for a match, not just the
beginning of the string.
2016-08-16 12:34:18 -05:00
Jimmy Brisson
cb5e61028d
Format and add docstrings to memmap
2016-08-16 11:48:39 -05:00
Sarah Marsh
51245ceb7a
Exit non-zero for invalid toolchain path
2016-08-10 12:04:11 -05:00