All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] Fix the reported SGX selftest makefile issues
@ 2019-08-16 17:23 Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 1/6] selftests/x86/sgx: Fix objcopy call in the Makefile Jarkko Sakkinen
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen, Cedric Xing, Sean Christopherson

Cedric Xing reported various issues, which are hopefully taken care by
these patches. In addition, it removes the bindings from x86/Makefile as
it makes sense to split that into a separate commit.

Cc: Cedric Xing <cedric.xing@intel.com>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>

Jarkko Sakkinen (6):
  selftests/x86/sgx: Fix objcopy call in the Makefile
  selftests/x86/sgx: Do not generate object files
  selftests/x86/sgx: Add -I$(OUTPUT) when compiling encl_piggy.S
  selftests/x86/sgx: Fix EXTRA_CLEAN
  selftests/x86/sgx: Fix target in the Makefile
  selftests/x86: Revert SGX changes

 tools/testing/selftests/x86/Makefile     | 10 -------
 tools/testing/selftests/x86/sgx/Makefile | 33 +++++++++++++-----------
 tools/testing/selftests/x86/sgx/encl.lds |  1 +
 3 files changed, 19 insertions(+), 25 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/6] selftests/x86/sgx: Fix objcopy call in the Makefile
  2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
@ 2019-08-16 17:23 ` Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 2/6] selftests/x86/sgx: Do not generate object files Jarkko Sakkinen
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen, Sean Christopherson, Cedric Xing

Use $(OBJCOPY) to point to the correct objcopy binary. Do not discard
.got.plt because we need to detect libcalls and fail the compilation if
they exist.

Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Reported-by: Cedric Xing <cedric.xing@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/x86/sgx/Makefile | 6 +++++-
 tools/testing/selftests/x86/sgx/encl.lds | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/x86/sgx/Makefile
index 10136b73096b..fdd67478c52b 100644
--- a/tools/testing/selftests/x86/sgx/Makefile
+++ b/tools/testing/selftests/x86/sgx/Makefile
@@ -2,6 +2,10 @@ top_srcdir = ../../../../..
 
 include ../../lib.mk
 
+ifndef OBJCOPY
+OBJCOPY := $(CROSS_COMPILE)objcopy
+endif
+
 HOST_CFLAGS := -Wall -Werror -g $(INCLUDES) -fPIC -z noexecstack
 ENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIC \
 	       -fno-stack-protector -mrdrnd $(INCLUDES)
@@ -23,7 +27,7 @@ $(OUTPUT)/encl_piggy.o: $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss
 	$(CC) $(HOST_CFLAGS) -c encl_piggy.S -o $@
 
 $(OUTPUT)/encl.bin: $(OUTPUT)/encl.elf $(OUTPUT)/sgxsign
-	objcopy --remove-section=.got.plt -O binary $< $@
+	$(OBJCOPY) -O binary $< $@
 
 $(OUTPUT)/encl.elf: $(OUTPUT)/encl.o $(OUTPUT)/encl_bootstrap.o
 	$(CC) $(ENCL_CFLAGS) -T encl.lds -o $@ $^
diff --git a/tools/testing/selftests/x86/sgx/encl.lds b/tools/testing/selftests/x86/sgx/encl.lds
index 2ee01ac3ec79..9a56d3064104 100644
--- a/tools/testing/selftests/x86/sgx/encl.lds
+++ b/tools/testing/selftests/x86/sgx/encl.lds
@@ -31,3 +31,4 @@ ASSERT(!DEFINED(.altinstructions), "ALTERNATIVES are not supported in enclaves")
 ASSERT(!DEFINED(.altinstr_replacement), "ALTERNATIVES are not supported in enclaves")
 ASSERT(!DEFINED(.discard.retpoline_safe), "RETPOLINE ALTERNATIVES are not supported in enclaves")
 ASSERT(!DEFINED(.discard.nospec), "RETPOLINE ALTERNATIVES are not supported in enclaves")
+ASSERT(!DEFINED(.got.plt), "Libcalls are not supported in enclaves")
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/6] selftests/x86/sgx: Do not generate object files
  2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 1/6] selftests/x86/sgx: Fix objcopy call in the Makefile Jarkko Sakkinen
@ 2019-08-16 17:23 ` Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 3/6] selftests/x86/sgx: Add -I$(OUTPUT) when compiling encl_piggy.S Jarkko Sakkinen
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen, Cedric Xing

Invoke GCC in a way that it generates and links the binary in a single
step because we do not need the side products. Additionally, add a
missing dependency to encls.lds (i.e. make did not do anything if
encls.lds was changed).

