From b1f7e8248d61d923670d77030b38361c2b6718a3 Mon Sep 17 00:00:00 2001 From: Tom Whiston Date: Mon, 18 Sep 2017 12:18:45 +0200 Subject: [PATCH 1/2] add darwin polyfill and os specific linker flags --- .../Demo/Linux_g++_binary_semaphore/makefile | 2 +- .../makefile | 2 +- .../Linux_g++_condition_variables/makefile | 2 +- .../Linux_g++_condition_variables2/makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../Linux_g++_counting_semaphore/makefile | 2 +- .../makefile | 2 +- .../Demo/Linux_g++_critical_section/makefile | 2 +- Linux/Demo/Linux_g++_delay_until/makefile | 2 +- Linux/Demo/Linux_g++_dynamic_tasks/makefile | 2 +- .../Linux_g++_dynamic_tasks_high_pri/makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- Linux/Demo/Linux_g++_mem_pools/makefile | 2 +- Linux/Demo/Linux_g++_mem_pools_add/makefile | 2 +- .../Demo/Linux_g++_mem_pools_static/makefile | 2 +- Linux/Demo/Linux_g++_mutex_recursive/makefile | 2 +- .../makefile | 2 +- Linux/Demo/Linux_g++_mutex_standard/makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- Linux/Demo/Linux_g++_simple_tasks/makefile | 2 +- .../makefile | 2 +- .../makefile | 2 +- .../makefile.cpp11 | 2 +- Linux/Demo/Linux_g++_task_delete/makefile | 2 +- Linux/Demo/Linux_g++_tasklet_dtor/makefile | 2 +- .../Linux_g++_tasklet_dtor_no_except/makefile | 2 +- Linux/Demo/Linux_g++_tasklets/makefile | 2 +- .../Linux_g++_tasklets_no_except/makefile | 2 +- .../Demo/Linux_g++_tickhook_disable/makefile | 2 +- Linux/Demo/Linux_g++_tickhooks/makefile | 2 +- Linux/Demo/Linux_g++_timers/makefile | 2 +- .../Demo/Linux_g++_timers_no_except/makefile | 2 +- Linux/Demo/Linux_g++_unnamed_tasks/makefile | 2 +- .../makefile | 2 +- Linux/Demo/Linux_g++_workqueues/makefile | 2 +- .../Demo/Linux_g++_workqueues_delete/makefile | 2 +- Linux/Demo/Linux_gcc_simple_tasks/makefile | 2 +- Linux/Demo/os_specific_linker_options.mk | 9 ++ Linux/portable/GCC/Linux/port.c | 88 ++++++++++++++++++- 51 files changed, 145 insertions(+), 50 deletions(-) create mode 100644 Linux/Demo/os_specific_linker_options.mk diff --git a/Linux/Demo/Linux_g++_binary_semaphore/makefile b/Linux/Demo/Linux_g++_binary_semaphore/makefile index a8bdcb6..d569af4 100644 --- a/Linux/Demo/Linux_g++_binary_semaphore/makefile +++ b/Linux/Demo/Linux_g++_binary_semaphore/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_binary_semaphore_no_except/makefile b/Linux/Demo/Linux_g++_binary_semaphore_no_except/makefile index 3880cd7..cb7b416 100644 --- a/Linux/Demo/Linux_g++_binary_semaphore_no_except/makefile +++ b/Linux/Demo/Linux_g++_binary_semaphore_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_condition_variables/makefile b/Linux/Demo/Linux_g++_condition_variables/makefile index e1df225..d52d9ca 100644 --- a/Linux/Demo/Linux_g++_condition_variables/makefile +++ b/Linux/Demo/Linux_g++_condition_variables/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_CONDITION_VARIABLES -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_condition_variables2/makefile b/Linux/Demo/Linux_g++_condition_variables2/makefile index 5b9700e..fbeae09 100644 --- a/Linux/Demo/Linux_g++_condition_variables2/makefile +++ b/Linux/Demo/Linux_g++_condition_variables2/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_CONDITION_VARIABLES -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers/makefile b/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers/makefile index 7aa6d22..1aebf31 100644 --- a/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers/makefile +++ b/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_CONDITION_VARIABLES -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/makefile b/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/makefile index 1f10d76..7c4610a 100644 --- a/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/makefile +++ b/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_CONDITION_VARIABLES -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_counting_semaphore/makefile b/Linux/Demo/Linux_g++_counting_semaphore/makefile index b21f124..9b2dc6d 100644 --- a/Linux/Demo/Linux_g++_counting_semaphore/makefile +++ b/Linux/Demo/Linux_g++_counting_semaphore/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_counting_semaphore_no_except/makefile b/Linux/Demo/Linux_g++_counting_semaphore_no_except/makefile index 94368ed..fd98085 100644 --- a/Linux/Demo/Linux_g++_counting_semaphore_no_except/makefile +++ b/Linux/Demo/Linux_g++_counting_semaphore_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_critical_section/makefile b/Linux/Demo/Linux_g++_critical_section/makefile index 2022a49..46399ce 100644 --- a/Linux/Demo/Linux_g++_critical_section/makefile +++ b/Linux/Demo/Linux_g++_critical_section/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_delay_until/makefile b/Linux/Demo/Linux_g++_delay_until/makefile index 0b1da38..2f18808 100644 --- a/Linux/Demo/Linux_g++_delay_until/makefile +++ b/Linux/Demo/Linux_g++_delay_until/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_dynamic_tasks/makefile b/Linux/Demo/Linux_g++_dynamic_tasks/makefile index 5f3cd0e..32acbab 100644 --- a/Linux/Demo/Linux_g++_dynamic_tasks/makefile +++ b/Linux/Demo/Linux_g++_dynamic_tasks/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_dynamic_tasks_high_pri/makefile b/Linux/Demo/Linux_g++_dynamic_tasks_high_pri/makefile index b6e0219..e75e04f 100644 --- a/Linux/Demo/Linux_g++_dynamic_tasks_high_pri/makefile +++ b/Linux/Demo/Linux_g++_dynamic_tasks_high_pri/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_off/makefile b/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_off/makefile index d7a0137..aabc782 100644 --- a/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_off/makefile +++ b/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_off/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_on/makefile b/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_on/makefile index 35ae11b..abe5c9f 100644 --- a/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_on/makefile +++ b/Linux/Demo/Linux_g++_dynamic_tasks_multistart_scheduler_on/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mem_pools/makefile b/Linux/Demo/Linux_g++_mem_pools/makefile index d4863f8..2d20b04 100644 --- a/Linux/Demo/Linux_g++_mem_pools/makefile +++ b/Linux/Demo/Linux_g++_mem_pools/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mem_pools_add/makefile b/Linux/Demo/Linux_g++_mem_pools_add/makefile index 8e68043..878801f 100644 --- a/Linux/Demo/Linux_g++_mem_pools_add/makefile +++ b/Linux/Demo/Linux_g++_mem_pools_add/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mem_pools_static/makefile b/Linux/Demo/Linux_g++_mem_pools_static/makefile index 10d0caa..bfccd1d 100644 --- a/Linux/Demo/Linux_g++_mem_pools_static/makefile +++ b/Linux/Demo/Linux_g++_mem_pools_static/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mutex_recursive/makefile b/Linux/Demo/Linux_g++_mutex_recursive/makefile index e0ed3a4..188824b 100644 --- a/Linux/Demo/Linux_g++_mutex_recursive/makefile +++ b/Linux/Demo/Linux_g++_mutex_recursive/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mutex_recursive_no_except/makefile b/Linux/Demo/Linux_g++_mutex_recursive_no_except/makefile index 150f627..24a0d7a 100644 --- a/Linux/Demo/Linux_g++_mutex_recursive_no_except/makefile +++ b/Linux/Demo/Linux_g++_mutex_recursive_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mutex_standard/makefile b/Linux/Demo/Linux_g++_mutex_standard/makefile index 168e583..7c855ee 100644 --- a/Linux/Demo/Linux_g++_mutex_standard/makefile +++ b/Linux/Demo/Linux_g++_mutex_standard/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_mutex_standard_no_except/makefile b/Linux/Demo/Linux_g++_mutex_standard_no_except/makefile index 2b51d12..eb4f181 100644 --- a/Linux/Demo/Linux_g++_mutex_standard_no_except/makefile +++ b/Linux/Demo/Linux_g++_mutex_standard_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_queues_multiple_producers/makefile b/Linux/Demo/Linux_g++_queues_multiple_producers/makefile index b48461f..070cd4e 100644 --- a/Linux/Demo/Linux_g++_queues_multiple_producers/makefile +++ b/Linux/Demo/Linux_g++_queues_multiple_producers/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers/makefile b/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers/makefile index c8e5a3a..b832731 100644 --- a/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers/makefile +++ b/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers_no_except/makefile b/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers_no_except/makefile index 56a84bc..56ac61e 100644 --- a/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers_no_except/makefile +++ b/Linux/Demo/Linux_g++_queues_multiple_producers_multiple_consumers_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_queues_multiple_producers_no_except/makefile b/Linux/Demo/Linux_g++_queues_multiple_producers_no_except/makefile index 405fd7a..8cfdd52 100644 --- a/Linux/Demo/Linux_g++_queues_multiple_producers_no_except/makefile +++ b/Linux/Demo/Linux_g++_queues_multiple_producers_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_queues_simple_producer_consumer/makefile b/Linux/Demo/Linux_g++_queues_simple_producer_consumer/makefile index d516b88..207dd7c 100644 --- a/Linux/Demo/Linux_g++_queues_simple_producer_consumer/makefile +++ b/Linux/Demo/Linux_g++_queues_simple_producer_consumer/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_queues_simple_producer_consumer_no_except/makefile b/Linux/Demo/Linux_g++_queues_simple_producer_consumer_no_except/makefile index 3544ce5..19b4d34 100644 --- a/Linux/Demo/Linux_g++_queues_simple_producer_consumer_no_except/makefile +++ b/Linux/Demo/Linux_g++_queues_simple_producer_consumer_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_read_write_lock_prefer_reader/makefile b/Linux/Demo/Linux_g++_read_write_lock_prefer_reader/makefile index 55580eb..91f8a32 100644 --- a/Linux/Demo/Linux_g++_read_write_lock_prefer_reader/makefile +++ b/Linux/Demo/Linux_g++_read_write_lock_prefer_reader/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_read_write_lock_prefer_reader_no_except/makefile b/Linux/Demo/Linux_g++_read_write_lock_prefer_reader_no_except/makefile index 478a388..c127106 100644 --- a/Linux/Demo/Linux_g++_read_write_lock_prefer_reader_no_except/makefile +++ b/Linux/Demo/Linux_g++_read_write_lock_prefer_reader_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_read_write_lock_prefer_writer/makefile b/Linux/Demo/Linux_g++_read_write_lock_prefer_writer/makefile index ec7b955..41696fb 100644 --- a/Linux/Demo/Linux_g++_read_write_lock_prefer_writer/makefile +++ b/Linux/Demo/Linux_g++_read_write_lock_prefer_writer/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_read_write_lock_prefer_writer_no_except/makefile b/Linux/Demo/Linux_g++_read_write_lock_prefer_writer_no_except/makefile index 9debea8..4d7d2e5 100644 --- a/Linux/Demo/Linux_g++_read_write_lock_prefer_writer_no_except/makefile +++ b/Linux/Demo/Linux_g++_read_write_lock_prefer_writer_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_simple_tasks/makefile b/Linux/Demo/Linux_g++_simple_tasks/makefile index 67a7f2c..5bdb5ac 100644 --- a/Linux/Demo/Linux_g++_simple_tasks/makefile +++ b/Linux/Demo/Linux_g++_simple_tasks/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_simple_tasks_no_cpp_strings/makefile b/Linux/Demo/Linux_g++_simple_tasks_no_cpp_strings/makefile index 0ea4531..18d14a3 100644 --- a/Linux/Demo/Linux_g++_simple_tasks_no_cpp_strings/makefile +++ b/Linux/Demo/Linux_g++_simple_tasks_no_cpp_strings/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_CPP_STRINGS -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile b/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile index 6a70494..f5aaf4e 100644 --- a/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile +++ b/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile.cpp11 b/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile.cpp11 index ff8efc7..bfae160 100644 --- a/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile.cpp11 +++ b/Linux/Demo/Linux_g++_simple_tasks_no_vTaskDelete/makefile.cpp11 @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -std=c++11 -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_task_delete/makefile b/Linux/Demo/Linux_g++_task_delete/makefile index 45f2e2e..b211866 100644 --- a/Linux/Demo/Linux_g++_task_delete/makefile +++ b/Linux/Demo/Linux_g++_task_delete/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_tasklet_dtor/makefile b/Linux/Demo/Linux_g++_tasklet_dtor/makefile index 54be2f9..f2cb921 100644 --- a/Linux/Demo/Linux_g++_tasklet_dtor/makefile +++ b/Linux/Demo/Linux_g++_tasklet_dtor/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_tasklet_dtor_no_except/makefile b/Linux/Demo/Linux_g++_tasklet_dtor_no_except/makefile index 3092524..e8fb6c9 100644 --- a/Linux/Demo/Linux_g++_tasklet_dtor_no_except/makefile +++ b/Linux/Demo/Linux_g++_tasklet_dtor_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_tasklets/makefile b/Linux/Demo/Linux_g++_tasklets/makefile index 40de222..5895aae 100644 --- a/Linux/Demo/Linux_g++_tasklets/makefile +++ b/Linux/Demo/Linux_g++_tasklets/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_tasklets_no_except/makefile b/Linux/Demo/Linux_g++_tasklets_no_except/makefile index 86f7086..eace93e 100644 --- a/Linux/Demo/Linux_g++_tasklets_no_except/makefile +++ b/Linux/Demo/Linux_g++_tasklets_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_tickhook_disable/makefile b/Linux/Demo/Linux_g++_tickhook_disable/makefile index 94e022b..9e55fe5 100644 --- a/Linux/Demo/Linux_g++_tickhook_disable/makefile +++ b/Linux/Demo/Linux_g++_tickhook_disable/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_tickhooks/makefile b/Linux/Demo/Linux_g++_tickhooks/makefile index 0ce0279..eae772f 100644 --- a/Linux/Demo/Linux_g++_tickhooks/makefile +++ b/Linux/Demo/Linux_g++_tickhooks/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_timers/makefile b/Linux/Demo/Linux_g++_timers/makefile index be5a3f3..545549d 100644 --- a/Linux/Demo/Linux_g++_timers/makefile +++ b/Linux/Demo/Linux_g++_timers/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_timers_no_except/makefile b/Linux/Demo/Linux_g++_timers_no_except/makefile index e1d768f..f483cb8 100644 --- a/Linux/Demo/Linux_g++_timers_no_except/makefile +++ b/Linux/Demo/Linux_g++_timers_no_except/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_unnamed_tasks/makefile b/Linux/Demo/Linux_g++_unnamed_tasks/makefile index 60ce6a3..4562ce1 100644 --- a/Linux/Demo/Linux_g++_unnamed_tasks/makefile +++ b/Linux/Demo/Linux_g++_unnamed_tasks/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_unnamed_tasks_no_cpp_strings/makefile b/Linux/Demo/Linux_g++_unnamed_tasks_no_cpp_strings/makefile index 9e31536..b45ecc7 100644 --- a/Linux/Demo/Linux_g++_unnamed_tasks_no_cpp_strings/makefile +++ b/Linux/Demo/Linux_g++_unnamed_tasks_no_cpp_strings/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -DCPP_FREERTOS_NO_CPP_STRINGS -DCPP_FREERTOS_NO_EXCEPTIONS -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_workqueues/makefile b/Linux/Demo/Linux_g++_workqueues/makefile index 02faebf..5ccef81 100644 --- a/Linux/Demo/Linux_g++_workqueues/makefile +++ b/Linux/Demo/Linux_g++_workqueues/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_g++_workqueues_delete/makefile b/Linux/Demo/Linux_g++_workqueues_delete/makefile index 61f1919..6c360a3 100644 --- a/Linux/Demo/Linux_g++_workqueues_delete/makefile +++ b/Linux/Demo/Linux_g++_workqueues_delete/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -80,7 +81,6 @@ CXX = g++ CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g CXXFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/Linux_gcc_simple_tasks/makefile b/Linux/Demo/Linux_gcc_simple_tasks/makefile index c8cc677..da169d3 100644 --- a/Linux/Demo/Linux_gcc_simple_tasks/makefile +++ b/Linux/Demo/Linux_gcc_simple_tasks/makefile @@ -66,6 +66,7 @@ # information accuracy). # ############################################################################# +include ../os_specific_linker_options.mk FREERTOS_SRC_DIR=../../../../FreeRTOS/Source FREERTOS_INC_DIR=../../../../FreeRTOS/Source/include @@ -76,7 +77,6 @@ PORTABLE_SRC_MEM_MANG_DIR=../../../../FreeRTOS/Source/portable/MemMang CC = gcc CFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g -LDFLAGS += -Wall -Werror -Wextra -Wpedantic -pthread -O0 -g diff --git a/Linux/Demo/os_specific_linker_options.mk b/Linux/Demo/os_specific_linker_options.mk new file mode 100644 index 0000000..399f6fc --- /dev/null +++ b/Linux/Demo/os_specific_linker_options.mk @@ -0,0 +1,9 @@ +# DETECT OS +OS := $(shell uname) + +LDFLAGS += -Wall -Werror -Wextra -Wpedantic -O0 -g + +ifneq ($(OS), Darwin) +# You cannot use the -pthread flag when linking in Darwin +LDFLAGS += -pthread +endif \ No newline at end of file diff --git a/Linux/portable/GCC/Linux/port.c b/Linux/portable/GCC/Linux/port.c index f87fd67..8389aa4 100644 --- a/Linux/portable/GCC/Linux/port.c +++ b/Linux/portable/GCC/Linux/port.c @@ -95,6 +95,86 @@ #include "portmacro.h" +#if defined(__APPLE__) || defined(__MACH__) +# define PREDEF_PLATFORM_OSX +#endif + + +#ifdef PREDEF_PLATFORM_OSX + /* Darwin specific headers */ + #include + #include + #include + +#endif + + +#ifdef PREDEF_PLATFORM_OSX +/* Darwin specific functionality) */ + + #define SYSCTL_CORE_COUNT "machdep.cpu.core_count" + + #define UNUSED(x) (void)(x) + + typedef struct cpu_set { + uint32_t count; + } cpu_set_t; + + static inline void + CPU_ZERO(cpu_set_t *cs) { cs->count = 0; } + + static inline void + CPU_SET(int num, cpu_set_t *cs) { cs->count |= (1 << num); } + + static inline int + CPU_ISSET(int num, cpu_set_t *cs) { return (cs->count & (1 << num)); } + + int sched_getaffinity(pid_t pid, size_t cpu_size, cpu_set_t *cpu_set) + { + UNUSED(pid); + UNUSED(cpu_size); + int32_t core_count = 0; + size_t len = sizeof(core_count); + int ret = sysctlbyname(SYSCTL_CORE_COUNT, &core_count, &len, 0, 0); + if (ret) { + printf("error while get core count %d\n", ret); + return -1; + } + cpu_set->count = 0; + for (int i = 0; i < core_count; i++) { + cpu_set->count |= (1 << i); + } + + return 0; + } + + int pthread_setaffinity_np(pthread_t thread, size_t cpu_size, + cpu_set_t *cpu_set) + { + thread_port_t mach_thread; + #ifdef PREDEF_PLATFORM_OSX + unsigned long core = 0; + #else + int core = 0; + #endif + + for (core = 0; core < 8 * cpu_size; core++) { + if (CPU_ISSET(core, cpu_set)) break; + } + #ifdef PREDEF_PLATFORM_OSX + printf("binding to core %lu\n", core); + #else + printf("binding to core %d\n", core); + #endif + thread_affinity_policy_data_t policy = { core }; + mach_thread = pthread_mach_thread_np(thread); + thread_policy_set(mach_thread, THREAD_AFFINITY_POLICY, + (thread_policy_t)&policy, 1); + return 0; + } + +#endif + /* Each task maintains its own interrupt status in the critical nesting variable. */ typedef struct ThreadState_t_ { @@ -519,11 +599,17 @@ static void prvSetupTimerInterrupt( void ) itimer.it_value.tv_usec = MicroSeconds; printf("Timer Setup:\n"); + #ifdef PREDEF_PLATFORM_OSX + printf(" Interval: %ld seconds, %d useconds\n", + itimer.it_interval.tv_sec, itimer.it_interval.tv_usec); + printf(" Current: %ld seconds, %d useconds\n", + itimer.it_value.tv_sec, itimer.it_value.tv_usec); + #else printf(" Interval: %ld seconds, %ld useconds\n", itimer.it_interval.tv_sec, itimer.it_interval.tv_usec); printf(" Current: %ld seconds, %ld useconds\n", itimer.it_value.tv_sec, itimer.it_value.tv_usec); - + #endif /* Set-up the timer interrupt. */ rc = setitimer( TIMER_TYPE, &itimer, &oitimer ); assert(rc == 0); From 7a17fd5e12a6af471767c499ad41b40ccf4ca931 Mon Sep 17 00:00:00 2001 From: Tom Whiston Date: Mon, 18 Sep 2017 12:28:12 +0200 Subject: [PATCH 2/2] wrap unused vars in UNUSED macro to stop compilation errors --- .../main.cpp | 3 +++ Linux/Demo/Linux_g++_tasklet_dtor/main.cpp | 3 +++ Linux/Demo/Linux_g++_tasklet_dtor_no_except/main.cpp | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/main.cpp b/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/main.cpp index 3ec5e97..71f2960 100644 --- a/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/main.cpp +++ b/Linux/Demo/Linux_g++_condition_variables_multiple_producers_consumers2/main.cpp @@ -81,6 +81,8 @@ using namespace cpp_freertos; using namespace std; +#define UNUSED(x) (void)(x) + // // Simple implementation of a bounded queue, to demonstrate @@ -204,6 +206,7 @@ class ConsumerThread : public Thread { ConsumerThread(string name, int delay_seed) : Thread(name, 100, 1), DelaySeed(delay_seed), runIterations(0) { + UNUSED(DelaySeed); // // Now that construction is completed, we // can safely start the thread. diff --git a/Linux/Demo/Linux_g++_tasklet_dtor/main.cpp b/Linux/Demo/Linux_g++_tasklet_dtor/main.cpp index da2e6c7..4dab825 100644 --- a/Linux/Demo/Linux_g++_tasklet_dtor/main.cpp +++ b/Linux/Demo/Linux_g++_tasklet_dtor/main.cpp @@ -78,6 +78,8 @@ using namespace cpp_freertos; using namespace std; +#define UNUSED(x) (void)(x) + class TestTasklet : public Tasklet { @@ -144,6 +146,7 @@ class TestThread : public Thread { TestThread() : Thread("Thread", 100, configMAX_PRIORITIES - 1) { + UNUSED(DelayInSeconds); Start(); }; diff --git a/Linux/Demo/Linux_g++_tasklet_dtor_no_except/main.cpp b/Linux/Demo/Linux_g++_tasklet_dtor_no_except/main.cpp index da2e6c7..1e981bc 100644 --- a/Linux/Demo/Linux_g++_tasklet_dtor_no_except/main.cpp +++ b/Linux/Demo/Linux_g++_tasklet_dtor_no_except/main.cpp @@ -78,7 +78,7 @@ using namespace cpp_freertos; using namespace std; - +#define UNUSED(x) (void)(x) class TestTasklet : public Tasklet { @@ -144,6 +144,7 @@ class TestThread : public Thread { TestThread() : Thread("Thread", 100, configMAX_PRIORITIES - 1) { + UNUSED(DelayInSeconds); Start(); };