Opened 3 months ago

Closed 2 days ago

#73 closed defect (fixed)

make install failure - Divine 4.3.2

Reported by: Lukáš Zaoral Owned by: mornfall
Priority: major Milestone: 4.3
Component: other Keywords:
Cc:

Description

Hi,

I am trying to build divine 4.3.2 on Fedora 30. The build itself is fine (after applying patch in #71), but the subsequent installation fails because of a missing file in includes. The problem persists even with the latest nightly build. The error message is attached.

Attachments (2)

error (1.2 KB) - added by Lukáš Zaoral 3 months ago.
make_install.patch (19.8 KB) - added by Lukáš Zaoral 3 months ago.

Download all attachments as: .zip

Change History (7)

Changed 3 months ago by Lukáš Zaoral

Attachment: error added

comment:1 Changed 3 months ago by mornfall

Status: newaccepted

Yes, sorry, the install target is not exactly maintained (partly because we build LLVM and also need to install that, which might mess up a different LLVM installation in the same prefix). What we usually do is build static binaries, which are standalone and can be installed with 'cp'. That said, I'll look into fixing 'make install'.

comment:2 Changed 3 months ago by Lukáš Zaoral

I was able to successfully install the latest release of Divine on Fedora 30 with following modifications:

1) The 'dios/libcxx/utils/cat_files.py' script should have the executable bit set.

2) The 'DarwinLdOptions?.inc' file is missing from the include directories of lld.
Creating a symbolic link from '_build.toolchain/lld/lib/Driver/DarwinLdOptions.inc' to one of these directories solves the issue.

3) The 'gtest-dev' package must be installed to resolve linking problems.

The attached patch contains following modifications:

4) Assuming a user without root privileges, all occurrences of the PWD variable in the main Makefile should be replaced with a CURDIR directive, because running make install (or anything else) with sudo with no options (like -E) does not preserve this variable and cmake fails.

5) The 'stp/lib/Interface/CMakeLists.txt' file has a wrong source path for installation of headers on line 43. '/include' should be 'stp/include'.

6) The 'releng/install-rpath.cmake' is outdated to be used with latest Divine builds.

7) The 'divine/CMakeLists.txt' file has missing install targets for divine-sim, divine-mc, divine-smt and divine-dbg.

Few of these modifications are more of a workaround than fix, but I hope they point to the right direction.

Last edited 3 months ago by Lukáš Zaoral (previous) (diff)

Changed 3 months ago by Lukáš Zaoral

Attachment: make_install.patch added

comment:3 Changed 8 weeks ago by Lukáš Zaoral

After the refactor of brick-cmd, the 4.3.5 release of Divine needs one additional change for a successful installation. The occurrences of the make_option_set method in 'tools/divcheck.hpp' should no longer be templated.

comment:4 Changed 5 weeks ago by Lukáš Zaoral

The issue with divcheck compilation is fixed in 4.3.6, but 7) is fixed only partially, the install command for divine-sim target is still missing. Thanks.

comment:5 Changed 2 days ago by mornfall

Resolution: fixed
Status: acceptedclosed

I have applied your install-rpath changes and fixed the remaining issues one way or another. The install still fails without libgtest-dev and it's not entirely clear how to go about fixing that. The results are also still quite messy and a whole bunch of headers is missing, but as of this writing, the target runs to the end on next and the installed binaries seem to work.

Note: See TracTickets for help on using tickets.