Commit Graph

5027 Commits

Author SHA1 Message Date
Sylvestre Ledru
6fb0595863 transform debian/control into debian/control.in 2022-12-10 16:45:18 +01:00
Sylvestre Ledru
e5225028af touch the target to simplify multiple runs 2022-12-10 16:45:18 +01:00
Gianfranco Costamagna
78fcc5f7bb Merge with experimental upload 1:14.0.6-10~exp1 2022-12-04 09:13:31 +01:00
Gianfranco Costamagna
ba4fb0b8e5 Upload 1:14.0.6-9 to sid, fixing the various RC bugs 2022-12-04 09:08:45 +01:00
Sylvestre Ledru
998f20ed5f Revert "Replace '|| true' by '-'"
This reverts commit 1edb50d91c.
2022-11-20 18:19:12 +01:00
Sylvestre Ledru
1edb50d91c Replace '|| true' by '-' 2022-11-20 13:10:48 +01:00
Sylvestre Ledru
4134347b72 add the override 2022-11-19 19:06:05 +01:00
Sylvestre Ledru
2b5443eadb prepare upload 2022-11-19 10:23:25 +01:00
Sylvestre Ledru
92b5c74ce9 Merge branch '14-wasm-libcxx' into '14'
More WebAssembly (wasm32/wasm64) work, including libc++/libc++abi for wasm32-wasi

See merge request pkg-llvm-team/llvm-toolchain!103
2022-11-19 09:21:48 +00:00
Faidon Liambotis
c0beef7a9c Add changelog entries for recent WebAssembly changes
* More WebAssembly (wasm32/wasm64) work:
  - Update patch wasm-sysroot-usr to stop including /usr/include when
    building for the non-OS (unknown) wasm targets, to avoid inadvertently
    including the host's (glibc) headers.
  - Re-enable builds on all architectures, previously disabled for
    arm64 armel mips64el mipsel ppc64el armhf in 1:14.0.6-4, due to an FTBFS
    related to the /usr/include issue above.
  - Update patch wasm-sysroot-usr to adjust system include paths for C++
    headers as well.
  - Build libc++ and libc++abi for wasm32-wasi, generating two new binary
    packages, and introducing a build dependency on wasi-libc.
  - Misc code organization fixes to debian/rules.
2022-11-18 11:43:50 +02:00
Faidon Liambotis
97d60707ed Build libc++/libc++abi for wasm32-wasi
Do a standalone build of libcxx/libcxxabi, for wasm32-wasi. libcxx
requires a libc, and thus this requires a new build dependency on
wasi-libc. wasi-libc is not currently available for wasm64, so limit the
build to wasm32.

This introduces two new binary packages:
  - libc++-${LLVM_VERSION}-dev-wasm32
  - libc++abi-${LLVM_VERSION}-dev-wasm32
There isn't currently a naming convention in Debian for WebAssembly. Use
a "-dev-wasm32" suffix, which makes it consistent with packages such as
"libc6-dev-i386" and "libstd-rust-dev-wasm32".

Given these builds are specific to WASI, it can be argued that the names
should be something like "-dev-wasm32-wasi", or simplified to
"-dev-wasi" (not very future proof) or "-dev-wasi32" (not something
upstream uses). Something to think through later on.

WebAssembly only supports shared linking, hence why we -dev packages are
provided, shipping development headers and static archives.
2022-11-18 11:43:50 +02:00
Faidon Liambotis
9459395c21 d/rules: Makeify compiler-rt wasm target
Iterate on wasm32/wasm64 using make targets rather than shell, and place
build artifacts under a common "build-wasm" directory.
2022-11-17 21:05:07 +02:00
Faidon Liambotis
bbfc6cca07 d/rules: split override_dh_auto_build into multiple lines 2022-11-17 21:05:07 +02:00
Faidon Liambotis
6923a432bf d/rules: remove targets from .PHONY
We actually touch $@ at the end of these targets, so they are not phony.
2022-11-17 21:05:07 +02:00
Faidon Liambotis
ecbebd0a8f Patch the WebAssembly include paths for C++ as well
In wasm-sysroot-usr.diff we have changes to support compilation without
a sysroot and with system paths. These so far have applied to the C
include paths (among other things), i.e. /usr/include/<triple>. This was
mainly because that's what I had at hand to test and wanted to keep
things limited as a first iteration.

Now that we're iterated on it and cleared out some issues, make the
exact same changes for the C++ include paths as well, i.e.
/usr/include/<triple>/c++/v1. Nothing installs anything on those paths
there yet, so this is mostly preparatory for subsequent changes.
2022-11-17 21:04:52 +02:00
Faidon Liambotis
b91115bd58 Fix wasm include paths, unbreaking compiler-rt builds on !x86
compiler-rt WebAssembly builds were failing, and as a workaround commit
ca9dbba introduced COMPILER_RT_WASM_ENABLE, disabling its compilation on
several architectures (arm64 armel mips64el mipsel ppc64el armhf).

This was ultimately caused by the WebAssembly driver including paths in
bare /usr/include, when compiling for wasnNN-unknown-unknown targets.
This in turn resulted in this chain of include paths when building
compiler-rt, as one example out of many:
  1. compiler-rt/lib/builtins/divtf3.c:15                  #include "fp_lib.h"
  2. compiler-rt/lib/builtins/fp_lib.h:23                  #include "int_lib.h"
  3. compiler-rt/lib/builtins/int_lib.h:93                 #include <limits.h>
  4. /usr/lib/llvm-14/lib/clang/14.0.6/include/limits.h:20 #if __has_include_next(<limits.h>) #include_next <limits.h>
  5. /usr/include/limits.h:26                              #include <bits/libc-header-start.h>
  6. fatal error: 'bits/libc-header-start.h' file not found

/usr/include/stdint.h is the host's glibc header, and
bits/libc-header-start.h doesn't exist for the wasm targets. This is the
case with or without wasi-libc, as wasi-libc is musl-based and doesn't
have these paths at all.

The only reason builds worked on amd64 is accident:lly the B-D chain
brings in libc6-dev-i386 (through g++-multilib), which creates this
symlink:
  /usr/include/bits -> x86_64-linux-gnu/bits
This effectively meant that on amd64 builds, compiler-rt for wasm
targets was compiled with glibc x86_64 headers.

Ultimately this was rooted on the sysroot-based assumptions that the
upstream driver makes and that we are patching (evidently incompletely)
with our wasm-sysroot-usr.diff patch.

Update our patch to explicitly NOT include the bare /usr/include path on
non-OS targets (wasm32-unknown-unknown etc.), while keeping existing
behavior for backwards compatibility when --sysroot is passed.

