Commit Graph

5370 Commits

Author SHA1 Message Date
Sylvestre Ledru
ca9dbba24d Don't build wasm target on arm64 armel mips64el mipsel ppc64el armhf for now 2022-10-10 13:47:36 +02:00
Sylvestre Ledru
18f70bf18e fix the cmake detection with libmlir 2022-10-09 20:34:54 +02:00
Sylvestre Ledru
4dbb897faa fix the cmake detection with libmlir 2022-10-09 20:34:40 +02:00
Sylvestre Ledru
a6fac2cad1 also propose to install bolt 2022-10-09 20:19:20 +02:00
Sylvestre Ledru
8aa5816612 Only ship libbolt_rt_hugify.a & libbolt_rt_instr.a on amd64 2022-10-09 20:10:35 +02:00
Sylvestre Ledru
8e140c1781 improve changelog 2022-10-09 19:32:52 +02:00
Sylvestre Ledru
f9a9e959de fix some parallel executions 2022-10-09 15:26:55 +02:00
Sylvestre Ledru
12a4fecdca fail the build if libfuzzer doesn't build 2022-10-09 13:47:44 +02:00
Sylvestre Ledru
0ee9d69daa Build libfuzzer with C++ 17 2022-10-09 13:47:24 +02:00
Sylvestre Ledru
6239dccef0 transform the error in a warning 2022-10-08 15:25:15 +02:00
Sylvestre Ledru
187d089749 LTO improvements 2022-10-08 15:25:15 +02:00
Sylvestre Ledru
9a669dea39 fix a test when running from a symlinked dir 2022-10-08 15:25:15 +02:00
Sylvestre Ledru
047a9ffd66 Build using LTO 2022-10-08 15:25:15 +02:00
Sylvestre Ledru
34e77c5f0a fix declaration 2022-10-08 10:59:42 +02:00
Sylvestre Ledru
194ccea999 prepare upload 2022-10-08 10:09:17 +02:00
Sylvestre Ledru
3219c23763 rebase of the patches 2022-10-08 10:02:11 +02:00
Sylvestre Ledru
ff4d2206cf Merge remote-tracking branch 'origin/14' into 15 2022-10-08 09:57:30 +02:00
Sylvestre Ledru
8681b0ebb1 improve the wasm check 2022-10-07 20:20:31 +02:00
Sylvestre Ledru
6c7377e299 remove unused stuff for mlir/cmake 2022-10-07 20:20:12 +02:00
Sylvestre Ledru
7e49b81826 suggest wasi-libc for the compiler 2022-10-07 19:37:15 +02:00
Sylvestre Ledru
ddab807aab Allow libunwind-dev to be coinstallable (Closes: #1004112) 2022-10-07 19:36:46 +02:00
Sylvestre Ledru
1c709f18fd add missing header? 2022-10-07 17:09:28 +02:00
Sylvestre Ledru
2d7818bea0 Fix conflict 2022-10-07 16:20:03 +02:00
Sylvestre Ledru
dc10170928 Fix some hardcoded paths (Closes: #1020847) 2022-10-07 16:18:46 +02:00
Sylvestre Ledru
cd3fb411f7 fix a typo 2022-10-07 16:13:56 +02:00
Sylvestre Ledru
1acd3cdd41 remove old patch 2022-10-07 16:11:21 +02:00
Sylvestre Ledru
14a1616e71 prepare upload 2022-10-07 16:10:23 +02:00
Sylvestre Ledru
990e0ee145 move compiler-rt patches 2022-10-07 16:10:13 +02:00
Sylvestre Ledru
e84ec84c01 move libcxx patches 2022-10-07 16:08:44 +02:00
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
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