2017-03-03 00:58:38

by Alexey Kardashevskiy

[permalink] [raw]
Subject: [RFC PATCH kernel] gcc-goto.sh: Allow to pass with CONFIG_DEBUG_INFO_SPLIT=y

With just CONFIG_DEBUG_INFO=y, the makefile adds "-g" to
KBUILD_CFLAGS/KBUILD_AFLAGS and the test passes.

However, if CONFIG_DEBUG_INFO_SPLIT is also enabled, the makefile
adds "-gsplit-dwarf" instead which makes the test fail with $?==1
because of objcopy trying to split the debug info:

objcopy: Warning: '/dev/null' is not an ordinary file

This changes the output to $(mktemp) which fixes the problem.

I am pretty sure there better ways, this is just to demonstrate the bug.

gcc 5.4.1, ppc64le (does not really matter).

Cc: Jason Baron <[email protected]>
Signed-off-by: Alexey Kardashevskiy <[email protected]>
---
scripts/gcc-goto.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
index c9469d34ecc6..ab21216ab68d 100755
--- a/scripts/gcc-goto.sh
+++ b/scripts/gcc-goto.sh
@@ -2,7 +2,8 @@
# Test for gcc 'asm goto' support
# Copyright (C) 2010, Jason Baron <[email protected]>

-cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
+TMPOUT=$(mktemp)
+cat << "END" | $@ -x c - -c -o $TMPOUT >/dev/null 2>&1 && echo "y"
int main(void)
{
#if defined(__arm__) || defined(__aarch64__)
@@ -19,3 +20,5 @@ entry:
return 0;
}
END
+
+rm $TMPOUT 2>/dev/null 2>&1
--
2.11.0


2017-03-14 02:54:37

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [RFC PATCH kernel] gcc-goto.sh: Allow to pass with CONFIG_DEBUG_INFO_SPLIT=y

On 03/03/17 11:51, Alexey Kardashevskiy wrote:
> With just CONFIG_DEBUG_INFO=y, the makefile adds "-g" to
> KBUILD_CFLAGS/KBUILD_AFLAGS and the test passes.
>
> However, if CONFIG_DEBUG_INFO_SPLIT is also enabled, the makefile
> adds "-gsplit-dwarf" instead which makes the test fail with $?==1
> because of objcopy trying to split the debug info:
>
> objcopy: Warning: '/dev/null' is not an ordinary file
>
> This changes the output to $(mktemp) which fixes the problem.
>
> I am pretty sure there better ways, this is just to demonstrate the bug.
>
> gcc 5.4.1, ppc64le (does not really matter).
>
> Cc: Jason Baron <[email protected]>


Ping?



> Signed-off-by: Alexey Kardashevskiy <[email protected]>
> ---
> scripts/gcc-goto.sh | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
> index c9469d34ecc6..ab21216ab68d 100755
> --- a/scripts/gcc-goto.sh
> +++ b/scripts/gcc-goto.sh
> @@ -2,7 +2,8 @@
> # Test for gcc 'asm goto' support
> # Copyright (C) 2010, Jason Baron <[email protected]>
>
> -cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
> +TMPOUT=$(mktemp)
> +cat << "END" | $@ -x c - -c -o $TMPOUT >/dev/null 2>&1 && echo "y"
> int main(void)
> {
> #if defined(__arm__) || defined(__aarch64__)
> @@ -19,3 +20,5 @@ entry:
> return 0;
> }
> END
> +
> +rm $TMPOUT 2>/dev/null 2>&1
>


--
Alexey

2017-03-15 02:27:17

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [RFC PATCH kernel] gcc-goto.sh: Allow to pass with CONFIG_DEBUG_INFO_SPLIT=y

