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

Installing Storm on macOS with Apple M1 #502

Closed
alebugariu opened this issue Feb 19, 2024 · 12 comments
Closed

Installing Storm on macOS with Apple M1 #502

alebugariu opened this issue Feb 19, 2024 · 12 comments

Comments

@alebugariu
Copy link

Hi, I am trying to build and install Storm from sources (v1.8.0) on macOS with Apple M1 (I would like to use stormpy and unfortunately it does not seem to work with my homebrew installation).

However, the build fails at the step [ 0%] Performing build step for 'sylvan'. The file sylvan-build-err.log contains the following error:

storm/resources/3rdparty/sylvan/../../../src/storm/adapters/RationalFunctionAdapter.h:3:
In file included from /storm/resources/3rdparty/sylvan/../../../src/storm/adapters/RationalFunctionAdapter_Private.h:8:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/FactorizedPolynomial.h:14:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/PolynomialFactorizationPair.h:307:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/PolynomialFactorizationPair.tpp:15:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/MultivariateGCD.h:11:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/MonomialOrdering.h:9:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/Term.h:10:
In file included from /opt/homebrew/Cellar/carl-storm/14.25/include/carl/core/../interval/Interval.h:39:
In file included from /opt/local/include/boost/numeric/interval.hpp:18:
/opt/local/include/boost/numeric/interval/hw_rounding.hpp:42:4: error: Boost.Numeric.Interval: Please specify rounding control mechanism.
#  error Boost.Numeric.Interval: Please specify rounding control mechanism.
   ^
1 error generated.
make[5]: *** [src/CMakeFiles/sylvan.dir/sylvan_obj.cpp.o] Error 1
make[4]: *** [src/CMakeFiles/sylvan.dir/all] Error 2
make[3]: *** [all] Error 2

Could you please advise me how to fix this issue?
Thank you very much for your time and help,
Alexandra

@volkm
Copy link
Contributor

volkm commented Feb 19, 2024

Hi,
if you want to use stormpy, you indeed have to manually build all dependencies (carl-storm, Storm, pycarl and stormpy). To avoid problems, I recommend to first uninstall the homebrew packages: brew uninstall carl-storm stormchecker. Currently, Storm is still using an (old) carl installation from homebrew.

After removing the homebrew packages, you can start by building Carl and then continue with Storm. Maybe this already fixes your issue. If not, please let us know and provide us the complete CMake output from Storm. Then we can take a look into it.

@alebugariu
Copy link
Author

alebugariu commented Feb 19, 2024

Thank you for your suggestion. I have uninstalled the homebrew packages carl-storm and stormchecker and I successfully built Carl. However, when trying to build Storm, I get the same error as before. The output of make from Storm is:

[  0%] Creating directories for 'l3pp_ext'
[  0%] Performing download step (git clone) for 'l3pp_ext'
Cloning into 'l3pp'...
HEAD is now at e4f8d7f Fix some references to log4carl
[  0%] No update step for 'l3pp_ext'
[  0%] No patch step for 'l3pp_ext'
[  0%] No configure step for 'l3pp_ext'
[  0%] No build step for 'l3pp_ext'
[  0%] No install step for 'l3pp_ext'
[  0%] Completed 'l3pp_ext'
[  0%] Built target l3pp_ext
[  0%] Creating directories for 'eigen_src'
[  0%] Performing download step (git clone) for 'eigen_src'
Cloning into 'StormEigen'...
HEAD is now at b0eded878 DOC: Update documentation for 3.4.x
[  0%] No update step for 'eigen_src'
[  0%] Performing patch step for 'eigen_src'
[  0%] No configure step for 'eigen_src'
[  0%] No build step for 'eigen_src'
[  0%] No install step for 'eigen_src'
[  0%] Completed 'eigen_src'
[  0%] Built target eigen_src
[  0%] Creating directories for 'cudd3'
[  1%] No download step for 'cudd3'
[  1%] No update step for 'cudd3'
[  1%] Performing patch step for 'cudd3'
[  1%] Performing configure step for 'cudd3'
-- cudd3 configure command succeeded.  See also /storm/build/resources/3rdparty/cudd-3.0.0/src/cudd3-stamp/cudd3-configure-*.log
[  1%] Performing build step for 'cudd3'
-- cudd3 build command succeeded.  See also /storm/build/resources/3rdparty/cudd-3.0.0/src/cudd3-stamp/cudd3-build-*.log
[  1%] Performing install step for 'cudd3'
-- cudd3 install command succeeded.  See also /storm/build/resources/3rdparty/cudd-3.0.0/src/cudd3-stamp/cudd3-install-*.log
[  1%] Completed 'cudd3'
[  1%] Built target cudd3
[  1%] Creating directories for 'sylvan'
[  1%] No download step for 'sylvan'
[  1%] No update step for 'sylvan'
[  1%] No patch step for 'sylvan'
[  1%] Performing configure step for 'sylvan'
-- sylvan configure command succeeded.  See also /storm/build/sylvan/src/sylvan-stamp/sylvan-configure-*.log
[  1%] Performing build step for 'sylvan'
CMake Error at /storm/build/sylvan/src/sylvan-stamp/sylvan-build-RELEASE.cmake:49 (message):
  Command failed: 2

   '/Library/Developer/CommandLineTools/usr/bin/make'

  See also

    /storm/build/sylvan/src/sylvan-stamp/sylvan-build-*.log


