[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d2feafcb-91e2-292c-d54c-5d2e46c245d7@intel.com>
Date: Fri, 12 Jul 2019 23:58:54 -0700
From: "Xing, Cedric" <cedric.xing@...el.com>
To: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>
Cc: linux-kernel@...r.kernel.org, linux-sgx@...r.kernel.org,
akpm@...ux-foundation.org, dave.hansen@...el.com,
sean.j.christopherson@...el.com, serge.ayoun@...el.com,
shay.katz-zamir@...el.com, haitao.huang@...el.com,
kai.svahn@...el.com, kai.huang@...el.com
Subject: Re: [RFC PATCH v2 1/3] selftests/x86: Fixed Makefile for SGX selftest
On 7/11/2019 8:19 PM, Jarkko Sakkinen wrote:
> On Tue, Apr 23, 2019 at 11:26:21PM -0700, Cedric Xing wrote:
>> The original x86/sgx/Makefile doesn't work when 'x86/sgx' is specified as the
>> test target. This patch fixes that problem, along with minor changes to the
>> dependencies between 'x86' and 'x86/sgx' in selftests/x86/Makefile.
>>
>> Signed-off-by: Cedric Xing <cedric.xing@...el.com>
>> ---
>> tools/testing/selftests/x86/Makefile | 12 +++----
>> tools/testing/selftests/x86/sgx/Makefile | 45 +++++++++---------------
>> 2 files changed, 22 insertions(+), 35 deletions(-)
>>
>> diff --git a/tools/testing/selftests/x86/Makefile b/tools/testing/selftests/x86/Makefile
>> index 4fc9a42f56ea..1294c5f5b6ca 100644
>> --- a/tools/testing/selftests/x86/Makefile
>> +++ b/tools/testing/selftests/x86/Makefile
>> @@ -70,11 +70,11 @@ 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 $@; \
>> +all_64: | $(SUBDIRS_64)
>> + @for DIR in $|; do \
>> + BUILD_TARGET=$(OUTPUT)/$$DIR; \
>> + mkdir $$BUILD_TARGET -p; \
>> + $(MAKE) OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
>
> This is not fix for anything. It is change in semantics. This diff
> should be isolated to its own commit as you are changing something
> outside of SGX scope.
I have removed all changes to x86/Makefile from v4.
The current x86/Makefile only builds but cannot run sgx selftest. I
don't see it as an urgent issue though.
>> done
>>
>> EXTRA_CLEAN := $(BINARIES_32) $(BINARIES_64)
>> @@ -90,7 +90,7 @@ ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),01)
>> all: warn_32bit_failure
>>
>> warn_32bit_failure:
>> - @echo "Warning: you seem to have a broken 32-bit build" 2>&1; \
>> + @echo "Warning: you seem to have a broken 32-bit build" 2>&1; \
>
> Please clean this up.
>
>> echo "environment. This will reduce test coverage of 64-bit" 2>&1; \
>> echo "kernels. If you are using a Debian-like distribution," 2>&1; \
>> echo "try:"; 2>&1; \
>> diff --git a/tools/testing/selftests/x86/sgx/Makefile b/tools/testing/selftests/x86/sgx/Makefile
>> index 1fd6f2708e81..3af15d7c8644 100644
>> --- a/tools/testing/selftests/x86/sgx/Makefile
>> +++ b/tools/testing/selftests/x86/sgx/Makefile
>> @@ -2,47 +2,34 @@ top_srcdir = ../../../../..
>>
>> include ../../lib.mk
>>
>> -HOST_CFLAGS := -Wall -Werror -g $(INCLUDES) -fPIC
>> -ENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIC \
>> +ifeq ($(shell $(CC) -dumpmachine | cut --delimiter=- -f1),x86_64)
>> +all: all_64
>> +endif
>> +
>> +HOST_CFLAGS := -Wall -Werror -g $(INCLUDES)
>> +ENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIE \
>> -fno-stack-protector -mrdrnd $(INCLUDES)
>>
>> TEST_CUSTOM_PROGS := $(OUTPUT)/test_sgx
>> all_64: $(TEST_CUSTOM_PROGS)
>>
>> -$(TEST_CUSTOM_PROGS): $(OUTPUT)/main.o $(OUTPUT)/sgx_call.o \
>> - $(OUTPUT)/encl_piggy.o
>> +$(TEST_CUSTOM_PROGS): main.c sgx_call.S $(OUTPUT)/encl_piggy.o
>> $(CC) $(HOST_CFLAGS) -o $@ $^
>>
>> -$(OUTPUT)/main.o: main.c
>> - $(CC) $(HOST_CFLAGS) -c $< -o $@
>> -
>> -$(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 $@
>> +$(OUTPUT)/encl_piggy.o: encl_piggy.S $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss
>> + $(CC) $(HOST_CFLAGS) -I$(OUTPUT) -c $< -o $@
>>
>> -$(OUTPUT)/encl.bin: $(OUTPUT)/encl.elf $(OUTPUT)/sgxsign
>> +$(OUTPUT)/encl.bin: $(OUTPUT)/encl.elf
>> objcopy --remove-section=.got.plt -O binary $< $@
>>
>> -$(OUTPUT)/encl.elf: $(OUTPUT)/encl.o $(OUTPUT)/encl_bootstrap.o
>> - $(CC) $(ENCL_CFLAGS) -T encl.lds -o $@ $^
>> +$(OUTPUT)/encl.elf: encl.lds encl.c encl_bootstrap.S
>> + $(CC) $(ENCL_CFLAGS) -T $^ -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.ss: $(OUTPUT)/encl.bin $(OUTPUT)/sgxsign
>> - $(OUTPUT)/sgxsign signing_key.pem $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss
>> +$(OUTPUT)/encl.ss: $(OUTPUT)/sgxsign signing_key.pem $(OUTPUT)/encl.bin
>> + $^ $@
>>
>> $(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
>> -
>> -.PHONY: clean
>> +EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(addprefix $(OUTPUT)/, \
>> + encl.elf encl.bin encl.ss encl_piggy.o sgxsign)
>> --
>> 2.17.1
>>
>
> What are all these changes to the makefile? I don't see mention of them
> in the commit message.
Added description to the commit message in v4.
> /Jarkko
>
Powered by blists - more mailing lists