From b35d0485669fd47173eb742bc0a08cb0dbac81f0 Mon Sep 17 00:00:00 2001
From: Daniel Agar <daniel@agar.ca>
Date: Sat, 16 Mar 2019 11:23:17 -0400
Subject: [PATCH] cmake enable -Wcast-align and disable per module

---
 .../bitcraze/crazyflie/syslink/CMakeLists.txt |  3 +-
 cmake/px4_add_common_flags.cmake              |  3 +-
 cmake/px4_add_module.cmake                    |  4 +++
 platforms/posix/src/px4_layer/CMakeLists.txt  |  1 +
 platforms/qurt/cmake/px4_impl_os.cmake        |  1 +
 src/drivers/barometer/bmp280/CMakeLists.txt   |  2 ++
 src/drivers/barometer/lps22hb/CMakeLists.txt  |  1 -
 src/drivers/barometer/lps25h/CMakeLists.txt   |  4 +--
 .../barometer/mpl3115a2/CMakeLists.txt        | 12 +++----
 src/drivers/barometer/ms5611/CMakeLists.txt   | 13 +++----
 .../boards/common/kinetis/CMakeLists.txt      |  1 +
 .../boards/common/stm32/CMakeLists.txt        |  1 +
 .../distance_sensor/leddar_one/CMakeLists.txt |  3 +-
 .../distance_sensor/ll40ls/CMakeLists.txt     |  3 +-
 .../distance_sensor/mb12xx/CMakeLists.txt     |  3 +-
 .../distance_sensor/sf0x/CMakeLists.txt       |  2 ++
 .../distance_sensor/sf1xx/CMakeLists.txt      |  2 +-
 .../distance_sensor/srf02/CMakeLists.txt      |  3 +-
 .../distance_sensor/teraranger/CMakeLists.txt |  1 +
 .../distance_sensor/tfmini/CMakeLists.txt     |  3 +-
 .../distance_sensor/vl53lxx/CMakeLists.txt    | 36 ++++++++++++++++++-
 src/drivers/gps/CMakeLists.txt                |  2 ++
 src/drivers/imu/adis16448/CMakeLists.txt      |  2 +-
 src/drivers/imu/adis16477/CMakeLists.txt      |  1 +
 src/drivers/imu/adis16497/CMakeLists.txt      |  1 +
 src/drivers/imu/bma180/CMakeLists.txt         |  3 +-
 src/drivers/imu/bmi055/CMakeLists.txt         |  3 +-
 src/drivers/imu/bmi160/CMakeLists.txt         |  3 +-
 src/drivers/imu/fxas21002c/CMakeLists.txt     |  2 +-
 src/drivers/imu/fxos8701cq/CMakeLists.txt     |  2 +-
 src/drivers/imu/l3gd20/CMakeLists.txt         |  3 +-
 src/drivers/imu/lsm303d/CMakeLists.txt        |  3 +-
 src/drivers/irlock/CMakeLists.txt             |  3 +-
 src/drivers/kinetis/CMakeLists.txt            |  1 +
 .../magnetometer/bmm150/CMakeLists.txt        |  3 +-
 .../magnetometer/hmc5883/CMakeLists.txt       |  3 +-
 .../magnetometer/ist8310/CMakeLists.txt       |  3 +-
 .../magnetometer/lis3mdl/CMakeLists.txt       |  3 +-
 .../magnetometer/qmc5883/CMakeLists.txt       |  2 +-
 .../magnetometer/rm3100/CMakeLists.txt        |  2 +-
 src/drivers/pmw3901/CMakeLists.txt            |  2 ++
 src/drivers/pwm_input/CMakeLists.txt          |  2 +-
 src/drivers/px4flow/CMakeLists.txt            |  3 +-
 src/drivers/px4io/CMakeLists.txt              |  1 +
 src/drivers/stm32/CMakeLists.txt              |  1 +
 src/drivers/uavcan/CMakeLists.txt             |  1 +
 src/drivers/uavcanesc/CMakeLists.txt          |  1 +
 src/drivers/uavcannode/CMakeLists.txt         |  1 +
 src/lib/CollisionPrevention/CMakeLists.txt    |  1 +
 src/lib/DriverFramework                       |  2 +-
 src/lib/FlightTasks/CMakeLists.txt            |  2 ++
 src/lib/parameters/CMakeLists.txt             |  6 +++-
 src/lib/parameters/flashparams/CMakeLists.txt |  6 +++-
 src/modules/commander/CMakeLists.txt          |  1 +
 src/modules/dataman/CMakeLists.txt            |  1 +
 src/modules/logger/CMakeLists.txt             |  1 +
 src/modules/mavlink/CMakeLists.txt            |  1 +
 .../mavlink/mavlink_tests/CMakeLists.txt      |  1 +
 src/modules/muorb/krait/CMakeLists.txt        |  2 ++
 src/modules/simulator/CMakeLists.txt          |  1 +
 src/modules/simulator/accelsim/CMakeLists.txt |  1 +
 .../simulator/airspeedsim/CMakeLists.txt      |  1 +
 src/modules/simulator/barosim/CMakeLists.txt  |  1 +
 src/modules/simulator/gpssim/CMakeLists.txt   |  1 +
 src/modules/simulator/gyrosim/CMakeLists.txt  |  1 +
 .../common/work_queue/CMakeLists.txt          |  1 +
 src/systemcmds/bl_update/CMakeLists.txt       |  3 +-
 src/systemcmds/hardfault_log/CMakeLists.txt   |  1 +
 68 files changed, 129 insertions(+), 65 deletions(-)

