Wireshark-dev: Re: [Wireshark-dev] macOS build broken

From: Lori Jakab <lorand.jakab@xxxxxxxxx>
Date: Fri, 24 Apr 2020 18:21:20 +0200
On Fri, Apr 24, 2020 at 6:06 PM Graham Bloice <graham.bloice@xxxxxxxxxxxxx> wrote:
The macOS build slave is coping, according to the CMake output it's using:
-- The C compiler identification is AppleClang 11.0.0.11000033
-- The CXX compiler identification is AppleClang 11.0.0.11000033

I have the exact same compiler...
 
on osx-10.14-x64.  Presumably that's an older OS.

And the same OS version, Mojave, which is the version before Catalina (10.15).

I start with a clean state, and do a full build, like this (from just above the wireshark folder):

rm -rf build; and mkdir build; and cd build; and cmake -G Ninja ../wireshark; and time ninja -j 10

I wonder what's different from the build slave that breaks the build...

-Lori
 

On Fri, 24 Apr 2020 at 15:48, Lori Jakab <lorand.jakab@xxxxxxxxx> wrote:
This particular failure can be fixed by this: https://code.wireshark.org/review/36921

However, I get other failures afterwards:

FAILED: epan/dissectors/CMakeFiles/dissectors.dir/packet-kerberos.c.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES -DWS_BUILD_DLL -I. -I/Users/lojakab/src/wireshark-lisp/wireshark -I/usr/local/opt/gettext/include -I/usr/local/include -I/usr/local/Cellar/gnutls/3.6.13/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kerberos.framework/Headers -I/usr/local/Cellar/lz4/1.9.2/include -I/usr/local/Cellar/nghttp2/1.40.0/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/libxml2 -Iepan/dissectors -I/Users/lojakab/src/wireshark-lisp/wireshark/epan/dissectors -I/Users/lojakab/src/wireshark-lisp/wireshark/epan -isystem /usr/local/Cellar/glib/2.64.2_1/include/glib-2.0 -isystem /usr/local/Cellar/glib/2.64.2_1/lib/glib-2.0/include -fvisibility=hidden  -Qunused-arguments -Wall -Wextra -Wendif-labels -Wpointer-arith -Wformat-security -fwrapv -fno-strict-overflow -Wvla -Waddress -Wattributes -Wdiv-by-zero -Wignored-qualifiers -Wpragmas -Wno-overlength-strings -Wno-long-long -Wheader-guard -Wcomma -Wshorten-64-to-32 -Wframe-larger-than=32768 -Wno-nullability-completeness -Wc++-compat -Wunused-const-variable -Wshadow -Wold-style-definition -Wstrict-prototypes -Werror=implicit -Wno-pointer-sign -std=gnu99  -O2 -g -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14 -fPIC   -Werror -MD -MT epan/dissectors/CMakeFiles/dissectors.dir/packet-kerberos.c.o -MF epan/dissectors/CMakeFiles/dissectors.dir/packet-kerberos.c.o.d -o epan/dissectors/CMakeFiles/dissectors.dir/packet-kerberos.c.o   -c /Users/lojakab/src/wireshark-lisp/wireshark/epan/dissectors/packet-kerberos.c
In file included from ./asn1/kerberos/packet-kerberos-template.c:321:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kerberos.framework/Headers/krb5.h:318:174: error: expected ','
krb5_boolean KRB5_CALLCONV krb5_is_referral_realm(const krb5_data *) KERBEROS_APPLE_DEPRECATED("use GSS.framework") __API_DEPRECATED("Use GSS.framework", macos(10.0, 10.8)) __API_UNAVAILABLE(macCatalyst);
                                                                                                                                                                             ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/Availability.h:479:171: note: expanded from macro '__API_UNAVAILABLE'
    #define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)

On Fri, Apr 24, 2020 at 4:33 PM Dario Lombardo <lomato@xxxxxxxxx> wrote:
Hi,
I was aware of such a problem. The travis macOS builder got that while ago.


I didn't bisect, but going back in build history, I looks something between 2acbaf584984828855a36105258033020f338c5c and d30a0a2ce7c17f5d695e9ee7647e92d3cc1156bb.

On Fri, Apr 24, 2020 at 3:29 PM Lori Jakab <lorand.jakab@xxxxxxxxx> wrote:
Hi,

I'm have been building on macOS Mojave for a while without issues, but for the last few days the build has been broken. I didn't try a git dissect yet to see which commit broke it, but the issue seems to be caused by the usage of the _Nonnull, _Nullable, or _Null_unspecified type specifiers in the 6lowpan dissector.

My compiler is:

> gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

This is the error: 

