[libcamera-devel] [PATCH] libcamera: base: Remove ARM clang-11 compile error

Naushir Patuck naush at raspberrypi.com
Tue Jul 12 16:38:53 CEST 2022


Hi Jacopo,

Thank you for your feedback.

On Tue, 12 Jul 2022 at 15:24, Jacopo Mondi <jacopo at jmondi.org> wrote:

> Hi Naush,
>
> On Tue, Jul 12, 2022 at 02:01:38PM +0100, Naushir Patuck via
> libcamera-devel wrote:
> > Compiling backtrace.cpp produces the follwing error with the ARM
> clang-11 (and
> > later) compiler:
>
> Let's add "on arm32 systems"
>

Sure, no problem.  Presumably this can be done while applying?

Naush



>
> >
> > --------------------
> > ../src/libcamera/base/backtrace.cpp:195:12: error: use of SP or PC in
> the list is deprecated [-Werror,-Winline-asm]
> >         int ret = unw_getcontext(&uc);
> >                   ^
> > /usr/include/arm-linux-gnueabihf/libunwind-common.h:114:29: note:
> expanded from macro 'unw_getcontext'
> >                                         ^
> > /usr/include/arm-linux-gnueabihf/libunwind-arm.h:270:5: note: expanded
> from macro 'unw_tdep_getcontext'
> >     "stmia %[base], {r0-r15}"                                           \
> >     ^
> > <inline asm>:1:2: note: instantiated into assembly here
> >         stmia r0, {r0-r15}
> > --------------------
> >
> > Suppress this compilation error with a clang specific pragma around the
> > offending statements.
> >
> > Further information about this error can be found here:
> > https://github.com/dotnet/runtime/issues/5
> >
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
>
> Great, it fixes the build indeed!
>
> Tested-by: Jacopo Mondi <jacopo at jmondi.org>
>
> Thanks
>    j
>
> > ---
> >  src/libcamera/base/backtrace.cpp | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/src/libcamera/base/backtrace.cpp
> b/src/libcamera/base/backtrace.cpp
> > index 483492c390c3..b8ae2f6dc331 100644
> > --- a/src/libcamera/base/backtrace.cpp
> > +++ b/src/libcamera/base/backtrace.cpp
> > @@ -191,11 +191,21 @@ __attribute__((__noinline__))
> >  bool Backtrace::unwindTrace()
> >  {
> >  #if HAVE_UNWIND
> > +
> > +#if __clang__
> > +#pragma clang diagnostic push
> > +#pragma clang diagnostic ignored "-Winline-asm"
> > +#endif
> > +
> >       unw_context_t uc;
> >       int ret = unw_getcontext(&uc);
> >       if (ret)
> >               return false;
> >
> > +#if __clang__
> > +#pragma clang diagnostic pop
> > +#endif
> > +
> >       unw_cursor_t cursor;
> >       ret = unw_init_local(&cursor, &uc);
> >       if (ret)
> > --
> > 2.25.1
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20220712/7bd025ec/attachment.htm>


More information about the libcamera-devel mailing list