mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 01:54:22 +00:00
Hook up LLVM compiler-rt in the build system
This patch enables compiler-rt for the AArch32 target. The code is not used for AArch64 as the architecture supports the 64-bit division and modulo operations natively. Change-Id: I1703a92872b0bb56ac0b98c67193830683963b13 Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
This commit is contained in:
parent
0e14a7fbeb
commit
d801fbb0fc
3 changed files with 43 additions and 9 deletions
3
Makefile
3
Makefile
|
@ -51,6 +51,7 @@ INC_DIRS_TO_CHECK := $(sort $(filter-out \
|
|||
include/lib, \
|
||||
$(wildcard include/*)))
|
||||
LIB_DIRS_TO_CHECK := $(sort $(filter-out \
|
||||
lib/compiler-rt \
|
||||
lib/libfdt% \
|
||||
lib/stdlib, \
|
||||
$(wildcard lib/*)))
|
||||
|
@ -144,6 +145,7 @@ LDFLAGS += --gc-sections
|
|||
################################################################################
|
||||
# Common sources and include directories
|
||||
################################################################################
|
||||
include lib/compiler-rt/compiler-rt.mk
|
||||
include lib/stdlib/stdlib.mk
|
||||
|
||||
BL_COMMON_SOURCES += common/bl_common.c \
|
||||
|
@ -153,6 +155,7 @@ BL_COMMON_SOURCES += common/bl_common.c \
|
|||
lib/${ARCH}/misc_helpers.S \
|
||||
plat/common/${ARCH}/plat_common.c \
|
||||
plat/common/${ARCH}/platform_helpers.S \
|
||||
${COMPILER_RT_SRCS} \
|
||||
${STDLIB_SRCS}
|
||||
|
||||
INCLUDES += -Iinclude/bl1 \
|
||||
|
|
|
@ -13,6 +13,11 @@
|
|||
* ===----------------------------------------------------------------------===
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2017, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef INT_LIB_H
|
||||
#define INT_LIB_H
|
||||
|
||||
|
@ -54,21 +59,13 @@
|
|||
#define UNUSED __attribute__((unused))
|
||||
#endif
|
||||
|
||||
#if defined(__NetBSD__) && (defined(_KERNEL) || defined(_STANDALONE))
|
||||
/*
|
||||
* Kernel and boot environment can't use normal headers,
|
||||
* so use the equivalent system headers.
|
||||
*/
|
||||
# include <machine/limits.h>
|
||||
# include <sys/limits.h>
|
||||
# include <sys/stdint.h>
|
||||
# include <sys/types.h>
|
||||
#else
|
||||
/* Include the standard compiler builtin headers we use functionality from. */
|
||||
# include <limits.h>
|
||||
# include <stdint.h>
|
||||
# include <stdbool.h>
|
||||
# include <float.h>
|
||||
#endif
|
||||
|
||||
/* Include the commonly used internal type definitions. */
|
||||
#include "int_types.h"
|
||||
|
|
34
lib/compiler-rt/compiler-rt.mk
Normal file
34
lib/compiler-rt/compiler-rt.mk
Normal file
|
@ -0,0 +1,34 @@
|
|||
#
|
||||
# Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Neither the name of ARM 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 HOLDER 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.
|
||||
#
|
||||
|
||||
ifeq (${ARCH},aarch32)
|
||||
COMPILER_RT_SRCS := lib/compiler-rt/builtins/arm/aeabi_uldivmod.S \
|
||||
lib/compiler-rt/builtins/udivmoddi4.c
|
||||
endif
|
Loading…
Add table
Reference in a new issue