linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: WangYuli <wangyuli@uniontech.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: akpm@linux-foundation.org, Liam.Howlett@oracle.com,
	vbabka@suse.cz, jannh@google.com, pfalcato@suse.de,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	niecheng1@uniontech.com, guanwentao@uniontech.com,
	Jun Zhan <zhanjun@uniontech.com>,
	linux-kbuild@vger.kernel.org
Subject: Re: [PATCH] tools/testing/vma: Fix function parameter declarations for GCC 8.3 compatibility
Date: Thu, 31 Jul 2025 10:55:32 +0800	[thread overview]
Message-ID: <CB890ABC56C2FA67+56b95783-ed70-4744-9fc5-f2d93ddf2c12@uniontech.com> (raw)
In-Reply-To: <e7554f93-03e8-4315-acb7-a55312354485@lucifer.local>


[-- Attachment #1.1.1: Type: text/plain, Size: 2443 bytes --]

Hi Lorenzo Stoakes,

On 2025/7/29 17:06, Lorenzo Stoakes wrote:
> On Tue, Jul 29, 2025 at 04:47:00PM +0800, WangYuli wrote:
>> The Linux kernel's minimum GCC version requirement has been bumped
>> from 4.3 to 8.3, but this tool still fails to compile with GCC 8.3.
> Why people keep reporting this for my VMA test series but _not_ the kernel
> as a whole I don't know.
>
> $ grep "\*);" include/linux/mm.h | wc -l
> 9
>
> ^--- If you use such a compiler, the kernel won't build.
>
> So the bug is whoever is saying a version of gcc that does the below (I'll
> take your word for it that this is in a normal configuraiton) is OK for the
> kernel.
>
> It's clearly not.
>
> Oh just to underline things:
>
> $ find include/linux -name '*.h' | xargs grep "\*);" | wc -l
> 1899
>
> So y'know.
>
>> Older compilers would fail if did not include parameter names in
>> function declarations that contained parameter types; newer compilers
>> are more lenient about this.
> You're using a compiler that won't build linux. Stop it?
>
>> Fix many errors like this:
>>    In file included from vma.c:10:
>>    vma_internal.h: In function ‘arch_validate_flags’:
>>    vma_internal.h:1218:40: error: parameter name omitted
>>     static inline bool arch_validate_flags(unsigned long)
>>                                          ^~~~~~~~~~~~~
>>    vma.c: In function ‘dummy_close’:
>>    vma.c:281:25: error: parameter name omitted
>>     static void dummy_close(struct vm_area_struct *)
>>                           ^~~~~~~~~~~~~~~~~~~~~~~
>>
>> Reported-by: Jun Zhan <zhanjun@uniontech.com>
>> Signed-off-by: WangYuli <wangyuli@uniontech.com>
> NAK.
>
Thanks for the heads-up! I noticed that coding style in the kernel code 
as well.

However, GCC 8.3 (which does meet the kernel's compiler version 
requirements) can compile the kernel code normally, but it can't compile 
vma's test correctly.

Could the issue be related to differences in compilation parameters? 
I'll need to spend some time looking into this more closely...

By the way, this coding style has been a GNU C extension until the ISO 
C23 standard. So, until the kernel's C language standard is upgraded to 
C23 (which seems unlikely to happen anytime soon, perhaps years down the 
line), it actually makes sense to modify this style for a practical 
purpose...

[ Cc the kbuild list. ]

Thanks,

-- 
WangYuli

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 645 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

  reply	other threads:[~2025-07-31  2:56 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-29  8:47 WangYuli
2025-07-29  9:06 ` Lorenzo Stoakes
2025-07-31  2:55   ` WangYuli [this message]
2025-07-31 10:24     ` Lorenzo Stoakes
2025-07-31 18:13       ` Vlastimil Babka
2025-08-01  5:14         ` Lorenzo Stoakes
2025-08-01  5:57           ` WangYuli
2025-08-01  8:04             ` Vlastimil Babka
2025-08-01  8:50               ` Lorenzo Stoakes
2025-08-01  9:22                 ` Vlastimil Babka
2025-08-01  9:26                 ` WangYuli
2025-08-01  9:33                   ` Lorenzo Stoakes
2025-08-01  9:48                     ` Vlastimil Babka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CB890ABC56C2FA67+56b95783-ed70-4744-9fc5-f2d93ddf2c12@uniontech.com \
    --to=wangyuli@uniontech.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=guanwentao@uniontech.com \
    --cc=jannh@google.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=niecheng1@uniontech.com \
    --cc=pfalcato@suse.de \
    --cc=vbabka@suse.cz \
    --cc=zhanjun@uniontech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox