Commit Graph

5741 Commits

Author SHA1 Message Date
Sylvestre Ledru
2084cb707a rebase + move wasm patches 2022-10-07 16:07:22 +02:00
Sylvestre Ledru
86285b0da4 add a check for Faidon's change 2022-10-07 16:02:10 +02:00
Sylvestre Ledru
f6300a1af1 Document Faidon's patches 2022-10-07 15:57:57 +02:00
Sylvestre Ledru
26d4b8da05 Fix more typo 2022-10-07 15:57:43 +02:00
Faidon Liambotis
649278148f Add support for loading wasi-libc from /usr
The WebAssembly target seems to have been designed to be always passed a
--sysroot, likely because of being tested to work only with the
WASI-SDK. This results into passing bare, non-existing paths in include
paths, such as:
   -internal-isystem /include/wasm32-wasi -internal-isystem /include
(and similar for /lib/).

In Debian, the wasi-libc package ships its files in
/usr/include/wasm32-wasi, /usr/lib/wasm32-wasi etc.

Add support in the target for including paths from /usr as well. To
avoid changing the code in more intrusive ways (to do e.g. what the
Linux target does) add a bit of an indirection where the "sysroot"
defaults to "/usr" instead of the empty string. This should probably be
adjusted a bit if it were to be upstreamed.

Closes: #1020746
2022-10-07 15:52:28 +02:00
Faidon Liambotis
076705fe8e Default to compiler-rt for WebAssembly (wasm32/64)
Our packaging overrides the upstream choice for rtlib to default always
to libgcc. Unfortunately, libgcc is not available for WebAssembly
(wasm32/wasm64 targets). This makes every build to -target
wasm32-unknown-wasi fail, unless one passes --rtlib=compiler-rt.

Patch the upstream source to default, and only accept, compiler-rt for
the WebAssembly target to make everything work out of the box. This
mirrors similar code that the upstream Darwin and Fuchsia targets have.

GCC seems fairly far from supporting WebAssembly. If/when that day
comes, this patch can be dropped.
2022-10-07 15:52:15 +02:00
Faidon Liambotis
50a54f4edc Build compiler-rt for wasm32 and wasm64
Current shortcomings/future work:

 * Unfortunately this currently takes the form of a separate, standalone
   build (with the just-built stage2 toolchain), which makes this a
   little more convoluted. The upstream compiler-rt build system does
   not have a way (that I could find) to manually add additional targets
   to the build.

 * GNU strip (binutils) does not understand the WebAssembly binary, so
   dh_strip fails. llvm-strip does, but a) does not understand all the
   arguments that dh_strip passes (e.g. -N), b) fails with "invalid
   relocation offset" on --strip-debug (but works with --strip-all).

   This currently passes -X to dh_strip to exclude them from being
   stripped entirely. Invoking llvm-strip manually with --strip-all can
   be considered in the future.

* The wasm32/wasm64 binaries are, by design, architecture-independent.
  With this commit, they are being built in every architecture, and
  shipped in the libclang-common-X.Y-dev package, which is arch: any,
  but ships both architecture-dependent (native/host compiler-rt) and
  architecture-independent files (include headers etc.).

  In a future iteration, the wasm32/wasm64 compiler-rt library could be
  factored out to a separate (arch: all) package. This is left
  outstanding because it should probably happen alongside a different
  split for libclang-common-X.Y-dev that will include splitting the
  native libclang-rt as well.

Closes: #1010932
2022-10-07 15:51:42 +02:00
Faidon Liambotis
6ba6091ca0 Fix NJOBS when DEB_BUILD_OPTIONS is not present
NJOBS is supposed to have the -j argument (as in the DEB_BUILD_OPTIONS
case)
2022-10-07 15:51:33 +02:00
Sylvestre Ledru
72a2374787 Merge branch '15-wasm' into '15'
Better support for the WebAssembly (wasm32/wasm64) targets

