avr: Fix compiling with GCC 12
Compiling the Arduino targets with GCC 12 fails with the following:
    error: array subscript 0 is outside array bounds of 'volatile uint8_t[0]' {aka 'volatile unsigned char[]'} [-Werror=array-bounds]
Apply the workaround from the bug discussion to fix it.
Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523
Signed-off-by: Tim Crawford <tcrawford@system76.com>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Tim Crawford
					
				
			
			
				
	
			
			
			
						parent
						
							28882975e3
						
					
				
				
					commit
					84fe76cad4
				
			@@ -40,7 +40,7 @@ int16_t i2c_start(struct I2C *i2c, uint8_t addr, bool read) {
 | 
				
			|||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // check if the device has acknowledged the READ / WRITE mode
 | 
					    // check if the device has acknowledged the READ / WRITE mode
 | 
				
			||||||
    uint8_t twst = TW_STATUS & 0xF8;
 | 
					    uint8_t twst = TW_STATUS;
 | 
				
			||||||
    if ((twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK))
 | 
					    if ((twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK))
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CC=avr-gcc -mmcu=$(EC_VARIANT)
 | 
					CC=avr-gcc -mmcu=$(EC_VARIANT)
 | 
				
			||||||
CFLAGS+=-Os -fstack-usage -Wall -Werror -Wl,--gc-sections -Wl,-u,vfprintf -lprintf_flt
 | 
					CFLAGS+=-Os -fstack-usage -Wall -Werror -Wl,--gc-sections -Wl,-u,vfprintf -lprintf_flt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523
 | 
				
			||||||
 | 
					ifneq ($(findstring 12.,$(shell avr-gcc --version 2>/dev/null)),)
 | 
				
			||||||
 | 
					CFLAGS += --param=min-pagesize=0
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OBJCOPY = avr-objcopy
 | 
					OBJCOPY = avr-objcopy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OBJ=$(sort $(patsubst src/%.c,$(BUILD)/%.o,$(SRC)))
 | 
					OBJ=$(sort $(patsubst src/%.c,$(BUILD)/%.o,$(SRC)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Run EC rom in simulator
 | 
					# Run EC rom in simulator
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user