Wireshark mailing list archives

Re: macOS build broken


From: Lori Jakab <lorand.jakab () gmail com>
Date: Fri, 24 Apr 2020 19:22:38 +0200

Thanks Gerald, this was very useful, and fixed my problem. I observed that
it changed the compiler that cmake detects from AppleClang 11.0.0.11000033
to AppleClang 10.0.1.10010046. I assume that the mismatch is from me using
a version of XCode updated for Catalina on Mojave.

Thanks again,
-Lori

On Fri, Apr 24, 2020 at 6:45 PM Gerald Combs <gerald () wireshark org> wrote:

I ran into this recently when upgrading Xcode's command line tools. Builds
fail for me when using the SDK that ships with Xcode.app and succeed when
using the one that ships with the command line tools:

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.4
BuildVersion:   19E287

$ xcodebuild -version
Xcode 11.4.1
Build version 11E503a

$ sudo xcode-select --reset
$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer

# From the build directory
$ rm -rf * && cmake -G Ninja .. && ninja
[ build fails ]

$ sudo xcode-select --switch /Library/Developer/CommandLineTools
$ xcode-select --print-path
/Library/Developer/CommandLineTools

$ rm -rf * && cmake -G Ninja .. && ninja
[ build succeeds ]


On 4/24/20 9:27 AM, Lori Jakab wrote:
I attached my cmake output, in case that helps.

-Lori

On Fri, Apr 24, 2020 at 6:21 PM Lori Jakab <lorand.jakab () gmail com
<mailto:lorand.jakab () gmail com>> wrote:

    On Fri, Apr 24, 2020 at 6:06 PM Graham Bloice <
graham.bloice () trihedral com <mailto:graham.bloice () trihedral com>> 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 () gmail com
<mailto:lorand.jakab () gmail com>> 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 () gmail com <mailto:lomato () gmail com>> wrote:

                Hi,
                I was aware of such a problem. The travis macOS builder
got that while ago.

                https://travis-ci.org/github/crondaemon/wireshark

                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 () gmail com <mailto:lorand.jakab () gmail com>> 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 () wireshark org <mailto:wireshark-dev () wireshark org>>
        Archives:    https://www.wireshark.org/lists/wireshark-dev
        Unsubscribe:
https://www.wireshark.org/mailman/options/wireshark-dev
                     mailto:wireshark-dev-request () wireshark org <mailto:
wireshark-dev-request () wireshark org>?subject=unsubscribe



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


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

Current thread: