The branch stable/13 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=75d7ca8a10a5a15b70a35a628a06ceef8cdf9e78

commit 75d7ca8a10a5a15b70a35a628a06ceef8cdf9e78
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2021-12-01 00:35:26 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2022-01-02 16:43:02 +0000

    Enforce that vdso does not contain runtime relocations
    
    (cherry picked from commit d49b75d0d67f86265cfe9b8c83d3749c4a8d3e14)
---
 sys/conf/files.amd64         | 4 ++--
 sys/tools/amd64_ia32_vdso.sh | 7 +++++++
 sys/tools/amd64_vdso.sh      | 7 +++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index 48ca59089ca1..9eed2470c720 100644
--- a/sys/conf/files.amd64
+++ b/sys/conf/files.amd64
@@ -14,13 +14,13 @@ include     "conf/files.x86"
 #
 elf-vdso.so.o                  standard                                \
        dependency      "$S/amd64/amd64/sigtramp.S assym.inc 
$S/tools/amd64_vdso.sh" \
-       compile-with    "env AWK='${AWK}' NM='${NM}' LD='${LD}' CC='${CC}' 
OBJCOPY='${OBJCOPY}' S='${S}' sh $S/tools/amd64_vdso.sh" \
+       compile-with    "env AWK='${AWK}' NM='${NM}' LD='${LD}' CC='${CC}' 
OBJCOPY='${OBJCOPY}' ELFDUMP='${ELFDUMP}' S='${S}' sh $S/tools/amd64_vdso.sh" \
        no-implicit-rule before-depend  \
        clean           "elf-vdso.so.o elf-vdso.so.1 vdso_offsets.h 
sigtramp.pico"
 #
 elf-vdso32.so.o                        optional        compat_freebsd32        
        \
        dependency      "$S/amd64/ia32/ia32_sigtramp.S ia32_assym.h 
$S/tools/amd64_ia32_vdso.sh" \
-       compile-with    "env AWK='${AWK}' NM='${NM}' LD='${LD}' CC='${CC}' 
OBJCOPY='${OBJCOPY}' S='${S}' sh $S/tools/amd64_ia32_vdso.sh" \
+       compile-with    "env AWK='${AWK}' NM='${NM}' LD='${LD}' CC='${CC}' 
OBJCOPY='${OBJCOPY}' ELFDUMP='${ELFDUMP}' S='${S}' sh 
$S/tools/amd64_ia32_vdso.sh" \
        no-implicit-rule before-depend  \
        clean           "elf-vdso32.so.o elf-vdso32.so.1 vdso_ia32_offsets.h 
ia32_sigtramp.pico"
 #
diff --git a/sys/tools/amd64_ia32_vdso.sh b/sys/tools/amd64_ia32_vdso.sh
index 7ef630dbaac5..d03249dd4940 100644
--- a/sys/tools/amd64_ia32_vdso.sh
+++ b/sys/tools/amd64_ia32_vdso.sh
@@ -46,6 +46,13 @@ then
     exit 1
 fi
 
+if [ -n "$(${ELFDUMP} -d elf-vdso32.so.1 | \
+  ${AWK} '/DT_REL.*SZ/{print "RELOCS"}')" ]
+then
+    echo "elf-vdso32.so.1 contains runtime relocations" 1>&2
+    exit 1
+fi
+
 ${CC} -x assembler-with-cpp -DLOCORE -fPIC -nostdinc -c \
    -o elf-vdso32.so.o -I. -I"${S}" -include opt_global.h \
    -DVDSO_NAME=elf_vdso32_so_1 -DVDSO_FILE=elf-vdso32.so.1 \
diff --git a/sys/tools/amd64_vdso.sh b/sys/tools/amd64_vdso.sh
index 0bb351192407..8b9871e86802 100644
--- a/sys/tools/amd64_vdso.sh
+++ b/sys/tools/amd64_vdso.sh
@@ -55,6 +55,13 @@ then
     exit 1
 fi
 
+if [ -n "$(${ELFDUMP} -d elf-vdso.so.1 | \
+  ${AWK} '/DT_REL.*SZ/{print "RELOCS"}')" ]
+then
+    echo "elf-vdso.so.1 contains runtime relocations" 1>&2
+    exit 1
+fi
+
 ${CC} -x assembler-with-cpp -DLOCORE -fPIC -nostdinc -c \
    -o elf-vdso.so.o -I. -I"${S}" -include opt_global.h \
    -DVDSO_NAME=elf_vdso_so_1 -DVDSO_FILE=elf-vdso.so.1 \

Reply via email to