From 4913678695ce103ae65b844254b8e63f325712cb Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sat, 2 Jun 2012 16:35:29 +0000
Subject: [PATCH] Fix UC3 support in the BUILD build system module. Fix bug in
 the EVK1101 board buttons driver.

---
 LUFA/Build/lufa.build.in                 | 12 +++++++-----
 LUFA/Drivers/Board/UC3/EVK1101/Buttons.h |  2 +-
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/LUFA/Build/lufa.build.in b/LUFA/Build/lufa.build.in
index d1b82d824..c84537632 100644
--- a/LUFA/Build/lufa.build.in
+++ b/LUFA/Build/lufa.build.in
@@ -114,8 +114,10 @@ endif
 C_FLAGS   += -Wstrict-prototypes
 
 # Create a list of flags to pass to the linker
-LD_FLAGS += -Wl,-Map=$(TARGET).map,--cref -Wl,--gc-sections -lm
-ifneq ($(F_CPU), UC3)
+LD_FLAGS += -lm -Wl,-Map=$(TARGET).map,--cref -Wl,--gc-sections 
+ifeq ($(ARCH), UC3)
+   LD_FLAGS += --rodata-writable -Wl,--direct-data   
+else
    LD_FLAGS += -Wl,--relax
 endif
 
@@ -126,8 +128,8 @@ ifneq ($(UNKNOWN_SOURCE),)
 endif
 
 # Determine flags to pass to the size utility based on its reported features
-SIZE_MCU_FLAG    = $(shell avr-size --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
-SIZE_FORMAT_FLAG = $(shell avr-size --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
+SIZE_MCU_FLAG    = $(shell $(CROSS)size --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
+SIZE_FORMAT_FLAG = $(shell $(CROSS)size --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
 
 
 begin:
@@ -150,7 +152,7 @@ checksource:
 size:
 	@echo $(MSG_SIZE_CMD) Determining size of \"$(TARGET).elf\"
 	@if test -f $(TARGET).elf; then \
-	    avr-size $(SIZE_MCU_FLAG) $(SIZE_FORMAT_FLAG) $(TARGET).elf ; 2>/dev/null; \
+	    $(CROSS)size $(SIZE_MCU_FLAG) $(SIZE_FORMAT_FLAG) $(TARGET).elf ; 2>/dev/null; \
 	 fi
 
 .PHONY: begin elf hex lss size end
diff --git a/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h b/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h
index 897147902..f1a9b9926 100644
--- a/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h
+++ b/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h
@@ -98,7 +98,7 @@
 			static inline uint32_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
 			static inline uint32_t Buttons_GetStatus(void)
 			{
-				return (~(AVR32_GPIO.port[JOY_MOVE_PORT].pvr & (BUTTONS_BUTTON1 | BUTTONS_BUTTON2)));
+				return (~(AVR32_GPIO.port[BUTTONS_PORT].pvr & (BUTTONS_BUTTON1 | BUTTONS_BUTTON2)));
 			}
 		#endif
 
-- 
GitLab