Re: [PATCH] cris: arch-v10: kernel: kgdb: let is_dyn_brkp as extern variable

From: Chen Gang
Date: Thu Jul 09 2015 - 18:45:01 EST


On 7/9/15 09:26, gchen gchen wrote:
> On 07/07/2015 06:28 AM, Chen Gang wrote:
>> On 7/6/15 18:31, Valdis.Kletnieks@xxxxxx wrote:
>>> On Mon, 06 Jul 2015 15:49:20 +0800, Chen Gang said:
>>>> On 07/06/2015 02:25 AM, Valdis.Kletnieks@xxxxxx wrote:
>>>>> On Sun, 05 Jul 2015 06:07:54 +0800, Chen Gang said:
>>>>>> For upstream cris toolchain (gcc is 6.0
>>>>>
>>>>> typo?
>>>>>
>>>>
>>>> Do you mean "toolchain" -> "tool chain"?
>>>
>>> No, I was wondering where a gcc 6.0 managed to escape when 5.1 just got
>>> released about 2 weeks ago....
>>>
>>

gcc 5.1 with the same fedora configuration also causes the same issue:

[root@localhost gcc]# /upstream/release-cris-fedora-conf/bin/cris-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/upstream/release-cris-fedora-conf/bin/cris-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/upstream/release-cris-fedora-conf/libexec/gcc/cris-linux-gnu/5.1.0/lto-wrapper
Target: cris-linux-gnu
Configured with: ../gcc/configure --disable-nls --prefix=/upstream/release-cris-fedora-conf --disable-decimal-float --disable-dependency-tracking --disable-gold --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-nls --disable-plugin --disable-shared --disable-silent-rules --disable-sjlj-exceptions --disable-threads --enable-gnu-unique-object --enable-initfini-array --enable-languages=c --enable-linker-build-id --enable-nls --enable-obsolete --enable-targets=all --target=cris-linux-gnu --with-linker-hash-style=gnu --with-system-libunwind --with-system-zlib --without-headers
Thread model: single
gcc version 5.1.0 (GCC)

So we need add 'volatile' for the static global variable which is used
between C code and assembly code. I shall send patch v2 for it within
this week (2015-07-12).

Welcome any members ideas, suggestions, and completions.

Thanks.

>
> Oh, sorry, gcc 5.1 is the same, and at present, for me:
>
> - The new gcc have additional optimization for the static variables. It
> should notice about the related c code when optimizing, but gcc has
> no idea about assembly code (it should passes them to gas, directly).
>
> - If one want gcc skip the related optimization, it can use 'volatile'
> for it (the static variable which may be used by both c code and
> assembly code in one file).
>
> - So I guess, we need add 'volatile' to the related static variable, we
> do not want to disable this optimization only because of this issue.
>
> Welcome any additional ideas, suggestions and completions.
>
>> OK, thanks. At present, gcc 6.0 is the latest in master branch.
>>
>> After check fedora released toolchain (gcc 4.9.1, binutils 2.25), it has
>> no issue (support static variable in our case). So this patch can be
>> dropped, and I shall try:
>>
>> - Use the same configuration parameters of fedora released toolchain to
>> build the upstream latest cross toolchain again, and try.
>>
>> - If it still has issue (not support static variable), I shall try to
>> fix it.
>>
>>
>> Thanks.
>>
>
> --
> Chen Gang
>
> Open, share, and attitude like air, water, and life which God blessed
>
>

--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/