summaryrefslogtreecommitdiffstats
path: root/sys/conf/files.amd64
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.amd64
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.amd64')
-rw-r--r--sys/conf/files.amd6415
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index de4ffd4..31059cb 100644
--- a/sys/conf/files.amd64
+++ b/sys/conf/files.amd64
@@ -20,6 +20,18 @@ linux32_assym.h optional compat_linux32 \
no-obj no-implicit-rule before-depend \
clean "linux32_assym.h"
#
+linux32_locore.o optional compat_linux32 \
+ dependency "linux32_assym.h $S/amd64/linux32/linux32_locore.s" \
+ compile-with "${CC} -x assembler-with-cpp -DLOCORE -m32 -shared -s -pipe -I. -I$S -Werror -Wall -fno-common -nostdinc -nostdlib -Wl,-T$S/amd64/linux32/linux32_vdso.lds.s -Wl,-soname=linux32_vdso.so,--eh-frame-hdr,-fPIC,-warn-common ${.IMPSRC} -o ${.TARGET}" \
+ no-obj no-implicit-rule \
+ clean "linux32_locore.o"
+#
+linux32_vdso.so optional compat_linux32 \
+ dependency "linux32_locore.o" \
+ compile-with "${OBJCOPY} --input binary --output elf64-x86-64-freebsd --binary-architecture i386 linux32_locore.o ${.TARGET}" \
+ no-implicit-rule \
+ clean "linux32_vdso.so"
+#
ia32_genassym.o standard \
dependency "$S/compat/ia32/ia32_genassym.c" \
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
@@ -505,8 +517,6 @@ compat/linsysfs/linsysfs.c optional linsysfs
# Linux/i386 binary support
#
amd64/linux32/linux32_dummy.c optional compat_linux32
-amd64/linux32/linux32_locore.s optional compat_linux32 \
- dependency "linux32_assym.h"
amd64/linux32/linux32_machdep.c optional compat_linux32
amd64/linux32/linux32_support.s optional compat_linux32 \
dependency "linux32_assym.h"
@@ -529,6 +539,7 @@ compat/linux/linux_time.c optional compat_linux32
compat/linux/linux_timer.c optional compat_linux32
compat/linux/linux_uid16.c optional compat_linux32
compat/linux/linux_util.c optional compat_linux32
+compat/linux/linux_vdso.c optional compat_linux32
dev/amr/amr_linux.c optional compat_linux32 amr
dev/mfi/mfi_linux.c optional compat_linux32 mfi
#
OpenPOWER on IntegriCloud