Re: ACPICA compilation error on x86_64_defconfig (W=1 build)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



GCC should ignore all clang specific pragmas as far as I know.

But this seems to me the not the best solution either. What code needs is to
have some refactoring to make sure the variable is used or not defined and used
at all. Unfortunately, I am not familiar with ACPICA to propose anything right
now, though.

On Tue, Apr 08, 2025 at 09:34:36PM +0300, Dumbre, Saket wrote:
> I am not sure about the Linux environment specifics like Andy described in the
> previous conversation, but if GCC or some other compiler throws an error in the
> code with #pragma for clang, then may I suggest using this instead:
> 
> #pragma clang diagnostic push
> #if defined(__clang__) && __clang__ >= n (replace n with the least version
> number which introduces this new warning type)
> #pragma clang diagnostic ignored "-Wunused-but-set-variable"
> #endif
> u32 num_carats;
> #pragma clang diagnostic pop
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> From: Dumbre, Saket <saket.dumbre@xxxxxxxxx>
> Sent: Tuesday, April 8, 2025 11:11 AM
> To: Shevchenko, Andriy <andriy.shevchenko@xxxxxxxxx>; Rafael J. Wysocki
> <rafael@xxxxxxxxxx>
> Cc: Moore, Robert <robert.moore@xxxxxxxxx>; Wysocki, Rafael J
> <rafael.j.wysocki@xxxxxxxxx>; linux-acpi@xxxxxxxxxxxxxxx
> <linux-acpi@xxxxxxxxxxxxxxx>; acpica-devel@xxxxxxxxxxxxxxx
> <acpica-devel@xxxxxxxxxxxxxxx>
> Subject: Re: ACPICA compilation error on x86_64_defconfig (W=1 build)
>  
> Hi Andy and Rafael,
> 
> This issue is a duplication of an Apple ecosystem-based (ARM + M-series micro
> architecture) ACPICA GitHub Issue, which I was waiting on a response from the
> contributor/submitter to move ahead to resolve it:
> https://github.com/acpica/acpica/issues/973
> 
> I don't see a platform specific file for Clang/LLVM in ACPICA (only for GCC and
> MSVC), so I think the worst-case untidy solution would be to locally patch this
> warning-turned-error by suppressing this warning type if the compiler is Clang/
> LLVM. 
> 
> It would look somewhat better to move that line all the way down after all the
> other definitions/declarations just before any execution line and wrap it with
> a #pragma something along the lines:
> 
> #pragma clang diagnostic push
> #pragma clang diagnostic ignored "-Wunused-but-set-variable"
> u32 num_carats;
> #pragma clang diagnostic pop
> 
> I am just not sure if this is the only place in the ACPICA code that generates
> this warning type and depending on the answer, this fix could be implemented at
> a wider/global scale, but please give this hacky fix a try and let me know if
> it resolves that. Thanks a lot! 
> 
> 
> Kind regards,
> 
> Saket Dumbre
> 
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> From: Shevchenko, Andriy
> Sent: Monday, April 7, 2025 11:51 AM
> To: Rafael J. Wysocki
> Cc: Dumbre, Saket; Moore, Robert; Wysocki, Rafael J;
> linux-acpi@xxxxxxxxxxxxxxx; acpica-devel@xxxxxxxxxxxxxxx
> Subject: Re: ACPICA compilation error on x86_64_defconfig (W=1 build)
> 
> On Mon, Apr 07, 2025 at 08:49:41PM +0200, Rafael J. Wysocki wrote:
> > On Mon, Apr 7, 2025 at 8:47 PM Andy Shevchenko
> > <andriy.shevchenko@xxxxxxxxx> wrote:
> > >
> > > v6.15-rc1 (but seems older should also be problematic) fails to compile by
> > > Clang 19 with `make W=1`.
> > >
> > >   CC      drivers/acpi/acpica/nsaccess.o
> > >   drivers/acpi/acpica/nsaccess.c:295:6: error: variable 'num_carats' set
> but not used [-Werror,-Wunused-but-set-variable]
> > >     295 |         u32 num_carats;
> > >         |             ^
> > >   1 error generated.
> > >
> > > I looked briefly in the code and I have no idea how to fix this, as
> probably
> > > __maybe_unused not an option for ACPICA. Hence this report.
> > >
> > > Note, the in-tree defconfig is in use:
> > >
> > >         git checkout v6.15-rc1
> > >         make x86_64_defconfig
> 
> > >         make W=1
> 
> Since it's a clang, this should have also something like LLVM=1.
> 
> > > should trigger it.
> 
> --
> With Best Regards,
> Andy Shevchenko
> 
> 

-- 
With Best Regards,
Andy Shevchenko






[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux