xref: /freebsd/lib/libc/arm/aeabi/Makefile.inc (revision 0e97acdf58fe27b09c4824a474b0344daf997c5f)
1# $FreeBSD$
2
3.PATH: ${LIBC_SRCTOP}/arm/aeabi
4
5SRCS+=	aeabi_atexit.c		\
6	aeabi_unwind_cpp.c	\
7	aeabi_unwind_exidx.c
8.if ${MACHINE_ARCH:Marm*hf*} == ""
9SRCS+=	aeabi_asm_double.S	\
10	aeabi_asm_float.S	\
11	aeabi_double.c		\
12	aeabi_float.c
13.endif
14.if ${MACHINE_ARCH:Marmv6*}
15SRCS+=	aeabi_vfp_double.S	\
16	aeabi_vfp_float.S
17.endif
18
19# Add the aeabi_mem* functions. While they live in compiler-rt they call into
20# libc. This causes issues when other parts of libc call these functions.
21# We work around this by including these functions in libc but mark them as
22# hidden so users of libc will not pick up these versions.
23.PATH: ${LIBC_SRCTOP}/../../contrib/compiler-rt/lib/arm
24
25SRCS+=	aeabi_memcmp.S		\
26	aeabi_memcpy.S		\
27	aeabi_memmove.S		\
28	aeabi_memset.S
29
30# Mark the functions as hidden so they are not available outside of libc.
31CFLAGS.aeabi_memcmp.S=	-DVISIBILITY_HIDDEN
32CFLAGS.aeabi_memcpy.S=	-DVISIBILITY_HIDDEN
33CFLAGS.aeabi_memmove.S=	-DVISIBILITY_HIDDEN
34CFLAGS.aeabi_memset.S=	-DVISIBILITY_HIDDEN
35CFLAGS+=		${CFLAGS.${.IMPSRC:T}}
36
37
38SYM_MAPS+=${LIBC_SRCTOP}/arm/aeabi/Symbol.map
39
40