Bug#1029010: llvm-toolchain-15: autopkgtest regression

2023-03-08 Thread Faidon Liambotis
On Wed, Mar 08, 2023 at 09:41:21AM +, Simon McVittie wrote:
> > there is a metapackage, libc++-dev-wasm32, which Depends on the
> > default implementation, which is libc++-14-dev-wasm32 right now. That
> > metapackage has at least one notable reverse B-D, firefox, using it to
> > build certain security/sandboxing features (RLBox[1], AIUI). That is to
> > say, this feature works (w/ 14) and does very useful things today. it
> > (seemingly) broke when it was ported to llvm-toolchain-15, which
> > src:firefox does not depend on directly.
> 
> If I understand correctly, that doesn't *necessarily* have to be RC for
> bookworm, because llvm-toolchain-15 is not (yet!) the default version
> of LLVM provided by the metapackage, and is only used by Mesa? But it
> would be a blocker for either moving the default forward from 14 to 15
> (as has already been done in experimental), or making Firefox use the
> non-default 15 toolchain like Mesa does, presumably to get some new
> feature or optimization that isn't in 14?

At least as I also understand it, that's right. 

I think it'd be a pity to revert this for 15 and we should aim for
feature parity between the two branches, but disabling it is, and can
remain an option as a plan B given where we are in the bookworm release
cycle. That's IMHO, with a biased view, as the wasm patches author, but
ultimately up to the maintainer (which is definitely not me ;).

I'm hopeful we can address the underlying issue quickly though, and I
propose to put a hold to this conversation for the time being and see
where we get with a proper resolution first. I just posted a patch in
the other bug report. Fingers crossed.

Faidon



Bug#1029010: llvm-toolchain-15: autopkgtest regression

2023-03-08 Thread Simon McVittie
On Wed, 08 Mar 2023 at 03:11:57 +0200, Faidon Liambotis wrote:
> On Fri, Mar 03, 2023 at 05:46:15PM +, Simon McVittie wrote:
> > I don't think this is *really* a regression, because in the version in
> > bookworm, the autopkgtest didn't exercise compilation of C++ into
> > WebAssembly at all.
> 
> This statement strictly speaking is true, but applies only if you look
> at LLVM 15 in isolation. It *is* a regression, in the sense that this
> works with llvm-toolchain-14, where the WebAssembly work was first
> pushed, today, in both bookworm and sid. For example, retracing your
> steps in #1032317 with s/15/14/ does not result into a failure.

Sorry, I was confused by the binary package reorganization in the
llvm-toolchain-15 toolchain since it forked from -14, and I hadn't
realised that -14 had undergone equivalent restructuring to enable
WASM support. Yes, this is a regression since -14, even if it isn't
a regression since the -15 in bookworm.

> there is a metapackage, libc++-dev-wasm32, which Depends on the
> default implementation, which is libc++-14-dev-wasm32 right now. That
> metapackage has at least one notable reverse B-D, firefox, using it to
> build certain security/sandboxing features (RLBox[1], AIUI). That is to
> say, this feature works (w/ 14) and does very useful things today. it
> (seemingly) broke when it was ported to llvm-toolchain-15, which
> src:firefox does not depend on directly.

If I understand correctly, that doesn't *necessarily* have to be RC for
bookworm, because llvm-toolchain-15 is not (yet!) the default version
of LLVM provided by the metapackage, and is only used by Mesa? But it
would be a blocker for either moving the default forward from 14 to 15
(as has already been done in experimental), or making Firefox use the
non-default 15 toolchain like Mesa does, presumably to get some new
feature or optimization that isn't in 14?

smcv



Bug#1029010: llvm-toolchain-15: autopkgtest regression

2023-03-07 Thread Faidon Liambotis
On Fri, Mar 03, 2023 at 05:46:15PM +, Simon McVittie wrote:
> I've cut down what I think is the root cause of this compile failure to
> a more minimal bug report: see #1032317.

That's super helpful, thanks :) Spoiler alert: I have a suspicion on the
root cause, I'll follow up there.

> I don't think this is *really* a regression, because in the version in
> bookworm, the autopkgtest didn't exercise compilation of C++ into
> WebAssembly at all.

This statement strictly speaking is true, but applies only if you look
at LLVM 15 in isolation. It *is* a regression, in the sense that this
works with llvm-toolchain-14, where the WebAssembly work was first
pushed, today, in both bookworm and sid. For example, retracing your
steps in #1032317 with s/15/14/ does not result into a failure.

> If I understand correctly, when compared with bookworm, the version in
> sid adds a new feature (the necessary -dev packages for compiling C++ into
> WebAssembly) and also adds a smoke-test for that feature, but the feature
> doesn't yet work as intended. Is that accurate?

