xref: /openbsd-src/gnu/usr.bin/binutils/ld/genscripts.sh (revision 1c90c84b1a7086d22205ee4f0b5d486f81367317)
12159047fSniklas#!/bin/sh
22159047fSniklas# genscripts.sh - generate the ld-emulation-target specific files
32159047fSniklas#
4007c2a45Smiod# Usage: genscripts_extra.sh \
5007c2a45Smiod#          srcdir \
6007c2a45Smiod#          libdir \
7007c2a45Smiod#          exec_prefix \
8007c2a45Smiod#          host \
9007c2a45Smiod#          target \
10007c2a45Smiod#          target_alias \
11007c2a45Smiod#          default_emulation \
12007c2a45Smiod#          native_lib_dirs \
13007c2a45Smiod#          use_sysroot \
14007c2a45Smiod#          this_emulation \
15007c2a45Smiod# optional:
16007c2a45Smiod#          tool_dir \
17007c2a45Smiod#          customizer_script
182159047fSniklas#
192159047fSniklas# Sample usage:
20007c2a45Smiod#
21007c2a45Smiod#   genscripts_extra.sh \
22007c2a45Smiod#    /sources/ld \
23007c2a45Smiod#    /usr/local/lib \
24007c2a45Smiod#    /usr/local \
25007c2a45Smiod#    sparc-sun-sunos4.1.3 \
26007c2a45Smiod#    sparc-sun-sunos4.1.3 \
27007c2a45Smiod#    sparc-sun-sunos4.1.3 \
28007c2a45Smiod#    sun4 \
29007c2a45Smiod#    "" \
30007c2a45Smiod#    no \
31007c2a45Smiod#    sun3 \
32007c2a45Smiod#    sparc-sun-sunos4.1.3 \
33007c2a45Smiod#    sparc.sh
34007c2a45Smiod#
35007c2a45Smiod# produces the linker scripts:
36007c2a45Smiod#
37007c2a45Smiod#   sun3.x       [default linker script]
38007c2a45Smiod#   sun3.xbn     [used when the linker is invoked with "-N"]
39007c2a45Smiod#   sun3.xn      [used when the linker is invoked with "-n"]
40007c2a45Smiod#   sun3.xr      [used when the linker is invoked with "-r"]
41007c2a45Smiod#   sun3.xu      [used when the linker is invoked with "-Ur"]
42007c2a45Smiod# and maybe:
43007c2a45Smiod#   sun3.xc      [used when the linker is invoked with "-z combreloc"]
44007c2a45Smiod#   sun3.xsc     [used when the linker is invoked with "--shared"]
45007c2a45Smiod#   sun3.xdc     [used when the linker is invoked with "-pie"]
46007c2a45Smiod#
47007c2a45Smiod# It also produced the C source file:
48007c2a45Smiod#
49007c2a45Smiod#   em_sun3.c
50007c2a45Smiod#
51007c2a45Smiod# which is then compiled into the linker.
52007c2a45Smiod#
53007c2a45Smiod# The linker scripts are created by running the shell script
54007c2a45Smiod# /sources/ld/emulparams/sparc.sh to set the value of ${SCRIPT_NAME}
55007c2a45Smiod# (and any other variables it wants to).  ${SCRIPT_NAME} is then
56007c2a45Smiod# invoked with a variable called ${LD_FLAG} to tell it which version
57007c2a45Smiod# of the linker script to create.
58007c2a45Smiod
592159047fSniklas
602159047fSniklassrcdir=$1
612159047fSniklaslibdir=$2
62b55d4692Sfgschexec_prefix=$3
63b55d4692Sfgschhost=$4
64b55d4692Sfgschtarget=$5
65b55d4692Sfgschtarget_alias=$6
66b55d4692SfgschEMULATION_LIBPATH=$7
67b55d4692SfgschNATIVE_LIB_DIRS=$8
68c074d1c9Sdrahnuse_sysroot=$9
69b55d4692Sfgschshift 9
70c074d1c9SdrahnEMULATION_NAME=$1
71007c2a45SmiodTOOL_LIB=$2
72007c2a45SmiodCUSTOMIZER_SCRIPT=$3
73007c2a45Smiod
74007c2a45Smiod# Can't use ${TOOL_LIB:-$target_alias} here due to an Ultrix shell bug.
75007c2a45Smiodif [ "x${TOOL_LIB}" = "x" ] ; then
76b55d4692Sfgsch  tool_lib=${exec_prefix}/${target_alias}/lib
77b55d4692Sfgschelse
78007c2a45Smiod  tool_lib=${exec_prefix}/${TOOL_LIB}/lib
79b55d4692Sfgschfi
802159047fSniklas
81007c2a45Smiodif [ "x${CUSTOMIZER_SCRIPT}" = "x" ] ; then
82007c2a45Smiod  CUSTOMIZER_SCRIPT=${EMULATION_NAME}
83007c2a45Smiodfi
84007c2a45SmiodCUSTOMIZER_SCRIPT="${srcdir}/emulparams/${CUSTOMIZER_SCRIPT}.sh"
85007c2a45Smiod
862159047fSniklas# Include the emulation-specific parameters:
87007c2a45Smiod. ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
882159047fSniklas
892159047fSniklasif test -d ldscripts; then
902159047fSniklas  true
912159047fSniklaselse
922159047fSniklas  mkdir ldscripts
932159047fSniklasfi
942159047fSniklas
95c074d1c9Sdrahn# Set some flags for the emultempl scripts.  USE_LIBPATH will
96c074d1c9Sdrahn# be set for any libpath-using emulation; NATIVE will be set for a
97c074d1c9Sdrahn# libpath-using emulation where ${host} = ${target}.  NATIVE
98c074d1c9Sdrahn# may already have been set by the emulparams file, but that's OK
99c074d1c9Sdrahn# (it'll just get set to "yes" twice).
100c074d1c9Sdrahn
101c074d1c9Sdrahncase " $EMULATION_LIBPATH " in
102c074d1c9Sdrahn  *" ${EMULATION_NAME} "*)
103c074d1c9Sdrahn    if [ "x${host}" = "x${target}" ] ; then
104c074d1c9Sdrahn      NATIVE=yes
105c074d1c9Sdrahn      USE_LIBPATH=yes
106c074d1c9Sdrahn    elif [ "x${use_sysroot}" = "xyes" ] ; then
107c074d1c9Sdrahn      USE_LIBPATH=yes
108c074d1c9Sdrahn    fi
109c074d1c9Sdrahn    ;;
110c074d1c9Sdrahnesac
111c074d1c9Sdrahn
112c074d1c9Sdrahn# If the emulparams file sets NATIVE, make sure USE_LIBPATH is set also.
113c074d1c9Sdrahnif test "x$NATIVE" = "xyes" ; then
114c074d1c9Sdrahn  USE_LIBPATH=yes
115c074d1c9Sdrahnfi
116c074d1c9Sdrahn
1172159047fSniklas# Set the library search path, for libraries named by -lfoo.
1182159047fSniklas# If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used.
1192159047fSniklas# Otherwise, the default is set here.
1202159047fSniklas#
1212159047fSniklas# The format is the usual list of colon-separated directories.
1222159047fSniklas# To force a logically empty LIB_PATH, do LIBPATH=":".
123c074d1c9Sdrahn#
124c074d1c9Sdrahn# If we are using a sysroot, prefix library paths with "=" to indicate this.
125c074d1c9Sdrahn#
126c074d1c9Sdrahn# If the emulparams file set LIBPATH_SUFFIX, prepend an extra copy of
127c074d1c9Sdrahn# the library path with the suffix applied.
1282159047fSniklas
129c074d1c9Sdrahnif [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
130007c2a45Smiod  LIB_PATH2=
131007c2a45Smiod
132007c2a45Smiod  libs=${NATIVE_LIB_DIRS}
133007c2a45Smiod  if [ "x${use_sysroot}" != "xyes" ] ; then
134007c2a45Smiod    case " ${libs} " in
135007c2a45Smiod      *" ${libdir} "*) ;;
136007c2a45Smiod      *) libs="${libdir} ${libs}" ;;
137007c2a45Smiod    esac
138007c2a45Smiod    case " ${libs} " in
139007c2a45Smiod      *" ${tool_lib} "*) ;;
140007c2a45Smiod      *) libs="${tool_lib} ${libs}" ;;
141007c2a45Smiod    esac
1422159047fSniklas  fi
143007c2a45Smiod
144007c2a45Smiod  for lib in ${libs}; do
145c074d1c9Sdrahn    # The "=" is harmless if we aren't using a sysroot, but also needless.
146c074d1c9Sdrahn    if [ "x${use_sysroot}" = "xyes" ] ; then
147c074d1c9Sdrahn      lib="=${lib}"
1482159047fSniklas    fi
149c074d1c9Sdrahn    addsuffix=
150c074d1c9Sdrahn    case "${LIBPATH_SUFFIX}:${lib}" in
151c074d1c9Sdrahn      :*) ;;
152c074d1c9Sdrahn      *:*${LIBPATH_SUFFIX}) ;;
153c074d1c9Sdrahn      *) addsuffix=yes ;;
154c074d1c9Sdrahn    esac
155c074d1c9Sdrahn    if test -n "$addsuffix"; then
156c074d1c9Sdrahn      case :${LIB_PATH}: in
157c074d1c9Sdrahn	*:${lib}${LIBPATH_SUFFIX}:*) ;;
158c074d1c9Sdrahn	::) LIB_PATH=${lib}${LIBPATH_SUFFIX} ;;
159c074d1c9Sdrahn	*) LIB_PATH=${LIB_PATH}:${lib}${LIBPATH_SUFFIX} ;;
160c074d1c9Sdrahn      esac
161007c2a45Smiod      case :${LIB_PATH}:${LIB_PATH2}: in
162c074d1c9Sdrahn	*:${lib}:*) ;;
163007c2a45Smiod	*::) LIB_PATH2=${lib} ;;
164c074d1c9Sdrahn	*) LIB_PATH2=${LIB_PATH2}:${lib} ;;
165c074d1c9Sdrahn      esac
166c074d1c9Sdrahn    else
167007c2a45Smiod      case :${LIB_PATH2}: in
168c074d1c9Sdrahn	*:${lib}:*) ;;
169007c2a45Smiod	::) LIB_PATH2=${lib} ;;
170007c2a45Smiod	*) LIB_PATH2=${LIB_PATH2}:${lib} ;;
171b305b0f1Sespie      esac
1722159047fSniklas    fi
173c074d1c9Sdrahn  done
174007c2a45Smiod
175007c2a45Smiod  case :${LIB_PATH}:${LIB_PATH2}: in
176007c2a45Smiod    *:: | ::*) LIB_PATH=${LIB_PATH}${LIB_PATH2} ;;
177007c2a45Smiod    *) LIB_PATH=${LIB_PATH}:${LIB_PATH2} ;;
178007c2a45Smiod  esac
1792159047fSniklasfi
1802159047fSniklas
181c074d1c9SdrahnLIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'`
1822159047fSniklas
183007c2a45Smiod# We need it for testsuite.
184007c2a45Smiodcase " $EMULATION_LIBPATH " in
185007c2a45Smiod  *" ${EMULATION_NAME} "*)
186007c2a45Smiod    test -d tmpdir || mkdir tmpdir
187007c2a45Smiod    test -f tmpdir/libpath.exp || \
188007c2a45Smiod    echo "set libpath \"${LIB_PATH}\"" | sed -e 's/:/ /g' > tmpdir/libpath.exp
189007c2a45Smiod    ;;
190007c2a45Smiodesac
191007c2a45Smiod
1922159047fSniklas# Generate 5 or 6 script files from a master script template in
1932159047fSniklas# ${srcdir}/scripttempl/${SCRIPT_NAME}.sh.  Which one of the 5 or 6
1942159047fSniklas# script files is actually used depends on command line options given
1952159047fSniklas# to ld.  (SCRIPT_NAME was set in the emulparams_file.)
1962159047fSniklas#
1972159047fSniklas# A .x script file is the default script.
1982159047fSniklas# A .xr script is for linking without relocation (-r flag).
1992159047fSniklas# A .xu script is like .xr, but *do* create constructors (-Ur flag).
2002159047fSniklas# A .xn script is for linking with -n flag (mix text and data on same page).
2012159047fSniklas# A .xbn script is for linking with -N flag (mix text and data on same page).
2022159047fSniklas# A .xs script is for generating a shared library with the --shared
2032159047fSniklas#   flag; it is only generated if $GENERATE_SHLIB_SCRIPT is set by the
2042159047fSniklas#   emulation parameters.
205c074d1c9Sdrahn# A .xc script is for linking with -z combreloc; it is only generated if
206c074d1c9Sdrahn#   $GENERATE_COMBRELOC_SCRIPT is set by the emulation parameters or
207c074d1c9Sdrahn#   $SCRIPT_NAME is "elf".
208c074d1c9Sdrahn# A .xsc script is for linking with --shared -z combreloc; it is generated
209c074d1c9Sdrahn#   if $GENERATE_COMBRELOC_SCRIPT is set by the emulation parameters or
210c074d1c9Sdrahn#   $SCRIPT_NAME is "elf" and $GENERATE_SHLIB_SCRIPT is set by the emulation
211c074d1c9Sdrahn#   parameters too.
2122159047fSniklas
213c074d1c9Sdrahnif [ "x$SCRIPT_NAME" = "xelf" ]; then
214c074d1c9Sdrahn  GENERATE_COMBRELOC_SCRIPT=yes
215c074d1c9Sdrahnfi
216c074d1c9Sdrahn
217c074d1c9SdrahnSEGMENT_SIZE=${SEGMENT_SIZE-${MAXPAGESIZE-${TARGET_PAGE_SIZE}}}
2182159047fSniklas
2192159047fSniklas# Determine DATA_ALIGNMENT for the 5 variants, using
220007c2a45Smiod# values specified in the emulparams/<script_to_run>.sh file or default.
2212159047fSniklas
2222159047fSniklasDATA_ALIGNMENT_="${DATA_ALIGNMENT_-${DATA_ALIGNMENT-ALIGN(${SEGMENT_SIZE})}}"
2232159047fSniklasDATA_ALIGNMENT_n="${DATA_ALIGNMENT_n-${DATA_ALIGNMENT_}}"
2242159047fSniklasDATA_ALIGNMENT_N="${DATA_ALIGNMENT_N-${DATA_ALIGNMENT-.}}"
2252159047fSniklasDATA_ALIGNMENT_r="${DATA_ALIGNMENT_r-${DATA_ALIGNMENT-}}"
2262159047fSniklasDATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}"
2272159047fSniklas
2282159047fSniklasLD_FLAG=r
2292159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_r}
2302159047fSniklasDEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})"
231c074d1c9Sdrahn( echo "/* Script for ld -r: link without relocation */"
232007c2a45Smiod  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
233c074d1c9Sdrahn  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
234c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xr
2352159047fSniklas
2362159047fSniklasLD_FLAG=u
2372159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_u}
2382159047fSniklasCONSTRUCTING=" "
239c074d1c9Sdrahn( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */"
240007c2a45Smiod  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
241c074d1c9Sdrahn  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
242c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xu
2432159047fSniklas
2442159047fSniklasLD_FLAG=
2452159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_}
2462159047fSniklasRELOCATING=" "
247c074d1c9Sdrahn( echo "/* Default linker script, for normal executables */"
248007c2a45Smiod  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
249c074d1c9Sdrahn  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
250c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.x
2512159047fSniklas
2522159047fSniklasLD_FLAG=n
2532159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_n}
2542159047fSniklasTEXT_START_ADDR=${NONPAGED_TEXT_START_ADDR-${TEXT_START_ADDR}}
255c074d1c9Sdrahn( echo "/* Script for -n: mix text and data on same page */"
256007c2a45Smiod  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
257c074d1c9Sdrahn  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
258c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xn
2592159047fSniklas
2602159047fSniklasLD_FLAG=N
2612159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_N}
262c074d1c9Sdrahn( echo "/* Script for -N: mix text and data on same page; don't align data */"
263007c2a45Smiod  . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
264c074d1c9Sdrahn  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
265c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xbn
266c074d1c9Sdrahn
267c074d1c9Sdrahnif test -n "$GENERATE_COMBRELOC_SCRIPT"; then
268c074d1c9Sdrahn  DATA_ALIGNMENT=${DATA_ALIGNMENT_c-${DATA_ALIGNMENT_}}
269c074d1c9Sdrahn  LD_FLAG=c
270c074d1c9Sdrahn  COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
271c074d1c9Sdrahn  ( echo "/* Script for -z combreloc: combine and sort reloc sections */"
272007c2a45Smiod    . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
273c074d1c9Sdrahn    . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
274c074d1c9Sdrahn  ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xc
275c074d1c9Sdrahn  rm -f ${COMBRELOC}
276c074d1c9Sdrahn  COMBRELOC=
277c074d1c9Sdrahnfi
2782159047fSniklas
2792159047fSniklasif test -n "$GENERATE_SHLIB_SCRIPT"; then
2802159047fSniklas  LD_FLAG=shared
2812159047fSniklas  DATA_ALIGNMENT=${DATA_ALIGNMENT_s-${DATA_ALIGNMENT_}}
2822159047fSniklas  CREATE_SHLIB=" "
2832159047fSniklas  # Note that TEXT_START_ADDR is set to NONPAGED_TEXT_START_ADDR.
284c074d1c9Sdrahn  (
285c074d1c9Sdrahn    echo "/* Script for ld --shared: link shared library */"
286007c2a45Smiod    . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
287c074d1c9Sdrahn    . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
288c074d1c9Sdrahn  ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xs
289c074d1c9Sdrahn  if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
290c074d1c9Sdrahn    LD_FLAG=cshared
291c074d1c9Sdrahn    DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
292c074d1c9Sdrahn    COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
293c074d1c9Sdrahn    ( echo "/* Script for --shared -z combreloc: shared library, combine & sort relocs */"
294007c2a45Smiod      . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
295c074d1c9Sdrahn      . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
296c074d1c9Sdrahn    ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xsc
297c074d1c9Sdrahn    rm -f ${COMBRELOC}
298c074d1c9Sdrahn    COMBRELOC=
299c074d1c9Sdrahn  fi
30059a393deSdrahn  unset CREATE_SHLIB
3012159047fSniklasfi
3022159047fSniklas
303007c2a45Smiodif test -n "$GENERATE_PIE_SCRIPT"; then
304007c2a45Smiod  LD_FLAG=pie
305007c2a45Smiod  DATA_ALIGNMENT=${DATA_ALIGNMENT_s-${DATA_ALIGNMENT_}}
306007c2a45Smiod  CREATE_PIE=" "
307007c2a45Smiod  # Note that TEXT_START_ADDR is set to NONPAGED_TEXT_START_ADDR.
308007c2a45Smiod  (
309007c2a45Smiod    echo "/* Script for ld -pie: link position independent executable */"
310007c2a45Smiod    . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
311007c2a45Smiod    . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
312007c2a45Smiod  ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xd
313007c2a45Smiod  if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
314007c2a45Smiod    LD_FLAG=cpie
315007c2a45Smiod    DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
316007c2a45Smiod    COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
317007c2a45Smiod    ( echo "/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */"
318007c2a45Smiod      . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
319007c2a45Smiod      . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
320007c2a45Smiod    ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xdc
321007c2a45Smiod    rm -f ${COMBRELOC}
322*1c90c84bSkurt    LD_FLAG=Zcpie
323*1c90c84bSkurt    ( echo "/* Script for -pie -z combreloc, -Z: position independent executable, combine & sort relocs, no PLT/GOT padding */"
324*1c90c84bSkurt      . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
325*1c90c84bSkurt      . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
326*1c90c84bSkurt    ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xdcz
327*1c90c84bSkurt    rm -f ${COMBRELOC}
328007c2a45Smiod    COMBRELOC=
329007c2a45Smiod  fi
330*1c90c84bSkurt  LD_FLAG=Zpie
331*1c90c84bSkurt  DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
332*1c90c84bSkurt  (
333*1c90c84bSkurt    echo "/* Script for ld -pie -Z: link position independent executable, no PLT/GOT padding */"
334*1c90c84bSkurt    . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
335*1c90c84bSkurt    . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
336*1c90c84bSkurt  ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xdz
337007c2a45Smiod  unset CREATE_PIE
338007c2a45Smiodfi
339007c2a45Smiod
34058cb0658SdrahnLD_FLAG=Z
34158cb0658SdrahnDATA_ALIGNMENT=${DATA_ALIGNMENT_}
34258cb0658SdrahnRELOCATING=" "
34359a393deSdrahn( echo "/* Script for -Z: traditional binaries with no PLT/GOT padding */"
34459a393deSdrahn  . ${srcdir}/emulparams/${EMULATION_NAME}.sh
34559a393deSdrahn  . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
34659a393deSdrahn) | sed -e '/^ *$/d;s/[        ]*$//' > ldscripts/${EMULATION_NAME}.xz
34758cb0658Sdrahn
348c074d1c9Sdrahncase " $EMULATION_LIBPATH " in
349c074d1c9Sdrahn    *" ${EMULATION_NAME} "*) COMPILE_IN=true;;
350c074d1c9Sdrahnesac
3512159047fSniklas
3526a4c786fSespie# Generate e${EMULATION_NAME}.c.
3532159047fSniklas. ${srcdir}/emultempl/${TEMPLATE_NAME-generic}.em
354