clasp-developers/clasp

Installation on Gentoo Linux

drmeister opened this issue · 3 comments

From: https://gist.github.com/jasom/5b7b40debea3558cf09e

You will need gcc:4.8 installed; as of writing this is keyword masked, so unless you are already running ~, you'll need to add sys-devel/gcc:4.8 ~amd64 to your package.keywords. Note that you do not need it to be the default gcc, as clasp allows specifying gcc and g++ executables

Other than that, see the other files in this gist for the config.

  1. Checkout clasp-externals and clasp
  2. Copy clasp-externals.local.config from this gist to clasp-externals/local.config
  3. Copy clasp.local.config from this gist to clasp/local.config
  4. cd clasp-externals
  5. make
  6. If make fails, run it again. If it fails a third time, talk to jasom in #clasp on freenode
  7. cd ../clasp
  8. make
  9. If make fails, run it again. If it fails a third time, talk to jasom in #clasp on freenode
  10. You should now have clasp executables in ~/local/clasp/bin

gcc-4.8.3 is no longer masked, issue can be closed.

$ grep KEYWORDS /usr/portage/sys-devel/gcc/gcc-4.8.3.ebuild 
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"

Needs to be reevaluated as per #135

I can report that I have been able to get this to build on gentoo at 057b30b using llvm 9 and gcc 9.3.0. I did this by following the llvm9 installation instructions and critically leaving out the step to set INCLUDES in wscript. If you set INCLUDES then the system headers for gcc stdlib and friends fight with the llvm headers and everything fails to build. I am seeing runtime errors which might be cause by this, but so far it has been the only way I could get it to build (including doing things like adding -nostdinc++ to CXXFLAGS which simply deferred errors until later in the build process).

Essentially I use wscript.config.debian10 with two additions.
LLVM_CONFIG_BINARY = '/usr/lib/llvm/9/bin/llvm-config' and
BOEHM_GC_ENUMERATE_REACHABLE_OBJECTS_INNER_AVAILABLE = False