After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 786192 - Meson: -Werror=undef problems in mini-fribidi
Meson: -Werror=undef problems in mini-fribidi
Status: RESOLVED FIXED
Product: pango
Classification: Platform
Component: general
unspecified
Other All
: Normal major
: ---
Assigned To: pango-maint
pango-maint
Depends on:
Blocks:
 
 
Reported: 2017-08-12 09:16 UTC by Philip Withnall
Modified: 2017-08-14 21:14 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
mini-fribidi: Squash -Werror=undef failures due to use of #if (1.45 KB, patch)
2017-08-12 09:26 UTC, Philip Withnall
committed Details | Review

Description Philip Withnall 2017-08-12 09:16:27 UTC
It looks like -Werror=undef is being set for the compilation of mini-fribidi when it probably wasn’t before (with the autotools) build, which causes it to fail because the fribidi_config.h file only defines one of the HAS_FRIBIDI_TAB_CHAR_TYPE_* macros.

Fixes would include:
 - Not passing -Werror=undef while compiling mini-fribidi.
 - Fixing mini-fribidi to use #if rather than #ifdef.

[1/118] Compiling C object 'pango/mini-fribidi/libmini-fribidi@sta/fribidi_char_type.c.o'.
FAILED: pango/mini-fribidi/libmini-fribidi@sta/fribidi_char_type.c.o 
cc  -Ipango/mini-fribidi/libmini-fribidi@sta -Ipango/mini-fribidi -I../../checkout/pango/pango/mini-fribidi -I. -I../../checkout/pango/ -I/scratch/coverity-scan-jhbuild/install/include/glib-2.0 -I/scratch/coverity-scan-jhbuild/install/lib/glib-2.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c99 -O2 -g -D_POSIX_C_SOURCE=200809L -D_POSIX_THREAD_SAFE_FUNCTIONS -D_GNU_SOURCE -fPIC -Wimplicit-function-declaration -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wno-int-conversion -Wno-discarded-qualifiers -fno-strict-aliasing -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wformat-nonliteral -Wformat-security -Wunused -Wcast-align -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-include-dirs -Wlogical-op -Wno-uninitialized -Wno-shadow -Werror=redundant-decls -Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point -Werror=return-type -Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=empty-body -Werror=write-strings -Werror=undef -fvisibility=hidden '-DSYSCONFDIR="/scratch/coverity-scan-jhbuild/install/etc"' '-DLIBDIR="/scratch/coverity-scan-jhbuild/install/lib"' -MMD -MQ 'pango/mini-fribidi/libmini-fribidi@sta/fribidi_char_type.c.o' -MF 'pango/mini-fribidi/libmini-fribidi@sta/fribidi_char_type.c.o.d' -o 'pango/mini-fribidi/libmini-fribidi@sta/fribidi_char_type.c.o' -c ../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:54:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_3_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_3_I
       ^
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:56:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_4_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_4_I
       ^
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:58:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_5_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_5_I
       ^
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:60:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_6_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_6_I
       ^
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:62:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_7_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_7_I
       ^
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:64:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_8_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_8_I
       ^
../../checkout/pango/pango/mini-fribidi/fribidi_char_type.c:66:7: error: "HAS_FRIBIDI_TAB_CHAR_TYPE_9_I" is not defined [-Werror=undef]
 #elif HAS_FRIBIDI_TAB_CHAR_TYPE_9_I
       ^
cc1: warning: unrecognized command line option "-Wno-discarded-qualifiers"
cc1: warning: unrecognized command line option "-Wno-int-conversion"
cc1: some warnings being treated as errors
[2/118] Compiling C object 'pango/pango-1.0@sha/fonts.c.o'.
ninja: build stopped: subcommand failed.

---

This is blocking CI builds using JHBuild on the Coverity infrastructure on jenkins.fdo.
Comment 1 Philip Withnall 2017-08-12 09:26:50 UTC
Created attachment 357464 [details] [review]
mini-fribidi: Squash -Werror=undef failures due to use of #if

The FriBiDi code uses #if rather than #ifdef, which pedantic compilers
warn about if the macro is undefined. The new Meson build sets
-Werror=undef, promoting these warnings to failures, and making CI
systems using certain compiler versions (in this case, Debian Jessie)
sad.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Comment 2 Philip Withnall 2017-08-12 09:27:47 UTC
(CCing the Meson people responsible for this port in case they think a different solution is better.)
Comment 3 Matthias Clasen 2017-08-14 17:03:12 UTC
Review of attachment 357464 [details] [review]:

looks ok to me
Comment 4 Philip Withnall 2017-08-14 21:13:56 UTC
Attachment 357464 [details] pushed as 599ffcf - mini-fribidi: Squash -Werror=undef failures due to use of #if