See merge request pkg-llvm-team/llvm-toolchain!96
2022-10-07 13:50:36 +00:00
Faidon Liambotis
8c6d646478 Add changelog for the recent WebAssembly changes 2022-10-07 16:48:42 +03:00
Faidon Liambotis
335200bf69 Add support for loading wasi-libc from /usr
The WebAssembly target seems to have been designed to be always passed a
--sysroot, likely because of being tested to work only with the
WASI-SDK. This results into passing bare, non-existing paths in include
paths, such as:
   -internal-isystem /include/wasm32-wasi -internal-isystem /include
(and similar for /lib/).

In Debian, the wasi-libc package ships its files in
/usr/include/wasm32-wasi, /usr/lib/wasm32-wasi etc.

Add support in the target for including paths from /usr as well. To
avoid changing the code in more intrusive ways (to do e.g. what the
Linux target does) add a bit of an indirection where the "sysroot"
defaults to "/usr" instead of the empty string. This should probably be
adjusted a bit if it were to be upstreamed.

Closes: #1020746
2022-10-07 15:48:50 +03:00
Faidon Liambotis
a94a2fe7c3 Default to compiler-rt for WebAssembly (wasm32/64)
Our packaging overrides the upstream choice for rtlib to default always
to libgcc. Unfortunately, libgcc is not available for WebAssembly
(wasm32/wasm64 targets). This makes every build to -target
wasm32-unknown-wasi fail, unless one passes --rtlib=compiler-rt.

Patch the upstream source to default, and only accept, compiler-rt for
the WebAssembly target to make everything work out of the box. This
mirrors similar code that the upstream Darwin and Fuchsia targets have.

GCC seems fairly far from supporting WebAssembly. If/when that day
comes, this patch can be dropped.
2022-10-07 15:45:21 +03:00
Faidon Liambotis
bcf5c6f89b Build compiler-rt for wasm32 and wasm64
Current shortcomings/future work:

 * Unfortunately this currently takes the form of a separate, standalone
   build (with the just-built stage2 toolchain), which makes this a
   little more convoluted. The upstream compiler-rt build system does
   not have a way (that I could find) to manually add additional targets
   to the build.

 * GNU strip (binutils) does not understand the WebAssembly binary, so
   dh_strip fails. llvm-strip does, but a) does not understand all the
   arguments that dh_strip passes (e.g. -N), b) fails with "invalid
   relocation offset" on --strip-debug (but works with --strip-all).

   This currently passes -X to dh_strip to exclude them from being
   stripped entirely. Invoking llvm-strip manually with --strip-all can
   be considered in the future.

* The wasm32/wasm64 binaries are, by design, architecture-independent.
  With this commit, they are being built in every architecture, and
  shipped in the libclang-common-X.Y-dev package, which is arch: any,
  but ships both architecture-dependent (native/host compiler-rt) and
  architecture-independent files (include headers etc.).

  In a future iteration, the wasm32/wasm64 compiler-rt library could be
  factored out to a separate (arch: all) package. This is left
  outstanding because it should probably happen alongside a different
  split for libclang-common-X.Y-dev that will include splitting the
  native libclang-rt as well.

