mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-01 08:05:46 +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, \
|
include/lib, \
|
||||||
$(wildcard include/*)))
|
$(wildcard include/*)))
|
||||||
LIB_DIRS_TO_CHECK := $(sort $(filter-out \
|
LIB_DIRS_TO_CHECK := $(sort $(filter-out \
|
||||||
|
lib/compiler-rt \
|
||||||
lib/libfdt% \
|
lib/libfdt% \
|
||||||
lib/stdlib, \
|
lib/stdlib, \
|
||||||
$(wildcard lib/*)))
|
$(wildcard lib/*)))
|
||||||
|
@ -144,6 +145,7 @@ LDFLAGS += --gc-sections
|
||||||
################################################################################
|
################################################################################
|
||||||
# Common sources and include directories
|
# Common sources and include directories
|
||||||
################################################################################
|
################################################################################
|
||||||
|
include lib/compiler-rt/compiler-rt.mk
|
||||||
include lib/stdlib/stdlib.mk
|
include lib/stdlib/stdlib.mk
|
||||||
|
|
||||||
BL_COMMON_SOURCES += common/bl_common.c \
|
BL_COMMON_SOURCES += common/bl_common.c \
|
||||||
|
@ -153,6 +155,7 @@ BL_COMMON_SOURCES += common/bl_common.c \
|
||||||
lib/${ARCH}/misc_helpers.S \
|
lib/${ARCH}/misc_helpers.S \
|
||||||
plat/common/${ARCH}/plat_common.c \
|
plat/common/${ARCH}/plat_common.c \
|
||||||
plat/common/${ARCH}/platform_helpers.S \
|
plat/common/${ARCH}/platform_helpers.S \
|
||||||
|
${COMPILER_RT_SRCS} \
|
||||||
${STDLIB_SRCS}
|
${STDLIB_SRCS}
|
||||||
|
|
||||||
INCLUDES += -Iinclude/bl1 \
|
INCLUDES += -Iinclude/bl1 \
|
||||||
|
|
|
@ -13,6 +13,11 @@
|
||||||
* ===----------------------------------------------------------------------===
|
* ===----------------------------------------------------------------------===
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Portions copyright (c) 2017, ARM Limited and Contributors.
|
||||||
|
* All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef INT_LIB_H
|
#ifndef INT_LIB_H
|
||||||
#define INT_LIB_H
|
#define INT_LIB_H
|
||||||
|
|
||||||
|
@ -54,21 +59,13 @@
|
||||||
#define UNUSED __attribute__((unused))
|
#define UNUSED __attribute__((unused))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__NetBSD__) && (defined(_KERNEL) || defined(_STANDALONE))
|
|
||||||
/*
|
/*
|
||||||
* Kernel and boot environment can't use normal headers,
|
* Kernel and boot environment can't use normal headers,
|
||||||
* so use the equivalent system headers.
|
* so use the equivalent system headers.
|
||||||
*/
|
*/
|
||||||
# include <machine/limits.h>
|
# include <sys/limits.h>
|
||||||
# include <sys/stdint.h>
|
# include <sys/stdint.h>
|
||||||
# include <sys/types.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 the commonly used internal type definitions. */
|
||||||
#include "int_types.h"
|
#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