From ddecc1441dfd84078433f3cf74d5c71cc05892a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Wed, 8 Mar 2017 04:55:31 +0100 Subject: [PATCH 1/4] Makefile: Fix linker error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instantiation of the static singleton instance thermalManager in general requires locking, but we know its safe to do without. Add -fno-threadsafe-statics to avoid using locking primitives, which result in linking errors: undefined reference to `__cxa_guard_acquire' undefined reference to `__cxa_guard_release' Signed-off-by: Stefan Brüns --- Marlin/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index 81eeceada..cfe64ed2b 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -393,7 +393,7 @@ ifneq ($(HARDWARE_MOTHERBOARD),) CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD} endif #CEXTRA = -Wa,-adhlns=$(<:.c=.lst) -CEXTRA = -fno-use-cxa-atexit +CEXTRA = -fno-use-cxa-atexit -fno-threadsafe-statics CFLAGS := $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CEXTRA) $(CTUNING) $(CSTANDARD) CXXFLAGS := $(CDEFS) $(CINCS) -O$(OPT) -Wall $(CEXTRA) $(CTUNING) $(CXXSTANDARD) From bf563e62c152428b4fb7340fcbb2c907b9a5330e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Wed, 8 Mar 2017 04:12:41 +0100 Subject: [PATCH 2/4] Makefile: add printcounter.cpp too CXXSRC list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The file is required by the optional PRINTCOUNTER feature. Signed-off-by: Stefan Brüns --- Marlin/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index cfe64ed2b..0fb16be0c 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -320,7 +320,8 @@ CXXSRC = WMath.cpp WString.cpp Print.cpp Marlin_main.cpp \ SdFile.cpp SdVolume.cpp planner.cpp stepper.cpp \ temperature.cpp cardreader.cpp configuration_store.cpp \ watchdog.cpp SPI.cpp servo.cpp Tone.cpp ultralcd.cpp digipot_mcp4451.cpp \ - dac_mcp4728.cpp vector_3.cpp qr_solve.cpp endstops.cpp stopwatch.cpp utility.cpp + dac_mcp4728.cpp vector_3.cpp qr_solve.cpp endstops.cpp stopwatch.cpp utility.cpp \ + printcounter.cpp ifeq ($(LIQUID_TWI2), 0) CXXSRC += LiquidCrystal.cpp else From 9cc8d495b83ce1c2804ae92b6d875eb1be724886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Wed, 8 Mar 2017 04:11:21 +0100 Subject: [PATCH 3/4] Makefile: remove no longer existing search paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ArduinoAddons has been removed from Marlin, remove any references to it. Replace HARDWARE_SRC and HARDWARE_DIR with its expanded equivalents. Signed-off-by: Stefan Brüns --- Marlin/Makefile | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index 0fb16be0c..649ffc5e4 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -247,16 +247,6 @@ F_CPU ?= 16000000 # Libraries, the "hardware variant" are for boards # that derives from that, and their source are present in # the main Marlin source directory -ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Sanguino)) -HARDWARE_DIR = $(ARDUINO_INSTALL_DIR)/hardware -else -ifeq ($(shell [ $(ARDUINO_VERSION) -ge 100 ] && echo true), true) -HARDWARE_DIR = ../ArduinoAddons/Arduino_1.x.x -else -HARDWARE_DIR = ../ArduinoAddons/Arduino_0.xx -endif -endif -HARDWARE_SRC= $(HARDWARE_DIR)/arduino/avr/cores/arduino TARGET = $(notdir $(CURDIR)) @@ -266,12 +256,10 @@ TARGET = $(notdir $(CURDIR)) VPATH = . VPATH += $(BUILD_DIR) -VPATH += $(HARDWARE_SRC) -ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Teensy Sanguino)) -VPATH += $(HARDWARE_DIR)/marlin/avr/libraries/LiquidCrystal/src -VPATH += $(HARDWARE_DIR)/marlin/avr/libraries/SPI -VPATH += $(HARDWARE_DIR)/arduino/avr/libraries/SPI -VPATH += $(HARDWARE_DIR)/arduino/avr/libraries/SPI/src +VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/cores/arduino + +VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI +VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI/src VPATH += $(ARDUINO_INSTALL_DIR)/libraries/LiquidCrystal/src ifeq ($(LIQUID_TWI2), 1) VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire @@ -282,22 +270,9 @@ ifeq ($(WIRE), 1) VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire/utility endif -else -VPATH += $(HARDWARE_DIR)/libraries/LiquidCrystal -VPATH += $(HARDWARE_DIR)/libraries/SPI -ifeq ($(LIQUID_TWI2), 1) -VPATH += $(HARDWARE_DIR)/libraries/Wire -VPATH += $(HARDWARE_DIR)/libraries/Wire/utility -VPATH += $(HARDWARE_DIR)/libraries/LiquidTWI2 -endif -ifeq ($(WIRE), 1) -VPATH += $(HARDWARE_DIR)/libraries/Wire -VPATH += $(HARDWARE_DIR)/libraries/Wire/utility -endif -endif + ifeq ($(HARDWARE_VARIANT), arduino) HARDWARE_SUB_VARIANT ?= mega -VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/variants/$(HARDWARE_SUB_VARIANT) VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/variants/$(HARDWARE_SUB_VARIANT) else ifeq ($(HARDWARE_VARIANT), Sanguino) From 9ba6c051a1d448c306f23c113c6af9a39b3ece81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Thu, 9 Mar 2017 03:06:38 +0100 Subject: [PATCH 4/4] Makefile: add nozzle.cpp too CXXSRC list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The file is required by the optional NOZZLE_PARK_FEATURE. Signed-off-by: Stefan Brüns --- Marlin/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index 649ffc5e4..949705442 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -296,7 +296,7 @@ CXXSRC = WMath.cpp WString.cpp Print.cpp Marlin_main.cpp \ temperature.cpp cardreader.cpp configuration_store.cpp \ watchdog.cpp SPI.cpp servo.cpp Tone.cpp ultralcd.cpp digipot_mcp4451.cpp \ dac_mcp4728.cpp vector_3.cpp qr_solve.cpp endstops.cpp stopwatch.cpp utility.cpp \ - printcounter.cpp + printcounter.cpp nozzle.cpp ifeq ($(LIQUID_TWI2), 0) CXXSRC += LiquidCrystal.cpp else