diff --git a/boards/bitcraze/crazyflie/syslink/CMakeLists.txt b/boards/bitcraze/crazyflie/syslink/CMakeLists.txt
index e6dff91b9b..311abb73fe 100644
--- a/boards/bitcraze/crazyflie/syslink/CMakeLists.txt
+++ b/boards/bitcraze/crazyflie/syslink/CMakeLists.txt
@@ -34,6 +34,8 @@
 px4_add_module(
 	MODULE modules__syslink
 	MAIN syslink
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	STACK_MAIN 1300
 	SRCS
 		syslink_main.cpp
@@ -41,5 +43,4 @@ px4_add_module(
 		syslink_memory.cpp
 		syslink_params.c
 		syslink.c
-	DEPENDS
 	)
diff --git a/cmake/px4_add_common_flags.cmake b/cmake/px4_add_common_flags.cmake
index feeaa7bdae..17afaaced4 100644
--- a/cmake/px4_add_common_flags.cmake
+++ b/cmake/px4_add_common_flags.cmake
@@ -66,6 +66,7 @@ function(px4_add_common_flags)
 		-Werror
 
 		-Warray-bounds
+		-Wcast-align
 		-Wdisabled-optimization
 		-Wdouble-promotion
 		-Wfatal-errors
@@ -79,8 +80,6 @@ function(px4_add_common_flags)
 		-Wunknown-pragmas
 		-Wunused-variable
 
-		#-Wcast-align # TODO: fix and enable
-
 		# disabled warnings
 		-Wno-implicit-fallthrough # set appropriate level and update
 		-Wno-missing-field-initializers
diff --git a/cmake/px4_add_module.cmake b/cmake/px4_add_module.cmake
index 88ca3f698b..e995cb2dfb 100644
--- a/cmake/px4_add_module.cmake
+++ b/cmake/px4_add_module.cmake
@@ -118,6 +118,10 @@ function(px4_add_module)
 		add_library(${MODULE} STATIC EXCLUDE_FROM_ALL ${CMAKE_CURRENT_BINARY_DIR}/${MODULE}_unity.cpp)
 		target_include_directories(${MODULE} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
 
+		if(COMPILE_FLAGS)
+			target_compile_options(${MODULE}_original PRIVATE ${COMPILE_FLAGS})
+		endif()
+
 		if(DEPENDS)
 			# using target_link_libraries for dependencies provides linking
 			#  as well as interface include and libraries
diff --git a/platforms/posix/src/px4_layer/CMakeLists.txt b/platforms/posix/src/px4_layer/CMakeLists.txt
index 85f8bd9d90..15db5dd869 100644
--- a/platforms/posix/src/px4_layer/CMakeLists.txt
+++ b/platforms/posix/src/px4_layer/CMakeLists.txt
@@ -54,6 +54,7 @@ add_library(px4_layer
 	${SHMEM_SRCS}
 )
 target_compile_definitions(px4_layer PRIVATE MODULE_NAME="px4")
+target_compile_options(px4_layer PRIVATE -Wno-cast-align) # TODO: fix and enable
 target_link_libraries(px4_layer PRIVATE work_queue)
 target_link_libraries(px4_layer PRIVATE px4_daemon)
 
diff --git a/platforms/qurt/cmake/px4_impl_os.cmake b/platforms/qurt/cmake/px4_impl_os.cmake
index 29bbdcc88a..18ecb396f9 100644
--- a/platforms/qurt/cmake/px4_impl_os.cmake
+++ b/platforms/qurt/cmake/px4_impl_os.cmake
@@ -133,6 +133,7 @@ function(px4_os_add_flags)
 		-fmath-errno
 
 		-Wno-unknown-warning-option
+		-Wno-cast-align
 	)
 
 	# Clear -rdynamic flag which fails for hexagon
diff --git a/src/drivers/barometer/bmp280/CMakeLists.txt b/src/drivers/barometer/bmp280/CMakeLists.txt
index def10fe9c2..e9d1f4f892 100644
--- a/src/drivers/barometer/bmp280/CMakeLists.txt
+++ b/src/drivers/barometer/bmp280/CMakeLists.txt
@@ -34,6 +34,8 @@
 px4_add_module(
 	MODULE drivers__bmp280
 	MAIN bmp280
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable	
 	STACK_MAIN
 		1200
 	SRCS
diff --git a/src/drivers/barometer/lps22hb/CMakeLists.txt b/src/drivers/barometer/lps22hb/CMakeLists.txt
index de7ade623e..782adac43e 100644
--- a/src/drivers/barometer/lps22hb/CMakeLists.txt
+++ b/src/drivers/barometer/lps22hb/CMakeLists.txt
@@ -33,7 +33,6 @@
 px4_add_module(
 	MODULE drivers__barometer__lps22hb
 	MAIN lps22hb
-	COMPILE_FLAGS
 	SRCS
 		lps22hb_main.cpp
 		LPS22HB.cpp
diff --git a/src/drivers/barometer/lps25h/CMakeLists.txt b/src/drivers/barometer/lps25h/CMakeLists.txt
index 9fab6f8b50..77619cf38d 100644
--- a/src/drivers/barometer/lps25h/CMakeLists.txt
+++ b/src/drivers/barometer/lps25h/CMakeLists.txt
@@ -35,11 +35,9 @@ px4_add_module(
 	MAIN lps25h
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		lps25h.cpp
 		lps25h_i2c.cpp
 		lps25h_spi.cpp
-
-	DEPENDS
 	)
-
diff --git a/src/drivers/barometer/mpl3115a2/CMakeLists.txt b/src/drivers/barometer/mpl3115a2/CMakeLists.txt
index ace4c7273a..5d14aeb124 100644
--- a/src/drivers/barometer/mpl3115a2/CMakeLists.txt
+++ b/src/drivers/barometer/mpl3115a2/CMakeLists.txt
@@ -30,17 +30,13 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
-set(srcs
-	mpl3115a2_i2c.cpp
-	mpl3115a2.cpp
-)
-
 px4_add_module(
 	MODULE drivers__mpl3115a2
 	MAIN mpl3115a2
 	STACK_MAIN 1200
 	COMPILE_FLAGS
-	SRCS ${srcs}
-	DEPENDS
+		-Wno-cast-align # TODO: fix and enable
+	SRCS
+		mpl3115a2_i2c.cpp
+		mpl3115a2.cpp
 	)
-
diff --git a/src/drivers/barometer/ms5611/CMakeLists.txt b/src/drivers/barometer/ms5611/CMakeLists.txt
index 3dd514f7f5..7f44534ae8 100644
--- a/src/drivers/barometer/ms5611/CMakeLists.txt
+++ b/src/drivers/barometer/ms5611/CMakeLists.txt
@@ -30,18 +30,15 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
-set(srcs
-	ms5611_spi.cpp
-	ms5611_i2c.cpp
-	ms5611.cpp
-)
 
 px4_add_module(
 	MODULE drivers__ms5611
 	MAIN ms5611
 	STACK_MAIN 1500
 	COMPILE_FLAGS
-	SRCS ${srcs}
-	DEPENDS
+		-Wno-cast-align # TODO: fix and enable
+	SRCS
+		ms5611_spi.cpp
+		ms5611_i2c.cpp
+		ms5611.cpp
 	)
-
diff --git a/src/drivers/boards/common/kinetis/CMakeLists.txt b/src/drivers/boards/common/kinetis/CMakeLists.txt
index a3759bb5cc..ae962c7023 100644
--- a/src/drivers/boards/common/kinetis/CMakeLists.txt
+++ b/src/drivers/boards/common/kinetis/CMakeLists.txt
@@ -37,4 +37,5 @@ add_library(drivers_boards_common_arch
 	board_reset.c
 	)
 add_dependencies(drivers_boards_common_arch prebuild_targets)
+target_compile_options(drivers_boards_common_arch PRIVATE -Wno-cast-align) # TODO: fix and enable
 target_link_libraries(drivers_boards_common_arch PRIVATE nuttx_arch)
diff --git a/src/drivers/boards/common/stm32/CMakeLists.txt b/src/drivers/boards/common/stm32/CMakeLists.txt
index b965d9bcfb..5c3dc2b680 100644
--- a/src/drivers/boards/common/stm32/CMakeLists.txt
+++ b/src/drivers/boards/common/stm32/CMakeLists.txt
@@ -39,4 +39,5 @@ add_library(drivers_boards_common_arch
 	board_critmon.c
 )
 add_dependencies(drivers_boards_common_arch prebuild_targets)
+target_compile_options(drivers_boards_common_arch PRIVATE -Wno-cast-align) # TODO: fix and enable
 target_link_libraries(drivers_boards_common_arch PRIVATE nuttx_arch)
diff --git a/src/drivers/distance_sensor/leddar_one/CMakeLists.txt b/src/drivers/distance_sensor/leddar_one/CMakeLists.txt
index c49e01005e..59770432ba 100644
--- a/src/drivers/distance_sensor/leddar_one/CMakeLists.txt
+++ b/src/drivers/distance_sensor/leddar_one/CMakeLists.txt
@@ -34,9 +34,10 @@ px4_add_module(
 	MODULE drivers__leddar_one
 	MAIN leddar_one
 	STACK_MAIN 1200
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable	
 	SRCS
 		leddar_one.cpp
 	MODULE_CONFIG
 		module.yaml
-	DEPENDS
 	)
diff --git a/src/drivers/distance_sensor/ll40ls/CMakeLists.txt b/src/drivers/distance_sensor/ll40ls/CMakeLists.txt
index 7fb19071c5..216e9f8254 100644
--- a/src/drivers/distance_sensor/ll40ls/CMakeLists.txt
+++ b/src/drivers/distance_sensor/ll40ls/CMakeLists.txt
@@ -34,11 +34,10 @@ px4_add_module(
 	MODULE drivers__ll40ls
 	MAIN ll40ls
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		ll40ls.cpp
 		LidarLite.cpp
 		LidarLiteI2C.cpp
 		LidarLitePWM.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/distance_sensor/mb12xx/CMakeLists.txt b/src/drivers/distance_sensor/mb12xx/CMakeLists.txt
index 22ebfa6860..9d1dffd059 100644
--- a/src/drivers/distance_sensor/mb12xx/CMakeLists.txt
+++ b/src/drivers/distance_sensor/mb12xx/CMakeLists.txt
@@ -34,8 +34,7 @@ px4_add_module(
 	MODULE drivers__mb12xx
 	MAIN mb12xx
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		mb12xx.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/distance_sensor/sf0x/CMakeLists.txt b/src/drivers/distance_sensor/sf0x/CMakeLists.txt
index a40f07907d..ad0383f436 100644
--- a/src/drivers/distance_sensor/sf0x/CMakeLists.txt
+++ b/src/drivers/distance_sensor/sf0x/CMakeLists.txt
@@ -33,6 +33,8 @@
 px4_add_module(
 	MODULE drivers__sf0x
 	MAIN sf0x
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable		
 	SRCS
 		sf0x.cpp
 		sf0x_parser.cpp
diff --git a/src/drivers/distance_sensor/sf1xx/CMakeLists.txt b/src/drivers/distance_sensor/sf1xx/CMakeLists.txt
index 3e28d3a31e..749a5fcb9b 100644
--- a/src/drivers/distance_sensor/sf1xx/CMakeLists.txt
+++ b/src/drivers/distance_sensor/sf1xx/CMakeLists.txt
@@ -31,10 +31,10 @@
 #
 ############################################################################
 px4_add_module(
-
 	MODULE drivers__sf1xx
 	MAIN sf1xx
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		sf1xx.cpp
 	DEPENDS
diff --git a/src/drivers/distance_sensor/srf02/CMakeLists.txt b/src/drivers/distance_sensor/srf02/CMakeLists.txt
index c1c1be9756..dd412dcdfc 100644
--- a/src/drivers/distance_sensor/srf02/CMakeLists.txt
+++ b/src/drivers/distance_sensor/srf02/CMakeLists.txt
@@ -34,8 +34,7 @@ px4_add_module(
 	MODULE drivers__srf02
 	MAIN srf02
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		srf02.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/distance_sensor/teraranger/CMakeLists.txt b/src/drivers/distance_sensor/teraranger/CMakeLists.txt
index eb2ab56ed0..e3edbf7f6c 100644
--- a/src/drivers/distance_sensor/teraranger/CMakeLists.txt
+++ b/src/drivers/distance_sensor/teraranger/CMakeLists.txt
@@ -35,6 +35,7 @@ px4_add_module(
 	MAIN teraranger
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		teraranger.cpp
 	DEPENDS
diff --git a/src/drivers/distance_sensor/tfmini/CMakeLists.txt b/src/drivers/distance_sensor/tfmini/CMakeLists.txt
index e0cd265ad8..d5ac0bac6b 100644
--- a/src/drivers/distance_sensor/tfmini/CMakeLists.txt
+++ b/src/drivers/distance_sensor/tfmini/CMakeLists.txt
@@ -34,11 +34,10 @@ px4_add_module(
 	MODULE drivers__tfmini
 	MAIN tfmini
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		tfmini.cpp
 		tfmini_parser.cpp
 	MODULE_CONFIG
 		module.yaml
-	DEPENDS
 	)
-
diff --git a/src/drivers/distance_sensor/vl53lxx/CMakeLists.txt b/src/drivers/distance_sensor/vl53lxx/CMakeLists.txt
index e76c5f184c..4bf64f2196 100644
--- a/src/drivers/distance_sensor/vl53lxx/CMakeLists.txt
+++ b/src/drivers/distance_sensor/vl53lxx/CMakeLists.txt
@@ -1,7 +1,41 @@
+############################################################################
+#
+#   Copyright (c) 2019 PX4 Development Team. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in
+#    the documentation and/or other materials provided with the
+#    distribution.
+# 3. Neither the name PX4 nor the names of its contributors may be
+#    used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
 px4_add_module(
 	MODULE drivers__vl53lxx
 	MAIN vl53lxx
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable	
 	SRCS
 		vl53lxx.cpp
 	)
-# vim: set noet ft=cmake fenc=utf-8 ff=unix :
\ No newline at end of file
diff --git a/src/drivers/gps/CMakeLists.txt b/src/drivers/gps/CMakeLists.txt
index 95dea2b5d6..88846a63e8 100644
--- a/src/drivers/gps/CMakeLists.txt
+++ b/src/drivers/gps/CMakeLists.txt
@@ -37,6 +37,8 @@ px4_add_module(
 	MODULE drivers__gps
 	MAIN gps
 	STACK_MAIN 1200
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		gps.cpp
 		devices/src/gps_helper.cpp
diff --git a/src/drivers/imu/adis16448/CMakeLists.txt b/src/drivers/imu/adis16448/CMakeLists.txt
index 0ae4cdb4c6..e3e2160ef9 100644
--- a/src/drivers/imu/adis16448/CMakeLists.txt
+++ b/src/drivers/imu/adis16448/CMakeLists.txt
@@ -35,7 +35,7 @@ px4_add_module(
 	MAIN adis16448
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable	
 	SRCS
 		adis16448.cpp
-	DEPENDS
 	)
diff --git a/src/drivers/imu/adis16477/CMakeLists.txt b/src/drivers/imu/adis16477/CMakeLists.txt
index e4528893ba..ea1448bdc6 100644
--- a/src/drivers/imu/adis16477/CMakeLists.txt
+++ b/src/drivers/imu/adis16477/CMakeLists.txt
@@ -35,6 +35,7 @@ px4_add_module(
 	MAIN adis16477
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		ADIS16477.cpp
 		ADIS16477_gyro.cpp
diff --git a/src/drivers/imu/adis16497/CMakeLists.txt b/src/drivers/imu/adis16497/CMakeLists.txt
index 3ea48d9d1a..26b5cb75ce 100644
--- a/src/drivers/imu/adis16497/CMakeLists.txt
+++ b/src/drivers/imu/adis16497/CMakeLists.txt
@@ -35,6 +35,7 @@ px4_add_module(
 	MAIN adis16497
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable	
 	SRCS
 		ADIS16497.cpp
 		ADIS16497_gyro.cpp
diff --git a/src/drivers/imu/bma180/CMakeLists.txt b/src/drivers/imu/bma180/CMakeLists.txt
index db3051da82..b244993058 100644
--- a/src/drivers/imu/bma180/CMakeLists.txt
+++ b/src/drivers/imu/bma180/CMakeLists.txt
@@ -34,8 +34,7 @@ px4_add_module(
 	MODULE drivers__bma180
 	MAIN bma180
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		bma180.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/imu/bmi055/CMakeLists.txt b/src/drivers/imu/bmi055/CMakeLists.txt
index cac7d82188..3edfa13b00 100644
--- a/src/drivers/imu/bmi055/CMakeLists.txt
+++ b/src/drivers/imu/bmi055/CMakeLists.txt
@@ -34,9 +34,10 @@ px4_add_module(
 	MODULE drivers__bmi055
 	MAIN bmi055
 	STACK_MAIN 1500
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable		
 	SRCS		
 		BMI055_accel.cpp
 		BMI055_gyro.cpp
 		bmi055_main.cpp
 	)
-
diff --git a/src/drivers/imu/bmi160/CMakeLists.txt b/src/drivers/imu/bmi160/CMakeLists.txt
index d0479f2c19..5ba6b51ac4 100644
--- a/src/drivers/imu/bmi160/CMakeLists.txt
+++ b/src/drivers/imu/bmi160/CMakeLists.txt
@@ -35,10 +35,9 @@ px4_add_module(
 	MAIN bmi160
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		bmi160.cpp
 		bmi160_gyro.cpp
 		bmi160_main.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/imu/fxas21002c/CMakeLists.txt b/src/drivers/imu/fxas21002c/CMakeLists.txt
index c55e20c59c..f6f4d2ea7f 100644
--- a/src/drivers/imu/fxas21002c/CMakeLists.txt
+++ b/src/drivers/imu/fxas21002c/CMakeLists.txt
@@ -35,7 +35,7 @@ px4_add_module(
 	MAIN fxas21002c
 	STACK_MAIN 1500
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		fxas21002c.cpp
-	DEPENDS
 	)
diff --git a/src/drivers/imu/fxos8701cq/CMakeLists.txt b/src/drivers/imu/fxos8701cq/CMakeLists.txt
index b88911cea0..209615dacc 100644
--- a/src/drivers/imu/fxos8701cq/CMakeLists.txt
+++ b/src/drivers/imu/fxos8701cq/CMakeLists.txt
@@ -35,7 +35,7 @@ px4_add_module(
 	MAIN fxos8701cq
 	STACK_MAIN 1500
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		fxos8701cq.cpp
-	DEPENDS
 	)
diff --git a/src/drivers/imu/l3gd20/CMakeLists.txt b/src/drivers/imu/l3gd20/CMakeLists.txt
index 63c609365d..647423d9b3 100644
--- a/src/drivers/imu/l3gd20/CMakeLists.txt
+++ b/src/drivers/imu/l3gd20/CMakeLists.txt
@@ -35,8 +35,7 @@ px4_add_module(
 	MAIN l3gd20
 	STACK_MAIN 1500
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		l3gd20.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/imu/lsm303d/CMakeLists.txt b/src/drivers/imu/lsm303d/CMakeLists.txt
index 730c8beabf..355183916a 100644
--- a/src/drivers/imu/lsm303d/CMakeLists.txt
+++ b/src/drivers/imu/lsm303d/CMakeLists.txt
@@ -35,8 +35,7 @@ px4_add_module(
 	MAIN lsm303d
 	STACK_MAIN 1500
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		lsm303d.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/irlock/CMakeLists.txt b/src/drivers/irlock/CMakeLists.txt
index b87f66a6f2..7d376f2406 100644
--- a/src/drivers/irlock/CMakeLists.txt
+++ b/src/drivers/irlock/CMakeLists.txt
@@ -34,8 +34,7 @@ px4_add_module(
 	MODULE drivers__irlock
 	MAIN irlock
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		irlock.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/kinetis/CMakeLists.txt b/src/drivers/kinetis/CMakeLists.txt
index 1aa52ddea7..a2fe213eb4 100644
--- a/src/drivers/kinetis/CMakeLists.txt
+++ b/src/drivers/kinetis/CMakeLists.txt
@@ -41,3 +41,4 @@ add_library(drivers_arch
 )
 add_dependencies(drivers_arch prebuild_targets)
 target_link_libraries(drivers_arch PRIVATE drivers_board)
+target_compile_options(drivers_arch PRIVATE -Wno-cast-align) # TODO: fix and enable
diff --git a/src/drivers/magnetometer/bmm150/CMakeLists.txt b/src/drivers/magnetometer/bmm150/CMakeLists.txt
index da23f3535b..6adda9d085 100644
--- a/src/drivers/magnetometer/bmm150/CMakeLists.txt
+++ b/src/drivers/magnetometer/bmm150/CMakeLists.txt
@@ -35,8 +35,7 @@ px4_add_module(
 	MAIN bmm150
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		bmm150.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/magnetometer/hmc5883/CMakeLists.txt b/src/drivers/magnetometer/hmc5883/CMakeLists.txt
index 8d8ab428f0..bd5fa24dfc 100644
--- a/src/drivers/magnetometer/hmc5883/CMakeLists.txt
+++ b/src/drivers/magnetometer/hmc5883/CMakeLists.txt
@@ -35,10 +35,9 @@ px4_add_module(
 	MAIN hmc5883
 	STACK_MAIN 1500
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		hmc5883_i2c.cpp
 		hmc5883_spi.cpp
 		hmc5883.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/magnetometer/ist8310/CMakeLists.txt b/src/drivers/magnetometer/ist8310/CMakeLists.txt
index 117552e7bd..3a2fd67132 100644
--- a/src/drivers/magnetometer/ist8310/CMakeLists.txt
+++ b/src/drivers/magnetometer/ist8310/CMakeLists.txt
@@ -33,8 +33,9 @@
 px4_add_module(
 	MODULE drivers__ist8310
 	MAIN ist8310
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	STACK_MAIN 1500
 	SRCS
 		ist8310.cpp
 	)
-
diff --git a/src/drivers/magnetometer/lis3mdl/CMakeLists.txt b/src/drivers/magnetometer/lis3mdl/CMakeLists.txt
index 379f5ffa22..d3780cb158 100644
--- a/src/drivers/magnetometer/lis3mdl/CMakeLists.txt
+++ b/src/drivers/magnetometer/lis3mdl/CMakeLists.txt
@@ -35,11 +35,10 @@ px4_add_module(
 	MAIN lis3mdl
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		lis3mdl_i2c.cpp
 		lis3mdl_spi.cpp
 		lis3mdl_main.cpp
 		lis3mdl.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/magnetometer/qmc5883/CMakeLists.txt b/src/drivers/magnetometer/qmc5883/CMakeLists.txt
index 3d8b9200b4..2ebe15551b 100644
--- a/src/drivers/magnetometer/qmc5883/CMakeLists.txt
+++ b/src/drivers/magnetometer/qmc5883/CMakeLists.txt
@@ -35,9 +35,9 @@ px4_add_module(
 	MAIN qmc5883
 	STACK_MAIN 1500
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		qmc5883_i2c.cpp
 		qmc5883_spi.cpp
 		qmc5883.cpp
-	DEPENDS
 	)
diff --git a/src/drivers/magnetometer/rm3100/CMakeLists.txt b/src/drivers/magnetometer/rm3100/CMakeLists.txt
index af791a83b5..7d9248c47c 100644
--- a/src/drivers/magnetometer/rm3100/CMakeLists.txt
+++ b/src/drivers/magnetometer/rm3100/CMakeLists.txt
@@ -35,10 +35,10 @@ px4_add_module(
 	MAIN rm3100
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		rm3100_i2c.cpp
 		rm3100_spi.cpp
 		rm3100_main.cpp
 		rm3100.cpp
-	DEPENDS
 	)
diff --git a/src/drivers/pmw3901/CMakeLists.txt b/src/drivers/pmw3901/CMakeLists.txt
index 784f83988f..a169eaba0c 100644
--- a/src/drivers/pmw3901/CMakeLists.txt
+++ b/src/drivers/pmw3901/CMakeLists.txt
@@ -34,6 +34,8 @@
 px4_add_module(
 	MODULE drivers__pmw3901
 	MAIN pmw3901
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	STACK_MAIN 1200
 	SRCS
 		pmw3901.cpp
diff --git a/src/drivers/pwm_input/CMakeLists.txt b/src/drivers/pwm_input/CMakeLists.txt
index a0a18a9687..3079933e78 100644
--- a/src/drivers/pwm_input/CMakeLists.txt
+++ b/src/drivers/pwm_input/CMakeLists.txt
@@ -36,7 +36,7 @@ px4_add_module(
 	STACK_MAIN 1024
 	COMPILE_FLAGS
 		-Wno-pmf-conversions
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		pwm_input.cpp
-	DEPENDS
 	)
diff --git a/src/drivers/px4flow/CMakeLists.txt b/src/drivers/px4flow/CMakeLists.txt
index f9f859d9cd..fcce776bef 100644
--- a/src/drivers/px4flow/CMakeLists.txt
+++ b/src/drivers/px4flow/CMakeLists.txt
@@ -35,8 +35,7 @@ px4_add_module(
 	MAIN px4flow
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		px4flow.cpp
-	DEPENDS
 	)
-
diff --git a/src/drivers/px4io/CMakeLists.txt b/src/drivers/px4io/CMakeLists.txt
index a6cad842c4..1cf4809fc6 100644
--- a/src/drivers/px4io/CMakeLists.txt
+++ b/src/drivers/px4io/CMakeLists.txt
@@ -35,6 +35,7 @@ px4_add_module(
 	MAIN px4io
 	STACK_MAIN 1816
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		px4io.cpp
 		px4io_uploader.cpp
diff --git a/src/drivers/stm32/CMakeLists.txt b/src/drivers/stm32/CMakeLists.txt
index 524139e44d..aa444a97dd 100644
--- a/src/drivers/stm32/CMakeLists.txt
+++ b/src/drivers/stm32/CMakeLists.txt
@@ -41,3 +41,4 @@ add_library(drivers_arch
 )
 add_dependencies(drivers_arch prebuild_targets)
 target_link_libraries(drivers_arch PRIVATE drivers_board)
+target_compile_options(drivers_arch PRIVATE -Wno-cast-align) # TODO: fix and enable
diff --git a/src/drivers/uavcan/CMakeLists.txt b/src/drivers/uavcan/CMakeLists.txt
index ac12dc5f67..69c21f2a34 100644
--- a/src/drivers/uavcan/CMakeLists.txt
+++ b/src/drivers/uavcan/CMakeLists.txt
@@ -63,6 +63,7 @@ add_definitions(
 		-DUAVCAN_PLATFORM=${UAVCAN_PLATFORM}
 		)
 
+add_compile_options(-Wno-cast-align) # TODO: fix and enable
 add_subdirectory(libuavcan EXCLUDE_FROM_ALL)
 add_dependencies(uavcan prebuild_targets)
 
diff --git a/src/drivers/uavcanesc/CMakeLists.txt b/src/drivers/uavcanesc/CMakeLists.txt
index 3e3c80bdac..093a557cfd 100644
--- a/src/drivers/uavcanesc/CMakeLists.txt
+++ b/src/drivers/uavcanesc/CMakeLists.txt
@@ -52,6 +52,7 @@ add_definitions(
 		-DUAVCAN_USE_EXTERNAL_SNPRINT
 		)
 
+add_compile_options(-Wno-cast-align) # TODO: fix and enable
 add_subdirectory(${LIBUAVCAN_DIR} uavcanesc_libuavcan)
 add_dependencies(uavcan prebuild_targets)
 
diff --git a/src/drivers/uavcannode/CMakeLists.txt b/src/drivers/uavcannode/CMakeLists.txt
index 2d2b725bb0..f586fc82e5 100644
--- a/src/drivers/uavcannode/CMakeLists.txt
+++ b/src/drivers/uavcannode/CMakeLists.txt
@@ -52,6 +52,7 @@ add_definitions(
 		-DUAVCAN_USE_EXTERNAL_SNPRINT
 		)
 
+add_compile_options(-Wno-cast-align) # TODO: fix and enable
 add_subdirectory(${LIBUAVCAN_DIR} uavcannode_libuavcan)
 add_dependencies(uavcan prebuild_targets)
 
diff --git a/src/lib/CollisionPrevention/CMakeLists.txt b/src/lib/CollisionPrevention/CMakeLists.txt
index b9ef18f7c3..ae36bf94b6 100644
--- a/src/lib/CollisionPrevention/CMakeLists.txt
+++ b/src/lib/CollisionPrevention/CMakeLists.txt
@@ -32,3 +32,4 @@
 ############################################################################
 
 px4_add_library(CollisionPrevention CollisionPrevention.cpp)
+target_compile_options(CollisionPrevention PRIVATE -Wno-cast-align) # TODO: fix and enable
diff --git a/src/lib/DriverFramework b/src/lib/DriverFramework
index 4b2eb055e5..06277ef49f 160000
--- a/src/lib/DriverFramework
+++ b/src/lib/DriverFramework
@@ -1 +1 @@
-Subproject commit 4b2eb055e534a09323c4f5c467aaff63c98dce7c
+Subproject commit 06277ef49fb8c9fad18d56ef40e8bc9fe1655a65
diff --git a/src/lib/FlightTasks/CMakeLists.txt b/src/lib/FlightTasks/CMakeLists.txt
index 42e0c70f90..059e938da6 100644
--- a/src/lib/FlightTasks/CMakeLists.txt
+++ b/src/lib/FlightTasks/CMakeLists.txt
@@ -103,6 +103,8 @@ add_custom_command(
 # Create Flight Tasks Library
 ###########################################
 
+add_compile_options(-Wno-cast-align) # TODO: fix and enable
+
 px4_add_library(FlightTasks
 	FlightTasks.cpp
 	FlightTasks_generated.cpp
diff --git a/src/lib/parameters/CMakeLists.txt b/src/lib/parameters/CMakeLists.txt
index 0e5e0c83a0..c31fad719e 100644
--- a/src/lib/parameters/CMakeLists.txt
+++ b/src/lib/parameters/CMakeLists.txt
@@ -149,7 +149,11 @@ if (NOT "${PX4_BOARD}" MATCHES "px4_io")
 
 	target_link_libraries(parameters PRIVATE perf tinybson)
 	target_compile_definitions(parameters PRIVATE -DMODULE_NAME="parameters")
-	target_compile_options(parameters PRIVATE -Wno-sign-compare) # TODO: fix this
+	target_compile_options(parameters
+		PRIVATE
+			-Wno-cast-align		# TODO: fix and enable
+			-Wno-sign-compare	# TODO: fix and enable
+	)
 else()
 	add_library(parameters ${PX4_SOURCE_DIR}/src/platforms/empty.c)
 endif()
diff --git a/src/lib/parameters/flashparams/CMakeLists.txt b/src/lib/parameters/flashparams/CMakeLists.txt
index 8a10dfbad3..44375a4eea 100644
--- a/src/lib/parameters/flashparams/CMakeLists.txt
+++ b/src/lib/parameters/flashparams/CMakeLists.txt
@@ -37,5 +37,9 @@ add_library(flashparams
 )
 add_dependencies(flashparams prebuild_targets)
 target_compile_definitions(flashparams PRIVATE -DMODULE_NAME="flashparams")
-target_compile_options(flashparams PRIVATE -Wno-sign-compare) # TODO: fix this
+target_compile_options(flashparams
+	PRIVATE
+		-Wno-sign-compare # TODO: fix this
+		-Wno-cast-align # TODO: fix and enable
+) 
 target_link_libraries(flashparams PRIVATE nuttx_arch)
\ No newline at end of file
diff --git a/src/modules/commander/CMakeLists.txt b/src/modules/commander/CMakeLists.txt
index 83708af04d..326e4721ad 100644
--- a/src/modules/commander/CMakeLists.txt
+++ b/src/modules/commander/CMakeLists.txt
@@ -39,6 +39,7 @@ px4_add_module(
 	STACK_MAIN 4096
 	STACK_MAX 2450
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		accelerometer_calibration.cpp
 		airspeed_calibration.cpp
diff --git a/src/modules/dataman/CMakeLists.txt b/src/modules/dataman/CMakeLists.txt
index 3d11b0f537..fc67ee0a24 100644
--- a/src/modules/dataman/CMakeLists.txt
+++ b/src/modules/dataman/CMakeLists.txt
@@ -35,6 +35,7 @@ px4_add_module(
 	MAIN dataman
 	STACK_MAIN 1200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		dataman.cpp
 	)
diff --git a/src/modules/logger/CMakeLists.txt b/src/modules/logger/CMakeLists.txt
index 392ea2d91f..ef5e4eab62 100644
--- a/src/modules/logger/CMakeLists.txt
+++ b/src/modules/logger/CMakeLists.txt
@@ -37,6 +37,7 @@ px4_add_module(
 	PRIORITY "SCHED_PRIORITY_MAX-30"
 	STACK_MAIN 2200
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		logger.cpp
 		log_writer.cpp
diff --git a/src/modules/mavlink/CMakeLists.txt b/src/modules/mavlink/CMakeLists.txt
index d7b0d884bf..1c7fe6061d 100644
--- a/src/modules/mavlink/CMakeLists.txt
+++ b/src/modules/mavlink/CMakeLists.txt
@@ -39,6 +39,7 @@ px4_add_module(
 	STACK_MAIN 1600
 	STACK_MAX 1600
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	INCLUDES
 		${PX4_SOURCE_DIR}/mavlink/include/mavlink
 	SRCS
diff --git a/src/modules/mavlink/mavlink_tests/CMakeLists.txt b/src/modules/mavlink/mavlink_tests/CMakeLists.txt
index 5989f366e0..188d82c23e 100644
--- a/src/modules/mavlink/mavlink_tests/CMakeLists.txt
+++ b/src/modules/mavlink/mavlink_tests/CMakeLists.txt
@@ -42,6 +42,7 @@ px4_add_module(
 		#-DMAVLINK_FTP_DEBUG
 		-DMavlinkStream=MavlinkStreamTest
 		-DMavlinkFTP=MavlinkFTPTest
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		mavlink_tests.cpp
 		mavlink_ftp_test.cpp
diff --git a/src/modules/muorb/krait/CMakeLists.txt b/src/modules/muorb/krait/CMakeLists.txt
index 270c4d6b81..aecc79fd24 100644
--- a/src/modules/muorb/krait/CMakeLists.txt
+++ b/src/modules/muorb/krait/CMakeLists.txt
@@ -35,6 +35,8 @@ include(hexagon_sdk)
 px4_add_module(
 	MODULE modules__muorb__krait
 	MAIN muorb
+	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	INCLUDES
 		${HEXAGON_SDK_INCLUDES}
 		${PX4_BINARY_DIR}/platforms/posix
diff --git a/src/modules/simulator/CMakeLists.txt b/src/modules/simulator/CMakeLists.txt
index f47d3da71e..863d95c2f3 100644
--- a/src/modules/simulator/CMakeLists.txt
+++ b/src/modules/simulator/CMakeLists.txt
@@ -60,6 +60,7 @@ px4_add_module(
 	MAIN simulator
 	COMPILE_FLAGS
 		-Wno-double-promotion
+		-Wno-cast-align
 	INCLUDES
 		${PX4_SOURCE_DIR}/mavlink/include/mavlink
 	SRCS
diff --git a/src/modules/simulator/accelsim/CMakeLists.txt b/src/modules/simulator/accelsim/CMakeLists.txt
index d5208b1e0c..5dece53969 100644
--- a/src/modules/simulator/accelsim/CMakeLists.txt
+++ b/src/modules/simulator/accelsim/CMakeLists.txt
@@ -36,6 +36,7 @@ px4_add_module(
 	MAIN accelsim
 	COMPILE_FLAGS
 		-Wno-double-promotion
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		accelsim.cpp
 	DEPENDS
diff --git a/src/modules/simulator/airspeedsim/CMakeLists.txt b/src/modules/simulator/airspeedsim/CMakeLists.txt
index 05da547371..0f6510d605 100644
--- a/src/modules/simulator/airspeedsim/CMakeLists.txt
+++ b/src/modules/simulator/airspeedsim/CMakeLists.txt
@@ -36,6 +36,7 @@ px4_add_module(
 	MAIN measairspeedsim
 	COMPILE_FLAGS
 		-Wno-double-promotion
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		airspeedsim.cpp
 		meas_airspeed_sim.cpp
diff --git a/src/modules/simulator/barosim/CMakeLists.txt b/src/modules/simulator/barosim/CMakeLists.txt
index 1da3384327..b711a792b3 100644
--- a/src/modules/simulator/barosim/CMakeLists.txt
+++ b/src/modules/simulator/barosim/CMakeLists.txt
@@ -36,6 +36,7 @@ px4_add_module(
 	MAIN barosim
 	COMPILE_FLAGS
 		-Wno-double-promotion
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		baro.cpp
 	DEPENDS
diff --git a/src/modules/simulator/gpssim/CMakeLists.txt b/src/modules/simulator/gpssim/CMakeLists.txt
index aa68567379..79b941fbd8 100644
--- a/src/modules/simulator/gpssim/CMakeLists.txt
+++ b/src/modules/simulator/gpssim/CMakeLists.txt
@@ -36,6 +36,7 @@ px4_add_module(
 	MAIN gpssim
 	COMPILE_FLAGS
 		-Wno-double-promotion
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		gpssim.cpp
 	DEPENDS
diff --git a/src/modules/simulator/gyrosim/CMakeLists.txt b/src/modules/simulator/gyrosim/CMakeLists.txt
index 5d134bdbac..04b18d1c5c 100644
--- a/src/modules/simulator/gyrosim/CMakeLists.txt
+++ b/src/modules/simulator/gyrosim/CMakeLists.txt
@@ -36,6 +36,7 @@ px4_add_module(
 	MAIN gyrosim
 	COMPILE_FLAGS
 		-Wno-double-promotion
+		-Wno-cast-align # TODO: fix and enable
 	STACK_MAIN 1200
 	SRCS
 		gyrosim.cpp
diff --git a/src/platforms/common/work_queue/CMakeLists.txt b/src/platforms/common/work_queue/CMakeLists.txt
index f47f0b5829..2c77023dfb 100644
--- a/src/platforms/common/work_queue/CMakeLists.txt
+++ b/src/platforms/common/work_queue/CMakeLists.txt
@@ -51,6 +51,7 @@ if (NOT "${PX4_PLATFORM}" MATCHES "nuttx")
 		work_thread.c
 	)
 	target_compile_definitions(work_queue PRIVATE MODULE_NAME="work_queue")
+	target_compile_options(work_queue PRIVATE -Wno-cast-align) # TODO: fix and enable
 	add_dependencies(work_queue prebuild_targets)
 
 endif()
diff --git a/src/systemcmds/bl_update/CMakeLists.txt b/src/systemcmds/bl_update/CMakeLists.txt
index c4d54e296f..45e11c74f0 100644
--- a/src/systemcmds/bl_update/CMakeLists.txt
+++ b/src/systemcmds/bl_update/CMakeLists.txt
@@ -35,8 +35,7 @@ px4_add_module(
 	MAIN bl_update
 	STACK_MAIN 4096
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		bl_update.c
-	DEPENDS
 	)
-
diff --git a/src/systemcmds/hardfault_log/CMakeLists.txt b/src/systemcmds/hardfault_log/CMakeLists.txt
index 02adbc1e9c..c48b372839 100644
--- a/src/systemcmds/hardfault_log/CMakeLists.txt
+++ b/src/systemcmds/hardfault_log/CMakeLists.txt
@@ -35,6 +35,7 @@ px4_add_module(
 	MAIN hardfault_log
 	STACK_MAIN 2100
 	COMPILE_FLAGS
+		-Wno-cast-align # TODO: fix and enable
 	SRCS
 		hardfault_log.c
 	DEPENDS
-- 
GitLab