Thread (5 messages) 5 messages, 4 authors, 2022-07-25

Re: [PATCH] powerpc: Remove the static variable initialisations to 0

From: Segher Boessenkool <hidden>
Date: 2022-07-25 16:22:09
Also in: lkml

On Mon, Jul 25, 2022 at 01:27:52PM +1000, Michael Ellerman wrote:
Segher Boessenkool [off-list ref] writes:
quoted
On Sat, Jul 23, 2022 at 03:34:05PM +0200, Michal Suchánek wrote:
quoted
Hello,

On Sat, Jul 23, 2022 at 05:24:36PM +0800, Jason Wang wrote:
quoted
Initialise global and static variable to 0 is always unnecessary.
Remove the unnecessary initialisations.
Isn't this change also unnecessary?

Initializing to 0 does not affect correctness, or even any kind of
semantics in any way.
It did make a difference when the kernel was still compiled with
-fcommon (which used to be the GCC default on most configurations, it is
traditional on Unix).  No explicit initialiser puts an object in .bss if
you use -fcommon.  This matters a bit for data layout.
The kernel has built with -fno-common since ~2002.
2001, yes (255649c18287).  And before that it was important to
initialise everything with static storage duration explicitly in the
source code.  It was part of the collective memory, I wondered if this
patch originated that way?
I think the belief is that an explicit initialiser of 0 forces the
variable into .data, but AFAICS that is not true with any compiler we
support.
Exactly, you get identical code either way, if you use -fno-common.
People will still see this difference if they use a compiler before
GCC 10 for compiling most other things though.


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help