freebsd-dev/lib/libcompiler_rt/Makefile
Konstantin Belousov 153344e7d3 On amd64 and i386, force assembler to mark objects compiled from the
assembler source for libcompiler_rt as not needed executable stack. This
is done with a hammer instead of properly marking each assembly file
with section .note.GNU-stack to avoid modifying contributed source.

Discussed with:	ed
2011-01-07 14:35:45 +00:00

166 lines
2.3 KiB
Makefile

# $FreeBSD$
.include <bsd.own.mk>
LIB= compiler_rt
NO_PIC=
WARNS?= 2
CFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN
.if ${MACHINE_CPUARCH} == "amd64"
CRTARCH=x86_64
.else
CRTARCH=${MACHINE_CPUARCH}
.endif
CRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib
.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC}
SRCF= absvdi2 \
absvsi2 \
absvti2 \
addvdi3 \
addvsi3 \
addvti3 \
ashldi3 \
ashlti3 \
ashrdi3 \
ashrti3 \
clear_cache \
clzdi2 \
clzsi2 \
clzti2 \
cmpdi2 \
cmpti2 \
comparedf2 \
comparesf2 \
ctzdi2 \
ctzsi2 \
ctzti2 \
divdc3 \
divdi3 \
divsc3 \
divti3 \
divxc3 \
enable_execute_stack \
eprintf \
ffsdi2 \
ffsti2 \
fixdfdi \
fixdfti \
fixsfdi \
fixsfti \
fixunsdfdi \
fixunsdfsi \
fixunsdfti \
fixunssfdi \
fixunssfsi \
fixunssfti \
fixunsxfdi \
fixunsxfsi \
fixunsxfti \
fixxfdi \
fixxfti \
floatdidf \
floatdisf \
floatdixf \
floattidf \
floattisf \
floattixf \
floatundidf \
floatundisf \
floatundixf \
floatunsidf \
floatunsisf \
floatuntidf \
floatuntisf \
floatuntixf \
lshrdi3 \
lshrti3 \
moddi3 \
modti3 \
muldc3 \
muldi3 \
mulsc3 \
multi3 \
mulvdi3 \
mulvsi3 \
mulvti3 \
mulxc3 \
negdf2 \
negdi2 \
negsf2 \
negti2 \
negvdi2 \
negvsi2 \
negvti2 \
paritydi2 \
paritysi2 \
parityti2 \
popcountdi2 \
popcountsi2 \
popcountti2 \
powidf2 \
powisf2 \
powitf2 \
powixf2 \
subvdi3 \
subvsi3 \
subvti3 \
trampoline_setup \
ucmpdi2 \
ucmpti2 \
udivdi3 \
udivmoddi4 \
udivmodti4 \
udivti3 \
umoddi3 \
umodti3
# These are already shipped by libc.a on arm and mips
.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
SRCF+= adddf3 \
addsf3 \
divdf3 \
divsf3 \
divsi3 \
extendsfdf2 \
fixdfsi \
fixsfsi \
floatsidf \
floatsisf \
modsi3 \
muldf3 \
mulsf3 \
truncdfsf2 \
udivsi3 \
umodsi3
.endif
.for file in ${SRCF}
. if ${MACHINE_CPUARCH} != "arm" && exists(${CRTSRC}/${CRTARCH}/${file}.S)
SRCS+= ${file}.S
. else
SRCS+= ${file}.c
. endif
.endfor
.if ${MACHINE_CPUARCH} != "sparc64" && ${MACHINE_CPUARCH} != "mips"
. if ${MK_INSTALLLIB} != "no"
SYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a
. endif
. if ${MK_PROFILE} != "no"
SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a
. endif
.endif
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
AFLAGS+=--noexecstack
ACFLAGS+=-Wl,a,--noexecstack
.endif
.include <bsd.lib.mk>