Reported-by: Cedric Xing <cedric.xing@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/x86/sgx/Makefile | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/x86/sgx/Makefile
index fdd67478c52b..b96aff1a7fba 100644
--- a/tools/testing/selftests/x86/sgx/Makefile
+++ b/tools/testing/selftests/x86/sgx/Makefile
@@ -29,14 +29,8 @@ $(OUTPUT)/encl_piggy.o: $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss
 $(OUTPUT)/encl.bin: $(OUTPUT)/encl.elf $(OUTPUT)/sgxsign
 	$(OBJCOPY) -O binary $< $@
 
-$(OUTPUT)/encl.elf: $(OUTPUT)/encl.o $(OUTPUT)/encl_bootstrap.o
-	$(CC) $(ENCL_CFLAGS) -T encl.lds -o $@ $^
-
-$(OUTPUT)/encl.o: encl.c
-	$(CC) $(ENCL_CFLAGS) -c $< -o $@
-
-$(OUTPUT)/encl_bootstrap.o: encl_bootstrap.S
-	$(CC) $(ENCL_CFLAGS) -c $< -o $@
+$(OUTPUT)/encl.elf: encl.lds encl.c encl_bootstrap.S
+	$(CC) $(ENCL_CFLAGS) -T $^ -o $@
 
 $(OUTPUT)/encl.ss: $(OUTPUT)/encl.bin  $(OUTPUT)/sgxsign
 	$(OUTPUT)/sgxsign signing_key.pem $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/6] selftests/x86/sgx: Add -I$(OUTPUT) when compiling encl_piggy.S
  2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 1/6] selftests/x86/sgx: Fix objcopy call in the Makefile Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 2/6] selftests/x86/sgx: Do not generate object files Jarkko Sakkinen
@ 2019-08-16 17:23 ` Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 4/6] selftests/x86/sgx: Fix EXTRA_CLEAN Jarkko Sakkinen
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen, Cedric Xing

We need to the build output directory to the include path when compiling
encl_piggy.S because otherwise the compiler can't reliably find encl.bin
and encl.ss.

Reported-by: Cedric Xing <cedric.xing@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/x86/sgx/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/x86/sgx/Makefile
index b96aff1a7fba..0b8813cc0b7f 100644
--- a/tools/testing/selftests/x86/sgx/Makefile
+++ b/tools/testing/selftests/x86/sgx/Makefile
@@ -24,7 +24,7 @@ $(OUTPUT)/sgx_call.o: sgx_call.S
 	$(CC) $(HOST_CFLAGS) -c $< -o $@
 
 $(OUTPUT)/encl_piggy.o: $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss
-	$(CC) $(HOST_CFLAGS) -c encl_piggy.S -o $@
+	$(CC) $(HOST_CFLAGS) -I$(OUTPUT) -c encl_piggy.S -o $@
 
 $(OUTPUT)/encl.bin: $(OUTPUT)/encl.elf $(OUTPUT)/sgxsign
 	$(OBJCOPY) -O binary $< $@
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/6] selftests/x86/sgx: Fix EXTRA_CLEAN
  2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
                   ` (2 preceding siblings ...)
  2019-08-16 17:23 ` [PATCH 3/6] selftests/x86/sgx: Add -I$(OUTPUT) when compiling encl_piggy.S Jarkko Sakkinen
@ 2019-08-16 17:23 ` Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 5/6] selftests/x86/sgx: Fix target in the Makefile Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 6/6] selftests/x86: Revert SGX changes Jarkko Sakkinen
  5 siblings, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen, Cedric Xing

1. Add missing build products to EXTRA_CLEAN.
2. Remove non-existent build products from EXTRA_CLEAN.

Reported-by: Cedric Xing <cedric.xing@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/x86/sgx/Makefile | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/x86/sgx/Makefile
index 0b8813cc0b7f..0f1c50c347d7 100644
--- a/tools/testing/selftests/x86/sgx/Makefile
+++ b/tools/testing/selftests/x86/sgx/Makefile
@@ -38,9 +38,14 @@ $(OUTPUT)/encl.ss: $(OUTPUT)/encl.bin  $(OUTPUT)/sgxsign
 $(OUTPUT)/sgxsign: sgxsign.c
 	$(CC) -o $@ $< -lcrypto
 
