From 9ae4ef90c067931fb3ab2c20e03e02e2abffd5c7 Mon Sep 17 00:00:00 2001 From: Rahix Date: Fri, 18 Sep 2020 23:33:44 +0200 Subject: [PATCH] targets: Fix max-atomic-width target setting Nightly rustc throws compiler errors since upstream commit 3be40b22c834 ("Fix AtomicPtr::from_mut align check: Avoid generic arg in const expr.") [1]. They seem to be related to some discrepancies in the alignment requirements for pointer types on AVR. While this should probably be investigated at some point, for now let's set `max-atomic-width` to 8 to make everything build again but still retain at least some atomic types (those aren't actual atomics but intrinsics that are lowered to critical sections for atomic access). [1]: https://github.com/rust-lang/rust/commit/3be40b22c83491e4a4d34e2ad06aa81b804b9fad Signed-off-by: Rahix --- chips/atmega1280-hal/avr-atmega1280.json | 2 ++ chips/atmega168-hal/avr-atmega168.json | 1 + chips/atmega2560-hal/avr-atmega2560.json | 2 ++ chips/atmega328p-hal/avr-atmega328p.json | 1 + chips/atmega32u4-hal/avr-atmega32u4.json | 1 + chips/atmega48p-hal/avr-atmega48p.json | 1 + chips/attiny85-hal/avr-attiny85.json | 1 + chips/attiny88-hal/avr-attiny88.json | 1 + 8 files changed, 10 insertions(+) diff --git a/chips/atmega1280-hal/avr-atmega1280.json b/chips/atmega1280-hal/avr-atmega1280.json index 2cd02bbb56..39d031d03f 100644 --- a/chips/atmega1280-hal/avr-atmega1280.json +++ b/chips/atmega1280-hal/avr-atmega1280.json @@ -9,6 +9,8 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, + "executables": true, "linker": "avr-gcc", "linker-flavor": "gcc", diff --git a/chips/atmega168-hal/avr-atmega168.json b/chips/atmega168-hal/avr-atmega168.json index 3029bfffb5..076a51e626 100644 --- a/chips/atmega168-hal/avr-atmega168.json +++ b/chips/atmega168-hal/avr-atmega168.json @@ -9,6 +9,7 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, "executables": true, diff --git a/chips/atmega2560-hal/avr-atmega2560.json b/chips/atmega2560-hal/avr-atmega2560.json index 5839669ed1..a87c94cff4 100644 --- a/chips/atmega2560-hal/avr-atmega2560.json +++ b/chips/atmega2560-hal/avr-atmega2560.json @@ -9,6 +9,8 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, + "executables": true, "linker": "avr-gcc", "linker-flavor": "gcc", diff --git a/chips/atmega328p-hal/avr-atmega328p.json b/chips/atmega328p-hal/avr-atmega328p.json index 47d1dce868..0d75250282 100644 --- a/chips/atmega328p-hal/avr-atmega328p.json +++ b/chips/atmega328p-hal/avr-atmega328p.json @@ -9,6 +9,7 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, "executables": true, diff --git a/chips/atmega32u4-hal/avr-atmega32u4.json b/chips/atmega32u4-hal/avr-atmega32u4.json index 08780d0d33..c2fa755063 100644 --- a/chips/atmega32u4-hal/avr-atmega32u4.json +++ b/chips/atmega32u4-hal/avr-atmega32u4.json @@ -9,6 +9,7 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, "executables": true, diff --git a/chips/atmega48p-hal/avr-atmega48p.json b/chips/atmega48p-hal/avr-atmega48p.json index 1caf1ea57e..a47a146725 100644 --- a/chips/atmega48p-hal/avr-atmega48p.json +++ b/chips/atmega48p-hal/avr-atmega48p.json @@ -9,6 +9,7 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, "executables": true, diff --git a/chips/attiny85-hal/avr-attiny85.json b/chips/attiny85-hal/avr-attiny85.json index 292092ab8b..ac8cf5fcbf 100644 --- a/chips/attiny85-hal/avr-attiny85.json +++ b/chips/attiny85-hal/avr-attiny85.json @@ -9,6 +9,7 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, "executables": true, diff --git a/chips/attiny88-hal/avr-attiny88.json b/chips/attiny88-hal/avr-attiny88.json index 25c666c6c2..fa0222f32d 100644 --- a/chips/attiny88-hal/avr-attiny88.json +++ b/chips/attiny88-hal/avr-attiny88.json @@ -9,6 +9,7 @@ "target-vendor": "unknown", "arch": "avr", "data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", + "max-atomic-width": 8, "executables": true,