make[2]: *** [sylvan/src/sylvan-stamp/sylvan-build] Error 1
make[1]: *** [CMakeFiles/sylvan.dir/all] Error 2
make: *** [all] Error 2

And now sylvan-build-err.log contains:

In file included from /storm/resources/3rdparty/sylvan/../../../src/storm/adapters/RationalFunctionAdapter.h:3:
In file included from /storm/resources/3rdparty/sylvan/../../../src/storm/adapters/RationalFunctionAdapter_Private.h:8:
In file included from /carl-storm/src/carl/core/FactorizedPolynomial.h:14:
In file included from /carl-storm/src/carl/core/PolynomialFactorizationPair.h:307:
In file included from /carl-storm/src/carl/core/PolynomialFactorizationPair.tpp:15:
In file included from /carl-storm/src/carl/core/MultivariateGCD.h:11:
In file included from /carl-storm/src/carl/core/MonomialOrdering.h:9:
In file included from /carl-storm/src/carl/core/Term.h:10:
In file included from /carl-storm/src/carl/core/../interval/Interval.h:39:
In file included from /opt/local/include/boost/numeric/interval.hpp:18:
/opt/local/include/boost/numeric/interval/hw_rounding.hpp:42:4: error: Boost.Numeric.Interval: Please specify rounding control mechanism.
#  error Boost.Numeric.Interval: Please specify rounding control mechanism.
   ^
1 error generated.
make[5]: *** [src/CMakeFiles/sylvan.dir/sylvan_obj.cpp.o] Error 1
make[4]: *** [src/CMakeFiles/sylvan.dir/all] Error 2
make[3]: *** [all] Error 2

@volkm
Copy link
Contributor

volkm commented Feb 19, 2024

Can you also add the output of CMake?

@alebugariu
Copy link
Author

Yes, sorry, I have forgotten to add it in my previous message:

CMake Deprecation Warning at CMakeLists.txt:3 (cmake_policy):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The CXX compiler identification is AppleClang 15.0.0.15000100
-- The C compiler identification is AppleClang 15.0.0.15000100
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Storm - CMake install dir: /usr/local/lib/CMake/storm
-- Storm - Building RELEASE version.
-- Storm - Could not find ccache.
-- Storm - Detected operating system Mac OS.
-- Storm - Detected that target system uses Apple Silicon.
CMake Warning at CMakeLists.txt:194 (message):
  Compiling natively on Apple Silicon is experimental.  Please report issues
  to [email protected].  For more information visit
  https://www.stormchecker.org/documentation/obtain-storm/apple-silicon.html


CMake Warning at CMakeLists.txt:197 (message):
  CLN and GiNaC are currently not supported on Apple Silicon-based
  architectures.  Disabling Storm and carl usage of the libraries.


-- Storm - Assuming extension for shared libraries: .dylib
-- Storm - Assuming extension for static libraries: .a
-- Storm - Build static libraries.
CMake Warning at CMakeLists.txt:247 (message):
  Disabling stack checks for AppleClang version 11.0.0 or higher.


-- Storm - Enabling link-time optimizations.
-- Performing Test COMPILER_C_WORKS
-- Performing Test COMPILER_C_WORKS - Success
-- Performing Test COMPILER_CXX_WORKS
-- Performing Test COMPILER_CXX_WORKS - Success
-- Storm - Using compiler configuration AppleClang 15.0.0.15000100.
-- Storm - Building external resources with 5 job(s) in parallel.
-- Storm - Including Eigen 3.4.0 commit b0eded878d5d162d61583a286c0d8a45406ad1bc.
-- Storm - Using workaround for Boost >= 1.81
-- Storm - Using boost 108400 (library version 1_84).
-- Storm - Including ExprTk.
-- Storm - Including Parallel Hashmap.
-- Storm - Including cpphoafparser 0.99.2
-- Storm - Including ModernJSON.
-- Storm - Linking with Z3 (version 4.12.2). (Z3 version supports optimization)
-- Storm - Using system version of glpk.
-- Storm - Linking with glpk 5.0
CMake Warning at resources/3rdparty/include_cudd.cmake:39 (message):
  There are some known issues compiling CUDD on some setups.  We implemented
  a workaround that mostly works, but if you still have problems compiling
  CUDD, especially if you do not use the default compiler of your system,
  please contact the Storm developers.
