Commit graph

217 commits

Author SHA1 Message Date
Kumar Gala
23af1e928e build: Fix application object files placement when building out of tree
For the application object files to get properly placed in the outdir
when the source files are outside of the zephyr tree we need to set
$srctree in kbuild to the parent dir of the application source code
rather than getting the default of $srctree being set to $ZEPHYR_BASE.

By doing this we are able to get the kbuild system to place the object
file results in the outdir rather than in the application source dir.

Jira: ZEP-369
Change-Id: I4d3ba67a4a38c15978d5bf7e1f0a912e9bf00f08
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2016-06-30 16:49:40 +00:00
Kumar Gala
ff694e92b5 build: Split out building of application code
Seperate building of the application code from the zephyr OS code.  This
is in prep for both having a libzephyr.a for the OS and to fix where
the application object files get put when building out of tree.

Change-Id: I43f3b54d11f41aaf35350de7462c5cd556804092
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2016-06-30 14:36:38 +00:00
Vinicius Costa Gomes
28b79191d4 build: Fix not allowing the host tools to be crosscompiled
There are situations that the host gcc is not able to generate x86
binaries, in those cases, the user should point HOSTCC to a binary able
to generate the correct type of binaries.

This also allows './scripts/sanitycheck' to be run in systems where the
build tools are prefixed by default.

Change-Id: Id1fc247f8a820e19bb3d4e8119634f8300e7ebac
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
2016-06-29 05:37:58 +00:00
Andrew Boie
e697621371 qemu: pass -serial stdio instead of -serial mon:stdio
You can now exit out of QEMU using Ctrl-C, and this resolves
some issues where the terminal could get messed up if QEMU
terminates abnormally.

Change-Id: I94ca66333bf9035e3627f28bbd2c152cf981a13f
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-06-29 00:08:20 +00:00
Andrew Boie
be13e26586 build: add 'qemugdb' target
This new target works much like 'make qemu' but fires up a local GDB
server on port 1234 and pauses execution

Change-Id: I87fd174c66dcc9f2f43b5b1204cc5c34f741622d
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-06-28 15:56:05 -07:00
Maureen Helm
280eadffdd ksdk: Add Makefile support for ksdk device and CPU
Translate the SOC name and part number into the ksdk device path and CPU
macro respectively. This will be used by future ksdk shim drivers and by
the ksdk itself.

Change-Id: I40e94441ee032bfbed7df834be8000d95be53250
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2016-06-20 17:38:47 +00:00
Andrew Boie
63cea24896 misc: add config to omit frame pointer
Change-Id: Ia69c14addded7563a24f15d4a3408fcc2c8e673a
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-06-16 18:15:59 +00:00
Anas Nashif
1aaa11b213 libc: change linking order to avoid over-stripping of symbols
At the moment libc gets linked, all unused functions get
stripped and the libqmsi gets linked but __assert_func is not
available.

Change-Id: I7fc2f8b9136f858023b3e983575869a2206ba9ce
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-06-14 16:55:53 +00:00
Anas Nashif
d53c237b60 build: do not reference full path of map file
Change-Id: I5e8c9439d0e73657b73e38663f85a080c55d86b5
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-06-14 16:55:52 +00:00
Anas Nashif
6f6504c447 Zephyr v1.4.0
Change-Id: Iedb103de08349c3a046247cbdcf6498126765d72
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-06-03 12:17:40 -04:00
Anas Nashif
8b29fb720c Zephyr v1.4.0-rc3
Change-Id: I74707d577deb7f2001c85730a1bbdf9fe1fc39ac
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-06-02 19:54:05 -04:00
Anas Nashif
f86452493f Zephyr v1.4.0-rc2
Change-Id: I6c5346551d58991ed9cebc93a04c3b099ddd18b2
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-06-01 19:51:00 -04:00
Anas Nashif
b05e2dea29 Zephyr v1.4.0-rc1
Change-Id: I3883cd6dd8c80f3b5b521df98edf4e0c52992983
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-29 23:24:24 -04:00
Anas Nashif
37b1d1eb55 ext: include headers based on HAL being used
For CMSIS we now have HAS_CMSIS which needs to be added to the
SoC definition.
Instead of changing the main Makefile we now include a sub-Makefile
with all related header and library paths that are hosted in
ext/

