| 64718c93 | 29-May-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
Allow building libutils etc. as shared libraries
When CFG_ULIBS_SHARED=y (default n), build libutils, libmpa/libmbedtls and libutee as shared libraries (.so). The static archives (.a) are still prod
Allow building libutils etc. as shared libraries
When CFG_ULIBS_SHARED=y (default n), build libutils, libmpa/libmbedtls and libutee as shared libraries (.so). The static archives (.a) are still produced. The linker uses shared libraries by default when present so TAs just need to be re-built to use the shared libraries.
For the time being, in-tree TAs are always linked statically for practical reasons. Indeed, in-tree TAs (such as ta/avb) are likely to be used as "early TAs". If such a TA was linked against shared libraries, then those libraries would need to be installed in the "early TA" area, too. While this works fine technically, it requires some more steps in the Makefiles to make sure the proper dependencies are installed and also it would mean that those libraries take precedence over the ones potentially installed in the REE FS etc. In other words, it would raise questions that we do not want nor need to address now.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| e07aecdb | 24-Aug-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
ta: link.mk: filter out dependency and command files from $(MAKEFILE_LIST)
Prevents ta.lds from being needlessly re-generated, such as in the following test case:
$ make -s out/arm-plat-vexpress/t
ta: link.mk: filter out dependency and command files from $(MAKEFILE_LIST)
Prevents ta.lds from being needlessly re-generated, such as in the following test case:
$ make -s out/arm-plat-vexpress/ta/avb/ta.lds $ make -s out/arm-plat-vexpress/core/kernel/console.o $ make out/arm-plat-vexpress/ta/avb/ta.lds CHK out/arm-plat-vexpress/conf.mk CHK out/arm-plat-vexpress/include/generated/conf.h CPP out/arm-plat-vexpress/ta/avb/ta.lds
The last line should not hapen because ta.lds exists already, and building the unrelated console.o should not trigger a re-build.
The cause of the re-build is the dependency on $(MAKEFILE_LIST) which contains *all* the files that record previous build command and dependencies such as out/arm-plat-vexpress/core/kernel/.console.o.{d,cmd}.
Filter out those files, thus keeping only the static Makefiles (*.mk). This is still more than needed since all the core *.mk are present, but listing only the TA-related makefiles seems tricky (has to work both inside and outside the OP-TEE build environment), and removing $(MAKEFILE_LIST) altogether presents a risk that TA developers using the TA dev kit will complain that their TA doesn't get re-built after a flag is changed in a Makefile.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| cfa34d9a | 17-Jul-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
Add support for compiling in-tree TAs
Adds support for compiling in-tree TAs. Unless specified via CFG_USER_TA_TARGET_<ta-name> the TA will be built with the first TA target (aka TA dev kit, when de
Add support for compiling in-tree TAs
Adds support for compiling in-tree TAs. Unless specified via CFG_USER_TA_TARGET_<ta-name> the TA will be built with the first TA target (aka TA dev kit, when delivered) specified in the variable ta-targets which is initialized in core/arch/arm/plat-*/conf.mk.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d58d79ec | 17-Jul-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ta: support variables user-ta-{uuid,ldadd}
Replaces the old variables "binary" and "ldadd" with "user-ta-uuid" and "user-ta-ldadd" respectively.
Reviewed-by: Jerome Forissier <jerome.forissier@lina
ta: support variables user-ta-{uuid,ldadd}
Replaces the old variables "binary" and "ldadd" with "user-ta-uuid" and "user-ta-ldadd" respectively.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 35b4ef75 | 17-Jul-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ta: prepare for in-tree ta building
Prepare for in-tree TA building by adding $(sm) to all TA dev-kit variables that may cause conflicts either with the core linking or when linking multiple TAs.
R
ta: prepare for in-tree ta building
Prepare for in-tree TA building by adding $(sm) to all TA dev-kit variables that may cause conflicts either with the core linking or when linking multiple TAs.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7adc6862 | 30-May-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
TA dev kit: shared library: strip directory part
The symbolic link and its target are in the same directory, so we need to make sure that there is no relative path before the target filename. The pr
TA dev kit: shared library: strip directory part
The symbolic link and its target are in the same directory, so we need to make sure that there is no relative path before the target filename. The proper Make variable to use is therefore not $< but $(<F).
Fixes: 01b8b5ce011d ("TA dev kit: when building a shared library, create symlink with UUID") Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 4a8734ef | 30-May-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
TA dev kit: shared library: add -f argument to ln
When creating a symbolic link <uuid>.elf -> libname.so, use the -f (force) argument so that the command won't fail if the link already exists. It is
TA dev kit: shared library: add -f argument to ln
When creating a symbolic link <uuid>.elf -> libname.so, use the -f (force) argument so that the command won't fail if the link already exists. It is a very common case: the first time the library is built and the link is created. Then whenever some source file is modified, the .so is re-linked but the symbolic link is there already.
Fixes: 01b8b5ce011d ("TA dev kit: when building a shared library, create symlink with UUID") Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| bc8fc882 | 07-Mar-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
ta.ld.S: make .plt section of user TAs executable
This patch is preparatory work for the support of dynamically linked user mode TAs.
The Procedure Linkage Table (.plt) section should be executable
ta.ld.S: make .plt section of user TAs executable
This patch is preparatory work for the support of dynamically linked user mode TAs.
The Procedure Linkage Table (.plt) section should be executable, because it contains special code used to redirect function calls to the proper destination in external (shared) libraries. Therefore, move it into the executable segment.
A couple of blank lines are removed in the hope that it will make it easier to see which sections are grouped together in the same segment.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|