kernel - Fix rare NFS deadlock
[dragonfly.git] / libexec / rtld-elf / Makefile
blob2254e09e3f26e6aa2f1645c63f61d37559829b6e
1 # $FreeBSD$
3 PROG= ld-elf.so.2
4 SRCS= rtld_start.S \
5 reloc.c rtld.c rtld_lock.c rtld_printf.c map_object.c \
6 malloc.c xmalloc.c debug.c libmap.c
7 MAN= rtld.1
8 BINDIR= /libexec
9 SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG}
10 WARNS?= 2
12 # DO NOT USE -static, this is a special case
13 .undef NOSHARED
15 # To activate LD_DEBUG functionality, define ENABLE_DEBUG
16 # e.g. make -DENABLE_DEBUG
18 # for now do not let the use of -flto
19 .if ${CFLAGS:M-flto}
20 CFLAGS+= -fno-lto
21 LDFLAGS+= -flto
22 .endif
24 CFLAGS+= -DIN_RTLD
25 CFLAGS+= -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR} -D__thread=
26 CFLAGS+= -I${.CURDIR}/../../lib/csu/common
27 LDFLAGS+= -nostdlib -Wl,-e.rtld_start,--no-undefined
28 INSTALLFLAGS= -C -b
29 .ifndef NOFSCHG
30 INSTALLFLAGS+= -fschg
31 .endif
32 MLINKS= rtld.1 ld-elf.so.2.1
33 MLINKS+= rtld.1 _rtld_functrace.3
35 .if !defined(NO_SYMVER)
36 VERSION_DEF= ${.CURDIR}/../../lib/libc/Versions.def
37 SYMBOL_MAPS= ${.CURDIR}/Symbol.map
38 VERSION_MAP= Version.map
39 LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
41 rtld.c: ${VERSION_MAP}
43 .if exists(${.CURDIR}/${MACHINE_ARCH}/Symbol.map)
44 SYMBOL_MAPS+= ${.CURDIR}/${MACHINE_ARCH}/Symbol.map
45 .endif
46 .endif
48 .if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc)
49 .include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc"
50 .endif
52 CFLAGS+= -fpic -DPIC
53 LDFLAGS+= -shared -Wl,-Bsymbolic
54 DPADD= ${.OBJDIR}/../../lib/libc_rtld/libc_rtld_pic.a
55 LDADD= -L${.OBJDIR}/../../lib/libc_rtld -lc_rtld_pic
57 .ifdef ENABLE_DEBUG
58 CFLAGS+= -DDEBUG
59 .endif
61 # The gcc80 -O2 tends to wrap malloc() + bzero() back to local calloc() by
62 # emitting calloc: imul %rsi,%rdi; mov $0x1,%esi; jmpq 0xfoo <calloc>
63 FLAGS_GROUPS= calloc
64 calloc_FLAGS= -fno-builtin-malloc
65 calloc_FLAGS_FILES= malloc.c
67 # Since moving rtld-elf to /libexec, we need to create a symlink.
68 # Fixup the existing binary that's there so we can symlink over it.
69 beforeinstall:
70 .if exists(${DESTDIR}/usr/libexec/${PROG})
71 chflags -h noschg ${DESTDIR}/usr/libexec/${PROG}
72 .endif
74 .PATH: ${.CURDIR}/${MACHINE_ARCH}
76 .include <bsd.symver.mk>
77 .include <bsd.prog.mk>