Assumption: Previously build llvm trunk to have a fresh clang/clang++ under /usr/local/bin
Libc++ Assumption: Building outside of llvm/clang trunk to test build the library.
When I configure cmake and pass clang++ and clang in the standard -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ and -DCMAKE_C_COMPILER=/usr/local/bin/clang respectively when building the CMakeCache.txt I see a jumping between [a mixed marriage] clang+/gcc or c++/clang.
Building Outside of Cmake: If I go into the libc++ source → lib folder and edit the buildit script with /usr/local/bin/clang++ and /usr/local/bin/clang I get a noisy (68 warning) but success as follows:;
^
…/src/exception.cpp:204:6: warning: exception_ptr not yet implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
…/src/exception.cpp:217:6: warning: exception_ptr not yet implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
…/src/exception.cpp:210:38: warning: unused parameter ‘p’ [-Wunused-parameter]
void rethrow_exception(exception_ptr p)
^
8 warnings generated.
- for FILE in ‘…/src/*.cpp’
- /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I…/include …/src/future.cpp
- for FILE in ‘…/src/*.cpp’
- /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I…/include …/src/hash.cpp
- for FILE in ‘…/src/*.cpp’
- /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I…/include …/src/ios.cpp
- for FILE in ‘…/src/*.cpp’
- /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I…/include …/src/iostream.cpp
- for FILE in ‘…/src/*.cpp’
- /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I…/include …/src/locale.cpp
…/src/locale.cpp:846:48: warning: array subscript is of type ‘char’ [-Wchar-subscripts]
return isascii(c) ? __classic_upper_table()[c] : c;
^~
…/src/locale.cpp:846:25: warning: implicit conversion loses integer precision: ‘const int’ to ‘char’
[-Wconversion]
return isascii(c) ? __classic_upper_table()[c] : c;
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
…/src/locale.cpp:860:55: warning: array subscript is of type ‘char’ [-Wchar-subscripts]
*low = isascii(*low) ? __classic_upper_table()[*low] : *low;
^~~~~
…/src/locale.cpp:860:32: warning: implicit conversion loses integer precision: ‘const int’ to ‘char_type’
(aka ‘char’) [-Wconversion]
*low = isascii(*low) ? __classic_upper_table()[*low] : *low;
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
…/src/locale.cpp:874:48: warning: array subscript is of type ‘char’ [-Wchar-subscripts]
return isascii(c) ? __classic_lower_table()[c] : c;
^~
…/src/locale.cpp:874:25: warning: implicit conversion loses integer precision: ‘const int’ to ‘char’
[-Wconversion]
return isascii(c) ? __classic_lower_table()[c] : c;
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
…/src/locale.cpp:887:55: warning: array subscript is of type ‘char’ [-Wchar-subscripts]
*low = isascii(*low) ? __classic_lower_table()[*low] : *low;
^~~~~
…/src/locale.cpp:887:32: warning: implicit conversion loses integer precision: ‘const int’ to ‘char_type’
(aka ‘char’) [-Wconversion]
*low = isascii(*low) ? __classic_lower_table()[*low] : *low;
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
…/src/locale.cpp:1056:34: warning: implicit conversion changes signedness: ‘char_type’ (aka ‘wchar_t’) to
‘wint_t’ (aka ‘unsigned int’) [-Wsign-conversion]
if (m & space && !iswspace_l(c, __l)) result = false;../src/locale.cpp:1057:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & print && !iswprint_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1058:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & cntrl && !iswcntrl_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1059:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & upper && !iswupper_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1060:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & lower && !iswlower_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1061:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & alpha && !iswalpha_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1062:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & digit && !iswdigit_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1063:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & punct && !iswpunct_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1064:36: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & xdigit && !iswxdigit_l(c, __l)) result = false; ~~~~~~~~~~~ ^ ../src/locale.cpp:1065:34: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & blank && !iswblank_l(c, __l)) result = false; ~~~~~~~~~~ ^ ../src/locale.cpp:1080:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswspace_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1082:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswprint_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1084:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswcntrl_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1086:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswupper_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1088:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswlower_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1090:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswalpha_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1092:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswdigit_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1094:28: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswpunct_l(*low, __l)) ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1096:29: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (iswxdigit_l(*low, __l)) ~~~~~~~~~~~ ^~~~ ../src/locale.cpp:1112:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & space && !iswspace_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1113:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & print && !iswprint_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1114:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & cntrl && !iswcntrl_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1115:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & upper && !iswupper_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1116:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & lower && !iswlower_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1117:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & alpha && !iswalpha_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1118:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & digit && !iswdigit_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1119:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & punct && !iswpunct_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1120:40: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & xdigit && !iswxdigit_l(*low, __l)) continue; ~~~~~~~~~~~ ^~~~ ../src/locale.cpp:1121:38: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & blank && !iswblank_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1137:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & space && iswspace_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1138:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & print && iswprint_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1139:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & cntrl && iswcntrl_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1140:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & upper && iswupper_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1141:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & lower && iswlower_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1142:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & alpha && iswalpha_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1143:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & digit && iswdigit_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1144:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & punct && iswpunct_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1145:39: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & xdigit && iswxdigit_l(*low, __l)) continue; ~~~~~~~~~~~ ^~~~ ../src/locale.cpp:1146:37: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] if (m & blank && iswblank_l(*low, __l)) continue; ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1156:12: warning: implicit conversion changes signedness: 'wint_t' (aka 'unsigned int') to 'wchar_t' [-Wsign-conversion] return towupper_l(c, __l); ~~~~~~ ^~~~~~~~~~~~~~~~~~ ../src/locale.cpp:1156:23: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] return towupper_l(c, __l); ~~~~~~~~~~ ^ ../src/locale.cpp:1163:16: warning: implicit conversion changes signedness: 'wint_t' (aka 'unsigned int') to 'char_type' (aka 'wchar_t') [-Wsign-conversion] *low = towupper_l(*low, __l); ~ ^~~~~~~~~~~~~~~~~~~~~ ../src/locale.cpp:1163:27: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] *low = towupper_l(*low, __l); ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1170:12: warning: implicit conversion changes signedness: 'wint_t' (aka 'unsigned int') to 'wchar_t' [-Wsign-conversion] return towlower_l(c, __l); ~~~~~~ ^~~~~~~~~~~~~~~~~~ ../src/locale.cpp:1170:23: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] return towlower_l(c, __l); ~~~~~~~~~~ ^ ../src/locale.cpp:1177:16: warning: implicit conversion changes signedness: 'wint_t' (aka 'unsigned int') to 'char_type' (aka 'wchar_t') [-Wsign-conversion] *low = towlower_l(*low, __l); ~ ^~~~~~~~~~~~~~~~~~~~~ ../src/locale.cpp:1177:27: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] *low = towlower_l(*low, __l); ~~~~~~~~~~ ^~~~ ../src/locale.cpp:1187:12: warning: implicit conversion changes signedness: 'wint_t' (aka 'unsigned int') to 'wchar_t' [-Wsign-conversion] return __btowc_l(c, __l); ~~~~~~ ^~~~~~~~~~~~~~~~~ ../src/locale.cpp:1198:17: warning: implicit conversion changes signedness: 'wint_t' (aka 'unsigned int') to 'char_type' (aka 'wchar_t') [-Wsign-conversion] *dest = __btowc_l(*low, __l); ~ ^~~~~~~~~~~~~~~~~~~~ ../src/locale.cpp:1209:23: warning: implicit conversion changes signedness: 'char_type' (aka 'wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] int r = __wctob_l(c, __l); ~~~~~~~~~ ^ ../src/locale.cpp:1211:14: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare] return r != WEOF ? static_cast<char>(r) : dfault; ~ ^ ~~~~ ../src/locale.cpp:1222:27: warning: implicit conversion changes signedness: 'const char_type' (aka 'const wchar_t') to 'wint_t' (aka 'unsigned int') [-Wsign-conversion] int r = __wctob_l(*low, __l); ~~~~~~~~~ ^~~~ ../src/locale.cpp:1224:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare] *dest = r != WEOF ? static_cast<char>(r) : dfault; ~ ^ ~~~~ ../src/locale.cpp:1337:53: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] size_t n = __wcsnrtombs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); ~~~~~~~~~~~~~~ ~~~~^~~~ ../src/locale.cpp:1337:65: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] size_t n = __wcsnrtombs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); ~~~~~~~~~~~~~~ ~~~~~~^~~ ../src/locale.cpp:1406:53: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] size_t n = __mbsnrtowcs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); ~~~~~~~~~~~~~~ ~~~~^~~~ ../src/locale.cpp:1406:65: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] size_t n = __mbsnrtowcs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); ~~~~~~~~~~~~~~ ~~~~~~^~~ ../src/locale.cpp:1417:50: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] n = __mbrtowc_l(to_nxt, frm, fend-frm, &save_state, __l); ~~~~~~~~~~~ ~~~~^~~~ ../src/locale.cpp:1522:43: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] size_t n = __mbrlen_l(frm, frm_end-frm, &st, __l); ~~~~~~~~~~ ~~~~~~~^~~~ ../src/locale.cpp:1548:27: warning: implicit conversion loses integer precision: 'decltype((__ctype_get_mb_cur_max()))' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32] return __l == 0 ? 1 : __mb_cur_max_l(__l); ~ ^~~~~~~~~~~~~~~~~~~ 68 warnings generated. + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/memory.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/mutex.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/new.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/random.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/regex.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/stdexcept.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/string.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/strstream.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/system_error.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/thread.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/typeinfo.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/utility.cpp + for FILE in '../src/*.cpp' + /usr/local/bin/clang++ -c -g -Os -fPIC -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 -nostdinc++ -I../include ../src/valarray.cpp + case $TRIPLE in + /usr/local/bin/clang algorithm.o bind.o chrono.o condition_variable.o debug.o exception.o future.o hash.o ios.o iostream.o locale.o memory.o mutex.o new.o random.o regex.o stdexcept.o string.o strstream.o system_error.o thread.o typeinfo.o utility.o valarray.o -fPIC -o libc++.so.1.0 -shared -nodefaultlibs -Wl,-soname,libc++.so.1 -lpthread -lrt -lc -lstdc++ -std=c++0x -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion -Wnewline-eof -Wpadded -Wmissing-prototypes -Wstrict-aliasing=2 -Wstrict-overflow=4 clang-3: warning: argument unused during compilation: '-nodefaultlibs' + '[' -z ']' + rm algorithm.o bind.o chrono.o condition_variable.o debug.o exception.o future.o hash.o ios.o iostream.o locale.o memory.o mutex.o new.o random.o regex.o stdexcept.o string.o strstream.o system_error.o thread.o typeinfo.o utility.o valarray.o mdriftmeyer@horus:~/DeveloperProjects/LLVMProject/libcxx/lib$
Cmake Obstruction: Cmake won’t let me pass both clang++ & clang together and splits it up as I have stated, with far less noise [though I doubt that’s helpful], with the following:
mdriftmeyer@horus:~/DeveloperProjects/LLVMProject/cmake-libcxx$ cmake …/libcxx
– Host triple: x86_64-pc-linux
– Target triple: x86_64-pc-linux
– Configuring done
– Generating done
– Build files have been written to: /home/mdriftmeyer/DeveloperProjects/LLVMProject/cmake-libcxx
mdriftmeyer@horus:~/DeveloperProjects/LLVMProject/cmake-libcxx$ make clean && make -j3
[ 4%] [ 8%] [ 12%] Building CXX object lib/CMakeFiles/cxx.dir//src/stdexcept.cpp.o
Building CXX object lib/CMakeFiles/cxx.dir//src/bind.cpp.o
Building CXX object lib/CMakeFiles/cxx.dir//src/exception.cpp.o
/home/mdriftmeyer/DeveloperProjects/LLVMProject/libcxx/src/exception.cpp:106:6: warning: uncaught_exception not
yet implemented [-W#warnings]
#warning uncaught_exception not yet implemented
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/libcxx/src/exception.cpp:143:6: warning: exception_ptr not yet
implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/libcxx/src/exception.cpp:154:6: warning: exception_ptr not yet
implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/libcxx/src/exception.cpp:170:6: warning: exception_ptr not yet
implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/libcxx/src/exception.cpp:204:6: warning: exception_ptr not yet
implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/libcxx/src/exception.cpp:217:6: warning: exception_ptr not yet
implemented [-W#warnings]
#warning exception_ptr not yet implemented
^
6 warnings generated.
[ 16%] Building CXX object lib/CMakeFiles/cxx.dir//src/algorithm.cpp.o
[ 20%] Building CXX object lib/CMakeFiles/cxx.dir//src/mutex.cpp.o
[ 25%] Building CXX object lib/CMakeFiles/cxx.dir//src/ios.cpp.o
[ 29%] Building CXX object lib/CMakeFiles/cxx.dir//src/new.cpp.o
[ 33%] Building CXX object lib/CMakeFiles/cxx.dir//src/strstream.cpp.o
[ 37%] Building CXX object lib/CMakeFiles/cxx.dir//src/string.cpp.o
[ 41%] Building CXX object lib/CMakeFiles/cxx.dir//src/thread.cpp.o
[ 45%] Building CXX object lib/CMakeFiles/cxx.dir//src/iostream.cpp.o
[ 50%] Building CXX object lib/CMakeFiles/cxx.dir//src/future.cpp.o
[ 54%] Building CXX object lib/CMakeFiles/cxx.dir//src/chrono.cpp.o
[ 58%] Building CXX object lib/CMakeFiles/cxx.dir//src/system_error.cpp.o
[ 62%] Building CXX object lib/CMakeFiles/cxx.dir//src/regex.cpp.o
[ 66%] Building CXX object lib/CMakeFiles/cxx.dir//src/utility.cpp.o
[ 70%] Building CXX object lib/CMakeFiles/cxx.dir//src/hash.cpp.o
[ 75%] Building CXX object lib/CMakeFiles/cxx.dir//src/locale.cpp.o
[ 79%] Building CXX object lib/CMakeFiles/cxx.dir//src/typeinfo.cpp.o
[ 83%] Building CXX object lib/CMakeFiles/cxx.dir//src/random.cpp.o
[ 87%] Building CXX object lib/CMakeFiles/cxx.dir//src/valarray.cpp.o
[ 91%] Building CXX object lib/CMakeFiles/cxx.dir//src/memory.cpp.o
[ 95%] [100%] Building CXX object lib/CMakeFiles/cxx.dir//src/debug.cpp.o
Building CXX object lib/CMakeFiles/cxx.dir//src/condition_variable.cpp.o
Linking CXX shared library libc++.so
clang-3: warning: argument unused during compilation: ‘-nodefaultlibs’
[100%] Built target cxx
Libc++ under /trunk/llvm/projects: If I bring this back into llvm trunk and it’s /projects where compiler-rt is also under the first time I build llvm/clang [assuming no clang/clang++ generated from trunk] I get what I expect [libcxx failing to compile as it’s building against c++/gcc] so I have to ask:
Won’t clang have to be built earlier in the process and then run some sort of second pass to build libc++ against the newly built clang++/clang and if so it’s clear the cmake files presently play hide and seek between clang/c++ and clang++/gcc?
For now I’ll just build llvm/clang and not even bother with libc++ under my libcxx path adjacent to my llvm/clang trunk path.
- Marc