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

armcm: Add exception index and dummy heap for newlib 4.3+ #6331

Closed
wants to merge 1 commit into from

Conversation

Laikulo
Copy link
Contributor

@Laikulo Laikulo commented Sep 3, 2023

This commit adds entries to the armcm linker script to define a location for the exception index and a minimal heap.

This is to provide compat with newer versions of newlib, which will fail to compile if these sections are not defined.

This has been tested with newlib 4.3.0.20230120-2.3, gcc 13.2.1 20230803.

Example of failure before this commit:

builder@3099c959b7a9:~/klipper> cp /tmp/btt-octopus-stm32f429-canbridge-1m.config .config
builder@3099c959b7a9:~/klipper> make olddefconfig
  Creating symbolic link out/board
Loaded configuration '/home/builder/klipper/.config'
Configuration saved to '/home/builder/klipper/.config'
builder@3099c959b7a9:~/klipper> make
  Creating symbolic link out/board
  Building out/autoconf.h
  Compiling out/src/sched.o
  Compiling out/src/command.o
  Compiling out/src/basecmd.o
  Compiling out/src/debugcmds.o
  Compiling out/src/initial_pins.o
  Compiling out/src/gpiocmds.o
  Compiling out/src/stepper.o
  Compiling out/src/endstop.o
  Compiling out/src/trsync.o
  Compiling out/src/adccmds.o
  Compiling out/src/spicmds.o
  Compiling out/src/sdiocmds.o
  Compiling out/src/i2ccmds.o
  Compiling out/src/pwmcmds.o
  Compiling out/src/buttons.o
  Compiling out/src/tmcuart.o
  Compiling out/src/neopixel.o
  Compiling out/src/pulse_counter.o
  Compiling out/src/lcd_st7920.o
  Compiling out/src/lcd_hd44780.o
  Compiling out/src/spi_software.o
  Compiling out/src/i2c_software.o
  Compiling out/src/sensor_lis2dw.o
  Compiling out/src/thermocouple.o
  Compiling out/src/sensor_adxl345.o
  Compiling out/src/sensor_angle.o
  Compiling out/src/sensor_mpu9250.o
  Compiling out/src/stm32/watchdog.o
  Compiling out/src/stm32/gpio.o
  Compiling out/src/stm32/clockline.o
  Compiling out/src/stm32/dfu_reboot.o
  Compiling out/src/generic/crc16_ccitt.o
  Compiling out/src/generic/armcm_boot.o
  Compiling out/src/generic/armcm_irq.o
  Compiling out/src/generic/armcm_reset.o
  Compiling out/src/../lib/stm32f4/system_stm32f4xx.o
  Compiling out/src/stm32/stm32f4.o
  Compiling out/src/generic/armcm_timer.o
  Compiling out/src/stm32/gpioperiph.o
  Compiling out/src/stm32/adc.o
  Compiling out/src/stm32/i2c.o
  Compiling out/src/stm32/spi.o
  Compiling out/src/stm32/sdio.o
  Compiling out/src/stm32/usbotg.o
  Compiling out/src/generic/canserial.o
  Compiling out/src/../lib/fast-hash/fasthash.o
  Compiling out/src/stm32/can.o
  Compiling out/src/stm32/chipid.o
  Compiling out/src/generic/usb_canbus.o
  Compiling out/src/stm32/hard_pwm.o
  Building out/compile_time_request.o