Given this should (fingers crossed) address this invariance between
amd64 and other architectures, and unbreak those builds, revert commit
ca9dbba and the COMPILER_RT_WASM_ENABLE flag.
2022-11-17 21:00:23 +02:00
Sylvestre Ledru
bde3d49c95 store the sccache results in /tmp/buildd/source/sccache-stats.json 2022-11-16 20:51:28 +01:00
Sylvestre Ledru
eb4bb9e7a4 remove artifact 2022-11-15 18:25:04 +01:00
Sylvestre Ledru
e9f28b298e Disable the MLIR testsuite run because of a freeze (Closes: #1024154) See https://github.com/llvm/llvm-project/issues/58357 2022-11-15 18:24:02 +01:00
Sylvestre Ledru
19f47cc924 Adjust to protobuf 3.21 (Closes: #1023533) 2022-11-14 11:16:01 +01:00
Sylvestre Ledru
5e129ea18e pass sccache arg everywhere 2022-11-14 11:16:01 +01:00
Sylvestre Ledru
ada0fc6bb3 sccache: generate stats and publish them 2022-11-12 23:53:09 +01:00
Sylvestre Ledru
160ea57318 Enable LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO to help with caching 2022-11-11 16:26:28 +01:00
Sylvestre Ledru
9db77ce328 do not dump the content of sccache.log. we are good 2022-11-10 23:05:02 +01:00
Sylvestre Ledru
e9022e33bc remove old an old and useless patch 2022-11-10 16:17:50 +01:00
Sylvestre Ledru
9ea3878d01 use the upstream option to set the option 2022-11-10 15:21:22 +01:00
Sylvestre Ledru
3270880abd We want to set the clang extra version ONLY in stage 2
because we want the clang stage 1 to be as reproducible as possible
when building with sccache (because this tool do a hash using the
compiler binary and other things)
2022-11-10 15:19:49 +01:00
Sylvestre Ledru
63341e11a5 remove an old gcc 4.9 workaround 2022-11-10 13:54:02 +01:00
Sylvestre Ledru
ef8fc80088 remove non applied patch 2022-11-10 13:54:02 +01:00
Sylvestre Ledru
1e3332f2bf fix version 2022-11-04 19:44:02 +01:00
Sylvestre Ledru
875efbd5ba Fix the lldb swig issues (closes: #1023444) 2022-11-04 19:37:32 +01:00
Sylvestre Ledru
cb901ad961 add lldb swig patches 2022-11-04 19:36:47 +01:00
Sylvestre Ledru
2d8ec664ce move the lldb patches into a lldb dir 2022-11-04 19:36:34 +01:00
Sylvestre Ledru
eca12ecd2d Merge remote-tracking branch 'origin/13' into 14 2022-10-29 22:17:48 +02:00
Sylvestre Ledru
2ae5beca4f remove the failed bionic sccache stuff 2022-10-29 09:08:20 +02:00
Sylvestre Ledru
1bc018374e Merge branch 'libclc-13-spv-no-empty-param' into '13'
Fix empty "" parameter for libclc cmake if llvm-spirv is not found

See merge request pkg-llvm-team/llvm-toolchain!99
2022-10-29 06:53:29 +00:00
Jordan Justen
37a8a75e86
d/rules: Don't send an empty string to cmake when llvm-spirv is not found
Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-28 10:23:03 -07:00
Jordan Justen
0e6da0b356
d/changelog: Start 1:13.0.1-9 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-28 10:19:42 -07:00
Sylvestre Ledru
a997e8f40b * disable sccache on bionic
* d/rules: Call bash to use 'command -v' to location llvm-spirv executable
* d/rules: Set LLVM_SPIRV with cmake for libclc
* d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
* d/rules: Check for llvm-spirv with version suffix
2022-10-27 13:20:14 +02:00
Sylvestre Ledru
e10ac5c55f Disable the cmake search for all binaries (cmake_import_check_files_for.*/bin/). Dunno why it regressed but we wasted too much time on this. 2022-10-27 12:47:30 +02:00
Sylvestre Ledru
53ad179624 prepare upload 2022-10-27 11:50:50 +02:00
Sylvestre Ledru
e0510d0e62 Merge branch 'libclc-13-spv' into '13'
Make spir-v output more likely for libclc on llvm-13

See merge request pkg-llvm-team/llvm-toolchain!98
2022-10-27 07:21:11 +00:00
Jordan Justen
a3165e69a2
d/rules: Check for llvm-spirv with version suffix
Since llvm-spirv-13, the '-13' suffix has been added to the
executable.

Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-26 13:34:13 -07:00
Jordan Justen
91091e3de5
d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-26 13:33:41 -07:00
Jordan Justen
966bddda9d
d/rules: Set LLVM_SPIRV with cmake for libclc
Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-26 13:33:41 -07:00
Jordan Justen
0951f69405
d/rules: Call bash to use 'command -v' to location llvm-spirv executable
Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-26 13:33:40 -07:00
Sylvestre Ledru
34a7ac73ed
fix the version check 2022-10-26 13:33:40 -07:00
Sylvestre Ledru
265a70d7d0
Disable the build of libclc on old Ubuntu (Groovy & focal) as llvm-spir is too old on these version. See bug #52200 2022-10-26 13:29:43 -07:00
Jordan Justen
29308f4310
d/changelog: Start 1:13.0.1-8 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-26 12:49:25 -07:00
Jordan Justen
d03015ee7c
d/rules: Check for llvm-spirv with version suffix
Since llvm-spirv-13, the '-13' suffix has been added to the
executable.

Signed-off-by: Jordan Justen <jljusten@debian.org>
2022-10-26 10:25:13 -07:00