diff options
author | dchagin <dchagin@FreeBSD.org> | 2016-01-09 15:44:38 +0000 |
---|---|---|
committer | dchagin <dchagin@FreeBSD.org> | 2016-01-09 15:44:38 +0000 |
commit | 18c167233413ace7a8a90b3291ccd255ba510cc4 (patch) | |
tree | 2dd502aaab8976e7184c48db61fddd6e98e59a43 /sys/conf/files.amd64 | |
parent | 2e9cc3f70d31eef39a4b3f238bb4d7324769d0c4 (diff) | |
download | FreeBSD-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.amd64 | 15 |
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 # |