Closes: #1010932
2022-10-07 15:42:47 +03:00
Faidon Liambotis
6d85b82fd9 Fix NJOBS when DEB_BUILD_OPTIONS is not present
NJOBS is supposed to have the -j argument (as in the DEB_BUILD_OPTIONS
case)
2022-10-07 15:30:35 +03:00
Sylvestre Ledru
46d44aa1c8 disable bolt on arm64 2022-10-07 11:35:32 +02:00
Sylvestre Ledru
5ccf04cb42 remove the llvm spir check 2022-10-07 09:22:52 +02:00
Sylvestre Ledru
5bfe8cc3c2 fix bolt 2022-10-05 22:52:56 +02:00
Sylvestre Ledru
83fab60250 hardcode ninja as we support only one 2022-10-05 22:52:55 +02:00
Sylvestre Ledru
6e2ba0bc7d respect nocheck for real 2022-10-05 22:52:55 +02:00
Sylvestre Ledru
1bdf2c87b5 New upstream release 2022-10-05 22:52:55 +02:00
Sylvestre Ledru
2c13bd0050 disable bolt (to avoid new) for now 2022-10-05 22:52:55 +02:00
Sylvestre Ledru
16e0582032 fix typo 2022-10-05 15:48:57 +02:00
Sylvestre Ledru
b0120e6c32 Upload to unstable now that we have removed 12 from the archive 2022-10-04 09:27:37 +02:00
Sylvestre Ledru
40422bb78e add bolt support 2022-10-04 09:24:13 +02:00
Sylvestre Ledru
d2c9c9a4e8 fix the version 2022-10-04 09:24:13 +02:00
Sylvestre Ledru
f3ac06d324 also install usr/lib/llvm-16/lib/libmlir_sparse_tensor_utils.a 2022-09-30 07:44:44 -10:00
Sylvestre Ledru
ee50b491bc fix the check with llvm spirv 2022-09-27 22:26:27 -10:00
Sylvestre Ledru
c3e4ade662 Don't build libclc-16 as it needs a more recent version of llvm-spirv 2022-09-27 07:13:03 -10:00
Sylvestre Ledru
beabf6659e fix the check 2022-09-23 16:19:39 +02:00
Sylvestre Ledru
e5e029eb86 fix the check 2022-09-23 16:19:08 +02:00
Sylvestre Ledru
1d221cdaa4 add an override for a test 2022-09-23 09:59:37 +02:00
Sylvestre Ledru
83e104384a Unbreak the clang symlink. See https://github.com/llvm/llvm-project/issues/57857 2022-09-21 00:21:34 +02:00
Sylvestre Ledru
b4059015fe add a check to see if the symlink is broken or not 2022-09-21 00:20:14 +02:00
Sylvestre Ledru
73f488dc74 bring back the symlink 2022-09-21 00:20:14 +02:00
Sylvestre Ledru
c1c1615446 New upstream release 2022-09-21 00:19:57 +02:00
Sylvestre Ledru
c22b2336dd rebase of the patches 2022-09-20 09:18:56 +02:00
Sylvestre Ledru
6bc21995c4 rebase of the patch 2022-09-20 09:10:40 +02:00
Sylvestre Ledru
da5e6321ec Install llvm-remarkutil in llvm-X.Y 2022-09-14 10:29:07 +02:00
Sylvestre Ledru
5c4defdee1 add the close bug 2022-09-12 18:07:31 +02:00
Sylvestre Ledru
94ae211d9e release 2022-09-12 18:03:16 +02:00
Gianfranco Costamagna
afe1e23e09 Upload to experimental 2022-09-12 17:58:28 +02:00
Gianfranco Costamagna
791bbcc5f1 Fix build on ppc64 and riscv64 2022-09-12 17:57:07 +02:00
Sylvestre Ledru
e7fbcaffad rebase of the patches 2022-09-11 19:35:57 +02:00
Sylvestre Ledru
d9825c6487 Remove ompt-multiplex.h from libomp 2022-09-10 17:41:54 +02:00
Sylvestre Ledru
202c12e234 rebase of the patches 2022-09-10 11:20:22 +02:00
Sylvestre Ledru
47307d75b5 prepare upload 2022-09-10 11:19:49 +02:00
Sylvestre Ledru
a731838eb6 improve libclc 2022-09-10 11:19:49 +02:00
Sylvestre Ledru
4ad52e9ea9 add a check for llvm spir 2022-09-10 11:19:49 +02:00
Sylvestre Ledru
20b0700d71 fix the libclc check 2022-09-10 11:19:49 +02:00
Sylvestre Ledru
c50ef4d13a rebase of the patches 2022-09-09 08:50:42 +02:00