Re: [PATCH v7 00/13] selftests/sgx: Fix compilation errors

From: Huang, Kai
Date: Thu Oct 05 2023 - 17:29:03 EST


Hi Jo,

Just FYI I won't review the rest patches in this series. One of the reasons is
I am not that familiar with the rest. Jarkko has reviewed anyway :-).

On Thu, 2023-10-05 at 17:38 +0200, Jo Van Bulck wrote:
> Hi,
>
> This patch series ensures that all SGX selftests succeed when compiling with
> optimizations (as tested with -O{0,1,2,3,s} for both gcc 11.3.0 and clang
> 14.0.0). The aim of the patches is to avoid reliance on undefined,
> compiler-specific behavior that can make the test results fragile.
>
> As far as I see, all commits in this series now have an explicit reviewed-by
> tag, so hopefully this can get merged upstream? Please let me know if any
> concerns remain and I'd happily address them.
>
> Reference output below:
>
> .. Testing gcc -O0 [OK]
> .. Testing gcc -O1 [OK]
> .. Testing gcc -O2 [OK]
> .. Testing gcc -O3 [OK]
> .. Testing gcc -Os [OK]
> .. Testing gcc -Ofast [OK]
> .. Testing gcc -Og [OK]
> .. Testing clang -O0 [OK]
> .. Testing clang -O1 [OK]
> .. Testing clang -O2 [OK]
> .. Testing clang -O3 [OK]
> .. Testing clang -Os [OK]
> .. Testing clang -Ofast [OK]
> .. Testing clang -Og [OK]
>
> Changelog
> ---------
>
> v7
> - Add reviewed-by tag (Jarkko)
>
> v6
> - Collect final ack/reviewed-by tags (Jarkko, Kai)
>
> v5
> - Reorder patches (Jarkko, Kai)
> - Include fixes tag for inline asm memory clobber patch (Kai)
> - Include linker error in static-pie commit message (Kai)
> - Include generated assembly in relocations commit (Kai)
>
> v4
> - Remove redundant -nostartfiles compiler flag (Jarkko)
> - Split dynamic symbol table removal in separate commit (Kai)
> - Split redundant push/pop elimination in separate commit (Kai)
> - Remove (incomplete) register cleansing on enclave exit
> - Fix possibly uninitialized pointer dereferences in load.c
>
> v3
> - Refactor encl_op_array declaration and indexing (Jarkko)
> - Annotate encl_buffer with "used" attribute (Kai)
> - Split encl_buffer size and placement commits (Kai)
>
> v2
> - Add additional check for NULL pointer (Kai)
> - Refine to produce proper static-pie executable
> - Fix linker script assertions
> - Specify memory clobber for inline asm instead of volatile (Kai)
> - Clarify why encl_buffer non-static (Jarkko, Kai)
> - Clarify -ffreestanding (Jarkko)
>
> Best,
> Jo
>
> Jo Van Bulck (13):
> selftests/sgx: Fix uninitialized pointer dereference in error path
> selftests/sgx: Fix uninitialized pointer dereferences in
> encl_get_entry
> selftests/sgx: Include memory clobber for inline asm in test enclave
> selftests/sgx: Separate linker options
> selftests/sgx: Specify freestanding environment for enclave
> compilation
> selftests/sgx: Remove redundant enclave base address save/restore
> selftests/sgx: Produce static-pie executable for test enclave
> selftests/sgx: Handle relocations in test enclave
> selftests/sgx: Fix linker script asserts
> selftests/sgx: Ensure test enclave buffer is entirely preserved
> selftests/sgx: Ensure expected location of test enclave buffer
> selftests/sgx: Discard unsupported ELF sections
> selftests/sgx: Remove incomplete ABI sanitization code in test enclave
>
> tools/testing/selftests/sgx/Makefile | 12 ++--
> tools/testing/selftests/sgx/defines.h | 2 +
> tools/testing/selftests/sgx/load.c | 9 ++-
> tools/testing/selftests/sgx/sigstruct.c | 5 +-
> tools/testing/selftests/sgx/test_encl.c | 67 +++++++++++++------
> tools/testing/selftests/sgx/test_encl.lds | 10 +--
> .../selftests/sgx/test_encl_bootstrap.S | 28 +++-----
> 7 files changed, 77 insertions(+), 56 deletions(-)
>