Vcpkg: [Macos] build failure

Created on 12 May 2020  路  4Comments  路  Source: microsoft/vcpkg

Host Environment

  • OS:Macos

Steps to reproduce the behavior:
./bootstrap-vcpkg.sh

Failure logs

FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o -c ../src/vcpkg/base/cofffilereader.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/cofffilereader.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/cofffilereader.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[2/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o -c ../src/vcpkg/base/checks.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/checks.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/checks.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[3/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o -c ../src/vcpkg/base/downloads.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/downloads.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/downloads.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[4/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o -c ../src/vcpkg/base/chrono.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/chrono.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/chrono.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[5/75] Building CXX object CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o
FAILED: CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o -MF CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o.d -o CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o -c ../src/vcpkg.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from ../include/vcpkg/base/cstringview.h:4,
                 from ../include/vcpkg/base/chrono.h:3,
                 from ../src/vcpkg.cpp:23:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../src/vcpkg.cpp:20:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[6/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o -c ../src/vcpkg/archives.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/archives.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/archives.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
ninja: build stopped: subcommand failed.
vcpkg-bug

Most helpful comment

Apparently, apple doesn't protect their ctermid header with extern "C"... this is a problem. I'll bring it up to them and until then, we'll have to work around it.

Edit: looks like it is a bug in the standard library.

All 4 comments

Hi @selimanac, thanks for reporting this issue!
Please provide your OS version and clang version.

Thanks.

Hi @JackBoosY

Please provide your OS version and clang version.

MacOS 10.14.6 (18G4032)
Clang: Apple clang version 11.0.0 (clang-1100.0.33.17)
Also I have gcc/g++ version 9.3.0_1. Looks like vcpkg uses this one when compiling. Is there a flag for forcing vcpkg build to use clang?

Thank you 馃檹

@strega-nil Could you please take a look?

Thanks.

Apparently, apple doesn't protect their ctermid header with extern "C"... this is a problem. I'll bring it up to them and until then, we'll have to work around it.

Edit: looks like it is a bug in the standard library.

Was this page helpful?
0 / 5 - 0 ratings