Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
install_actflow [2025/08/30 12:57] – [MacOS] rajitinstall_actflow [2026/05/29 12:28] (current) – [Build instructions] rajit
Line 29: Line 29:
    * The system must have the Boost libraries (at least version 1.71.0)    * The system must have the Boost libraries (at least version 1.71.0)
    * The system must have ''libfmt'' (at least version 4.0)    * The system must have ''libfmt'' (at least version 4.0)
 +   * The system must have ''libnuma''
 +   * The system must have ''bison''
  
 **MacOS:** These packages can be installed using the [[https://brew.sh/|homebrew]] package manager. Note that on recent versions of MacOS, the C++ compiler provided by Apple does not accept the ''-fopenmp'' flag for OpenMP compilation, so you will likely need to install g++ using homebrew as well. **MacOS:** These packages can be installed using the [[https://brew.sh/|homebrew]] package manager. Note that on recent versions of MacOS, the C++ compiler provided by Apple does not accept the ''-fopenmp'' flag for OpenMP compilation, so you will likely need to install g++ using homebrew as well.
Line 49: Line 51:
  
 **actsim and Xyce:** The ACT simulator also supports mixed analog/digital simulation using "Xyce". To include this feature, follow the instructions above. After that, follow the instructions provided by the [[https://github.com/asyncvlsi/actsim|''actsim'']] repository to re-build and re-install ''actsim''. **actsim and Xyce:** The ACT simulator also supports mixed analog/digital simulation using "Xyce". To include this feature, follow the instructions above. After that, follow the instructions provided by the [[https://github.com/asyncvlsi/actsim|''actsim'']] repository to re-build and re-install ''actsim''.
 +
 +**Building from source.**  Sometimes it is not possible to use package managers to install the required dependencies. In this case, the standard approach that we use is to install the missing dependencies by setting the install directory to ''$ACT_HOME''. GNU autotools support the ''--prefix=$ACT_HOME'' (two hyphens before ''prefix'') option to the generated ''configure'' script, and CMake supports ''-DCMAKE_INSTALL_PREFIX=$ACT_HOME''.
  
  
Line 98: Line 102:
 then chances are you have a known issue in recent LLVM versions on MacOS ([[https://github.com/llvm/llvm-project/issues/155606|github issue]]).  The workaround that fixes this at least for the actflow build (see the discussion for details, this may not necessarily be a proper fix) is to edit the ''.cfg'' file installed with LLVM to include then chances are you have a known issue in recent LLVM versions on MacOS ([[https://github.com/llvm/llvm-project/issues/155606|github issue]]).  The workaround that fixes this at least for the actflow build (see the discussion for details, this may not necessarily be a proper fix) is to edit the ''.cfg'' file installed with LLVM to include
 the location of the LLVM C++ standard library. The [[https://github.com/llvm/llvm-project/issues/155606|github issue]] has details and various workarounds, and the root cause appears to be that while the LLVM compiler uses a specific algorithm to find include paths, it uses a different one to find libraries; so the system C++ standard library is being used instead of the LLVM-provided C++ standard library. Explicitly including the LLVM-provided library fixes this issue in the build. the location of the LLVM C++ standard library. The [[https://github.com/llvm/llvm-project/issues/155606|github issue]] has details and various workarounds, and the root cause appears to be that while the LLVM compiler uses a specific algorithm to find include paths, it uses a different one to find libraries; so the system C++ standard library is being used instead of the LLVM-provided C++ standard library. Explicitly including the LLVM-provided library fixes this issue in the build.
 +
 +For example, on a recent MacOS/homebrew setup, this required editing ''.cfg'' files in ''/opt/homebrew/etc/clang/'', replacing the line ''-i sysroot /Library/Developer/CommandLineTools/SDKs/MacOSX26.sdk'' with 
 +''/opt/homebrew/opt/llvm/lib/c++/libc++.1.0.dylib -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX26.sdk'' (see the github issue for details). 
 +
 ==== OpenMP message ==== ==== OpenMP message ====