In file included from /Users/lojakab/src/wireshark-lisp/wireshark/epan/dissectors/packet-6lowpan.c:19:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:64:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:93:16: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        unsigned char   *_base;
                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:93:16: note: insert '_Nullable' if the pointer may be null
        unsigned char   *_base;
                        ^
                          _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:93:16: note: insert '_Nonnull' if the pointer should never be null
        unsigned char   *_base;
                        ^
                          _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:138:32: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        int     (* _Nullable _read) (void *, char *, int);
                                          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:138:32: note: insert '_Nullable' if the pointer may be null
        int     (* _Nullable _read) (void *, char *, int);
                                          ^
                                           _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:138:32: note: insert '_Nonnull' if the pointer should never be null
        int     (* _Nullable _read) (void *, char *, int);
                                          ^
                                           _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:138:40: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        int     (* _Nullable _read) (void *, char *, int);
                                                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:138:40: note: insert '_Nullable' if the pointer may be null
        int     (* _Nullable _read) (void *, char *, int);
                                                  ^
                                                   _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:138:40: note: insert '_Nonnull' if the pointer should never be null
        int     (* _Nullable _read) (void *, char *, int);
                                                  ^
                                                   _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:139:35: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        fpos_t  (* _Nullable _seek) (void *, fpos_t, int);
                                          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:139:35: note: insert '_Nullable' if the pointer may be null
        fpos_t  (* _Nullable _seek) (void *, fpos_t, int);
                                          ^
                                           _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:139:35: note: insert '_Nonnull' if the pointer should never be null
        fpos_t  (* _Nullable _seek) (void *, fpos_t, int);
                                          ^
                                           _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:140:32: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        int     (* _Nullable _write)(void *, const char *, int);
                                          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:140:32: note: insert '_Nullable' if the pointer may be null
        int     (* _Nullable _write)(void *, const char *, int);
                                          ^
                                           _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:140:32: note: insert '_Nonnull' if the pointer should never be null
        int     (* _Nullable _write)(void *, const char *, int);
                                          ^
                                           _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:140:46: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        int     (* _Nullable _write)(void *, const char *, int);
                                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:140:46: note: insert '_Nullable' if the pointer may be null
        int     (* _Nullable _write)(void *, const char *, int);
                                                        ^
                                                         _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:140:46: note: insert '_Nonnull' if the pointer should never be null
        int     (* _Nullable _write)(void *, const char *, int);
                                                        ^
                                                         _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:144:18: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
        struct __sFILEX *_extra; /* additions to FILE to not break ABI */
                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:144:18: note: insert '_Nullable' if the pointer may be null
        struct __sFILEX *_extra; /* additions to FILE to not break ABI */
                        ^
                          _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_stdio.h:144:18: note: insert '_Nonnull' if the pointer should never be null
        struct __sFILEX *_extra; /* additions to FILE to not break ABI */
                        ^
                          _Nonnull
In file included from /Users/lojakab/src/wireshark-lisp/wireshark/epan/dissectors/packet-6lowpan.c:19:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:67:13: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
extern FILE *__stdinp;
            ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:67:13: note: insert '_Nullable' if the pointer may be null
extern FILE *__stdinp;
            ^
              _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:67:13: note: insert '_Nonnull' if the pointer should never be null
extern FILE *__stdinp;
            ^
              _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:390:41: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
                 int (* _Nullable)(void *, const char *, int),
                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:390:41: note: insert '_Nullable' if the pointer may be null
                 int (* _Nullable)(void *, const char *, int),
                                        ^
                                         _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:390:41: note: insert '_Nonnull' if the pointer should never be null
                 int (* _Nullable)(void *, const char *, int),
                                        ^
                                         _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:390:55: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
                 int (* _Nullable)(void *, const char *, int),
                                                      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:390:55: note: insert '_Nullable' if the pointer may be null
                 int (* _Nullable)(void *, const char *, int),
                                                      ^
                                                       _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:390:55: note: insert '_Nonnull' if the pointer should never be null
                 int (* _Nullable)(void *, const char *, int),
                                                      ^
                                                       _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:391:44: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
                 fpos_t (* _Nullable)(void *, fpos_t, int),
                                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:391:44: note: insert '_Nullable' if the pointer may be null
                 fpos_t (* _Nullable)(void *, fpos_t, int),
                                           ^
                                            _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:391:44: note: insert '_Nonnull' if the pointer should never be null
                 fpos_t (* _Nullable)(void *, fpos_t, int),
                                           ^
                                            _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:392:41: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
                 int (* _Nullable)(void *));
                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:392:41: note: insert '_Nullable' if the pointer may be null
                 int (* _Nullable)(void *));
                                        ^
                                         _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:392:41: note: insert '_Nonnull' if the pointer should never be null
                 int (* _Nullable)(void *));
                                        ^
                                         _Nonnull
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:388:6: error: pointer is missing a nullability type specifier
      (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
FILE    *funopen(const void *,
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:388:6: note: insert '_Nullable' if the pointer may be null
FILE    *funopen(const void *,
        ^
          _Nullable
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h:388:6: note: insert '_Nonnull' if the pointer should never be null
FILE    *funopen(const void *,
        ^
          _Nonnull
3 errors generated.
make[2]: *** [epan/dissectors/CMakeFiles/dissectors.dir/packet-6lowpan.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [epan/dissectors/CMakeFiles/dissectors.dir/all] Error 2

This code builds on Linux, and I assume some older version of macOS on the buildbots too. Should I give it a go to fixing this? I'm not the 6lowpan dissector author/maintainer.

-Lori


--
Graham Bloice
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe