aboutsummaryrefslogtreecommitdiff
path: root/sys/conf/files.amd64
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2016-08-21 07:28:38 +0000
committerEd Schouten <ed@FreeBSD.org>2016-08-21 07:28:38 +0000
commit7ce0716103b6d8275c8cb6d98307632db26ad82c (patch)
tree4fa4b1b06b96d308a928f7b0036679727ef6ef80 /sys/conf/files.amd64
parent1a71a7f2a4a4cef9283150b203df0aa64d0d1ac9 (diff)
downloadsrc-7ce0716103b6d8275c8cb6d98307632db26ad82c.tar.gz
src-7ce0716103b6d8275c8cb6d98307632db26ad82c.zip
Rewrite the vDSOs for CloudABI in assembly.
The reason why the old vDSOs were written in C using inline assembly was purely because they were embedded in the C library directly as static inline functions. This was practical during development, because it meant you could invoke system calls without any library dependencies. The vDSO was simply a copy of these functions. Now that we require the use of the vDSO, there is no longer any need for embedding them in C code directly. Rewriting them in assembly has the advantage that they are closer to ideal (less useless branching, less assumptions about registers remaining unclobbered by the kernel, etc). They are also easier to build, as they no longer depend on the C type information for CloudABI. Obtained from: https://github.com/NuxiNL/cloudabi
Notes
Notes: svn path=/head/; revision=304554
Diffstat (limited to 'sys/conf/files.amd64')
-rw-r--r--sys/conf/files.amd644
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index b9c6c67f9665..7adceccdb64f 100644
--- a/sys/conf/files.amd64
+++ b/sys/conf/files.amd64
@@ -9,8 +9,8 @@
#
#
cloudabi64_vdso.o optional compat_cloudabi64 \
- dependency "$S/contrib/cloudabi/cloudabi_vdso_x86_64.c" \
- compile-with "${CC} -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi64/cloudabi64_vdso.lds.s -D_KERNEL -I. -I$S -I$S/contrib/cloudabi -O2 -fomit-frame-pointer $S/contrib/cloudabi/cloudabi_vdso_x86_64.c -o ${.TARGET}" \
+ dependency "$S/contrib/cloudabi/cloudabi_vdso_x86_64.S" \
+ compile-with "${CC} -x assembler-with-cpp -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi64/cloudabi64_vdso.lds.s $S/contrib/cloudabi/cloudabi_vdso_x86_64.S -o ${.TARGET}" \
no-obj no-implicit-rule \
clean "cloudabi64_vdso.o"
#