Kind of -- again, strictly speaking, true for libc++-15-dev-wasm32.
However, there is a metapackage, libc++-dev-wasm32, which Depends on the
default implementation, which is libc++-14-dev-wasm32 right now. That
metapackage has at least one notable reverse B-D, firefox, using it to
build certain security/sandboxing features (RLBox[1], AIUI). That is to
say, this feature works (w/ 14) and does very useful things today. it
(seemingly) broke when it was ported to llvm-toolchain-15, which
src:firefox does not depend on directly.

1: https://rlbox.dev/

Regards,
Faidon



Bug#1029010: llvm-toolchain-15: autopkgtest regression

2023-03-03 Thread Simon McVittie
On Fri, 03 Mar 2023 at 17:41:22 +0100, Sylvestre Ledru wrote:
> Le 16/01/2023 à 16:44, Adrian Bunk a écrit :
> > /usr/include/wasm32-wasi/c++/v1/__type_traits/is_array.h:40:22: error: 
> > reference to unresolved using declaration
> > template  struct _LIBCPP_TEMPLATE_VIS 
> > is_array<_Tp[_Np]>
> >   ^
> > /usr/include/wasm32-wasi/c++/v1/cstddef:52:1: note: using declaration 
> > annotated with 'using_if_exists' here
> > using ::size_t _LIBCPP_USING_IF_EXISTS;

I've cut down what I think is the root cause of this compile failure to
a more minimal bug report: see #1032317.

I don't think this is *really* a regression, because in the version in
bookworm, the autopkgtest didn't exercise compilation of C++ into
WebAssembly at all.

If I understand correctly, when compared with bookworm, the version in
sid adds a new feature (the necessary -dev packages for compiling C++ into
WebAssembly) and also adds a smoke-test for that feature, but the feature
doesn't yet work as intended. Is that accurate?

Did the new autopkgtest coverage pass on the maintainers' systems? I don't
seen any sign of it having passed on ci.debian.net since 1:15.0.6-5~exp1
(see https://ci.debian.net/packages/l/llvm-toolchain-15/unstable/amd64/
which includes test results with all packages from unstable, and also test
results with llvm-toolchain-15 taken from experimental and everything else
from unstable).

If you don't consider full C++ wasm support to be release-critical for
bookworm, one option would be to remove the packages that enable it,
together with their test coverage; that should get the autopkgtest passing
again. However, I haven't looked at the diff between 15.0.6 and 15.0.7,
so I don't know whether the release team would be likely to accept an
unblock request or not.

When enabling new features in experimental, please check the CI results
before re-uploading to unstable. This can be done conveniently via
,
which asks the question: if the packages in unstable were all in
testing, and the packages in experimental were all in unstable, would
llvm-toolchain-15 be able to migrate?

Thanks,
smcv



Bug#1029010: llvm-toolchain-15: autopkgtest regression

2023-03-03 Thread Sylvestre Ledru

Hello

Sorry, I missed this issue.

Faidon, does it ring a bell ?

Thanks

Sylvestre


Le 16/01/2023 à 16:44, Adrian Bunk a écrit :

Source: llvm-toolchain-15
Version: 1:15.0.7-1
Severity: serious

https://ci.debian.net/data/autopkgtest/testing/amd64/l/llvm-toolchain-15/30436521/log.gz

...
In file included from cout.cpp:1:
In file included from /usr/include/wasm32-wasi/c++/v1/iostream:41:
In file included from /usr/include/wasm32-wasi/c++/v1/ios:221:
In file included from /usr/include/wasm32-wasi/c++/v1/__locale:18:
In file included from /usr/include/wasm32-wasi/c++/v1/memory:841:
In file included from /usr/include/wasm32-wasi/c++/v1/__algorithm/copy.h:12:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__algorithm/unwrap_iter.h:13:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/iterator_traits.h:14:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/incrementable_traits.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/concepts:133:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__concepts/arithmetic.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/type_traits:421:
In file included from /usr/include/wasm32-wasi/c++/v1/__functional/invoke.h:17:
In file included from /usr/include/wasm32-wasi/c++/v1/__type_traits/decay.h:16:
/usr/include/wasm32-wasi/c++/v1/__type_traits/is_array.h:40:22: error: 
reference to unresolved using declaration
template  struct _LIBCPP_TEMPLATE_VIS is_array<_Tp[_Np]>
  ^
