Opened 5 years ago

Closed 5 years ago

#74 closed defect (wontfix)

make static failures - Divine 4.3.2

Reported by: imartisko Owned by: mornfall
Priority: major Milestone: 4.3
Component: other Keywords:
Cc: jamartis@…, kdudka@…

Description

Hello,

based on the info from the issue #73, we are trying to make the static build of the divine, however the build fails with errors.

The build fails with the attached error log, this causes the cmake, to fail the tests regarding the c++11 compatibility and ends with the "C++11 or greater is required but the compiler does not support c++11" error. When we tried to build/link the "cmTC_a6c04" file manually, we were able to get rid of the error by removing the "-nodefaultlibs" option.

We use the patches from the issue #71, and build using the gcc/g++ (switching to clang did not seem to have any effect). We use the stable 4.3.2 release.

Thanks,
Jakub

Attachments (1)

CMakeError.log (241.6 KB) - added by imartisko 5 years ago.

Download all attachments as: .zip

Change History (5)

Changed 5 years ago by imartisko

Attachment: CMakeError.log added

comment:1 Changed 5 years ago by mornfall

Can you try setting LDFLAGS = -lgcc in local.make? The -nodefaultlibs comes from libc++ upstream and I would prefer to not change their cmake stuff more than required. Hopefully this will get resolved when we update libc++.

comment:2 Changed 5 years ago by imartisko

I've tried the using the local.make, but the build still fails, and there seems to be no changes int the error log (I've tried this with the 4.3.4 version).

comment:3 Changed 5 years ago by mornfall

Status: newaccepted

The magic incantation that works around the problem on Debian stable is LDFLAGS = -lc -lgcc -lgcc_eh ... don't ask. I am not sure there is a portable fix for this, other than waiting for libc++ to get their act together (we are currently at libc++ 9, which is pretty new and the build still fails on Debian without the above... it works okay on Alpine, which we normally use for static builds, since that way they are actually static, unlike the mess one gets with glibc).

comment:4 Changed 5 years ago by mornfall

Resolution: wontfix
Status: acceptedclosed

Turns out that static builds on glibc systems are broken anyway: https://sourceware.org/bugzilla/show_bug.cgi?id=15648 -- I don't think we have the capacity to find a workaround for this. For future reference, these tweaks are required for static builds to work on Alpine Linux (which uses musl libc):

toolchain_FLAGS = LIBCXX_HAS_MUSL_LIBC=ON;
static_FLAGS = OPT_TBBMALLOC=OFF;LLVM_ENABLE_TERMINFO=OFF;
CXXFLAGS_ = -D_LIBCPP_HAS_MUSL_LIBC
Note: See TracTickets for help on using tickets.