[cfe-dev] Cmake & libc++ building on Linux observations

Marc J. Driftmeyer mjd at reanimality.com
Fri Apr 20 01:49:11 PDT 2012


*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 at 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 at 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 at 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


-- 
Marc J. Driftmeyer
Email :: mjd at reanimality.com <mailto:mjd at reanimality.com>
Web :: http://www.reanimality.com
Cell :: (509) 435-5212
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120420/dc5e3506/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mjd.vcf
Type: text/x-vcard
Size: 317 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120420/dc5e3506/attachment.vcf>


More information about the cfe-dev mailing list