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/conf/mkldscript.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 #       $NetBSD: mkldscript.sh,v 1.3 2014/11/12 13:23:41 christos Exp $
    3 #
    4 #       This script is used by cats, luna68k and shark to produce
    5 #       a kernel linker script that merges link sets for a.out kernels
    6 #       (without -t). It is also used for the same reason by kernel modules
    7 #       (with -t).
    8 
    9 PROG="$(basename "$0")"
   10 TEMPLATE=
   11 
   12 mksets() {
   13     "${OBJDUMP:-objdump}" -x "$@" | fgrep "RELOCATION RECORDS FOR [link_set" | \
   14         sort -u | sed 's/^.*\[\(.*\)\]:$/\1/'
   15 }
   16 
   17 while getopts "t:" f; do
   18         case "$f" in
   19         t)
   20                 TEMPLATE=${OPTARG};;
   21         *)
   22                 echo "Usage: $PROG [-t <template>] objs" 1>^&2
   23                 exit 1;;
   24         esac
   25 done
   26 
   27 shift $((OPTIND - 1))
   28 
   29 SETS=$(mksets "$@")
   30 
   31 if [ -n "${TEMPLATE}" ]; then
   32         grep -v '^}$' "${TEMPLATE}"
   33 fi
   34 
   35 for s in $SETS; do
   36         printf '   . = ALIGN(4);\n'
   37         printf '   PROVIDE (__start_%s = .);\n' $s
   38         if [ -n "${TEMPLATE}" ]; then
   39                 printf '   %s : { *(%s) }\n' $s $s
   40         else
   41                 printf '   *(%s)\n' $s
   42         fi
   43         printf '   PROVIDE (__stop_%s = .);\n' $s
   44 done
   45 
   46 if [ -n "${TEMPLATE}" ]; then
   47         printf '}\n'
   48 fi

Cache object: c727b0a53fc51eccd546cc3ab540233a


[ 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.