| #
d50fee03 |
| 16-Oct-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: prefix header file guard names with __
Improves header files guard names consistency by using a __ prefix where missing.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by:
core: prefix header file guard names with __
Improves header files guard names consistency by using a __ prefix where missing.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
814fc2e8 |
| 01-Dec-2020 |
Jerome Forissier <jerome@forissier.org> |
core: keep.h: set SHF_ALLOC flag in all __keep_meta_vars_pager sections
The DECLARE_KEEP_PAGER() and DECLARE_KEEP_INIT() macros create symbols in a special section called __keep_meta_vars_pager. The
core: keep.h: set SHF_ALLOC flag in all __keep_meta_vars_pager sections
The DECLARE_KEEP_PAGER() and DECLARE_KEEP_INIT() macros create symbols in a special section called __keep_meta_vars_pager. The behavior differs slightly in C and assembler:
- In C, the section is of type SHT_PROGBITS and has (SHF_ALLOC | SHF_WRITE) flags, - In assembler, the section is also SHT_PROGBITS but has no flags.
Enter the Clang linker, ld.lld. When used with --gc-sections, all sections without the SHF_ALLOC flag (and a few other conditions) are marked "live" in a first pass before dependencies on other sections are considered. A side effect is that the reference to the symbol given in DECLARE_KEEP_*() is ignored and the macro does not pull the desired section in the link. That section is garbage collected instead.
Whether or not it is a bug in the linker is slightly above my level of expertise. However, the DECLARE_KEEP_*() macros declare global symbols that reference other symbols, so it really is allocatable stuff and having the SHF_ALLOC flag does make sense. It is also consistent with the C version. Note that adding the flag does not take more space in the final executable since core/arch/arm/kernel/kern.ld.S discards the __keep_meta_vars_pager output section anyways.
Therefore, add "a" to the .section command in DECLARE_KEEP_*().
Fixes a core crash which may be reproduced on QEMUv8 with xtest 1013 when OP-TEE is compiled with Clang 11 and CFG_WITH_PAGER=y.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
3639b55f |
| 04-May-2020 |
Jerome Forissier <jerome@forissier.org> |
core: rename KEEP_INIT() and KEEP_PAGER()
The KEEP_INIT() and KEEP_PAGER() macros are quite often used in C files immediately after the definition of a function or a structure without a blank line i
core: rename KEEP_INIT() and KEEP_PAGER()
The KEEP_INIT() and KEEP_PAGER() macros are quite often used in C files immediately after the definition of a function or a structure without a blank line in between. This style mimics what the Linux kernel does for a similar use cases: EXPORT_SYMBOL().
Unfortunately, the checkpatch.pl tool expects a blank line after structure and function definitions, except for a few special cases such as EXPORT_SYMBOL(). As a result we often get unwanted warnings when we use KEEP_INIT() and KEEP_PAGER(). Among the exceptions are all words starting with DECLARE_ or DEFINE_, so by renaming our macros we could avoid the checkpatch warnings.
This commit renames KEEP_INIT() and KEEP_PAGER() to DECLARE_KEEP_INIT() and DECLARE_KEEP_PAGER(), respectively. The assembler macros are also renamed for consistency. No functional change is expected.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
99f278d9 |
| 04-May-2020 |
Jerome Forissier <jerome@forissier.org> |
core: keep.h: add parentheses around sym argument in KEEP_* macros
It is good practice to use parentheses when using macro arguments to avoid precedence issues. Do it for KEEP_PAGER() and KEEP_INIT(
core: keep.h: add parentheses around sym argument in KEEP_* macros
It is good practice to use parentheses when using macro arguments to avoid precedence issues. Do it for KEEP_PAGER() and KEEP_INIT().
Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
757331fc |
| 21-Aug-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace ASM with compiler-builtin __ASSEMBLER__
The C preprocessor predefines __ASSEMBLER__ with value 1 when when preprocessing assembly language, see [1]. Instead of using a special defines, let's
Replace ASM with compiler-builtin __ASSEMBLER__
The C preprocessor predefines __ASSEMBLER__ with value 1 when when preprocessing assembly language, see [1]. Instead of using a special defines, let's use the define already provided.
Link: [1] https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
8d527cd6 |
| 22-Nov-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: keep.h: avoid duplicate symbols
Prior to this patch if the KEEP_*() macros are used with two static variables with the same name but in different source files it will result in a duplicated gl
core: keep.h: avoid duplicate symbols
Prior to this patch if the KEEP_*() macros are used with two static variables with the same name but in different source files it will result in a duplicated global symbol. This happens because the internal trickery uses global variables based on the static symbol it's supposed to keep. With this patch the global variables uses the file unique define __FILE_ID__ to avoid the conflict.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
b1d7375c |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Remove 'All rights reserved' from Linaro files
The text 'All rights reserved' is useless [1]. The Free Software Foundation's REUSE Initiative best practices document [2] does not contain these words
Remove 'All rights reserved' from Linaro files
The text 'All rights reserved' is useless [1]. The Free Software Foundation's REUSE Initiative best practices document [2] does not contain these words. Therefore, we can safely remove the text from the files that are owned by Linaro.
Generated by: spdxify.py --linaro-only --strip-arr optee_os/
Link: [1] https://en.wikipedia.org/wiki/All_rights_reserved Link: [2] https://reuse.software/practices/ Link: [3] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
78b7c7c7 |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Remove license notice from Linaro files
Now that we have added SPDX identifiers, we can safely remove the verbose license text from the files that are owned by Linaro.
Generated by [1]: spdxify.p
Remove license notice from Linaro files
Now that we have added SPDX identifiers, we can safely remove the verbose license text from the files that are owned by Linaro.
Generated by [1]: spdxify.py --linaro-only --strip-license-text optee_os/
Link: [1] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
1bb92983 |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] wa
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] was used to double check the license matching code in the Python script. All the licenses detected by scancode are either detected by spdxify.py, or have no SPDX identifier, or are false matches.
Link: [1] https://spdx.org/licenses/ Link: [2] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Link: [3] https://github.com/nexB/scancode-toolkit Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
8727ab2e |
| 24-May-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: keep.h: sparse fixes for KEEP_*() macros
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
|
| #
b5ca97cc |
| 25-May-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: bugfix assembly KEEP_*() macros
Fixes two bugs in the assembly version of the KEEP_*() macros.
Reviewed-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Jerome Forissier <jerome.foris
core: bugfix assembly KEEP_*() macros
Fixes two bugs in the assembly version of the KEEP_*() macros.
Reviewed-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a1b29960 |
| 25-May-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove KEEP_*() macro workaround
Now that the AArch64 linking problem has be sorted out remove the temporary workaround introduced in: commit c3d13c95da89 ("core: workaround KEEP_*() macro pro
core: remove KEEP_*() macro workaround
Now that the AArch64 linking problem has be sorted out remove the temporary workaround introduced in: commit c3d13c95da89 ("core: workaround KEEP_*() macro problem")
Reviewed-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
c3d13c95 |
| 17-May-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: workaround KEEP_*() macro problem
Workaround the KEEP_*() macro problem that sometimes causes the Aarch64 linker to assert. Since the pager is not enabled for Aarch64 yet we can stub these mac
core: workaround KEEP_*() macro problem
Workaround the KEEP_*() macro problem that sometimes causes the Aarch64 linker to assert. Since the pager is not enabled for Aarch64 yet we can stub these macros in the definition.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
d6e86abc |
| 05-Dec-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: introduce KEEP_PAGER and KEEP_INIT assembler macros
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens
core: introduce KEEP_PAGER and KEEP_INIT assembler macros
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
9fa130bf |
| 30-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: Add KEEP_PAGER() and KEEP_INIT() macros
Adds KEEP_PAGER(sym) and KEEP_INIT(sym) macros which makes supplied symbol available for pager or init code respectively.
Reviewed-by: Joakim Bech <joa
core: Add KEEP_PAGER() and KEEP_INIT() macros
Adds KEEP_PAGER(sym) and KEEP_INIT(sym) macros which makes supplied symbol available for pager or init code respectively.
Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|