/usr/include/wasm32-wasi/c++/v1/cstddef:52:1: note: using declaration annotated 
with 'using_if_exists' here
using ::size_t _LIBCPP_USING_IF_EXISTS;
^
In file included from cout.cpp:1:
In file included from /usr/include/wasm32-wasi/c++/v1/iostream:41:
In file included from /usr/include/wasm32-wasi/c++/v1/ios:221:
In file included from /usr/include/wasm32-wasi/c++/v1/__locale:18:
In file included from /usr/include/wasm32-wasi/c++/v1/memory:841:
In file included from /usr/include/wasm32-wasi/c++/v1/__algorithm/copy.h:12:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__algorithm/unwrap_iter.h:13:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/iterator_traits.h:14:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/incrementable_traits.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/concepts:133:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__concepts/arithmetic.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/type_traits:421:
In file included from /usr/include/wasm32-wasi/c++/v1/__functional/invoke.h:17:
In file included from /usr/include/wasm32-wasi/c++/v1/__type_traits/decay.h:20:
/usr/include/wasm32-wasi/c++/v1/__type_traits/remove_extent.h:25:22: error: 
reference to unresolved using declaration
template  struct _LIBCPP_TEMPLATE_VIS 
remove_extent<_Tp[_Np]>
  ^
/usr/include/wasm32-wasi/c++/v1/cstddef:52:1: note: using declaration annotated 
with 'using_if_exists' here
using ::size_t _LIBCPP_USING_IF_EXISTS;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
autopkgtest [04:43:27]: test command1: ---]
autopkgtest [04:43:27]: test command1:  - - - - - - - - - - results - - - - - - 
- - - -
command1 FAIL non-zero exit status 1
...
autopkgtest [04:47:28]:  summary
command1 FAIL non-zero exit status 1
integration-test-suite-test PASS
cmake-test   PASS
command2 PASS
command3 PASS

___
Pkg-llvm-team mailing list
pkg-llvm-t...@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-llvm-team




Bug#1029010: llvm-toolchain-15: autopkgtest regression

2023-01-16 Thread Adrian Bunk
Source: llvm-toolchain-15
Version: 1:15.0.7-1
Severity: serious

https://ci.debian.net/data/autopkgtest/testing/amd64/l/llvm-toolchain-15/30436521/log.gz

...
In file included from cout.cpp:1:
In file included from /usr/include/wasm32-wasi/c++/v1/iostream:41:
In file included from /usr/include/wasm32-wasi/c++/v1/ios:221:
In file included from /usr/include/wasm32-wasi/c++/v1/__locale:18:
In file included from /usr/include/wasm32-wasi/c++/v1/memory:841:
In file included from /usr/include/wasm32-wasi/c++/v1/__algorithm/copy.h:12:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__algorithm/unwrap_iter.h:13:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/iterator_traits.h:14:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/incrementable_traits.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/concepts:133:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__concepts/arithmetic.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/type_traits:421:
In file included from /usr/include/wasm32-wasi/c++/v1/__functional/invoke.h:17:
In file included from /usr/include/wasm32-wasi/c++/v1/__type_traits/decay.h:16:
/usr/include/wasm32-wasi/c++/v1/__type_traits/is_array.h:40:22: error: 
reference to unresolved using declaration
template  struct _LIBCPP_TEMPLATE_VIS is_array<_Tp[_Np]>
 ^
/usr/include/wasm32-wasi/c++/v1/cstddef:52:1: note: using declaration annotated 
with 'using_if_exists' here
using ::size_t _LIBCPP_USING_IF_EXISTS;
^
In file included from cout.cpp:1:
In file included from /usr/include/wasm32-wasi/c++/v1/iostream:41:
In file included from /usr/include/wasm32-wasi/c++/v1/ios:221:
In file included from /usr/include/wasm32-wasi/c++/v1/__locale:18:
In file included from /usr/include/wasm32-wasi/c++/v1/memory:841:
In file included from /usr/include/wasm32-wasi/c++/v1/__algorithm/copy.h:12:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__algorithm/unwrap_iter.h:13:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/iterator_traits.h:14:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__iterator/incrementable_traits.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/concepts:133:
In file included from 
/usr/include/wasm32-wasi/c++/v1/__concepts/arithmetic.h:15:
In file included from /usr/include/wasm32-wasi/c++/v1/type_traits:421:
In file included from /usr/include/wasm32-wasi/c++/v1/__functional/invoke.h:17:
In file included from /usr/include/wasm32-wasi/c++/v1/__type_traits/decay.h:20:
/usr/include/wasm32-wasi/c++/v1/__type_traits/remove_extent.h:25:22: error: 
reference to unresolved using declaration
template  struct _LIBCPP_TEMPLATE_VIS 
remove_extent<_Tp[_Np]>
 ^
/usr/include/wasm32-wasi/c++/v1/cstddef:52:1: note: using declaration annotated 
with 'using_if_exists' here
using ::size_t _LIBCPP_USING_IF_EXISTS;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
autopkgtest [04:43:27]: test command1: ---]
autopkgtest [04:43:27]: test command1:  - - - - - - - - - - results - - - - - - 
- - - -
command1 FAIL non-zero exit status 1
...
autopkgtest [04:47:28]:  summary
command1 FAIL non-zero exit status 1
integration-test-suite-test PASS
cmake-test   PASS
command2 PASS
command3 PASS