diff options
author | Jerome Forissier <jerome.forissier@linaro.org> | 2014-09-15 12:20:15 -0700 |
---|---|---|
committer | Jerome Forissier <jerome.forissier@linaro.org> | 2014-09-16 19:16:14 -0700 |
commit | b8976a602e75d1f1fbdff47f9de2c6cd774c7c12 (patch) | |
tree | 8cc3a8680c8cd0093b8a2659c09f002270e70716 /core/tee/sub.mk | |
parent | 9c3040ee9d518a35a3b95e2e92a7939c5c98b547 (diff) |
plat-vexpress: fix non-debug build
Fixes a number of build errors when 'PLATFORM=vexpress' and 'DEBUG=':
- '<var> may be used uninitialized'
- 'dereferencing type-punned pointer will break strict-aliasing rules'
This one is addressed by adding -fno-strict-aliasing to the cflags for the
problematic files, which is a temporary solution.
- 'inlining failed'
Also, make sure tee_svc_syscall_table is aligned on a 32-bit boundary.
Otherwise, an alignment fault might occur:
ERR [0x0] TEE-CORE:tee_pager_print_error_abort:101: data-abort at 0x602f16b
FSR 0x1 PC 0x6007bd4 TTBR0 0x603804A CONTEXIDR 0x1
CPUID 0x80000001 DBGPCSR 0x0 CPSR 0x80000013 (read from SPSR)
ERR [0x0] TEE-CORE:tee_pager_handle_abort:164: [TEE_PAGER] alignement fault! (trap CPU)
Note: on Foundation_v8, I measured a ~3x speedup between debug and non-debug
builds for asymmetric crypto tests.
Diffstat (limited to 'core/tee/sub.mk')
-rw-r--r-- | core/tee/sub.mk | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/core/tee/sub.mk b/core/tee/sub.mk index 53f7e745..e9ac7639 100644 --- a/core/tee/sub.mk +++ b/core/tee/sub.mk @@ -2,21 +2,25 @@ srcs-y += tee_svc.c cflags-tee_svc.c-y += -Wno-format -Wno-declaration-after-statement cflags-tee_svc.c-y += -Wno-unused-parameter cflags-tee_svc.c-y += -Wno-format-nonliteral -Wno-format-security - +cflags-tee_svc.c-y += -fno-strict-aliasing srcs-y += tee_svc_cryp.c cflags-tee_svc_cryp.c-y += -Wno-declaration-after-statement cflags-tee_svc_cryp.c-y += -Wno-unused-parameter cflags-tee_svc_cryp.c-y += -Wno-cast-align +cflags-tee_svc_cryp.c-y += -fno-strict-aliasing srcs-y += tee_acipher.c cflags-tee_acipher.c-y += -Wno-unused-parameter +cflags-tee_acipher.c-y += -fno-strict-aliasing srcs-y += tee_authenc.c cflags-tee_authenc.c-y += -Wno-unused-parameter +cflags-tee_authenc.c-y += -fno-strict-aliasing srcs-y += tee_mac.c cflags-tee_mac.c-y += -Wno-unused-parameter +cflags-tee_mac.c-y += -fno-strict-aliasing srcs-y += tee_cipher.c srcs-y += tee_fs.c |