On 14/03/17 13:54, Alexey Kardashevskiy wrote:
> On 03/03/17 11:51, Alexey Kardashevskiy wrote:
>> With just CONFIG_DEBUG_INFO=y, the makefile adds "-g" to
>> KBUILD_CFLAGS/KBUILD_AFLAGS and the test passes.
>>
>> However, if CONFIG_DEBUG_INFO_SPLIT is also enabled, the makefile
>> adds "-gsplit-dwarf" instead which makes the test fail with $?==1
>> because of objcopy trying to split the debug info:
>>
>> objcopy: Warning: '/dev/null' is not an ordinary file
>>
>> This changes the output to $(mktemp) which fixes the problem.
>>
>> I am pretty sure there better ways, this is just to demonstrate the bug.
>>
>> gcc 5.4.1, ppc64le (does not really matter).
>>
>> Cc: Jason Baron <[email protected]>
>
>
> Ping?

I am adding more folks as Jason's mail server rejects mails with "Recipient
address rejected: Access denied ".


>
>
>
>> Signed-off-by: Alexey Kardashevskiy <[email protected]>
>> ---
>> scripts/gcc-goto.sh | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
>> index c9469d34ecc6..ab21216ab68d 100755
>> --- a/scripts/gcc-goto.sh
>> +++ b/scripts/gcc-goto.sh
>> @@ -2,7 +2,8 @@
>> # Test for gcc 'asm goto' support
>> # Copyright (C) 2010, Jason Baron <[email protected]>
>>
>> -cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
>> +TMPOUT=$(mktemp)
>> +cat << "END" | $@ -x c - -c -o $TMPOUT >/dev/null 2>&1 && echo "y"
>> int main(void)
>> {
>> #if defined(__arm__) || defined(__aarch64__)
>> @@ -19,3 +20,5 @@ entry:
>> return 0;
>> }
>> END
>> +
>> +rm $TMPOUT 2>/dev/null 2>&1
>>
>
>


--
Alexey

2017-03-27 02:33:16

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [RFC PATCH kernel] gcc-goto.sh: Allow to pass with CONFIG_DEBUG_INFO_SPLIT=y

On 15/03/17 13:27, Alexey Kardashevskiy wrote:
> On 14/03/17 13:54, Alexey Kardashevskiy wrote:
>> On 03/03/17 11:51, Alexey Kardashevskiy wrote:
>>> With just CONFIG_DEBUG_INFO=y, the makefile adds "-g" to
>>> KBUILD_CFLAGS/KBUILD_AFLAGS and the test passes.
>>>
>>> However, if CONFIG_DEBUG_INFO_SPLIT is also enabled, the makefile
>>> adds "-gsplit-dwarf" instead which makes the test fail with $?==1
>>> because of objcopy trying to split the debug info:
>>>
>>> objcopy: Warning: '/dev/null' is not an ordinary file
>>>
>>> This changes the output to $(mktemp) which fixes the problem.
>>>
>>> I am pretty sure there better ways, this is just to demonstrate the bug.
>>>
>>> gcc 5.4.1, ppc64le (does not really matter).
>>>
>>> Cc: Jason Baron <[email protected]>
>>
>>
>> Ping?
>
> I am adding more folks as Jason's mail server rejects mails with "Recipient
> address rejected: Access denied ".


Anyone, ping?


>
>
>>
>>
>>
>>> Signed-off-by: Alexey Kardashevskiy <[email protected]>
>>> ---
>>> scripts/gcc-goto.sh | 5 ++++-
>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
>>> index c9469d34ecc6..ab21216ab68d 100755
>>> --- a/scripts/gcc-goto.sh
>>> +++ b/scripts/gcc-goto.sh
>>> @@ -2,7 +2,8 @@
>>> # Test for gcc 'asm goto' support
>>> # Copyright (C) 2010, Jason Baron <[email protected]>
>>>
>>> -cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
>>> +TMPOUT=$(mktemp)
>>> +cat << "END" | $@ -x c - -c -o $TMPOUT >/dev/null 2>&1 && echo "y"
>>> int main(void)
>>> {
>>> #if defined(__arm__) || defined(__aarch64__)
>>> @@ -19,3 +20,5 @@ entry:
>>> return 0;
>>> }
>>> END
>>> +
>>> +rm $TMPOUT 2>/dev/null 2>&1
>>>
>>
>>
>
>


--
Alexey