Call Stack (most recent call first):
  resources/3rdparty/CMakeLists.txt:287 (include)
  CMakeLists.txt:473 (include)


-- Storm - Linking with CUDD 3.0.0.
-- Storm - Found carl-storm version
-- Storm - Use system version of carl.
-- Storm - Linking with preinstalled carl 14.26 (include: /carl-storm/src, library lib_carl, CARL_USE_CLN_NUMBERS: OFF, CARL_USE_GINAC: OFF).
-- Storm - Use system version of xerces.
-- Storm (GSPN) - Linking with Xerces-c 3.2.4: /opt/homebrew/lib/libxerces-c.dylib
CMake Warning at resources/3rdparty/include_spot.cmake:23 (message):
  Storm - Could not find Spot.  Model checking of LTL formulas (beyond PCTL)
  will not be supported.  You may want to set cmake option
  STORM_USE_SPOT_SHIPPED to install Spot automatically.  If you already
  installed Spot, consider setting cmake option SPOT_ROOT.  Unset
  STORM_USE_SPOT_SYSTEM to silence this warning.
Call Stack (most recent call first):
  resources/3rdparty/CMakeLists.txt:581 (include)
  CMakeLists.txt:473 (include)


-- Storm - Using shipped version of sylvan.
-- Storm - Linking with sylvan.
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- Storm - Version is 1.8.1 (version 1.8.1 + 0 commits), building from git: 3f74f3e59acfba3b61c686af01a864962d44af97 (dirty: DirtyState::Clean).
-- Registered with cmake
-- Configuring done (2.3s)
-- Generating done (0.4s)
-- Build files have been written to: /storm/build

@volkm
Copy link
Contributor

volkm commented Feb 19, 2024

Thanks. At first glance I do not see anything out of the ordinary.
It could be that it is a problem with Boost. Can you go to the carl build directory and build the tests?

make
make test

@alebugariu
Copy link
Author

Works well:

Running tests...
Test project /carl-storm/build
    Start 1: util
1/5 Test #1: util .............................   Passed    1.63 sec
    Start 2: numbers
2/5 Test #2: numbers ..........................   Passed    0.59 sec
    Start 3: core
3/5 Test #3: core .............................   Passed    0.36 sec
    Start 4: formula
4/5 Test #4: formula ..........................   Passed    0.17 sec
    Start 5: interval
5/5 Test #5: interval .........................   Passed    0.15 sec

100% tests passed, 0 tests failed out of 5

Total Test time (real) =   2.92 sec

@sjunges
Copy link
Contributor

sjunges commented Feb 19, 2024 via email

@alebugariu
Copy link
Author

Thank you, Sebastian, but unfortunately this does not solve the problem.

@sjunges
Copy link
Contributor

sjunges commented Aug 10, 2024

Hey,

I found the problem, it seems to be resolved in newer boost versions: boostorg/interval@1b95966

I will also open an issue in carl to make sure that we support older boost versions.

@sjunges
Copy link
Contributor

sjunges commented Aug 10, 2024

BTW, sorry for the slow response. I hope you were able to work around it.

The build on your system really is broken though, it finds boost 1.84 but also it finds a preinstalled carl version 14.26 but links to 14.25.

@alebugariu
Copy link
Author

Hi, thank you for your reply. I have tried to repeat the installation steps on macOS now (in the meantime I have used Storm on Ubuntu) but I can no longer build Carl. The step make lib_carl produces:

[  3%] Creating directories for 'CLN-EP'
[  6%] Performing download step (git clone) for 'CLN-EP'
Cloning into 'CLN-EP'...
fatal: remote error: access denied or repository not exported: /cln.git
Cloning into 'CLN-EP'...
fatal: remote error: access denied or repository not exported: /cln.git
Cloning into 'CLN-EP'...
fatal: remote error: access denied or repository not exported: /cln.git
Had to git clone more than once: 3 times.
CMake Error at carl-storm/build/resources/tmp/CLN-EP-gitclone.cmake:50 (message):
  Failed to clone repository: 'git://www.ginac.de/cln.git'

Maybe this repository has been moved?

@volkm
Copy link
Contributor

volkm commented Aug 12, 2024

The external repository seems to be temporarily unavailable. You can install the dependencies via homebrew instead:

brew install cln ginac

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

No branches or pull requests

3 participants