Move redifintion of LIB_INCLUDE_DIR later to get variables defined
in Makefile.toolchain.*

Change-Id: I9f90f90247c2a66b4565427b89d4e1d4dd5c9622
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-27 01:38:23 +00:00
Anas Nashif
6361be24bc scripts: add a script to report RAM/ROM usage
Still WIP. Give statistics on memory/flash usage.

Run:
 make BOARD=<board> ram_report
 or
 make BOARD=<board> rom_report

Change-Id: I6b0aee09b89275e12f1cde863d2c0f5b8dfd0409
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-26 15:19:15 +00:00
Anas Nashif
489f42328c qmsi: move drivers and hal to ext/hal
This is external source code maintained somewhere else. Put it
under ext/ for clarity and maintainability.

Change-Id: I9e7c9d0948a2ba893006e316dc21d9b1a9edfa93
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-23 21:32:30 +00:00
Benjamin Walsh
0107c80c29 misc: clean up __ASSERT warnings during build
By default, instead of spamming the build output with one warning per
file where __assert.h is included when CONFIG_ASSERT=y, only display a
warning at the end of the build.

Also limit the range of CONFIG_ASSERT_LEVEL between 0 and 2.

Change-Id: I95ffd1bcec9535de1afabc047814e5c6f5b9c2c1
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-05-18 22:06:54 +00:00
Anas Nashif
083a7ad0df build: move library related code to lib/
Cleanup main Makefile and remove all library related code to
lib/ to better support the increasing number of libraries and
to keep the main Makefile clean from library dependencies.

Jira: ZEP-308
Change-Id: Id83cf309020604b8eab8d80cad0021905d5b5f7a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-16 19:43:50 +00:00
Anas Nashif
0b2c44a771 tinycrypt: move from lib to regular objects
tinycrypt was built using the lib- scripts without any real benefit. We
also had a wrong placement of the Kconfig files under misc/ and a Kconfig
file for Crypto that was never used before.

Change-Id: I82d5902d92e7c06e10a95f418d9ead3cbcabcce4
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-16 19:43:50 +00:00
Anas Nashif
a0cf03b1c7 build: add extra dependency for zephyr.lnk and rebuild with new boards
When building an application for a different BOARD, the .link file
was never updated causing issues with linking.
Also, make sure we restart the build process when the board has changed.
This guarantees that the file is recreated when the dependencies have
changed.

Jira: ZEP-239
Change-Id: Ided3a71c03fd8b2c6ab9c2bf8370104cd5071c08
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-16 19:43:50 +00:00
Juan Manuel Cruz
164ecd0df9 build: allows CC and CCX override from Makefile source files
Jira: ZEP-177
Change-Id: I318d6530d5ee369f5f154fde44377cec46c1624d
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>
2016-05-14 15:55:03 +00:00
Juan Manuel Cruz
5516bcaa72 build: Add MinGW dependencies in makefile
Jira: ZEP-177
Change-Id: I5c67b9ed6c279b2b59afd4cd0351df5f0d030533
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>
2016-05-14 15:55:03 +00:00
Fabrice Olivero
35dcc0a4cb qemu: Add possibility to redirect serial port to pseudo TTY
Change-Id: I9a3b6ecd85b88ec59db29af727ed3ccbd47e42a2
Signed-off-by: Fabrice Olivero <fabrice.olivero@intel.com>
2016-05-12 02:20:31 +00:00
Andrew Boie
ff872dc349 build: rename non-generated linker scripts to .ld extension
Avoids confusion with .gitignore rules, which were inadequate to
cover all the places where these files are found. At least in
VIM, these files are now syntax highlighted correctly.

