Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: Alex Elder <elder@riscstar.com>
To: Haylen Chu <heylenay@4d2.org>, Yixun Lan <dlan@gentoo.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Inochi Amaoto <inochiama@outlook.com>
Subject: Re: [spacemit:for-next 4/6] drivers/clk/spacemit/ccu-k1.c:241:1: error: initializer element is not a compile-time constant
Date: Wed, 16 Apr 2025 07:20:37 -0500	[thread overview]
Message-ID: <10f1ff34-5a34-4a18-b0e7-010c407190fa@riscstar.com> (raw)
In-Reply-To: <Z_-eYhc2kZrVoL9m@ketchup>

On 4/16/25 7:11 AM, Haylen Chu wrote:
> On Tue, Apr 15, 2025 at 11:03:12AM -0500, Alex Elder wrote:
>> On 4/15/25 9:31 AM, Yixun Lan wrote:
>>> Hi Alex,
>>>
>>> On 09:16 Tue 15 Apr     , Alex Elder wrote:
>>>> On 4/15/25 8:44 AM, kernel test robot wrote:
>>>>> tree:   https://github.com/spacemit-com/linux for-next
>>>>> head:   9ead3efbc88a21e9a1f38948cc0902518022a2e5
>>>>> commit: e2d238ba301f25a5c8a7d490a36f9cd014d7aecc [4/6] clk: spacemit: Add clock support for SpacemiT K1 SoC
>>>>> config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250415/202504152107.7ekGPIrF-lkp@intel.com/config)
>>>>> compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
>>>>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250415/202504152107.7ekGPIrF-lkp@intel.com/reproduce)
>>>>>
>>>>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>>>>> the same patch/commit), kindly add following tags
>>>>> | Reported-by: kernel test robot <lkp@intel.com>
>>>>> | Closes: https://lore.kernel.org/oe-kbuild-all/202504152107.7ekGPIrF-lkp@intel.com/
>>>>>
>>>>> All errors (new ones prefixed by >>):
>>>>
>>>> If I'm interpreting this right, this seems to be a problem on
>>>> a S390 build (under COMPILE_TEST), because there is no constant
>>>> version of the __ffs() for that architecture.  This might be the
>>>> case on other architectures as well.
>>>>
>>>> On RISC-V, this is fine.
>>>>
>>>> Any recommendations on how to address this?
>>>>
>>> it occur to me the __ffs() isn't really necessary, since all input
>>> is constant value (GENMASK here), we then should know the shift..
>>
>> I asked Haylen to make this change.  Yes, we know the
>> shift, but I much prefer specifying only a constant mask
>> (which implies both the shift and the width) rather than
>> a constant mask and shift (or width and shift).
>>
>> If there's no way to avoid this S390 compile error, then
>> adding the separate (and redundant) shift value back
>> into all these definitions is a solution.
> 
> We could avoid the redundancy by specifying only width and shift and
> move the call to GENMASK() into the macro, see my previous reply. To me
> it doesn't look very different, it's just about where to invoke
> GENMASK().

Do what you like to fix it.  What you suggest is fine with me.

					-Alex

>> 					-Alex
> 
> Thanks,
> Haylen Chu
> 
>>
>>>
>>>>
>>>>
>>>>>
>>>>>>> drivers/clk/spacemit/ccu-k1.c:241:1: error: initializer element is not a compile-time constant
>>>>>         241 | CCU_DDN_DEFINE(slow_uart1_14p74, pll1_d16_153p6, MPMU_SUCCR, GENMASK(28, 16), GENMASK(12, 0), 0);
>>>>>             | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>       drivers/clk/spacemit/ccu_ddn.h:33:15: note: expanded from macro 'CCU_DDN_DEFINE'
>>>>>          33 |         .num_shift      = __ffs(_num_mask),                                     \
>>>>>             |                           ^~~~~~~~~~~~~~~~
>>>>>       drivers/clk/spacemit/ccu-k1.c:242:1: error: initializer element is not a compile-time constant
>>>>>         242 | CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1, GENMASK(28, 16), GENMASK(12, 0), 0);
>>>>>             | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>       drivers/clk/spacemit/ccu_ddn.h:33:15: note: expanded from macro 'CCU_DDN_DEFINE'
>>>>>          33 |         .num_shift      = __ffs(_num_mask),                                     \
>>>>>             |                           ^~~~~~~~~~~~~~~~
>>>>>       2 errors generated.
>>>>>
>>>>>
>>>>> vim +241 drivers/clk/spacemit/ccu-k1.c
>>>>>
>>>>>       239	
>>>>>       240	CCU_GATE_DEFINE(slow_uart, CCU_PARENT_NAME(osc), MPMU_ACGR, BIT(1), CLK_IGNORE_UNUSED);
>>>>>     > 241	CCU_DDN_DEFINE(slow_uart1_14p74, pll1_d16_153p6, MPMU_SUCCR, GENMASK(28, 16), GENMASK(12, 0), 0);
>>>>>       242	CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1, GENMASK(28, 16), GENMASK(12, 0), 0);
>>>>>       243	
>>>>>
>>>>
>>>
>>


      reply	other threads:[~2025-04-16 12:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-15 13:44 [spacemit:for-next 4/6] drivers/clk/spacemit/ccu-k1.c:241:1: error: initializer element is not a compile-time constant kernel test robot
2025-04-15 14:16 ` Alex Elder
2025-04-15 14:31   ` Yixun Lan
2025-04-15 14:56     ` Haylen Chu
2025-04-15 15:16       ` Yixun Lan
2025-04-15 16:03     ` Alex Elder
2025-04-16 12:11       ` Haylen Chu
2025-04-16 12:20         ` Alex Elder [this message]

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=10f1ff34-5a34-4a18-b0e7-010c407190fa@riscstar.com \
    --to=elder@riscstar.com \
    --cc=dlan@gentoo.org \
    --cc=heylenay@4d2.org \
    --cc=inochiama@outlook.com \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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