[Buildroot] [PATCH] modem-manager: remove -Werror from CFLAGS
Peter Korsgaard
peter at korsgaard.com
Mon May 21 15:54:14 UTC 2018
>>>>> "Carlos" == Carlos Santos <casantos at datacom.ind.br> writes:
> We are aproaching the 2018.05 release and modem-manager is still broken
> due to warnings like this:
> mm-base-manager.c: In function 'handle_set_logging':
> mm-base-manager.c:680:15: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
ctx-> self = g_object_ref (manager);
> ^
> There is a macro defined in build/libglib2-2.56.1/gobject/gobject.h
> which leads to the assignment errors:
> 511 /* Make reference APIs type safe with macros */
> 512 #define g_object_ref(Obj) ((__typeof__(Obj)) (g_object_ref) (Obj))
> The problem can be easily reproduced with this sample code:
> $ cat test.c
> extern void *g_object_ref(void *);
> #define g_object_ref(Obj) ((__typeof__(Obj)) (g_object_ref) (Obj))
> extern double *new_double(int *);
> double *new_double(int *ip) {
> double *dp;
> dp = g_object_ref(ip);
> return dp;
> }
> $ gcc -Wall -Werror -c /tmp/test.c -o /tmp/test.o
> /tmp/test.c: In function ‘new_context’:
> /tmp/test.c:19:13: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
ctx-> self = g_object_ref(om);
> ^
> cc1: all warnings being treated as errors
> Fixing the code would require either changing the 120 ofending calls to
> g_object_ref or a refactoring to make all types assignment compatible.
> Let's take a simpler approach, disabling -Werror, and wait for the next
> release of ModemManager.
> Signed-off-by: Carlos Santos <casantos at datacom.ind.br>
> ---
> package/modem-manager/modem-manager.mk | 6 ++++++
> 1 file changed, 6 insertions(+)
> diff --git a/package/modem-manager/modem-manager.mk b/package/modem-manager/modem-manager.mk
> index 100c4a2941..ba4711b6c2 100644
> --- a/package/modem-manager/modem-manager.mk
> +++ b/package/modem-manager/modem-manager.mk
> @@ -19,6 +19,12 @@ else
> MODEM_MANAGER_CONF_OPTS += --without-qmi
> endif
> +define MODEM_MANAGER_REMOVE_WERROR
> + $(SED) 's: -Werror::' $(@D)/configure
> +endef
-Werror seems to come from m4/compiler_warnings.m4:
AC_ARG_ENABLE(more-warnings,
AS_HELP_STRING([--enable-more-warnings], [Maximum compiler warnings]),
set_more_warnings="$enableval",set_more_warnings=yes)
AC_MSG_CHECKING(for more warnings, including -Werror)
if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
AC_MSG_RESULT(yes)
CFLAGS="-Wall -Werror -std=gnu89 $CFLAGS"
Wouldn't passing --disable-more-warnings work instead of hacking up
configure?
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list