Change-Id: I23810b0ed34129320cc2760e19ed1a610afe039e
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-05-09 18:09:26 +00:00
Anas Nashif
74326ec58b build: use gcc instead of ld for linking
We now have to supply location of libraries (libgcc, libc) and header
directories to the build system. This can be solved in the
Makefile.toolchain.* file for known toolchains but becomes a problem
when supporting 3rd party SDKs and cross compilers.

Linking with ld requires ld to know where all the artificats of the
compiler are. Use gcc instead to make use of the internal information
available in gcc about additional libraries and headers.

Jira: ZEP-241
Change-Id: I15a3b812467b7ae878226f7e5532d538d2720268
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-04 10:27:18 +00:00
Anas Nashif
0ce35823a4 Zephyr 1.3.0
Change-Id: I44ebde6cab75fbf64666c1a574ec57463a7167b0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-05-02 20:50:45 -04:00
Juan Manuel Cruz
2170ca79ff build: support icx llvm compiler
Change-Id: I0bcc1f2e0ea93830e61fb3eaf8b523b7c4e1c301
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>
2016-05-03 00:02:40 +00:00
Anas Nashif
af70a288ee Zephyr 1.3.0-rc2
Change-Id: I796f4f5e9d21838224f4afaf5afc20bca1760046
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-27 19:18:00 -04:00
Anas Nashif
bf1356c969 Zephyr 1.3.0-rc1
Change-Id: I794f435cd882abc87f2f37a5c07b6ba0a08ba5f3
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-26 00:07:27 +00:00
Anas Nashif
7c332df43b qmsi: use QMSI_LIBRARY instead of QMSI_DRIVERS
For linking with external library, use QMSI_LIBRARY and point
to path of the library using QMSI_INSTALL_PATH

Change-Id: Icd954188a26cc02074aa8fe08a4afdea31879f60
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-22 20:55:36 -04:00
Anas Nashif
ef2fc59cab fixed inclusion of limits.h when building with newlib
The -nostdinc flag to GCC makes it not include its own directories when
searching headers, which means they need to be added manually. The same
Makefile line (~657) that adds the -nostdinc is also adding the correct path
for the gcc used to build, using the "-print-file-name=include" switch to get
the correct path for the respective gcc version.

The problem is that including limits.h from newlib will try to include gcc's
version too, which in every toolchain the SDK provides (and at least on my
machine, the same thing applies for the system gcc), limits.h is found under
gcc's "include-fixed" directory, not just include. So another -isystem should
be added with the value from "-print-file-name=include-fixed".

Jira: ZEP-142
Credits: Iván Briano
Change-Id: I33b7d9808d000a7346df4f88df92dc76e31fb2dc
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-19 01:14:39 +00:00
Anas Nashif
d2f1c76686 new SoC naming convention
Use SOC_FAMILY and SOC_SERIES to identify soc families and series
and to point to the correct linker files and files related to a
specific SoC.

Change-Id: I8b1a7339f37d6ea4161d03073d36557a40c0b4a6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-18 21:24:59 +00:00
Anas Nashif
a02c34ef0b soc: introduce SoC families and series
Add additional layers when defining SoCs to allow reuse among SoCs
of the same family and architecture.

The Board is the first location where we search for a linker.cmd file,
if not found we look for the linker file in
arch/<arch>/soc/<family>/<series>

Change-Id: I51d5e9a056220d0bd2ae0fa31474ffe63568e698
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-18 21:24:59 +00:00
Juro Bystricky
d57a503a55 Makefile: Fix linking order of libraries
Link with libm.a before libc.a, as libc.a can contain
references used by libm.a.

