diff mbox series

selftests: kvm: fix mkdir error when building for non-supported arch

Message ID 20240806121029.1199794-1-usama.anjum@collabora.com (mailing list archive)
State New
Headers show
Series selftests: kvm: fix mkdir error when building for non-supported arch | expand

Commit Message

Muhammad Usama Anjum Aug. 6, 2024, 12:10 p.m. UTC
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(-)

Comments

Shuah Khan Aug. 6, 2024, 4 p.m. UTC | #1
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
Muhammad Usama Anjum Aug. 7, 2024, 6:08 a.m. UTC | #2
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
Muhammad Usama Anjum Aug. 7, 2024, 6:33 a.m. UTC | #3
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
>
Muhammad Usama Anjum Aug. 8, 2024, 12:13 p.m. UTC | #4
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
>>
>
diff mbox series

Patch

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)