summaryrefslogtreecommitdiffstats
path: root/sys/conf/files.i386
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2016-01-09 15:44:38 +0000
committerdchagin <dchagin@FreeBSD.org>2016-01-09 15:44:38 +0000
commit18c167233413ace7a8a90b3291ccd255ba510cc4 (patch)
tree2dd502aaab8976e7184c48db61fddd6e98e59a43 /sys/conf/files.i386
parent2e9cc3f70d31eef39a4b3f238bb4d7324769d0c4 (diff)
downloadFreeBSD-src-18c167233413ace7a8a90b3291ccd255ba510cc4.zip
FreeBSD-src-18c167233413ace7a8a90b3291ccd255ba510cc4.tar.gz
MFC r283407:
Implement vdso - virtual dynamic shared object. Through vdso Linux exposes functions from kernel with proper DWARF CFI information so that it becomes easier to unwind through them. Using vdso is a mandatory for a thread cancelation && cleanup on a modern glibc.
Diffstat (limited to 'sys/conf/files.i386')
-rw-r--r--sys/conf/files.i38615
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/conf/files.i386 b/sys/conf/files.i386
index 8cfb6c2..e34169b 100644
--- a/sys/conf/files.i386
+++ b/sys/conf/files.i386
@@ -19,6 +19,18 @@ linux_assym.h optional compat_linux \
no-obj no-implicit-rule before-depend \
clean "linux_assym.h"
#
+linux_locore.o optional compat_linux \
+ dependency "linux_assym.h $S/i386/linux/linux_locore.s" \
+ compile-with "${CC} -x assembler-with-cpp -DLOCORE -shared -s -pipe -I. -I$S -Werror -Wall -fno-common -nostdinc -nostdlib -Wl,-T$S/i386/linux/linux_vdso.lds.s -Wl,-soname=linux_vdso.so,--eh-frame-hdr,-fPIC,-warn-common ${.IMPSRC} -o ${.TARGET}" \
+ no-obj no-implicit-rule \
+ clean "linux_locore.o"
+#
+linux_vdso.so optional compat_linux \
+ dependency "linux_locore.o" \
+ compile-with "${OBJCOPY} --input binary --output elf32-i386-freebsd --binary-architecture i386 linux_locore.o ${.TARGET}" \
+ no-implicit-rule \
+ clean "linux_vdso.so"
+#
svr4_genassym.o optional compat_svr4 \
dependency "$S/i386/svr4/svr4_genassym.c" \
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
@@ -97,6 +109,7 @@ compat/linux/linux_time.c optional compat_linux
compat/linux/linux_timer.c optional compat_linux
compat/linux/linux_uid16.c optional compat_linux
compat/linux/linux_util.c optional compat_linux
+compat/linux/linux_vdso.c optional compat_linux
compat/ndis/kern_ndis.c optional ndisapi pci
compat/ndis/kern_windrv.c optional ndisapi pci
compat/ndis/subr_hal.c optional ndisapi pci
@@ -516,8 +529,6 @@ i386/isa/prof_machdep.c optional profiling-routine
i386/isa/spic.c optional spic
i386/linux/imgact_linux.c optional compat_linux
i386/linux/linux_dummy.c optional compat_linux
-i386/linux/linux_locore.s optional compat_linux \
- dependency "linux_assym.h"
i386/linux/linux_machdep.c optional compat_linux
i386/linux/linux_ptrace.c optional compat_linux
i386/linux/linux_support.s optional compat_linux \
OpenPOWER on IntegriCloud