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

Extern types: Add netq_t, make them large #25

Merged
merged 2 commits into from
Mar 2, 2023
Merged

Extern types: Add netq_t, make them large #25

merged 2 commits into from
Mar 2, 2023

Conversation

chrysn
Copy link
Member

@chrysn chrysn commented Mar 2, 2023

  • Add netq_t which comes in when building with tinydtls
  • Protect by making them unreasonably sized

I'll give that a test run on CI; generally, any breakage shown there is something where I'd investigate whether things were already subtly broken previously.

@chrysn
Copy link
Member Author

chrysn commented Mar 2, 2023

This also contributes to RIOT-OS/RIOT#19289 by removing a Rust<->DTLS conflict.

@chrysn chrysn merged commit 404128d into main Mar 2, 2023
@chrysn chrysn deleted the extern-types branch March 2, 2023 13:37
chrysn added a commit to chrysn-pull-requests/RIOT that referenced this pull request Apr 24, 2023
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.
bors bot added a commit to RIOT-OS/RIOT 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 <chrysn@fsfe.org>
bors bot added a commit to RIOT-OS/RIOT that referenced this pull request Apr 25, 2023
19495: Rust: Update dependencies r=chrysn a=chrysn

### 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 <chrysn@fsfe.org>
maribu pushed a commit to maribu/RIOT that referenced this pull request Apr 25, 2023
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.

(cherry picked from commit de41031)
bors bot added a commit to RIOT-OS/RIOT 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 <chrysn@fsfe.org>
bors bot added a commit to RIOT-OS/RIOT 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 <chrysn@fsfe.org>
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
zhaolanhuang pushed a commit to zhaolanhuang/RIOT that referenced this pull request Dec 6, 2023
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant