Skip to content
This repository has been archived by the owner on Nov 30, 2021. It is now read-only.

fix MacOS 10.15.2 Xcode Version 11.3 (11C29) make_release.sh failed #80

Closed
wants to merge 2 commits into from

Conversation

gaxuhongyu
Copy link

When :MacOS 10.15.2 Xcode Version 11.3 (11C29) ,use make_release.sh will failed:

jason@mac:~/githubcode/seabolt|1.7⚡
⇒  ./make_release.sh
-- The C compiler identification is AppleClang 11.0.0.11000033
-- The CXX compiler identification is AppleClang 11.0.0.11000033
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building seabolt: 1.7.4-dev
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Building seabolt with TLS support
-- Using OPENSSL for TLS
-- Looking for timespec_get
-- Looking for timespec_get - found
-- Found OpenSSL: /usr/local/opt/openssl/lib/libcrypto.dylib (found version "1.1.1d")
-- Discovered OpenSSL shared libraries: /usr/local/opt/openssl/lib/libssl.dylib;/usr/local/opt/openssl/lib/libcrypto.dylib
-- Found OpenSSL: /usr/local/opt/openssl/lib/libcrypto.a (found version "1.1.1d")
-- Discovered OpenSSL static libraries: /usr/local/opt/openssl/lib/libssl.a;/usr/local/opt/openssl/lib/libcrypto.a
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- CPack generators: TGZ
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/xuyong/githubcode/seabolt/build
Scanning dependencies of target write_version_info
-- Using Git hash from git command: 875643c
[  0%] Built target write_version_info
Scanning dependencies of target seabolt-static
[  1%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/address-resolver.c.o
[  2%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/address-set.c.o
[  3%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/address.c.o
[  4%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/auth.c.o
[  5%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/buffering.c.o
[  6%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/config.c.o
[  7%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/connection.c.o
[  8%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/connector.c.o
[ 10%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/communication.c.o
[ 11%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/communication-plain.c.o
[ 12%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/communication-mock.c.o
[ 13%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/direct-pool.c.o
[ 14%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/error.c.o
[ 15%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/lifecycle.c.o
[ 16%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/log.c.o
[ 17%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/mem.c.o
[ 18%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/name.c.o
[ 20%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/no-pool.c.o
[ 21%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/packstream.c.o
[ 22%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/protocol.c.o
[ 23%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/routing-pool.c.o
[ 24%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/routing-table.c.o
[ 25%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/stats.c.o
[ 26%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/status.c.o
[ 27%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/string-builder.c.o
[ 28%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/time.c.o
[ 30%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/v1.c.o
[ 31%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/v2.c.o
[ 32%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/v3.c.o
[ 33%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/values.c.o
[ 34%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/sync-pthread.c.o
[ 35%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/communication-plain-posix.c.o
[ 36%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/time-timespec.c.o
[ 37%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/atomic-macos.c.o
[ 38%] Building C object CMakeFiles/seabolt-static.dir/src/seabolt/src/bolt/communication-secure-openssl.c.o
[ 40%] Linking C static library lib/libseabolt17.a
-- Passed /usr/local/opt/openssl/lib/libssl.a;/usr/local/opt/openssl/lib/libcrypto.a
-- Processed /usr/local/opt/openssl/lib/libssl.a /usr/local/opt/openssl/lib/libcrypto.a
[ 40%] Built target seabolt-static
Scanning dependencies of target seabolt-test
[ 41%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/main.cpp.o
[ 42%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/seabolt.cpp.o
[ 43%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-address-set.cpp.o
[ 44%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-addressing.cpp.o
[ 45%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-chunking-v1.cpp.o
[ 46%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-communication.cpp.o
[ 47%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-connection.cpp.o
[ 48%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-direct.cpp.o
[ 50%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-pooling.cpp.o
[ 51%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-values.cpp.o
[ 52%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-warden.cpp.o
[ 53%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-string-builder.cpp.o
[ 54%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-direct-pool.cpp.o
[ 55%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/test-v3.cpp.o
[ 56%] Building CXX object CMakeFiles/seabolt-test.dir/src/seabolt/tests/utils/test-context.cpp.o
[ 57%] Linking CXX executable bin/seabolt-test
[ 57%] Built target seabolt-test
Scanning dependencies of target seabolt-shared
[ 58%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/address-resolver.c.o
[ 60%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/address-set.c.o
[ 61%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/address.c.o
[ 62%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/auth.c.o
[ 63%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/buffering.c.o
[ 64%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/config.c.o
[ 65%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/connection.c.o
[ 66%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/connector.c.o
[ 67%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/communication.c.o
[ 68%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/communication-plain.c.o
[ 70%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/communication-mock.c.o
[ 71%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/direct-pool.c.o
[ 72%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/error.c.o
[ 73%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/lifecycle.c.o
[ 74%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/log.c.o
[ 75%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/mem.c.o
[ 76%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/name.c.o
[ 77%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/no-pool.c.o
[ 78%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/packstream.c.o
[ 80%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/protocol.c.o
[ 81%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/routing-pool.c.o
[ 82%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/routing-table.c.o
[ 83%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/stats.c.o
[ 84%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/status.c.o
[ 85%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/string-builder.c.o
[ 86%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/time.c.o
[ 87%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/v1.c.o
[ 88%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/v2.c.o
[ 90%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/v3.c.o
[ 91%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/values.c.o
[ 92%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/sync-pthread.c.o
[ 93%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/communication-plain-posix.c.o
[ 94%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/time-timespec.c.o
[ 95%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/atomic-macos.c.o
[ 96%] Building C object CMakeFiles/seabolt-shared.dir/src/seabolt/src/bolt/communication-secure-openssl.c.o
[ 97%] Linking C shared library lib/libseabolt17.dylib
-- Passed
-- Processed
[ 97%] Built target seabolt-shared
Scanning dependencies of target seabolt-cli
[ 98%] Building C object CMakeFiles/seabolt-cli.dir/src/seabolt-cli/src/main.c.o
/Users/xuyong/githubcode/seabolt/src/seabolt-cli/src/main.c:46:9: error: 'TIME_UTC' macro redefined [-Werror,-Wmacro-redefined]
#define TIME_UTC 0
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/time.h:197:9: note: previous definition is here
#define TIME_UTC        1       /* time elapsed since epoch */
        ^
/Users/xuyong/githubcode/seabolt/src/seabolt-cli/src/main.c:48:6: error: conflicting types for 'timespec_get'
void timespec_get(struct timespec *ts, int type)
     ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/time.h:199:5: note: previous declaration is here
int timespec_get(struct timespec *ts, int base);
    ^
2 errors generated.
make[2]: *** [CMakeFiles/seabolt-cli.dir/src/seabolt-cli/src/main.c.o] Error 1
make[1]: *** [CMakeFiles/seabolt-cli.dir/all] Error 2
make: *** [all] Error 2

The macro already define in sdk file :
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/time.h

#define TIME_UTC	1	/* time elapsed since epoch */
__API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0))
int timespec_get(struct timespec *ts, int base);
#endif

so, remove it will fine.

@michael-simons
Copy link
Collaborator

Thanks for bringing this to our attention, much appreciated.

I would like to close it nevertheless in favour of #82 for two reasons: There's an Availability.h available that allows to check for specific macOS versions, which I would prefer.
The other reason being that the PR changes a lot of places actually unrelated to the fix.

Could you please try out the linked PR?

@michael-simons
Copy link
Collaborator

michael-simons commented Feb 19, 2020

Please have a look at our dev branch https://github.com/neo4j-drivers/seabolt/tree/1.7-dev at 5d7bfdc. Thanks again for bringing this up!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
2 participants