Version: 5f990f93
  Preprocessing out/src/generic/armcm_link.ld
  Linking out/klipper.elf
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-closer.o): in function `_close_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/closer.c:47: warning: _close is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-signalr.o): in function `_getpid_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/signalr.c:83: warning: _getpid is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-signalr.o): in function `_kill_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/signalr.c:53: warning: _kill is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-lseekr.o): in function `_lseek_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/lseekr.c:49: warning: _lseek is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-readr.o): in function `_read_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/readr.c:49: warning: _read is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-writer.o): in function `_write_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/writer.c:49: warning: _write is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/thumb/v7e-m/nofp/libgcc.a(unwind-arm.o): in function `get_eit_entry':
/home/abuild/rpmbuild/BUILD/gcc-13.2.1+git7683/obj-x86_64-suse-linux/arm-none-eabi/thumb/v7e-m/nofp/libgcc/../../../../../../libgcc/unwind-arm-common.inc:366: undefined reference to `__exidx_start'
/usr/lib64/gcc/arm-none-eabi/13/ld: /home/abuild/rpmbuild/BUILD/gcc-13.2.1+git7683/obj-x86_64-suse-linux/arm-none-eabi/thumb/v7e-m/nofp/libgcc/../../../../../../libgcc/unwind-arm-common.inc:366: undefined reference to `__exidx_end'
collect2: error: ld returned 1 exit status
make: *** [Makefile:72: out/klipper.elf] Error 1

Example with this patch

builder@3099c959b7a9:~/klipper> cp /tmp/btt-octopus-stm32f429-canbridge-1m.config .config
builder@3099c959b7a9:~/klipper> make olddefconfig
  Creating symbolic link out/board
Loaded configuration '/home/builder/klipper/.config'
Configuration saved to '/home/builder/klipper/.config'
builder@3099c959b7a9:~/klipper> make
  Creating symbolic link out/board
  Building out/autoconf.h
  Compiling out/src/sched.o
  Compiling out/src/command.o
  Compiling out/src/basecmd.o
  Compiling out/src/debugcmds.o
  Compiling out/src/initial_pins.o
  Compiling out/src/gpiocmds.o
  Compiling out/src/stepper.o
  Compiling out/src/endstop.o
  Compiling out/src/trsync.o
  Compiling out/src/adccmds.o
  Compiling out/src/spicmds.o
  Compiling out/src/sdiocmds.o
  Compiling out/src/i2ccmds.o
  Compiling out/src/pwmcmds.o
  Compiling out/src/buttons.o
  Compiling out/src/tmcuart.o
  Compiling out/src/neopixel.o
  Compiling out/src/pulse_counter.o
  Compiling out/src/lcd_st7920.o
  Compiling out/src/lcd_hd44780.o
  Compiling out/src/spi_software.o
  Compiling out/src/i2c_software.o
  Compiling out/src/sensor_lis2dw.o
  Compiling out/src/thermocouple.o
  Compiling out/src/sensor_adxl345.o
  Compiling out/src/sensor_angle.o
  Compiling out/src/sensor_mpu9250.o
  Compiling out/src/stm32/watchdog.o
  Compiling out/src/stm32/gpio.o
  Compiling out/src/stm32/clockline.o
  Compiling out/src/stm32/dfu_reboot.o
  Compiling out/src/generic/crc16_ccitt.o
  Compiling out/src/generic/armcm_boot.o
  Compiling out/src/generic/armcm_irq.o
  Compiling out/src/generic/armcm_reset.o
  Compiling out/src/../lib/stm32f4/system_stm32f4xx.o
  Compiling out/src/stm32/stm32f4.o
  Compiling out/src/generic/armcm_timer.o
  Compiling out/src/stm32/gpioperiph.o
  Compiling out/src/stm32/adc.o
  Compiling out/src/stm32/i2c.o
  Compiling out/src/stm32/spi.o
  Compiling out/src/stm32/sdio.o
  Compiling out/src/stm32/usbotg.o
  Compiling out/src/generic/canserial.o
  Compiling out/src/../lib/fast-hash/fasthash.o
  Compiling out/src/stm32/can.o
  Compiling out/src/stm32/chipid.o
  Compiling out/src/generic/usb_canbus.o
  Compiling out/src/stm32/hard_pwm.o
  Building out/compile_time_request.o
Version: aa0d199b3
  Preprocessing out/src/generic/armcm_link.ld
  Linking out/klipper.elf
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-closer.o): in function `_close_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/closer.c:47: warning: _close is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-signalr.o): in function `_getpid_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/signalr.c:83: warning: _getpid is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-signalr.o): in function `_kill_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/signalr.c:53: warning: _kill is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-lseekr.o): in function `_lseek_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/lseekr.c:49: warning: _lseek is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-readr.o): in function `_read_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/readr.c:49: warning: _read is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-writer.o): in function `_write_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/writer.c:49: warning: _write is not implemented and will always fail
lto-wrapper: warning: using serial compilation of 5 LTRANS jobs
lto-wrapper: note: see the '-flto' option documentation for more information
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-closer.o): in function `_close_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/closer.c:47: warning: _close is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-signalr.o): in function `_getpid_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/signalr.c:83: warning: _getpid is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-signalr.o): in function `_kill_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/signalr.c:53: warning: _kill is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-lseekr.o): in function `_lseek_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/lseekr.c:49: warning: _lseek is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-readr.o): in function `_read_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/readr.c:49: warning: _read is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/13/ld: /usr/lib64/gcc/arm-none-eabi/13/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libg_nano.a(libc_a-writer.o): in function `_write_r':
/home/abuild/rpmbuild/BUILD/newlib-4.3.0.20230120/build-nano-dir/arm-none-eabi/thumb/v7e-m/nofp/newlib/../../../../../../newlib/libc/reent/writer.c:49: warning: _write is not implemented and will always fail
  Creating hex file out/klipper.bin

Config here: https://github.com/Laikulo/Klipper-firmware/blob/main/factory-configs/btt-octopus-stm32f429-canbridge-1m.config

I also ran a test build in an ubuntu (jammy) container with the -ci scripts, but one of the avr configurations failes both with and without this patch due to code space limitations. However, I confirmed that the config I used above also compiles successfully on ubuntu with newlib 3.3.0-1.3

@JamesH1978
Copy link
Collaborator

Thank you for submitting a PR, please could you refer to point 3 in the "what to expect" section in https://github.com/Klipper3d/klipper/blob/master/docs/CONTRIBUTING.md and add a signed-off-by line.

Thanks
James

@Laikulo
Copy link
Contributor Author

Laikulo commented Sep 4, 2023

Trailer added

@github-actions
Copy link

Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html

There are some steps that you can take now:

  1. Perform a self-review of your Pull Request by following the steps at: https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review
    If you have completed a self-review, be sure to state the results of that self-review explicitly in the Pull Request comments. A reviewer is more likely to participate if the bulk of a review has already been completed.
  2. Consider opening a topic on the Klipper Discourse server to discuss this work. The Discourse server is a good place to discuss development ideas and to engage users interested in testing. Reviewers are more likely to prioritize Pull Requests with an active community of users.
  3. Consider helping out reviewers by reviewing other Klipper Pull Requests. Taking the time to perform a careful and detailed review of others work is appreciated. Regular contributors are more likely to prioritize the contributions of other regular contributors.

Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.

Best regards,
~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.

@KevinOConnor
Copy link
Collaborator

Thanks. We can certainly change the linker scripts for compatibility, but at first glance this seems like a newlib bug. Do you know that newlib is committing to requiring these sections going forward (it doesn't require any particular linker sections today).

-Kevin

@Laikulo
Copy link
Contributor Author

Laikulo commented Sep 18, 2023

Thanks. We can certainly change the linker scripts for compatibility, but at first glance this seems like a newlib bug. Do you know that newlib is committing to requiring these sections going forward (it doesn't require any particular linker sections today).

-Kevin

AFAICT, this is related to newlib enableing exception support on some more arm platforms, and since klipper uses a custom linker script, the exception index had nowhere to go in that config.

The heap seems to be related, I'm not 100% sure the cause, but I believe the default exception handler likely does some malloc or similar, resulting in setbrk being linked, since it is only used where dynamic memory is.

Malloc doesn't actually get linked into the resulting binary, I assume that its optimized away.

That being said, I can't make any guarantees for the newlib team, and this change is old enough, that I can't find much discussion about it.

This came out of my attempts to build klipper on opensuse, which lead me to realize that ubuntu was shipping a ~3y old version of libnewlib. It was actually quite some time before I opened this PR. I've been using this (and a few other patches) in my personal setup since January.

@Laikulo
Copy link
Contributor Author

Laikulo commented Sep 19, 2023

I am becoming more skeptical of my prior assessment that newlib itself is implicated. As I dig more into this it appears that it may be more likely tied to libgcc. I'm currently testing across different versions to see exactly what is happening here.
/markdraft

@Laikulo
Copy link
Contributor Author

Laikulo commented Sep 19, 2023

Digging a bit more, it appears to be more related to whether newlib was compiled with or without exceptions/unwinding enabled.

@Laikulo Laikulo marked this pull request as draft September 19, 2023 18:02
@github-actions
Copy link

github-actions bot commented Oct 4, 2023

Unfortunately a reviewer has not assigned themselves to this GitHub Pull Request and it is therefore being closed. It is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.

Best regards,
~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.

@github-actions github-actions bot closed this Oct 4, 2023
vtuan10 added a commit to vtuan10/nixpkgs that referenced this pull request Oct 31, 2023
klipper-firmware currently does not define sections for exception index.
This causes build errors with `gcc-arm-embedded-12` which is the default
now. Until Klipper3d/klipper#6331 is added we pin it
to `gcc-arm-embedded-11`.
@fredericmorin
Copy link
Contributor

fredericmorin commented May 31, 2024

Got the same issue on Armbian on a RPi5

fred@rpi5b:~/klipper$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Armbian 24.8.0-trunk.42 trixie
Release:	n/a
Codename:	trixie

fred@rpi5b:~/klipper$ uname -a
Linux rpi5b 6.6.31-current-bcm2712 #1 SMP PREEMPT Thu May 30 19:02:21 UTC 2024 aarch64 GNU/Linux

fred@rpi5b:~/klipper$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:13.2.rel1-2) 13.2.1 20231009
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Applying this commit as a patch on master (v0.12.0-207-g6cd17420 as of this writing) fixes the issue and linker complete succesfully.

@KevinOConnor KevinOConnor reopened this May 31, 2024
@staticanime
Copy link

Just to report in, this is also a problem on Ubuntu 24.04 which comes with libnewlib-dev (4.4.0.20231231-2) by default

image

Applying this commit as a path on master (Version: v0.12.0-207-g6cd17420) allowed me to finish the compile of klipper on this platform

@Laikulo
Copy link
Contributor Author

Laikulo commented Jun 3, 2024

I initially marked this as a draft, as I wasn't confident in my diagnosis why exactly the behaviors differed across versions.
I'll rebase this on current since folks are using it, and I'll take it out of draft status.
I consider the two linker mods in here somewhat hacky. If something were to ever call malloc() therefore setbrk() it may wind up stealing memory otherwise in use. However, I suspect that any situation in which it would do that is already outside of klipper's reasonable operation

@Laikulo Laikulo marked this pull request as ready for review June 3, 2024 01:18
@KevinOConnor
Copy link
Collaborator

I think PR #6615 may be a better fix for this issue.

-Kevin

@fredericmorin
Copy link
Contributor

It does indeed! Thanks for the fix!

@KevinOConnor
Copy link
Collaborator

FYI, #6615 was merged. Hopefully that addresses the issue here.

-Kevin

@KevinOConnor KevinOConnor added the resolved Issue is thought to now be fixed label Jun 19, 2024
@staticanime
Copy link

Can confirm, compiled v0.12.0-242 successfully on Ubuntu 24.04 (which uses newlib > 4.2)

@Laikulo
Copy link
Contributor Author

Laikulo commented Jun 19, 2024

I'll confirm on the same system that originated this ticket later today. I've got a github actions compile that fails after that was merged, but it may just be a poor interaction between the patchsets.

@Laikulo
Copy link
Contributor Author

Laikulo commented Jun 19, 2024

I can confirm that stock upstream now compiles for the targets that were giving me grief. I'll run through the test battery later today.

https://github.com/Laikulo/Klipper-firmware/actions/runs/9587485332/job/26437625740

@Laikulo
Copy link
Contributor Author

Laikulo commented Jun 19, 2024

All of the test configs succeeded, except ar100, which I am going to say is probably a different problem

@Laikulo Laikulo closed this Jun 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
resolved Issue is thought to now be fixed reviewer needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants