Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable travis to use IPO and add a test using libc++ #20

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

enable travis to use IPO and add a test using libc++ #20

wants to merge 4 commits into from

Conversation

nolange
Copy link

@nolange nolange commented May 23, 2018

I dont know anything about travis, hope this works correctly.

see #18

Norbert Lange added 4 commits May 23, 2018 10:39
the toolchains are installen in /usr/local/bin while other toolchains
exist in /usr/bin and ccache provides only part of them in
/usr/lib/ccache.

CMake then seems to mess up detection of additional tools,
this is apparent as the C compiler is not the matching one.

Also, output the CmakeCache.txt for diagnostic purpose
becaue I cant figure out how to ignore this configuration as failure =)
@nolange
Copy link
Author

nolange commented May 23, 2018

last commit for me today, if clang + libc++ still doesnt builds, then allow it as failure.

@martinmoene
Copy link
Owner

I think I get the importance of applying LTO to be better informed about software's correctness. Introducing it might take a considerable amount of time, as I want to know enough about it with respect to CMake, compilers and Travis to reach an easy-to-follow implementation.

@nolange
Copy link
Author

nolange commented May 23, 2018

I can build your tests with clang + LTO locally (with libc++ on top if d70b03c is applied), thats not the issue here.
CMake has trouble picking up the matching C/C++ Compiler/Linker/Binutils, I think it has some holes in its automatic detection if suffixes and non-standard paths are involved (guess it never could figure out every possible installation)

ie look at the gcc-7 output:

CMAKE_CXX_COMPILER:FILEPATH=/usr/lib/ccache/g++-7
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
CMAKE_C_COMPILER:FILEPATH=/usr/lib/ccache/gcc
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-4.8

with clang this is even more of a mess. likely you need to tell CMake the full paths to C/C++ compilers and tools (AR at least).

@Flamefire
Copy link

Not sure if this fixes your failures but when setting CXX you should also set CC. Suggested approach is to put MATRIX_EVAL="CXX=clang++-6 CC=clang-6" into the env section and then do eval "${MATRIX_EVAL}" in the script. (See the travis docu on C++)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants