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

From: Roland Knall <rknall@xxxxxxxxx>
Date: Fri, 24 Apr 2020 15:39:53 +0200
Feel free to give it a go

> Am 24.04.2020 um 15:29 schrieb Lori Jakab <lorand.jakab@xxxxxxxxx>:
> 
> 
> 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
> ___________________________________________________________________________
> 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