Change-Id: I5cde8f2e323f59ecae452a8a868a5d54942e9f39
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
2016-04-09 14:31:19 +00:00
Anas Nashif
fb663cac0d Zephyr 1.2.0
Change-Id: Ie223f458776c81439db8cd4c3a25b4753599588b
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-02 08:45:35 -04:00
Anas Nashif
1d894f98c2 Zephyr v1.2.0-rc2
Change-Id: I36fd9b96d247184b4a986467f1609a9c3b0cbd9f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-03-31 21:22:26 -04:00
Anas Nashif
65bb5a324b Zephyr 1.2.0-rc1
Change-Id: I213138a6552ddf7dcac5afbb9c7f5f4957570133
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-03-27 18:35:53 +00:00
Andrew Boie
e79c960dd8 HACK: qemu: change e_machine for IAMCU binaries
For some strange reason IAMCU sets e_machine to 0x06 which causes
QEMU to freak out. This is just x86 code with a different C
calling convention, hack it back to 0x03 (EM_386) before running
under the emulator.

Change-Id: Ia5d51b771cad41f3013eb3d6a17912c8909c9bac
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-03-12 02:24:46 +00:00
Anas Nashif
11e268de9a Zephyr 1.1.0
Change-Id: Ib29996cadfaeb977c16a30ae828732f316791e1f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-03-05 06:57:40 -05:00
Anas Nashif
8569839666 Zephyr 1.1.0-rc1
Change-Id: Iafe6fbee5a3ba603963fb7bcbf2b28f1875b1242
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-03-02 12:56:17 +00:00
Anas Nashif
a77c7d819a improve 'make help' and remove config targets
- Put kconfig targets in a new target 'kconfig-help' instead of showing
  it by default.
- Show how the the different boards can be used with make BOARD=<board>

Change-Id: I481d4acaf72b1f05925c6f56e510329681da8e11
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-17 13:42:08 +00:00
Benjamin Walsh
76c76a1977 kbuild: support arbitrary dir for Makefile.app
The location of Makefile.app can now be specified via MAKEFILE_APP_DIR
instead of implicitly being searched for in the project directory.

Change-Id: Ib86bf25e210d9c3749c5811b6e36376f59e3cd32
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-11 14:20:03 +00:00
Anas Nashif
027b69e0d5 Zephyr v1.0.0
Change-Id: I977bd0705a901440221010b577beec784f16a566
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-08 21:32:24 -05:00
Anas Nashif
492d67a95d Zephyr v0.9.0
Change-Id: I1b734c929a0d16d5cc1949b22731d0730141d065
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:33 -05:00
Anas Nashif
fe9eae95e8 link in external application library
When building an application and external build process of an
application specific library can be started by the application which
generates a .a file that will be linked at the final stage with the
Zephyr kernel.

Change-Id: I06fa1a10605ab032801ead8f5ee8d0c85c0bea5c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:31 -05:00
Anas Nashif
20fe678782 link binary with extra options provided by app
A custom linker script might have references to files and defines
provided directly by the application, the EXTRA_LINKER_CMD_OPT
variable can be exported by the application with the needed
includes to satisfy the linking process.

Change-Id: Ic0b3dffa9a6c31fe8ef28f4f45c30266e7327e06
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:31 -05:00
Anas Nashif
105d8c68a2 Zephyr 0.9.0-rc2
Change-Id: Ie9a039141841ee62a596117aa857c63c1a00e323
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif
872676c735 build: fix parallel builds of applications
When building with more than 1 job, we were getting:

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Trying to fix this in the Makefile resulted in dependency issues and unsatisfied
dependencies in the compilation and build chain.

Change-Id: Ic73d089cf6a0a0d7b6fd83908b8144c34af25582
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif
78e1b0efe1 print message when flashing/debugging not supported
Change-Id: I5ba5e08d534a4e94999fa192a3e5addc039df1ed
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif
a49762ccce add debug/debugserver support
Change-Id: I114994cb092870cd57b8e43b197d56ab8ca7db20
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00