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

Jacopo Mondi jacopo at jmondi.org
Tue Jul 12 18:13:31 CEST 2022


Hi Naush,

On Tue, Jul 12, 2022 at 03:38:53PM +0100, Naushir Patuck wrote:
> 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?
>

Sure it does!

Let's wait for one more review and merge this fast as it fixes a
compilation error.

Thanks
   j

> 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
> > >
> >


More information about the libcamera-devel mailing list