Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: Haylen Chu <heylenay@4d2.org>
To: Yixun Lan <dlan@gentoo.org>, Alex Elder <elder@riscstar.com>
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: Tue, 15 Apr 2025 14:56:57 +0000	[thread overview]
Message-ID: <Z_5zudOYiNPJbeUR@ketchup> (raw)
In-Reply-To: <20250415143137-GYB30887@gentoo>

On Tue, Apr 15, 2025 at 02:31:37PM +0000, 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'll second this: instead of calculating the LSB from bitmask in
compilation time, we could derive bitmask from LSB/MSB of the field:
taking slow_uart2_48 as example, this means changing current definition
to

	CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1,
		       28, 16, 12, 0, 0);

> > 
> > 
> > > 
> > >>> 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	
> > > 
> > 
> 
> -- 
> Yixun Lan (dlan)
> Gentoo Linux Developer
> GPG Key ID AABEFD55

Regards,
Haylen Chu

  reply	other threads:[~2025-04-15 14:57 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 [this message]
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

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=Z_5zudOYiNPJbeUR@ketchup \
    --to=heylenay@4d2.org \
    --cc=dlan@gentoo.org \
    --cc=elder@riscstar.com \
    --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