The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/tools/amd64_ia32_vdso.sh

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #!/bin/sh
    2 # SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3 #
    4 # Copyright (c) 2021 The FreeBSD Foundation
    5 # All rights reserved.
    6 #
    7 # This software was developed by Konstantin Belousov <kib@FreeBSD.org>
    8 # under sponsorship from the FreeBSD Foundation.
    9 #
   10 # Redistribution and use in source and binary forms, with or without
   11 # modification, are permitted provided that the following conditions
   12 # are met:
   13 # 1. Redistributions of source code must retain the above copyright
   14 #    notice, this list of conditions and the following disclaimer.
   15 # 2. Redistributions in binary form must reproduce the above copyright
   16 #    notice, this list of conditions and the following disclaimer in the
   17 #    documentation and/or other materials provided with the distribution.
   18 #
   19 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   20 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   23 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   24 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   25 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   26 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   28 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   29 # SUCH DAMAGE.
   30 
   31 set -e
   32 
   33 ${CC} -x assembler-with-cpp -DLOCORE -fPIC -nostdinc -c -m32 \
   34    -o ia32_sigtramp.pico -I. -I"${S}" -include opt_global.h \
   35    "${S}"/amd64/ia32/ia32_sigtramp.S
   36 
   37 ${LD} --shared -Bsymbolic -soname="elf-vdso32.so.1" \
   38    -T "${S}"/conf/vdso_amd64_ia32.ldscript \
   39    --eh-frame-hdr --no-undefined -z rodynamic -z norelro -nmagic \
   40    --hash-style=sysv --fatal-warnings --strip-all \
   41    -o elf-vdso32.so.1 ia32_sigtramp.pico
   42 
   43 if [ "$(wc -c elf-vdso32.so.1 | ${AWK} '{print $1}')" -gt 2048 ]
   44 then
   45     echo "elf-vdso32.so.1 too large" 1>&2
   46     exit 1
   47 fi
   48 
   49 if [ -n "$(${ELFDUMP} -d elf-vdso32.so.1 | \
   50   ${AWK} '/DT_REL.*SZ/{print "RELOCS"}')" ]
   51 then
   52     echo "elf-vdso32.so.1 contains runtime relocations" 1>&2
   53     exit 1
   54 fi
   55 
   56 ${CC} ${DEBUG} -x assembler-with-cpp -DLOCORE -fPIC -nostdinc -c \
   57    -o elf-vdso32.so.o -I. -I"${S}" -include opt_global.h \
   58    -DVDSO_NAME=elf_vdso32_so_1 -DVDSO_FILE=elf-vdso32.so.1 \
   59    "${S}"/tools/vdso_wrap.S
   60 
   61 ${NM} -D elf-vdso32.so.1 | ${AWK} \
   62    '/__vdso_ia32_sigcode/{printf "#define VDSO_IA32_SIGCODE_OFFSET 0x%s\n",$1}
   63     /__vdso_freebsd4_ia32_sigcode/{printf "#define VDSO_FREEBSD4_IA32_SIGCODE_OFFSET 0x%s\n",$1}
   64     /__vdso_ia32_osigcode/{printf "#define VDSO_IA32_OSIGCODE_OFFSET 0x%s\n",$1}
   65     /__vdso_lcall_tramp/{printf "#define VDSO_LCALL_TRAMP_OFFSET 0x%s\n",$1}' \
   66    >vdso_ia32_offsets.h

Cache object: 58f842efae9a6bcdbc3aa03197516be8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.