-EXTRA_CLEAN := $(OUTPUT)/sgx-selftest $(OUTPUT)/sgx-selftest.o \
-	       $(OUTPUT)/sgx_call.o $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss \
-	       $(OUTPUT)/encl.elf $(OUTPUT)/encl.o $(OUTPUT)/encl_bootstrap.o \
-	       $(OUTPUT)/sgxsign
+EXTRA_CLEAN := \
+	$(OUTPUT)/encl.bin \
+	$(OUTPUT)/encl_piggy.o \
+	$(OUTPUT)/encl.elf \
+	$(OUTPUT)/encl.ss \
+	$(OUTPUT)/sgx_call.o \
+	$(OUTPUT)/sgxsign \
+	$(OUTPUT)/test_sgx \
+	$(OUTPUT)/test_sgx.o \
 
 .PHONY: clean
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/6] selftests/x86/sgx: Fix target in the Makefile
  2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
                   ` (3 preceding siblings ...)
  2019-08-16 17:23 ` [PATCH 4/6] selftests/x86/sgx: Fix EXTRA_CLEAN Jarkko Sakkinen
@ 2019-08-16 17:23 ` Jarkko Sakkinen
  2019-08-16 17:23 ` [PATCH 6/6] selftests/x86: Revert SGX changes Jarkko Sakkinen
  5 siblings, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen

The target should be "all", not "all_64".

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/x86/sgx/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/x86/sgx/Makefile
index 0f1c50c347d7..4310a5b6ecc7 100644
--- a/tools/testing/selftests/x86/sgx/Makefile
+++ b/tools/testing/selftests/x86/sgx/Makefile
@@ -11,7 +11,7 @@ ENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIC \
 	       -fno-stack-protector -mrdrnd $(INCLUDES)
 
 TEST_CUSTOM_PROGS := $(OUTPUT)/test_sgx
-all_64: $(TEST_CUSTOM_PROGS)
+all: $(TEST_CUSTOM_PROGS)
 
 $(TEST_CUSTOM_PROGS): $(OUTPUT)/main.o $(OUTPUT)/sgx_call.o \
 		      $(OUTPUT)/encl_piggy.o
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 6/6] selftests/x86: Revert SGX changes
  2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
                   ` (4 preceding siblings ...)
  2019-08-16 17:23 ` [PATCH 5/6] selftests/x86/sgx: Fix target in the Makefile Jarkko Sakkinen
@ 2019-08-16 17:23 ` Jarkko Sakkinen
  5 siblings, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2019-08-16 17:23 UTC (permalink / raw)
  To: linux-sgx; +Cc: Jarkko Sakkinen

The SGX changes are incorrect in the makefile but the more important
reason to revert the SGX changes is that we can split the binding
to a separate commit in our main patch set.

There is a design choice to be made whether to bound the selftest by
recursing from the x86 makefile or alternatively have it added to
TARGETS (i.e. TARGET += "x86/sgx"). Thus, the change that implements
the binding must a be a separate commit.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 tools/testing/selftests/x86/Makefile | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/tools/testing/selftests/x86/Makefile b/tools/testing/selftests/x86/Makefile
index a1831406fd01..fa07d526fe39 100644
--- a/tools/testing/selftests/x86/Makefile
+++ b/tools/testing/selftests/x86/Makefile
@@ -1,7 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
-
-SUBDIRS_64 := sgx
-
 all:
 
 include ../lib.mk
@@ -71,13 +68,6 @@ all_32: $(BINARIES_32)
 
 all_64: $(BINARIES_64)
 
-all_64: $(SUBDIRS_64)
-	@for DIR in $(SUBDIRS_64); do			\
-		BUILD_TARGET=$(OUTPUT)/$$DIR;		\
-		mkdir $$BUILD_TARGET  -p;		\
-		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;	\
-	done
-
 EXTRA_CLEAN := $(BINARIES_32) $(BINARIES_64)
 
 $(BINARIES_32): $(OUTPUT)/%_32: %.c
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-08-16 17:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-16 17:23 [PATCH 0/6] Fix the reported SGX selftest makefile issues Jarkko Sakkinen
2019-08-16 17:23 ` [PATCH 1/6] selftests/x86/sgx: Fix objcopy call in the Makefile Jarkko Sakkinen
2019-08-16 17:23 ` [PATCH 2/6] selftests/x86/sgx: Do not generate object files Jarkko Sakkinen
2019-08-16 17:23 ` [PATCH 3/6] selftests/x86/sgx: Add -I$(OUTPUT) when compiling encl_piggy.S Jarkko Sakkinen
2019-08-16 17:23 ` [PATCH 4/6] selftests/x86/sgx: Fix EXTRA_CLEAN Jarkko Sakkinen
2019-08-16 17:23 ` [PATCH 5/6] selftests/x86/sgx: Fix target in the Makefile Jarkko Sakkinen
2019-08-16 17:23 ` [PATCH 6/6] selftests/x86: Revert SGX changes Jarkko Sakkinen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.