Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust: Update dependencies #19495

Merged
merged 5 commits into from
Apr 25, 2023
Merged

Conversation

chrysn
Copy link
Member

@chrysn chrysn commented Apr 24, 2023

Contribution description

This updates both the RIOT-specific and generic dependencies of Rust examples and modules.

It also follows a deprecation from the G unit renaming originally done in #19292.

Testing procedure

  • Green CI should do

Issues/PRs references

Copying from one of the commits with some sed:

How to do similar PRs

Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed):

$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done

Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time):

$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done

Creating the commit message:

$ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/    * /'

git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from git diff --text and looking for the riot-sys or riot-wrappers line, respectively.

This pulls in several fixes from these repositories:

* riot-sys:
    * Add `random` module to `riot-headers` (RIOT-OS/rust-riot-sys#26)
    * README: fix 2 typos (RIOT-OS/rust-riot-sys#31)
    * bindgen: Use 0.64 (RIOT-OS/rust-riot-sys#30)
    * wolfSSL support added (RIOT-OS/rust-riot-sys#28)
    * extern-types: Generate replacement types dynamically (RIOT-OS/rust-riot-sys#27)
    * Extern types: Add netq_t, make them large (RIOT-OS/rust-riot-sys#25)
    * doc: Suppress warnings about things C2Rust does not uphold (RIOT-OS/rust-riot-sys#23)
    * export macro_DAC_LINE (RIOT-OS/rust-riot-sys#22)
    * Add BINDGEN_OUTPUT_FILE export (RIOT-OS/rust-riot-sys#21)
* riot-wrappers:
    * DAC: Add wrapper around RIOTs DAC-interface (RIOT-OS/rust-riot-wrappers#36)
    * saul: Compatibly rename G* variants (RIOT-OS/rust-riot-wrappers#50)
    * tests: Add test for auto-init when auto-init debug is active (RIOT-OS/rust-riot-wrappers#48)
    * gcoap: Provide link encoder (RIOT-OS/rust-riot-wrappers#47)
    * Drop SUIT support in riot-wrappers (RIOT-OS/rust-riot-wrappers#44)
    * Add an auto init module (RIOT-OS/rust-riot-wrappers#45)
    * gcoap: Allow registration without scope for 'static listeners (RIOT-OS/rust-riot-wrappers#43)

Through direct dependency changes (the bindgen update), the number of
transitive dependencies could be reduced.
This helps remove duplicate code after previous updates.
@chrysn chrysn added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: run tests If set, CI server will run tests on hardware for the labeled PR Area: Rust Area: Rust wrapper labels Apr 24, 2023
@github-actions github-actions bot added Area: examples Area: Example Applications Area: sys Area: System Area: tests Area: tests and testing framework labels Apr 24, 2023
@riot-ci
Copy link

riot-ci commented Apr 24, 2023

Murdock results

✔️ PASSED

8e2d269 drivers/lsm303agr: Rename deprecated unit G to GForce

Success Failures Total Runtime
6921 0 6921 10m:13s

Artifacts

@chrysn chrysn marked this pull request as ready for review April 24, 2023 09:56
@chrysn chrysn requested a review from maribu April 24, 2023 09:56
@maribu maribu added the Process: needs backport Integration Process: The PR is required to be backported to a release or feature branch label Apr 24, 2023
@maribu
Copy link
Member

maribu commented Apr 24, 2023

I think technically this isn't a bugfix. But since it fixes a regression / incompatibility with tools that already hit a lot of Linux distros and likely will hit more over time, IMO we should backport this.

@maribu
Copy link
Member

maribu commented Apr 24, 2023

Oh, tests/rust_minimal for cc2650-launchpad still fails:

  cargo:warning=C2Rust failed with error code exit status: 255, exiting

  --- stderr
  In file included from riot-c2rust.h:80:
  /home/maribu/Repos/software/RIOT/rust/sys/include/vfs.h:67:10: fatal error: 'sys/statvfs.h' file not found
  #include <sys/statvfs.h> /* for struct statvfs */
           ^~~~~~~~~~~~~~~
make: *** [/home/maribu/Repos/software/RIOT/rust/makefiles/cargo-targets.inc.mk:53: /home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/target/thumbv7m-none-eabi/release/librust_minimal.a] Error 101

It seems that sys/statvfs.h is provided by sys/posix/include/sys/statvfs.h, which would indicate a dependency of VFS on the posix compatibility thingy that is not properly expressed.

Maybe the struct statvfs definition should be moved to the sys/vfs.h header instead and the sys/statvfs.h header should include sys/vfs.h?

@maribu
Copy link
Member

maribu commented Apr 24, 2023

And more issues:

  --- stderr
  riot-c2rust.h:15:19: error: unused function '__masked_builtin_arm_get_fpscr' [-Werror,-Wunused-function]
  static inline int __masked_builtin_arm_get_fpscr(void) {
                    ^
  riot-c2rust.h:18:20: error: unused function '__masked_builtin_arm_set_fpscr' [-Werror,-Wunused-function]
  static inline void __masked_builtin_arm_set_fpscr(int fpscr){
                     ^

Maybe c2rust could just add __attribute__((unused)) to generated functions in case they are unused?

@maribu
Copy link
Member

maribu commented Apr 24, 2023

(Or maybe the issue is me not being up to date in the first place, let's see if there is a new version of c2rust.)

Update: Yes, indeed. I'm at 0.16, upstream is at 0.17. Let's see what happens after updating.

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

The launchpad build for tests/rust_minimal WFM, let's hope it's all just the c2rust version.

(And by the way, can we please get rid of the inclusion of POSIX headers in the VFS API? Our VFS has no POSIX semantics, and reusing their types causes more harm than good. But that's a different issue...)

@maribu
Copy link
Member

maribu commented Apr 24, 2023

It doesn't look updating c2rust is that easy. Just for context: We only need c2rust for static inline functions, right? If rust would only access function that do have actual linkage, we could fully get rid of c2rust altogether, right?

Lots of breakage
error[E0531]: cannot find tuple struct or tuple variant `Projection` in this scope
   --> c2rust-analyze/src/labeled_ty.rs:207:80
    |
207 |             Dynamic(..) | Closure(..) | Generator(..) | GeneratorWitness(..) | Projection(..)
    |                                                                                ^^^^^^^^^^ not found in this scope
    |
help: consider importing one of these items
    |
5   | use rustc_middle::ty::Clause::Projection;
    |
5   | use rustc_middle::ty::ExistentialPredicate::Projection;
    |

error[E0531]: cannot find tuple struct or tuple variant `Opaque` in this scope
   --> c2rust-analyze/src/labeled_ty.rs:208:15
    |
208 |             | Opaque(..) | Param(..) | Bound(..) | Placeholder(..) | Infer(..) | Error(..) => {
    |               ^^^^^^ not found in this scope

error[E0531]: cannot find tuple struct or tuple variant `Projection` in this scope
   --> c2rust-analyze/src/labeled_ty.rs:353:80
    |
353 |             Dynamic(..) | Closure(..) | Generator(..) | GeneratorWitness(..) | Projection(..)
    |                                                                                ^^^^^^^^^^ not found in this scope
    |
help: consider importing one of these items
    |
5   | use rustc_middle::ty::Clause::Projection;
    |
5   | use rustc_middle::ty::ExistentialPredicate::Projection;
    |

error[E0531]: cannot find tuple struct or tuple variant `Opaque` in this scope
   --> c2rust-analyze/src/labeled_ty.rs:354:15
    |
354 |             | Opaque(..) | Param(..) | Bound(..) | Placeholder(..) | Infer(..) | Error(..) => {
    |               ^^^^^^ not found in this scope

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> c2rust-analyze/src/main.rs:1:1
  |
1 | #![feature(rustc_private)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^

   Compiling handlebars v4.3.6
error[E0599]: no method named `intern_place_elems` found for struct `TyCtxt<'tcx>` in the current scope
   --> c2rust-analyze/src/borrowck/atoms.rs:185:30
    |
185 |         let projection = tcx.intern_place_elems(projection);
    |                              ^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `mk_place_elems`

error[E0599]: no method named `basic_blocks` found for reference `&rustc_middle::mir::Body<'tcx>` in the current scope
   --> c2rust-analyze/src/borrowck/type_check.rs:436:30
    |
436 |     for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
    |                              ^^^^^^^^^^^^ field, not a method
    |
help: remove the arguments
    |
436 -     for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
436 +     for (bb, bb_data) in mir.basic_blocks.iter_enumerated() {
    |
help: there is a method with a similar name
    |
436 |     for (bb, bb_data) in mir.basic_blocks_mut().iter_enumerated() {
    |                              ~~~~~~~~~~~~~~~~

error[E0599]: no method named `basic_blocks` found for reference `&rustc_middle::mir::Body<'tcx>` in the current scope
   --> c2rust-analyze/src/borrowck/mod.rs:219:30
    |
219 |     for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
    |                              ^^^^^^^^^^^^ field, not a method
    |
help: remove the arguments
    |
219 -     for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
219 +     for (bb, bb_data) in mir.basic_blocks.iter_enumerated() {
    |
help: there is a method with a similar name
    |
219 |     for (bb, bb_data) in mir.basic_blocks_mut().iter_enumerated() {
    |                              ~~~~~~~~~~~~~~~~

error[E0308]: mismatched types
   --> c2rust-analyze/src/context.rs:168:43
    |
168 |         let lty = self.assign_pointer_ids(self.tcx.type_of(field.did));
    |                        ------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Ty<'_>`, found `EarlyBinder<Ty<'_>>`
    |                        |
    |                        arguments to this method are incorrect
    |
    = note: expected struct `rustc_middle::ty::Ty<'_>`
               found struct `EarlyBinder<rustc_middle::ty::Ty<'_>>`
note: method defined here
   --> c2rust-analyze/src/main.rs:664:8
    |
664 |     fn assign_pointer_ids(&mut self, ty: Ty<'tcx>) -> LTy<'tcx> {
    |        ^^^^^^^^^^^^^^^^^^            ------------

error[E0599]: no method named `basic_blocks` found for reference `&rustc_middle::mir::Body<'tcx>` in the current scope
   --> c2rust-analyze/src/dataflow/type_check.rs:386:30
    |
386 |     for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
    |                              ^^^^^^^^^^^^ field, not a method
    |
help: remove the arguments
    |
386 -     for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
386 +     for (bb, bb_data) in mir.basic_blocks.iter_enumerated() {
    |
help: there is a method with a similar name
    |
386 |     for (bb, bb_data) in mir.basic_blocks_mut().iter_enumerated() {
    |                              ~~~~~~~~~~~~~~~~

error[E0599]: no variant or associated item named `CopyNonOverlapping` found for enum `StatementKind` in the current scope
   --> c2rust-analyze/src/expr_rewrite.rs:143:28
    |
143 |             StatementKind::CopyNonOverlapping(..) => todo!("statement {:?}", stmt),
    |                            ^^^^^^^^^^^^^^^^^^ variant or associated item not found in `StatementKind<'_>`

error[E0599]: no method named `basic_blocks` found for reference `&rustc_middle::mir::Body<'tcx>` in the current scope
   --> c2rust-analyze/src/expr_rewrite.rs:405:28
    |
405 |     for (bb_id, bb) in mir.basic_blocks().iter_enumerated() {
    |                            ^^^^^^^^^^^^ field, not a method
    |
help: remove the arguments
    |
405 -     for (bb_id, bb) in mir.basic_blocks().iter_enumerated() {
405 +     for (bb_id, bb) in mir.basic_blocks.iter_enumerated() {
    |
help: there is a method with a similar name
    |
405 |     for (bb_id, bb) in mir.basic_blocks_mut().iter_enumerated() {
    |                            ~~~~~~~~~~~~~~~~

error[E0308]: mismatched types
   --> c2rust-analyze/src/labeled_ty.rs:306:32
    |
306 |                       .mk_substs(substs.iter().map(|arg| match arg.unpack() {
    |  ______________________---------_^
    | |                      |
    | |                      arguments to this method are incorrect
307 | |                         GenericArgKind::Type(_) => it.next().unwrap().into(),
308 | |                         GenericArgKind::Lifetime(rg) => GenericArg::from(rg),
309 | |                         GenericArgKind::Const(cn) => GenericArg::from(cn),
310 | |                     }));
    | |______________________^ expected `&[GenericArg<'_>]`, found `Map<Copied<Iter<'_, GenericArg<'_>>>, ...>`
    |
    = note: expected reference `&[rustc_middle::ty::GenericArg<'_>]`
                  found struct `std::iter::Map<Copied<std::slice::Iter<'_, rustc_middle::ty::GenericArg<'_>>>, [closure@c2rust-analyze/src/labeled_ty.rs:306:50: 306:55]>`
note: method defined here
   --> /home/buildozer/aports/community/rust/src/rustc-1.69.0-src/compiler/rustc_middle/src/ty/context.rs:1590:17

error[E0599]: no method named `mk_ty` found for struct `TyCtxt<'tcx>` in the current scope
   --> c2rust-analyze/src/labeled_ty.rs:316:26
    |
316 |                 self.tcx.mk_ty(Array(elem, len))
    |                          ^^^^^ help: there is a method with a similar name: `mk_ty_var`

error[E0308]: mismatched types
   --> c2rust-analyze/src/labeled_ty.rs:338:32
    |
338 |                       .mk_substs(substs.iter().map(|arg| match arg.unpack() {
    |  ______________________---------_^
    | |                      |
    | |                      arguments to this method are incorrect
339 | |                         GenericArgKind::Type(_) => it.next().unwrap().into(),
340 | |                         GenericArgKind::Lifetime(rg) => GenericArg::from(rg),
341 | |                         GenericArgKind::Const(cn) => GenericArg::from(cn),
342 | |                     }));
    | |______________________^ expected `&[GenericArg<'_>]`, found `Map<Copied<Iter<'_, GenericArg<'_>>>, ...>`
    |
    = note: expected reference `&[rustc_middle::ty::GenericArg<'_>]`
                  found struct `std::iter::Map<Copied<std::slice::Iter<'_, rustc_middle::ty::GenericArg<'_>>>, [closure@c2rust-analyze/src/labeled_ty.rs:338:50: 338:55]>`
note: method defined here
   --> /home/buildozer/aports/community/rust/src/rustc-1.69.0-src/compiler/rustc_middle/src/ty/context.rs:1590:17

error[E0308]: mismatched types
   --> c2rust-analyze/src/labeled_ty.rs:350:41
    |
350 |             Tuple(_) => self.tcx.mk_tup(args.iter().cloned()),
    |                                  ------ ^^^^^^^^^^^^^^^^^^^^ expected `&[Ty<'_>]`, found `Cloned<Iter<'_, Ty<'_>>>`
    |                                  |
    |                                  arguments to this method are incorrect
    |
    = note: expected reference `&[rustc_middle::ty::Ty<'_>]`
                  found struct `Cloned<std::slice::Iter<'_, rustc_middle::ty::Ty<'_>>>`
note: method defined here
   --> /home/buildozer/aports/community/rust/src/rustc-1.69.0-src/compiler/rustc_middle/src/ty/context.rs:1844:12

error[E0308]: mismatched types
  --> c2rust-analyze/src/type_desc.rs:90:32
   |
90 |     let substs = tcx.mk_substs([GenericArg::from(ty)].into_iter());
   |                      --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&[GenericArg<'_>]`, found `IntoIter<GenericArg<'_>, 1>`
   |                      |
   |                      arguments to this method are incorrect
   |
   = note: expected reference `&[rustc_middle::ty::GenericArg<'_>]`
                 found struct `std::array::IntoIter<rustc_middle::ty::GenericArg<'_>, 1>`
note: method defined here
  --> /home/buildozer/aports/community/rust/src/rustc-1.69.0-src/compiler/rustc_middle/src/ty/context.rs:1590:17

error[E0599]: no method named `mk_region` found for struct `TyCtxt<'_>` in the current scope
   --> c2rust-analyze/src/type_desc.rs:126:50
    |
126 |             Ownership::Imm => tcx.mk_imm_ref(tcx.mk_region(ReErased), ty),
    |                                                  ^^^^^^^^^ help: there is a method with a similar name: `mk_projection`

error[E0599]: no method named `mk_region` found for struct `TyCtxt<'_>` in the current scope
   --> c2rust-analyze/src/type_desc.rs:127:51
    |
127 |             Ownership::Cell => tcx.mk_imm_ref(tcx.mk_region(ReErased), ty),
    |                                                   ^^^^^^^^^ help: there is a method with a similar name: `mk_projection`

error[E0599]: no method named `mk_region` found for struct `TyCtxt<'_>` in the current scope
   --> c2rust-analyze/src/type_desc.rs:128:50
    |
128 |             Ownership::Mut => tcx.mk_mut_ref(tcx.mk_region(ReErased), ty),
    |                                                  ^^^^^^^^^ help: there is a method with a similar name: `mk_projection`

error[E0533]: expected value, found struct variant `DefKind::Impl`
   --> c2rust-analyze/src/util.rs:143:44
    |
143 |             if tcx.def_kind(parent_did) != DefKind::Impl {
    |                                            ^^^^^^^^^^^^^ not a value

error[E0599]: no method named `kind` found for struct `EarlyBinder` in the current scope
   --> c2rust-analyze/src/util.rs:150:60
    |
150 |             let (pointee_ty, mutbl) = match parent_impl_ty.kind() {
    |                                                            ^^^^ method not found in `EarlyBinder<Ty<'_>>`
    |
help: one of the expressions' fields has a method of the same name
    |
150 |             let (pointee_ty, mutbl) = match parent_impl_ty.0.kind() {
    |                                                            ++

error[E0533]: expected value, found struct variant `DefKind::Impl`
   --> c2rust-analyze/src/util.rs:160:44
    |
160 |             if tcx.def_kind(parent_did) != DefKind::Impl {
    |                                            ^^^^^^^^^^^^^ not a value

error[E0599]: no method named `kind` found for struct `EarlyBinder` in the current scope
   --> c2rust-analyze/src/util.rs:167:49
    |
167 |             let elem_ty = match *parent_impl_ty.kind() {
    |                                                 ^^^^ method not found in `EarlyBinder<Ty<'_>>`
    |
help: one of the expressions' fields has a method of the same name
    |
167 |             let elem_ty = match *parent_impl_ty.0.kind() {
    |                                                 ++

error[E0308]: mismatched types
   --> c2rust-analyze/src/util.rs:179:29
    |
179 |                 pointee_ty: parent_impl_ty,
    |                             ^^^^^^^^^^^^^^ expected `Ty<'_>`, found `EarlyBinder<Ty<'_>>`
    |
    = note: expected struct `rustc_middle::ty::Ty<'_>`
               found struct `EarlyBinder<rustc_middle::ty::Ty<'_>>`

error[E0533]: expected value, found struct variant `DefKind::Impl`
   --> c2rust-analyze/src/util.rs:246:44
    |
246 |             if tcx.def_kind(parent_did) != DefKind::Impl {
    |                                            ^^^^^^^^^^^^^ not a value

error[E0599]: no method named `kind` found for struct `EarlyBinder` in the current scope
   --> c2rust-analyze/src/util.rs:253:62
    |
253 |             let (_pointee_ty, _mutbl) = match parent_impl_ty.kind() {
    |                                                              ^^^^ method not found in `EarlyBinder<Ty<'_>>`
    |
help: one of the expressions' fields has a method of the same name
    |
253 |             let (_pointee_ty, _mutbl) = match parent_impl_ty.0.kind() {
    |                                                              ++

error[E0599]: no method named `kind` found for struct `EarlyBinder` in the current scope
   --> c2rust-analyze/src/main.rs:134:57
    |
134 |         if let TyKind::Adt(adt_def, substs) = struct_ty.kind() {
    |                                                         ^^^^ method not found in `EarlyBinder<Ty<'_>>`
    |
help: one of the expressions' fields has a method of the same name
    |
134 |         if let TyKind::Adt(adt_def, substs) = struct_ty.0.kind() {
    |                                                         ++

error[E0308]: mismatched types
   --> c2rust-analyze/src/main.rs:179:36
    |
179 |                 let field_ty: Ty = tcx.type_of(field.did);
    |                               --   ^^^^^^^^^^^^^^^^^^^^^^ expected `Ty<'_>`, found `EarlyBinder<Ty<'_>>`
    |                               |
    |                               expected due to this
    |
    = note: expected struct `rustc_middle::ty::Ty<'_>`
               found struct `EarlyBinder<rustc_middle::ty::Ty<'_>>`

error[E0308]: mismatched types
   --> c2rust-analyze/src/main.rs:396:48
    |
396 |         let sig = tcx.erase_late_bound_regions(sig);
    |                       ------------------------ ^^^ expected `Binder<'_, _>`, found `EarlyBinder<Binder<'_, FnSig<'_>>>`
    |                       |
    |                       arguments to this method are incorrect
    |
    = note: expected struct `rustc_middle::ty::Binder<'_, _>`
               found struct `EarlyBinder<rustc_middle::ty::Binder<'_, rustc_middle::ty::FnSig<'_>>>`
note: method defined here
   --> /home/buildozer/aports/community/rust/src/rustc-1.69.0-src/compiler/rustc_middle/src/ty/fold.rs:373:12

error[E0599]: no method named `basic_blocks` found for struct `MappedReadGuard<'_, rustc_middle::mir::Body<'_>>` in the current scope
   --> c2rust-analyze/src/main.rs:452:34
    |
452 |         for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
    |                                  ^^^^^^^^^^^^ field, not a method
    |
help: remove the arguments
    |
452 -         for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
452 +         for (bb, bb_data) in mir.basic_blocks.iter_enumerated() {
    |
help: there is a method with a similar name
    |
452 |         for (bb, bb_data) in mir.basic_blocks_mut().iter_enumerated() {
    |                                  ~~~~~~~~~~~~~~~~

error[E0599]: no method named `peek_mut` found for struct `rustc_interface::queries::QueryResult<'_, &GlobalCtxt<'_>>` in the current scope
   --> c2rust-analyze/src/main.rs:817:40
    |
817 |         queries.global_ctxt().unwrap().peek_mut().enter(|tcx| {
    |                                        ^^^^^^^^ method not found in `QueryResult<'_, &GlobalCtxt<'_>>`

Some errors have detailed explanations: E0308, E0531, E0533, E0554, E0599.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `c2rust-analyze` due to 32 previous errors

@chrysn chrysn mentioned this pull request Apr 24, 2023
4 tasks
@maribu
Copy link
Member

maribu commented Apr 24, 2023

Still fails with more recent c2rust:

tests/rust_minimal % make BOARD=cc2650-launchpad
Building application "tests_rust_minimal" for "cc2650-launchpad" with MCU "cc26x0_cc13x0".

"make" -C /home/maribu/Repos/software/RIOT/rust/boards/cc2650-launchpad compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/boards/common/init compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/core compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/core/lib compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0 compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/periph compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/vendor/driverlib compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/periph compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/periph compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/drivers compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/drivers/periph_common compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/auto_init compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/div compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/isrpipe compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/libc compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/malloc_thread_safe compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/newlib_syscalls_default compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/preprocessor compile-commands
make[3]: Nothing to be done for 'compile-commands'.
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/stdio_uart compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/test_utils/interactive_sync compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/test_utils/print_stack_usage compile-commands
"make" -C /home/maribu/Repos/software/RIOT/rust/sys/tsrb compile-commands
   Compiling proc-macro2 v1.0.56
   Compiling unicode-ident v1.0.8
   Compiling quote v1.0.26
   Compiling memchr v2.5.0
   Compiling glob v0.3.1
   Compiling syn v1.0.109
   Compiling libc v0.2.142
   Compiling serde_derive v1.0.160
   Compiling cfg-if v1.0.0
   Compiling log v0.4.17
   Compiling minimal-lexical v0.2.1
   Compiling serde v1.0.160
   Compiling serde_json v1.0.96
   Compiling bindgen v0.64.0
   Compiling either v1.8.1
   Compiling regex-syntax v0.7.1
   Compiling libloading v0.7.4
   Compiling semver v1.0.17
   Compiling peeking_take_while v0.1.2
   Compiling lazycell v1.3.0
   Compiling bitflags v1.3.2
   Compiling shlex v1.1.0
   Compiling ryu v1.0.13
   Compiling itoa v1.0.6
   Compiling rustc-hash v1.1.0
   Compiling lazy_static v1.4.0
   Compiling byteorder v1.4.3
   Compiling autocfg v1.1.0
   Compiling nb v1.1.0
   Compiling void v1.0.2
   Compiling shlex v0.1.1
   Compiling c2rust-asm-casts v0.2.0
   Compiling nb v0.1.3
   Compiling stable_deref_trait v1.2.0
   Compiling cty v0.2.2
   Compiling hex v0.4.3
   Compiling bare-metal v1.0.0
   Compiling embedded-hal v0.2.7
   Compiling mutex-trait v0.2.0
   Compiling pin-utils v0.1.0
   Compiling rust_riotmodules v0.1.0 (/home/maribu/Repos/software/RIOT/rust/sys/rust_riotmodules)
   Compiling clang-sys v1.6.1
   Compiling hash32 v0.2.1
   Compiling riot-wrappers v0.8.1 (https://github.com/RIOT-OS/rust-riot-wrappers#e4973a6e)
   Compiling embedded-graphics v0.6.2
   Compiling num-traits v0.2.15
   Compiling switch-hal v0.4.0
   Compiling rustc_version v0.4.0
   Compiling nom v7.1.3
   Compiling aho-corasick v1.0.1
   Compiling heapless v0.7.16
   Compiling syn v2.0.15
   Compiling cstr v0.2.11
   Compiling which v4.4.0
   Compiling regex v1.8.1
   Compiling cexpr v0.6.0
   Compiling c2rust-bitfields-derive v0.2.1
   Compiling c2rust-bitfields v0.3.0
   Compiling riot-sys v0.7.9 (https://github.com/RIOT-OS/rust-riot-sys#b4bd4bde)
The following warnings were emitted during compilation:

warning: C2Rust failed with error code exit status: 1, exiting

error: failed to run custom build command for `riot-sys v0.7.9 (https://github.com/RIOT-OS/rust-riot-sys#b4bd4bde)`

Caused by:
  process didn't exit successfully: `/home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/target/release/build/riot-sys-a35f48369af62a95/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=BUILDING_RIOT_RS
  cargo:rerun-if-env-changed=RIOT_CC
  cargo:rerun-if-env-changed=RIOT_CFLAGS
  cargo:rerun-if-env-changed=RIOT_COMPILE_COMMANDS_JSON
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/cargo-compile-commands.json
  cargo:rerun-if-env-changed=RIOT_USEMODULE
  cargo:CC=clang
  cargo:CFLAGS=-DDEVELHELP -Werror -DCPU_VARIANT_X0 "-mcpu=cortex-m3" -mlittle-endian -mthumb "-mfloat-abi=soft" -ffunction-sections -fdata-sections -fshort-enums -ggdb -g3 -Os -DCPU_MODEL_CC26X0F128 -DCPU_CORE_CORTEX_M3 "-DRIOT_APPLICATION=\"tests_rust_minimal\"" "-DBOARD_CC2650_LAUNCHPAD=\"cc2650-launchpad\"" "-DRIOT_BOARD=BOARD_CC2650_LAUNCHPAD" "-DCPU_CC26X0_CC13X0=\"cc26x0_cc13x0\"" "-DRIOT_CPU=CPU_CC26X0_CC13X0" "-DMCU_CC26X0_CC13X0=\"cc26x0_cc13x0\"" "-DRIOT_MCU=MCU_CC26X0_CC13X0" "-std=c11" -fwrapv -Wstrict-overflow -fno-common -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-include-dirs -fno-delete-null-pointer-checks -fdiagnostics-color -Wstrict-prototypes -Wold-style-definition -gz "-Wformat=2" -Wformat-overflow -Wformat-truncation "-fmacro-prefix-map=/home/maribu/Repos/software/RIOT/rust/=" -Wcast-align -fshort-wchar -include /home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/riotbuild/riotbuild.h -Wno-unknown-warning-option -target arm-none-eabi -isystem /usr/arm-none-eabi/include/newlib-nano -I/home/maribu/Repos/software/RIOT/rust/core/lib/include -I/home/maribu/Repos/software/RIOT/rust/core/include -I/home/maribu/Repos/software/RIOT/rust/drivers/include -I/home/maribu/Repos/software/RIOT/rust/sys/include -I/home/maribu/Repos/software/RIOT/rust/boards/cc2650-launchpad/include -I/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include -I/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include -I/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include -I/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/vendor -I/home/maribu/Repos/software/RIOT/rust/sys/libc/include -I/home/maribu/Repos/software/RIOT/rust/sys/auto_init/include -I/home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/preprocessor -isystem /usr/arm-none-eabi/include -isystem /usr/lib/gcc/arm-none-eabi/12.2.0/include -isystem /usr/lib/gcc/arm-none-eabi/12.2.0/include-fixed -DMODULE_AUTO_INIT -DMODULE_BOARD -DMODULE_BOARD_COMMON_INIT -DMODULE_CC26X0_DRIVERLIB -DMODULE_CC26XX_CC13XX -DMODULE_CC26XX_CC13XX_PERIPH -DMODULE_CORE -DMODULE_CORE_INIT -DMODULE_CORE_LIB -DMODULE_CORE_MSG -DMODULE_CORE_PANIC -DMODULE_CORE_THREAD -DMODULE_CORTEXM_COMMON -DMODULE_CORTEXM_COMMON_PERIPH -DMODULE_CPU -DMODULE_DIV -DMODULE_ISRPIPE -DMODULE_LIBC -DMODULE_MALLOC_THREAD_SAFE -DMODULE_MPU_STACK_GUARD -DMODULE_NEWLIB -DMODULE_NEWLIB_NANO -DMODULE_NEWLIB_SYSCALLS_DEFAULT -DMODULE_PERIPH -DMODULE_PERIPH_COMMON -DMODULE_PERIPH_GPIO -DMODULE_PERIPH_INIT -DMODULE_PERIPH_INIT_GPIO -DMODULE_PERIPH_INIT_LED0 -DMODULE_PERIPH_INIT_LED1 -DMODULE_PERIPH_INIT_LED2 -DMODULE_PERIPH_INIT_LED3 -DMODULE_PERIPH_INIT_LED4 -DMODULE_PERIPH_INIT_LED5 -DMODULE_PERIPH_INIT_LED6 -DMODULE_PERIPH_INIT_LED7 -DMODULE_PERIPH_INIT_LEDS -DMODULE_PERIPH_INIT_PM -DMODULE_PERIPH_INIT_UART -DMODULE_PERIPH_PM -DMODULE_PERIPH_UART -DMODULE_PREPROCESSOR -DMODULE_PREPROCESSOR_SUCCESSOR -DMODULE_STDIN -DMODULE_STDIO_AVAILABLE -DMODULE_STDIO_UART -DMODULE_STDIO_UART_RX -DMODULE_SYS -DMODULE_TEST_UTILS_INTERACTIVE_SYNC -DMODULE_TEST_UTILS_PRINT_STACK_USAGE -DMODULE_TSRB
  cargo:rerun-if-changed=riot-bindgen.h
  cargo:rerun-if-changed=./riot-headers.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/irq.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cpu_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cpu_conf_cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/kernel_defines.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/riot_version.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/_default_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_newlib_version.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_intsup.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/_default_types.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/compiler_hints.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/container.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/cpu_conf_common.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/vendor/core_cm3.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/vendor/cmsis_version.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/vendor/cmsis_compiler.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/vendor/cmsis_gcc.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/vendor/mpu_armv7.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_adi.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_ccfg.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_gpio.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_gpt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_hard_api.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_i2c.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_ioc.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_rfc.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_uart.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_vims.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx_wdt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cc26x0_cc13x0_aux.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cc26x0_cc13x0_fcfg.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cc26x0_cc13x0_prcm.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/cc26xx_cc13xx.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/irq_arch.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cpu_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/kernel_defines.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/debug_irq_disable.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/msg.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/newlib-nano/newlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_newlib_version.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/config.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/ieeefp.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_intsup.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/newlib-nano/newlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/config.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/kernel_defines.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/native_sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/clist.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/list.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/mutex.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/kernel_defines.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/list.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/clist.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/cib.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/assert.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/msg.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cpu_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/thread_config.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cpu_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/thread_arch.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/panic.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/kernel_defines.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/boards/cc2650-launchpad/include/board.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/gpio.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/limits.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/newlib-nano/newlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/cdefs.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/_default_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/syslimits.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include-fixed/limits.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/periph_cpu.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26xx_cc13xx/include/periph_cpu_common.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cortexm_common/include/cpu.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdio.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/cdefs.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdarg.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/reent.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_types.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/newlib-nano/newlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/config.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/_default_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/lock.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/newlib-nano/newlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/assert.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/stdio.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/lock.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/reent.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/irq.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cpu_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/boards/cc2650-launchpad/include/periph_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/periph_cpu.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/gpio.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/gpio_util.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/gpio.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/init.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/pm.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/periph_cpu.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/periph/uart.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/errno.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/errno.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/reent.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/limits.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include-fixed/limits.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/periph_cpu.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/boards/cc2650-launchpad/include/periph_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netopt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netapi.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netopt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/nettype.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ethertype.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/protnum.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/ieeefp.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/reent.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/cdefs.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/stdlib.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/nettype.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/list.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netreg.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/nettype.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/nettype.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/msg.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/event.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/string.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/reent.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/cdefs.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/string.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/assert.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/clist.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/irq.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread_flags.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/ptrtag.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/assert.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/string.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/string.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/unaligned.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv4/addr.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netapi.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif/conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/dhcpv6/client.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/event.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ieee802154.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdlib.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/eui64.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ethernet/hdr.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif/flags.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/l2util.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/eui64.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ndp.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ndp.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/net/netdev.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/errno.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/iolist.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/unistd.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/unistd.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/cdefs.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/_ansi.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/cdefs.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_pthreadtypes.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/machine/types.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/_types.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/features.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netopt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/kernel_defines.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netopt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/rmutex.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/mutex.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netif.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/string.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/unistd.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/list.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netopt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/ext.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/ext/frag.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/ext/rh.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/hdr.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/inet_csum.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif/hdr.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/errno.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/string.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif/internal.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/l2util.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/netopt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pktbuf.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdlib.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/string.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/cpu/cc26x0_cc13x0/include/cpu_conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/mutex.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/neterr.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/errno.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/msg.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/nettype.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/utlist.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/assert.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pktbuf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/udp.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/udp.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pktbuf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/sched.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/include/thread.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/ext.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdlib.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/ext.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/timex.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/time_units.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/hdr.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/hdr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/abr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/ft.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/nc.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stdbool.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/eui64.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif/hdr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/conf.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/pl.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/icmpv6.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/byteorder.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/addr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/ipv6/hdr.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/ipv6/nib/nc.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netif.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/pkt.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/nettype.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/net/gnrc/netapi.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/saul.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/errno.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/types.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/phydat.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/sys/types.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/saul_reg.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/saul.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/phydat.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/stdio_base.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/unistd.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/sys/include/auto_init_utils.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/stdint.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/xfa.h
  cargo:rerun-if-changed=/usr/arm-none-eabi/include/inttypes.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/compiler_hints.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/macros/xtstr.h
  cargo:rerun-if-changed=/usr/lib/gcc/arm-none-eabi/12.2.0/include/stddef.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/core/lib/include/modules.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/preprocessor/preprocessor_successor.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/drivers/include/led.h
  cargo:rerun-if-changed=/home/maribu/Repos/software/RIOT/rust/boards/cc2650-launchpad/include/board.h
  cargo:rerun-if-changed=riot-c2rust.h
  cargo:rerun-if-env-changed=C2RUST
  cargo:rerun-if-env-changed=PATH
  C2Rust binary c2rust, version: C2Rust 0.17.0 (2023-04-24)
  Running C2Rust on /home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/target/thumbv7m-none-eabi/release/build/riot-sys-66bb6a0e759f400f/out/compile_commands.json
  cargo:warning=C2Rust failed with error code exit status: 1, exiting
make: *** [/home/maribu/Repos/software/RIOT/rust/makefiles/cargo-targets.inc.mk:53: /home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/target/thumbv7m-none-eabi/release/librust_minimal.a] Error 101
✗ 2 ~/Repos/software/RIOT/rust/tests/rust_minimal % 

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

How did you try updating c2rust? Since it has become stable, building it should "just" be a matter of a cargo install. answered at the same time ... looking at the 0.17 failure now.

See also #19498 that I've opened to properly answer the get-rid-of-it point.

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

As I can't reproduce that I'd like to run some other checks:

  • Did you run make distclean?
  • Could you copy over the content of your /home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/target/thumbv7m-none-eabi/release/build/riot-sys-66bb6a0e759f400f/out/compile_commands.json?

@maribu
Copy link
Member

maribu commented Apr 24, 2023

It builds fine with Alpine 3.17

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

... and master doesn't build on edge?

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

OK, then I think it's justified to

bors merge

this, and keep looking for the edge cases (sorry) elsewhere. The combined instructions in #19495 (comment) should help get that started.

@maribu
Copy link
Member

maribu commented Apr 24, 2023

When invoking c2rust-transpile directly rather than c2rust transpile, the issue becomes apparent:

c2rust-transpile /home/maribu/Repos/software/RIOT/rust/tests/rust_minimal/bin/cc2650-launchpad/target/thumbv7m-none-eabi/release/build/riot-sys-66bb6a0e759f400f/out/compile_commands.json --preserve-unused-functions --emit-modules --emit-no-std --translate-const-macros --overwrite-existing --fail-on-error 
zsh: segmentation fault
#0  0x0000555555cd6c60 in TranslateASTVisitor::getFiles[abi:cxx11]() (this=0x7fffffff8f60) at /home/maribu/.cargo/git/checkouts/c2rust-2a3ef4c32beab81a/73d9b48/c2rust-ast-exporter/src/AstExporter.cpp:815
#1  0x0000555555ce4694 in TranslateConsumer::HandleTranslationUnit(clang::ASTContext&)::{lambda(unsigned char*, unsigned long)#1}::operator()(unsigned char*, unsigned long) const (__closure=0x7fffffff91a0, buffer=0x7fffe714c660 "\206\237\237\033", 
    len=67108864) at /home/maribu/.cargo/git/checkouts/c2rust-2a3ef4c32beab81a/73d9b48/c2rust-ast-exporter/src/AstExporter.cpp:2545
#2  0x0000555555ce4d10 in TranslateConsumer::HandleTranslationUnit (this=0x7ffff7dd24e0, Context=...) at /home/maribu/.cargo/git/checkouts/c2rust-2a3ef4c32beab81a/73d9b48/c2rust-ast-exporter/src/AstExporter.cpp:2624
#3  0x00007ffff47d5a15 in clang::ParseAST(clang::Sema&, bool, bool) () from /usr/lib/libclang-cpp.so.16
#4  0x00007ffff688c6d9 in clang::FrontendAction::Execute() () from /usr/lib/libclang-cpp.so.16
#5  0x00007ffff680bc69 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () from /usr/lib/libclang-cpp.so.16
#6  0x00007ffff6aaacb5 in clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) ()
   from /usr/lib/libclang-cpp.so.16
#7  0x00007ffff6aa3981 in clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) () from /usr/lib/libclang-cpp.so.16
#8  0x00007ffff6aa6a5c in clang::tooling::ToolInvocation::run() () from /usr/lib/libclang-cpp.so.16
#9  0x00007ffff6aa8ece in clang::tooling::ClangTool::run(clang::tooling::ToolAction*) () from /usr/lib/libclang-cpp.so.16
#10 0x0000555555ce5c65 in process[abi:cxx11](int, char const**, int*) (argc=4, argv=0x7ffff7deea00, result=0x7fffffff9efc) at /home/maribu/.cargo/git/checkouts/c2rust-2a3ef4c32beab81a/73d9b48/c2rust-ast-exporter/src/AstExporter.cpp:2788
#11 0x0000555555ce5e90 in ast_exporter (argc=4, argv=0x7ffff7deea00, debug=0) at /home/maribu/.cargo/git/checkouts/c2rust-2a3ef4c32beab81a/73d9b48/c2rust-ast-exporter/src/AstExporter.cpp:2804
#12 0x0000555555c9df35 in c2rust_ast_exporter::get_ast_cbors (file_path=..., cc_db=..., extra_args=&[&str](size=0), debug=false) at c2rust-ast-exporter/src/lib.rs:67
#13 0x0000555555c9d580 in c2rust_ast_exporter::get_untyped_ast (file_path=..., cc_db=..., extra_args=&[&str](size=0), debug=false) at c2rust-ast-exporter/src/lib.rs:27
#14 0x00005555556398af in c2rust_transpile::transpile_single (tcfg=0x7fffffffdb70, input_path=..., ancestor_path=..., build_dir=..., cc_db=..., extra_clang_args=&[&str](size=0)) at c2rust-transpile/src/lib.rs:458
#15 0x00005555556e01ba in c2rust_transpile::transpile::{closure#5} (cmd=0x7ffff7dee9d0) at c2rust-transpile/src/lib.rs:295
#16 0x000055555584a3de in core::iter::adapters::map::map_fold::{closure#0}<&alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>, core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, (), c2rust_transpile::transpile::{closure_env#5}, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>>>> (acc=(), elt=0x7ffff7dee9d0)
    at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/iter/adapters/map.rs:84
#17 0x000055555575c5d8 in core::iter::traits::iterator::Iterator::fold<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<&alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>, core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, (), c2rust_transpile::transpile::{closure_env#5}, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>>>>> (self=..., init=(), f=...) at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/iter/traits/iterator.rs:2477
#18 0x00005555558369e8 in core::iter::adapters::map::{impl#2}::fold<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}, (), core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>>>> (self=..., init=(), g=...)
    at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/iter/adapters/map.rs:124
#19 0x000055555583f708 in core::iter::traits::iterator::Iterator::for_each<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>>> (self=..., f=...)
    at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/iter/traits/iterator.rs:852
#20 0x000055555564f641 in alloc::vec::Vec<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global>::extend_trusted<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>> (self=0x7fffffffcc28, 
    iterator=...) at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/vec/mod.rs:2856
#21 0x000055555567f38b in alloc::vec::spec_extend::{impl#1}::spec_extend<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>, alloc::alloc::Global> (
    self=0x7fffffffcc28, iterator=...) at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/vec/spec_extend.rs:26
#22 0x00005555556438f3 in alloc::vec::spec_from_iter_nested::{impl#1}::from_iter<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>> (iterator=...)
    at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/vec/spec_from_iter_nested.rs:62
#23 0x000055555567f56e in alloc::vec::spec_from_iter::{impl#0}::from_iter<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>> (iterator=...)
    at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/vec/spec_from_iter.rs:33
#24 0x000055555567d769 in alloc::vec::{impl#15}::from_iter<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>> (iter=...)
    at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/vec/mod.rs:2724
#25 0x000055555583e0ae in core::iter::traits::iterator::Iterator::collect<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::rc::Rc<c2rust_transpile::compile_cmds::CompileCmd>>, c2rust_transpile::transpile::{closure_env#5}>, alloc::vec::Vec<core::result::Result<(std::path::PathBuf, alloc::vec::Vec<(&str, alloc::vec::Vec<&str, alloc::alloc::Global>), alloc::alloc::Global>, indexmap::set::IndexSet<c2rust_transpile::ExternCrate, std::collections::hash::map::RandomState>), ()>, alloc::alloc::Global>> (self=...) at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/iter/traits/iterator.rs:1891
#26 0x0000555555637677 in c2rust_transpile::transpile (tcfg=..., cc_db=..., extra_clang_args=&[&str](size=0)) at c2rust-transpile/src/lib.rs:292
#27 0x000055555562cbe6 in c2rust_transpile::main () at c2rust/src/bin/c2rust-transpile.rs:243
#28 0x00005555556223db in core::ops::function::FnOnce::call_once<fn(), ()> () at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250
#29 0x000055555561b0ce in std::sys_common::backtrace::__rust_begin_short_backtrace<fn(), ()> (f=0x55555562c390 <c2rust_transpile::main>) at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:134
#30 0x0000555555635601 in std::rt::lang_start::{closure#0}<()> () at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/rt.rs:166
#31 0x0000555555f251a2 in core::ops::function::impls::{impl#2}::call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/core/src/ops/function.rs:287
#32 std::panicking::try::do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panicking.rs:487
#33 std::panicking::try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/std/src/panicking.rs:451
#34 std::panic::catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panic.rs:140
#35 std::rt::lang_start_internal::{closure#2} () at library/std/src/rt.rs:148
#36 std::panicking::try::do_call<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panicking.rs:487
#37 std::panicking::try<isize, std::rt::lang_start_internal::{closure_env#2}> () at library/std/src/panicking.rs:451
#38 std::panic::catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panic.rs:140
#39 std::rt::lang_start_internal () at library/std/src/rt.rs:148
#40 0x00005555556355da in std::rt::lang_start<()> (main=0x55555562c390 <c2rust_transpile::main>, argc=8, argv=0x7fffffffded8, sigpipe=0) at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/rt.rs:165
#41 0x0000555555632e2e in main ()
#42 0x00007ffff7f7faad in libc_start_main_stage2 (main=0x555555632e10 <main>, argc=8, argv=0x7fffffffded8) at src/env/__libc_start_main.c:95
#43 0x00005555556137bf in _start ()

That indicates that the C++ Code is not compatible with LLVM 16 even with c2rust master. Maybe I should try building c2rust against llvm-15 instead.

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

Testbed for edge:

$ podman run --rm -it --network=host --volume "$PWD":/hosted docker.io/alpine:edge
# apk add rustup
# rustup-init
# source "$HOME/.cargo/env"
# apk add gcc clang musl-dev llvm-dev cmake make g++ git patch
# apk add llvm16-static clang16-dev clang16-static
# cd ~

Then execute the patch from #19495 (comment) and continue with

# cargo install c2rust --git https://github.com/immunant/c2rust
# cd /hosted
# apk add gcc-arm-none-eabi newlib-arm-none-eabi
# rustup target add thumbv7m-none-eabi --toolchain stable
# make -C tests/rust_minimal BOARD=cc2650-launchpad

... and that runs into the very error @maribu has been showing. has a weird outcome and I was as foolish as to close the VM seeing the error.

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

(How) did you get around the statvfs issue? You mentioned it, but then moved on -- and reproducing things on edge, that's where I am now.

@maribu
Copy link
Member

maribu commented Apr 24, 2023

I just moved the struct to sys/include/vfs.h and let the POSIX compat header include that one. I should PR this as a quick fix. And then I should create a PR that creates a proper VFS stat type without giving shit about POSIX compatibility, and a translation function to convert that to the POSIX type if someone really wants POSIX compatible VFS stats.

@maribu
Copy link
Member

maribu commented Apr 24, 2023

bors merge

bors bot added a commit that referenced this pull request Apr 24, 2023
19495: Rust: Update dependencies r=maribu a=chrysn

### Contribution description

This updates both the RIOT-specific and generic dependencies of Rust examples and modules.

### Testing procedure

* Green CI should do

### Issues/PRs references

Copying from one of the commits with some sed:

* riot-sys:
    * RIOT-OS/rust-riot-sys#26
    * RIOT-OS/rust-riot-sys#31
    * RIOT-OS/rust-riot-sys#30
    * RIOT-OS/rust-riot-sys#28
    * RIOT-OS/rust-riot-sys#27
    * RIOT-OS/rust-riot-sys#25
    * RIOT-OS/rust-riot-sys#23
    * RIOT-OS/rust-riot-sys#22
    * RIOT-OS/rust-riot-sys#21
* riot-wrappers:
    * RIOT-OS/rust-riot-wrappers#36
    * RIOT-OS/rust-riot-wrappers#50
    * RIOT-OS/rust-riot-wrappers#48
    * RIOT-OS/rust-riot-wrappers#47
    * RIOT-OS/rust-riot-wrappers#44
    * RIOT-OS/rust-riot-wrappers#45
    * RIOT-OS/rust-riot-wrappers#43

### How to do similar PRs

Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed):

```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done
```

Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time):

```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done
```

Creating the commit message:

```
$ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/    * /'
```

git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively.

Co-authored-by: chrysn <[email protected]>
@bors
Copy link
Contributor

bors bot commented Apr 24, 2023

Build failed:

@chrysn
Copy link
Member Author

chrysn commented Apr 24, 2023

Whoops ... something was not as compatible as I expected it to be, and the one driver we're having caught it in this build failure.

Checking, but I expect the fix to be a fast PR to the riot-wrappers repo, and adding another round of cargo update on top in here.

@maribu
Copy link
Member

maribu commented Apr 24, 2023

The segfault is btw. not Alpine specific, see immunant/c2rust#897 for the fix.

(Update: And with the segfault out of the way, building with Alpine Edge works fine again.)

This fixes a regression by merging RIOT-OS/rust-riot-wrappers#55
(the "G" unit has been deprecated, but that deprecation was done wrong
in RIOT-OS/rust-riot-wrappers#50).
@github-actions github-actions bot added the Area: drivers Area: Device drivers label Apr 25, 2023
@chrysn
Copy link
Member Author

chrysn commented Apr 25, 2023

The G unit mistakes have been fixed, therefore

bors merge

Thanks @maribu for finding and fixing the segfault; with this and some statvfs workarounds (eventually to be #19501) the test described in #19495 (comment) for alpine now passes.

@bors
Copy link
Contributor

bors bot commented Apr 25, 2023

🕐 Waiting for PR status (GitHub check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

@chrysn
Copy link
Member Author

chrysn commented Apr 25, 2023

bors was lying.

bors merge

@bors
Copy link
Contributor

bors bot commented Apr 25, 2023

Build succeeded:

@bors bors bot merged commit 8b58e55 into RIOT-OS:master Apr 25, 2023
@maribu
Copy link
Member

maribu commented Apr 25, 2023

Interesting, the issue with posix header being included by vfs.h is no longer present in master. Now everything just works with the latest c2rust (from git, rather the release).

@maribu
Copy link
Member

maribu commented Apr 25, 2023

Backport provided in #19505

@chrysn chrysn deleted the rust-20230424 branch April 25, 2023 22:18
bors bot added a commit that referenced this pull request Apr 28, 2023
19505: Rust: Update dependencies [backport 2023.04] r=maribu a=maribu

# Backport of #19495

### Contribution description

This updates both the RIOT-specific and generic dependencies of Rust examples and modules.

It also follows a deprecation from the G unit renaming originally done in #19292.

### Testing procedure

* Green CI should do

### Issues/PRs references

Copying from one of the commits with some sed:

* riot-sys:
    * RIOT-OS/rust-riot-sys#26
    * RIOT-OS/rust-riot-sys#31
    * RIOT-OS/rust-riot-sys#30
    * RIOT-OS/rust-riot-sys#28
    * RIOT-OS/rust-riot-sys#27
    * RIOT-OS/rust-riot-sys#25
    * RIOT-OS/rust-riot-sys#23
    * RIOT-OS/rust-riot-sys#22
    * RIOT-OS/rust-riot-sys#21
* riot-wrappers:
    * RIOT-OS/rust-riot-wrappers#36
    * RIOT-OS/rust-riot-wrappers#50
    * RIOT-OS/rust-riot-wrappers#48
    * RIOT-OS/rust-riot-wrappers#47
    * RIOT-OS/rust-riot-wrappers#44
    * RIOT-OS/rust-riot-wrappers#45
    * RIOT-OS/rust-riot-wrappers#43
    * (later, when the mistake became apparent) RIOT-OS/rust-riot-wrappers#55

### How to do similar PRs

Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed):

```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done
```

Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time):

```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done
```

Creating the commit message:

```
$ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/    * /'
```

git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively.

Co-authored-by: chrysn <[email protected]>
bors bot added a commit that referenced this pull request Apr 28, 2023
19505: Rust: Update dependencies [backport 2023.04] r=maribu a=maribu

# Backport of #19495

### Contribution description

This updates both the RIOT-specific and generic dependencies of Rust examples and modules.

It also follows a deprecation from the G unit renaming originally done in #19292.

### Testing procedure

* Green CI should do

### Issues/PRs references

Copying from one of the commits with some sed:

* riot-sys:
    * RIOT-OS/rust-riot-sys#26
    * RIOT-OS/rust-riot-sys#31
    * RIOT-OS/rust-riot-sys#30
    * RIOT-OS/rust-riot-sys#28
    * RIOT-OS/rust-riot-sys#27
    * RIOT-OS/rust-riot-sys#25
    * RIOT-OS/rust-riot-sys#23
    * RIOT-OS/rust-riot-sys#22
    * RIOT-OS/rust-riot-sys#21
* riot-wrappers:
    * RIOT-OS/rust-riot-wrappers#36
    * RIOT-OS/rust-riot-wrappers#50
    * RIOT-OS/rust-riot-wrappers#48
    * RIOT-OS/rust-riot-wrappers#47
    * RIOT-OS/rust-riot-wrappers#44
    * RIOT-OS/rust-riot-wrappers#45
    * RIOT-OS/rust-riot-wrappers#43
    * (later, when the mistake became apparent) RIOT-OS/rust-riot-wrappers#55

### How to do similar PRs

Updating the RIOT-related dependencies (which here also updated bindgen because the dependency of riot-sys changed):

```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml --package riot-sys --package riot-wrappers; done
```

Updating everything (should never really be needed, b/c if something has a concrete dependency change it'd say so, but dependencies generally get better over time):

```
$ for x in **/Cargo.lock; do cargo update --manifest-path=${x%.lock}.toml; done
```

Creating the commit message:

```
$ git log --first-parent --format='%s (%b)' 9c29faf55d4c14d2d7f55f8df5059c52af4e5317..e4973a6ee88427f702dac41b3dce4fd6b6b9689e | sed 's/Merges: //' | sed 's/^/    * /'
```

git shortlog unfortunately doesn't show the merges the way I prefer linking them. The versions in the command line can be taken from `git diff --text` and looking for the riot-sys or riot-wrappers line, respectively.

19509: cpu/cc26xx_cc13xx: Fix bogus array-bound warning [backport 2023.04] r=maribu a=maribu

# Backport of #19504

### Contribution description

GCC 12 create a bogus array out of bounds warning as it assumes that because there is special handling for `uart == 0` and `uart == 1`, `uart` can indeed be `1`. There is an `assert(uart < UART_NUMOF)` above that would blow up prior to any out of bounds access.

In any case, optimizing out the special handling of `uart == 1` for when `UART_NUMOF == 1` likely improves the generated code and fixes the warning.

    /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:88:8: error: array subscript 1 is above array bounds of 'uart_isr_ctx_t[1]' [-Werror=array-bounds]
       88 |     ctx[uart].rx_cb = rx_cb;
          |     ~~~^~~~~~
    /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:52:23: note: while referencing 'ctx'
       52 | static uart_isr_ctx_t ctx[UART_NUMOF];
          |                       ^~~
    /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:89:8: error: array subscript 1 is above array bounds of 'uart_isr_ctx_t[1]' [-Werror=array-bounds]
       89 |     ctx[uart].arg = arg;
          |     ~~~^~~~~~
    /home/maribu/Repos/software/RIOT/cc2650/cpu/cc26xx_cc13xx/periph/uart.c:52:23: note: while referencing 'ctx'
       52 | static uart_isr_ctx_t ctx[UART_NUMOF];
          |                       ^~~

### Testing procedure

The actual change is a pretty obvious one-liner, so that code review and a green CI should be sufficient. If not, running any UART example app without regression should do.

### Issues/PRs references

None

19510: tools/openocd: Fix handling of OPENOCD_CMD_RESET_HALT [backport 2023.04] r=maribu a=maribu

# Backport of #19506

### Contribution description

The OPENOCD_CMD_RESET_HALT was not longer correctly passed to the script. This fixes the issue.

### Testing procedure

Flashing of e.g. the `cc2650-launchpad` with upstream OpenOCD should work again.

### Issues/PRs references

The change was added to #19050 after testing the PR and before merging. I'm not sure if the fix never worked because of this, or if behavior of `target-export-variables` or GNU Make changed.

Co-authored-by: chrysn <[email protected]>
Co-authored-by: Marian Buschsieweke <[email protected]>
@benpicco benpicco added this to the Release 2023.07 milestone Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: drivers Area: Device drivers Area: examples Area: Example Applications Area: Rust Area: Rust wrapper Area: sys Area: System Area: tests Area: tests and testing framework CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: run tests If set, CI server will run tests on hardware for the labeled PR Process: needs backport Integration Process: The PR is required to be backported to a release or feature branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants