Skip to content

Commit bd659a9

Browse files
committed
No longer ship the GraalVM LLVM Toolchain as it is no longer needed
1 parent e325e1d commit bd659a9

File tree

23 files changed

+48
-131
lines changed

23 files changed

+48
-131
lines changed

ci.jsonnet

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ local part_definitions = {
368368
},
369369

370370
test_cexts_sulong: {
371+
mx_env:: "toolchain",
371372
environment+: {
372373
TRUFFLERUBYOPT: "--experimental-options --cexts-sulong",
373374
},

doc/contributor/docker.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ jt docker test --filter debian --standalone $PATH_TO_STANDALONE_TAR_GZ --test re
5050
For example, to run a full set of tests on a set of new release candidate tarballs:
5151

5252
```bash
53-
jt docker test --graalvm graalvm-ce.tar.gz llvm-toolchain-installable.jar:ruby-installable-ce.jar --test release_branch
54-
jt docker test --graalvm graalvm-ee.tar.gz llvm-toolchain-installable.jar:ruby-installable-ee.jar --test release_branch
5553
jt docker test --standalone truffleruby-linux-amd64.tar.gz --test release_branch
5654
```
5755

@@ -66,10 +64,7 @@ Pick one of the distributions in [docker-configs.yaml](../../tool/docker-configs
6664

6765
## Methods of installing
6866

69-
Pick one of:
70-
71-
* From a GraalVM binary tarball and Ruby component you have locally, `--graalvm graalvm.tar.gz llvm-toolchain-installable.jar:ruby-installable.jar`
72-
* From a TruffleRuby standalone distribution you have locally, `--standalone truffleruby-1.0.0-linux-amd64.tar.gz`
67+
From a TruffleRuby standalone distribution you have locally, `--standalone truffleruby-1.0.0-linux-amd64.tar.gz`
7368

7469
## What to do
7570

doc/contributor/workflow.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -127,20 +127,6 @@ This warning is important.
127127
- If you want to set the `suite.py` import to that checked out in `graal` (unlikely), you should run
128128
jt mx scheckimports` beforehand.
129129

130-
### Building C Extensions more quickly
131-
132-
Speeding up compilation of C extensions can be achieved by using *native* toolchain launchers,
133-
instead of the Bash toolchain launchers used with the `jvm*` build configurations.
134-
135-
For bundled C extensions (that is, extensions under `src/main/c`),
136-
you can `export JT_CACHE_TOOLCHAIN=true` and that will then use native toolchain launchers for the
137-
[bootstrap toolchain](https://github.com/oracle/graal/blob/master/sulong/docs/contributor/TOOLCHAIN.md#using-a-prebuilt-graalvm-as-a-bootstrapping-toolchain).
138-
This has no effect after `jt build`.
139-
140-
For C extensions installed after `jt build` by e.g. `gem install` or `bundle install`,
141-
one can use the `jvm-ce-ntl` build configuration which includes *native* toolchain launchers,
142-
or use one of the `native*` build configuration (which also builds a native truffleruby launcher).
143-
144130
## Editors and IDEs
145131

146132
* [Using the IntelliJ IDE for Development](using-intellij.md) (recommended)

doc/user/installing-llvm.md

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@ permalink: /reference-manual/ruby/InstallingLLVM/
66
---
77
# Installing Make and GCC
88

9-
Since TruffleRuby 19.3.0, TruffleRuby ships with its own LLVM toolchain.
10-
Therefore, it is no longer necessary to install LLVM.
11-
If you are using an older version, see [the documentation for that version](https://github.com/oracle/truffleruby/blob/vm-19.2.0/doc/user/installing-llvm.md).
12-
13-
The `make` utility as well as the dependencies of the toolchain still need to be available to build C and C++ extensions.
9+
Since TruffleRuby 24.0.0, TruffleRuby no longer needs a LLVM toolchain and instead uses the system toolchain.
10+
The packages below are required to build C and C++ extensions.
1411

1512
### Fedora-based: RHEL, Oracle Linux, etc
1613

@@ -24,28 +21,10 @@ sudo dnf install make gcc
2421
sudo apt-get install make gcc
2522
```
2623

27-
### Mandriva-based and other Linux distributions
28-
29-
Note: Such distributions are not tested and not [supported](../../README.md#system-compatibility).
30-
31-
First, install the `make` and `gcc` dependencies.
32-
33-
Mandriva uses a not-yet-upstreamed patch to let `clang` find the GCC installation (see [this comment](https://github.com/oracle/truffleruby/issues/2009#issuecomment-630019082)).
34-
Therefore the internal LLVM toolchain cannot find the necessary `libgcc_s` by default.
35-
The proper fix is for those distributions to upstream their changes to LLVM.
36-
37-
A workaround is to create a symlink explicitly so that the LLVM toolchain can find `libgcc_s`:
38-
```bash
39-
cd /usr/lib/gcc
40-
sudo ln -s x86_64-mandriva-linux-gnu x86_64-linux-gnu
41-
```
42-
4324
### macOS
4425

4526
On macOS, make sure you have installed the command line developer tools from Xcode:
4627

4728
```bash
4829
xcode-select --install
4930
```
50-
51-
You might need to add `export SDKROOT=$(xcrun --show-sdk-path)` in your shell profile.

doc/user/polyglot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ The JVM configuration automatically has access to other languages.
2828
To use other GraalVM languages, you need the [JVM Standalone](../../README.md#getting-started).
2929
The Native Standalone does not support installing extra languages.
3030

31-
Note that `ruby`, `llvm`, the LLVM toolchain and host Java interop are available without installing anything extra.
31+
Note that `ruby`, `llvm` and host Java interop are available without installing anything extra.
3232

3333
Then you can install other languages with `truffleruby-polyglot-get $LANGUAGE`, for instance:
3434
```bash

lib/truffle/rbconfig.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,6 @@ module RbConfig
119119
cext_dir = "#{prefix}/lib/cext"
120120
soext = Truffle::Platform::SOEXT
121121

122-
toolchain_path = Truffle::Boot.toolchain_paths(:PATH)
123-
124122
# Make C extensions use the same libssl as the one used for the openssl C extension
125123
if Truffle::Platform.darwin?
126124
require 'truffle/openssl-prefix'
@@ -225,7 +223,6 @@ module RbConfig
225223
'sysconfdir' => "#{prefix}/etc", # doesn't exist, as in MRI
226224
'target_cpu' => host_cpu,
227225
'target_os' => host_os,
228-
'toolchain_path' => toolchain_path,
229226
'UNICODE_VERSION' => Primitive.encoding_unicode_version,
230227
'UNICODE_EMOJI_VERSION' => Primitive.encoding_unicode_emoji_version,
231228
'warnflags' => warnflags,

mx.truffleruby/env_files.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
Here is how the various env files relate to each other:
22
* `jvm`
33
* `jvm-ce`: + GraalVM Community Compiler
4-
* `jvm-ce-ntl`: + native toolchain launchers
5-
* `jvm-ce-libgraal`: + libgraal
6-
* `native`: + librubyvm + `Truffle Macro`
7-
* `native-host-inlining`: + `TruffleHostInliningPrintExplored`, - native toolchain launchers
8-
* `native-profiling`: + `-H:-DeleteLocalSymbols`
4+
* `jvm-ce-libgraal`: + libgraal
5+
* `native`: + librubyvm + `Truffle Macro`
6+
* `native-host-inlining`: + `TruffleHostInliningPrintExplored`
7+
* `native-profiling`: + `-H:-DeleteLocalSymbols`
98
* `jvm-ee`: + Oracle GraalVM Compiler + `Truffle enterprise` + license + `LLVM Runtime Native Enterprise`
10-
* `jvm-ee-ntl`: + native toolchain launchers
11-
* `jvm-ee-libgraal`: + libgraal
12-
* `native-ee`: + librubyvm + `Truffle Macro Enterprise` + Native Image G1
13-
* `native-ee-host-inlining`: + `TruffleHostInliningPrintExplored`, - native toolchain launchers
14-
* `native-ee-aux`: + `AuxiliaryEngineCache`, - Native Image G1 (currently incompatible)
9+
* `jvm-ee-libgraal`: + libgraal
10+
* `native-ee`: + librubyvm + `Truffle Macro Enterprise` + Native Image G1
11+
* `native-ee-host-inlining`: + `TruffleHostInliningPrintExplored`
12+
* `native-ee-aux`: + `AuxiliaryEngineCache`, - Native Image G1 (currently incompatible)
1513
* `jvm-js`: + Graal.js
1614
* `jvm-py`: + GraalPython

mx.truffleruby/jvm-ce-libgraal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
GRAALVM_SKIP_ARCHIVE=true
22
DYNAMIC_IMPORTS=/tools,/compiler,/substratevm
33
COMPONENTS=TruffleRuby,suite:tools,GraalVM compiler,SubstrateVM,LibGraal
4-
NATIVE_IMAGES=suite:sulong,lib:jvmcicompiler
4+
NATIVE_IMAGES=lib:jvmcicompiler
55
# To also create the standalone
66
INSTALLABLES=TruffleRuby
77
BUILD_TARGETS=GRAALVM,GRAALVM_STANDALONES

mx.truffleruby/jvm-ce-ntl

Lines changed: 0 additions & 7 deletions
This file was deleted.

mx.truffleruby/jvm-ee-libgraal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
GRAALVM_SKIP_ARCHIVE=true
22
DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise
33
COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise,LibGraal Enterprise
4-
NATIVE_IMAGES=suite:sulong,lib:jvmcicompiler
4+
NATIVE_IMAGES=lib:jvmcicompiler
55
# To also create the standalone
66
INSTALLABLES=TruffleRuby
77
BUILD_TARGETS=GRAALVM,GRAALVM_STANDALONES

0 commit comments

Comments
 (0)