The mkdir generates an error when kvm suite is build for non-supported architecture such as arm. Fix it by ignoring the error from mkdir.
mkdir: missing operand Try 'mkdir --help' for more information.
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com --- tools/testing/selftests/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile index 48d32c5aa3eb7..8ff46a0a8d1cd 100644 --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
-$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))) > /dev/null 2>&1) $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
On 8/6/24 06:10, Muhammad Usama Anjum wrote:
The mkdir generates an error when kvm suite is build for non-supported
built unsupported
architecture such as arm. Fix it by ignoring the error from mkdir.
mkdir: missing operand Try 'mkdir --help' for more information.
Simply suppressing the message isn't a good fix. Can you investigate a bit more on why mkdir is failing and the architectures it is failing on?
This change simply suppresses the error message and continues - Should this error end the build process or not run mkdir to begin with by checking why $(sort $(dir $(TEST_GEN_PROGS)))) results in an empty string?
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com
tools/testing/selftests/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile index 48d32c5aa3eb7..8ff46a0a8d1cd 100644 --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@ -$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))) > /dev/null 2>&1) $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
thanks, -- Shuah
On 8/6/24 9:00 PM, Shuah Khan wrote:
On 8/6/24 06:10, Muhammad Usama Anjum wrote:
The mkdir generates an error when kvm suite is build for non-supported
built unsupported
architecture such as arm. Fix it by ignoring the error from mkdir.
mkdir: missing operand Try 'mkdir --help' for more information.
Simply suppressing the message isn't a good fix. Can you investigate a bit more on why mkdir is failing and the architectures it is failing on?
This change simply suppresses the error message and continues - Should this error end the build process or not run mkdir to begin with by checking why $(sort $(dir $(TEST_GEN_PROGS)))) results in an empty string?
The tests are specified on per architecture basis. As KVM isn't supported on arm, there are no tests in TEST_GEN_PROGS and it is empty. While lib.mk infrastructure has support to ignore and not build anything in such cases, the Makefile's behaviour isn't robust enough.
I think the better fix would be to check if TEST_GEN_PROGS isn't empty and then call mkdir. I'll reiterate and send the fix.
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com
tools/testing/selftests/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile index 48d32c5aa3eb7..8ff46a0a8d1cd 100644 --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@ -$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))) > /dev/null 2>&1) $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
thanks, -- Shuah
On 8/7/24 11:08 AM, Muhammad Usama Anjum wrote:
On 8/6/24 9:00 PM, Shuah Khan wrote:
On 8/6/24 06:10, Muhammad Usama Anjum wrote:
The mkdir generates an error when kvm suite is build for non-supported
built unsupported
architecture such as arm. Fix it by ignoring the error from mkdir.
mkdir: missing operand Try 'mkdir --help' for more information.
Simply suppressing the message isn't a good fix. Can you investigate a bit more on why mkdir is failing and the architectures it is failing on?
This change simply suppresses the error message and continues - Should this error end the build process or not run mkdir to begin with by checking why $(sort $(dir $(TEST_GEN_PROGS)))) results in an empty string?
The tests are specified on per architecture basis. As KVM isn't supported on arm, there are no tests in TEST_GEN_PROGS and it is empty. While lib.mk infrastructure has support to ignore and not build anything in such cases, the Makefile's behaviour isn't robust enough.
I think the better fix would be to check if TEST_GEN_PROGS isn't empty and then call mkdir. I'll reiterate and send the fix.
Waiting on Paolo's response before sending the following fix. Maybe he has better idea here. --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,9 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
-$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +ifneq ($(strip $(TEST_GEN_PROGS)),) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +endif $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com
tools/testing/selftests/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile index 48d32c5aa3eb7..8ff46a0a8d1cd 100644 --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@ -$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))) > /dev/null 2>&1) $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
thanks, -- Shuah
Adding Sean
On 8/7/24 11:33 AM, Muhammad Usama Anjum wrote:
On 8/7/24 11:08 AM, Muhammad Usama Anjum wrote:
On 8/6/24 9:00 PM, Shuah Khan wrote:
On 8/6/24 06:10, Muhammad Usama Anjum wrote:
The mkdir generates an error when kvm suite is build for non-supported
built unsupported
architecture such as arm. Fix it by ignoring the error from mkdir.
mkdir: missing operand Try 'mkdir --help' for more information.
Simply suppressing the message isn't a good fix. Can you investigate a bit more on why mkdir is failing and the architectures it is failing on?
This change simply suppresses the error message and continues - Should this error end the build process or not run mkdir to begin with by checking why $(sort $(dir $(TEST_GEN_PROGS)))) results in an empty string?
The tests are specified on per architecture basis. As KVM isn't supported on arm, there are no tests in TEST_GEN_PROGS and it is empty. While lib.mk infrastructure has support to ignore and not build anything in such cases, the Makefile's behaviour isn't robust enough.
I think the better fix would be to check if TEST_GEN_PROGS isn't empty and then call mkdir. I'll reiterate and send the fix.
Waiting on Paolo's response before sending the following fix. Maybe he has better idea here. --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,9 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
-$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +ifneq ($(strip $(TEST_GEN_PROGS)),) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +endif $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
Do you agree with the fix or is there better fix? Please feel free to jump in to propose better fix here.
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com
tools/testing/selftests/kvm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile index 48d32c5aa3eb7..8ff46a0a8d1cd 100644 --- a/tools/testing/selftests/kvm/Makefile +++ b/tools/testing/selftests/kvm/Makefile @@ -317,7 +317,7 @@ $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS) $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@ -$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))) > /dev/null 2>&1) $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS) $(TEST_GEN_PROGS): $(LIBKVM_OBJS) $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org