|  | # Copyright 2021 The Pigweed Authors | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); you may not | 
|  | # use this file except in compliance with the License. You may obtain a copy of | 
|  | # the License at | 
|  | # | 
|  | #     https://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
|  | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
|  | # License for the specific language governing permissions and limitations under | 
|  | # the License. | 
|  |  | 
|  | import("//build_overrides/pigweed.gni") | 
|  |  | 
|  | import("clang_config.gni") | 
|  |  | 
|  | cortex_m_common_flags = [ | 
|  | "-mabi=aapcs", | 
|  | "-mthumb", | 
|  | ] | 
|  |  | 
|  | cortex_m_software_fpu_flags = [ "-mfloat-abi=soft" ] | 
|  |  | 
|  | cortex_m_hardware_fpu_flags = [ | 
|  | "-mfloat-abi=hard", | 
|  | "-mfpu=fpv4-sp-d16", | 
|  |  | 
|  | # Used by some pigweed tests/targets to correctly handle hardware FPU | 
|  | # behavior. | 
|  | "-DPW_ARMV7M_ENABLE_FPU=1", | 
|  | ] | 
|  |  | 
|  | config("enable_float_printf") { | 
|  | ldflags = [ "-Wl,-u_printf_float" ] | 
|  | } | 
|  |  | 
|  | pw_clang_arm_config("cortex_m3") { | 
|  | cflags = [ "-mcpu=cortex-m3" ] | 
|  | cflags += cortex_m_common_flags | 
|  | cflags += cortex_m_software_fpu_flags | 
|  | asmflags = cflags | 
|  | ldflags = cflags | 
|  | } | 
|  |  | 
|  | pw_clang_arm_config("cortex_m4f") { | 
|  | cflags = [ "-mcpu=cortex-m4" ] | 
|  | cflags += cortex_m_common_flags | 
|  | cflags += cortex_m_hardware_fpu_flags | 
|  | asmflags = cflags | 
|  | ldflags = cflags | 
|  | } |