On 07.10.2012 12:01, Matthias Klose wrote: > On 06.10.2012 22:46, Ian Lance Taylor wrote: >> On Sat, Oct 6, 2012 at 8:09 AM, Matthias Klose <d...@ubuntu.com> wrote: >>> current trunk fails to build on arm-linux with: >>> >>> In file included from ../../../../src/libbacktrace/backtrace.c:35:0: >>> ../libgcc/unwind.h: In function '_Unwind_decode_typeinfo_ptr': >>> ../libgcc/unwind.h:42:45: error: unused parameter 'base' >>> [-Werror=unused-parameter] >>> _Unwind_decode_typeinfo_ptr (_Unwind_Word base, _Unwind_Word ptr) >>> ^ >>> ../libgcc/unwind.h: In function '__gnu_unwind_24bit': >>> ../libgcc/unwind.h:68:41: error: unused parameter 'context' >>> [-Werror=unused-parameter] >>> __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact) >>> ^ >>> ../libgcc/unwind.h:68:54: error: unused parameter 'data' >>> [-Werror=unused-parameter] >>> __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact) >>> ^ >>> ../libgcc/unwind.h:68:64: error: unused parameter 'compact' >>> [-Werror=unused-parameter] >>> __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact) >>> ^ >>> cc1: all warnings being treated as errors >>> make[8]: *** [backtrace.lo] Error 1 >>> >>> the immediate fix is to mark all arguments as unused, however I don't know >>> if >>> this function should be used by libbacktrace, if it returns _URC_FAILURE >>> unconditionally. >> >> The function is not used by libbacktrace. It's an inline function >> defined in the header file, and the warning is about the inline >> function definition. That is, this is a libgcc bug, not a >> libbacktrace bug, it just happens to show up when compiling >> libbacktrace for ARM >> >> >>> * config/arm/unwind-arm.h (__gnu_unwind_24bit): Mark parameters >>> as unused. >>> >>> >>> --- libgcc/config/arm/unwind-arm.h (revision 192162) >>> +++ libgcc/config/arm/unwind-arm.h (working copy) >>> @@ -64,8 +64,11 @@ >>> return tmp; >>> } >>> >>> +#define __unused __attribute__((unused)) >>> + >>> static inline _Unwind_Reason_Code >>> - __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact) >>> + __gnu_unwind_24bit (_Unwind_Context * context __unused, _uw data >>> __unused, >>> + int compact __unused) >>> { >>> return _URC_FAILURE; >>> } >> >> Don't #define __unused. Just write __attribute__ ((unused)) on the >> parameters. Break the lines as needed. >> >> This is OK with that change. > > committed the following. the base parameter in _Unwind_decode_typeinfo_ptr > is unused too. > > Matthias > > 2012-10-07 Matthias Klose <d...@ubuntu.com> > > * config/arm/unwind-arm.h (__gnu_unwind_24bit): Mark parameters > as unused. > (_Unwind_decode_typeinfo_ptr): Mark base as unused. > > Index: libgcc/config/arm/unwind-arm.h > =================================================================== > --- a/src/libgcc/config/arm/unwind-arm.h (revision 192162) > +++ b/src/libgcc/config/arm/unwind-arm.h (working copy) > @@ -39,7 +39,8 @@ > #endif > /* Decode an R_ARM_TARGET2 relocation. */ > static inline _Unwind_Word > - _Unwind_decode_typeinfo_ptr (_Unwind_Word base, _Unwind_Word ptr) > + _Unwind_decode_typeinfo_ptr (_Unwind_Word base __attribute__ ((unused)), > + _Unwind_Word ptr) > { > _Unwind_Word tmp; > > @@ -65,7 +66,9 @@ > } > > static inline _Unwind_Reason_Code > - __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact) > + __gnu_unwind_24bit (_Unwind_Context * context __attribute__ ((unused)), > + _Unwind_Context *_uw data __attribute__ ((unused)), > + int compact __attribute__ ((unused))) > { > return _URC_FAILURE; > } >
and as a follow-up, fix the typo, committed as obvious --- config/arm/unwind-arm.h (revision 192181) +++ config/arm/unwind-arm.h (working copy) @@ -67,7 +67,7 @@ static inline _Unwind_Reason_Code __gnu_unwind_24bit (_Unwind_Context * context __attribute__ ((unused)), - _Unwind_Context *_uw data __attribute__ ((unused)), + _uw data __attribute__ ((unused)), int compact __attribute__ ((unused))) { return _URC_FAILURE;