Add assembler and disassembler support for the new Armv8.4-a instructions for AArch64.
[deliverable/binutils-gdb.git] / ld / genscripts.sh
index a4da92d2d0c62d3a4a8bc54ca8daa2d290c32bcb..53cd5ad95c9b1ebcd051b015bc3bcc52bc19b2d6 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # genscripts.sh - generate the ld-emulation-target specific files
-# Copyright 2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
 #
 # This file is part of the Gnu Linker.
 #
@@ -33,8 +33,7 @@
 #          enable_initfini_array \
 #          this_emulation \
 # optional:
-#          tool_dir \
-#          customizer_script
+#          tool_dir
 #
 # Sample usage:
 #
@@ -93,14 +92,9 @@ use_sysroot=$1
 ENABLE_INITFINI_ARRAY=$2
 EMULATION_NAME=$3
 TOOL_LIB=$4
-CUSTOMIZER_SCRIPT=$5
-
-if [ "x${CUSTOMIZER_SCRIPT}" = "x" ] ; then
-  CUSTOMIZER_SCRIPT=${EMULATION_NAME}
-fi
-CUSTOMIZER_SCRIPT="${srcdir}/emulparams/${CUSTOMIZER_SCRIPT}.sh"
 
 # Include the emulation-specific parameters:
+CUSTOMIZER_SCRIPT="${srcdir}/emulparams/${EMULATION_NAME}.sh"
 . ${CUSTOMIZER_SCRIPT}
 
 if test -d ldscripts; then
@@ -160,6 +154,7 @@ append_to_lib_path()
       if [ "x${use_sysroot}" = "xyes" ] ; then
        lib="=${lib}"
       fi
+      skip_lib=no
       if test -n "${LIBPATH_SUFFIX}"; then
        case "${lib}" in
          *${LIBPATH_SUFFIX})
@@ -169,18 +164,27 @@ append_to_lib_path()
              *) lib_path1=${lib_path1}:${lib} ;;
            esac ;;
          *)
-           case :${lib_path1}: in
-             *:${lib}${LIBPATH_SUFFIX}:*) ;;
-             ::) lib_path1=${lib}${LIBPATH_SUFFIX} ;;
-             *) lib_path1=${lib_path1}:${lib}${LIBPATH_SUFFIX} ;;
-           esac ;;
+           if test -n "${LIBPATH_SUFFIX_SKIP}"; then
+             case "${lib}" in
+               *${LIBPATH_SUFFIX_SKIP}) skip_lib=yes ;;
+             esac
+           fi
+           if test "${skip_lib}" = "no"; then
+             case :${lib_path1}: in
+               *:${lib}${LIBPATH_SUFFIX}:*) ;;
+               ::) lib_path1=${lib}${LIBPATH_SUFFIX} ;;
+               *) lib_path1=${lib_path1}:${lib}${LIBPATH_SUFFIX} ;;
+             esac
+           fi ;;
+       esac
+      fi
+      if test "${skip_lib}" = "no"; then
+       case :${lib_path1}:${lib_path2}: in
+         *:${lib}:*) ;;
+         *::) lib_path2=${lib} ;;
+         *) lib_path2=${lib_path2}:${lib} ;;
        esac
       fi
-      case :${lib_path1}:${lib_path2}: in
-       *:${lib}:*) ;;
-       *::) lib_path2=${lib} ;;
-       *) lib_path2=${lib_path2}:${lib} ;;
-      esac
     done
   fi
 }
@@ -276,7 +280,7 @@ DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})"
 ( echo "/* Script for ld -r: link without relocation */"
   . ${CUSTOMIZER_SCRIPT}
   . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-) | sed -e '/^ *$/d;s/[        ]*$//' > ldscripts/${EMULATION_NAME}.xr
+) | sed -e '/^ *$/d;s/[         ]*$//' > ldscripts/${EMULATION_NAME}.xr
 
 LD_FLAG=u
 DATA_ALIGNMENT=${DATA_ALIGNMENT_u}
@@ -284,7 +288,7 @@ CONSTRUCTING=" "
 ( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */"
   . ${CUSTOMIZER_SCRIPT}
   . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-) | sed -e '/^ *$/d;s/[        ]*$//' > ldscripts/${EMULATION_NAME}.xu
+) | sed -e '/^ *$/d;s/[         ]*$//' > ldscripts/${EMULATION_NAME}.xu
 
 LD_FLAG=
 DATA_ALIGNMENT=${DATA_ALIGNMENT_}
@@ -292,21 +296,21 @@ RELOCATING=" "
 ( echo "/* Default linker script, for normal executables */"
   . ${CUSTOMIZER_SCRIPT}
   . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-) | sed -e '/^ *$/d;s/[        ]*$//' > ldscripts/${EMULATION_NAME}.x
+) | sed -e '/^ *$/d;s/[         ]*$//' > ldscripts/${EMULATION_NAME}.x
 
 LD_FLAG=n
 DATA_ALIGNMENT=${DATA_ALIGNMENT_n}
 ( echo "/* Script for -n: mix text and data on same page */"
   . ${CUSTOMIZER_SCRIPT}
   . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-) | sed -e '/^ *$/d;s/[        ]*$//' > ldscripts/${EMULATION_NAME}.xn
+) | sed -e '/^ *$/d;s/[         ]*$//' > ldscripts/${EMULATION_NAME}.xn
 
 LD_FLAG=N
 DATA_ALIGNMENT=${DATA_ALIGNMENT_N}
 ( echo "/* Script for -N: mix text and data on same page; don't align data */"
   . ${CUSTOMIZER_SCRIPT}
   . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-) | sed -e '/^ *$/d;s/[        ]*$//' > ldscripts/${EMULATION_NAME}.xbn
+) | sed -e '/^ *$/d;s/[         ]*$//' > ldscripts/${EMULATION_NAME}.xbn
 
 if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
   DATA_ALIGNMENT=${DATA_ALIGNMENT_c-${DATA_ALIGNMENT_}}
@@ -315,7 +319,7 @@ if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
   ( echo "/* Script for -z combreloc: combine and sort reloc sections */"
     . ${CUSTOMIZER_SCRIPT}
     . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-  ) | sed -e '/^ *$/d;s/[      ]*$//' > ldscripts/${EMULATION_NAME}.xc
+  ) | sed -e '/^ *$/d;s/[       ]*$//' > ldscripts/${EMULATION_NAME}.xc
   rm -f ${COMBRELOC}
   LD_FLAG=w
   RELRO_NOW=" "
@@ -323,7 +327,7 @@ if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
   ( echo "/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */"
     . ${CUSTOMIZER_SCRIPT}
     . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-  ) | sed -e '/^ *$/d;s/[      ]*$//' > ldscripts/${EMULATION_NAME}.xw
+  ) | sed -e '/^ *$/d;s/[       ]*$//' > ldscripts/${EMULATION_NAME}.xw
   rm -f ${COMBRELOC}
   COMBRELOC=
   unset RELRO_NOW
@@ -337,7 +341,7 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; then
     echo "/* Script for ld --shared: link shared library */"
     . ${CUSTOMIZER_SCRIPT}
     . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-  ) | sed -e '/^ *$/d;s/[      ]*$//' > ldscripts/${EMULATION_NAME}.xs
+  ) | sed -e '/^ *$/d;s/[       ]*$//' > ldscripts/${EMULATION_NAME}.xs
   if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
     LD_FLAG=cshared
     DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
@@ -345,7 +349,7 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; then
     ( echo "/* Script for --shared -z combreloc: shared library, combine & sort relocs */"
       . ${CUSTOMIZER_SCRIPT}
       . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-    ) | sed -e '/^ *$/d;s/[    ]*$//' > ldscripts/${EMULATION_NAME}.xsc
+    ) | sed -e '/^ *$/d;s/[     ]*$//' > ldscripts/${EMULATION_NAME}.xsc
     rm -f ${COMBRELOC}
     LD_FLAG=wshared
     RELRO_NOW=" "
@@ -353,7 +357,7 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; then
     ( echo "/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */"
       . ${CUSTOMIZER_SCRIPT}
       . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-    ) | sed -e '/^ *$/d;s/[    ]*$//' > ldscripts/${EMULATION_NAME}.xsw
+    ) | sed -e '/^ *$/d;s/[     ]*$//' > ldscripts/${EMULATION_NAME}.xsw
     rm -f ${COMBRELOC}
     COMBRELOC=
     unset RELRO_NOW
@@ -369,7 +373,7 @@ if test -n "$GENERATE_PIE_SCRIPT"; then
     echo "/* Script for ld -pie: link position independent executable */"
     . ${CUSTOMIZER_SCRIPT}
     . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-  ) | sed -e '/^ *$/d;s/[      ]*$//' > ldscripts/${EMULATION_NAME}.xd
+  ) | sed -e '/^ *$/d;s/[       ]*$//' > ldscripts/${EMULATION_NAME}.xd
   if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
     LD_FLAG=cpie
     DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
@@ -377,7 +381,7 @@ if test -n "$GENERATE_PIE_SCRIPT"; then
     ( echo "/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */"
       . ${CUSTOMIZER_SCRIPT}
       . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-    ) | sed -e '/^ *$/d;s/[    ]*$//' > ldscripts/${EMULATION_NAME}.xdc
+    ) | sed -e '/^ *$/d;s/[     ]*$//' > ldscripts/${EMULATION_NAME}.xdc
     rm -f ${COMBRELOC}
     LD_FLAG=wpie
     RELRO_NOW=" "
@@ -385,7 +389,7 @@ if test -n "$GENERATE_PIE_SCRIPT"; then
     ( echo "/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */"
       . ${CUSTOMIZER_SCRIPT}
       . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-    ) | sed -e '/^ *$/d;s/[    ]*$//' > ldscripts/${EMULATION_NAME}.xdw
+    ) | sed -e '/^ *$/d;s/[     ]*$//' > ldscripts/${EMULATION_NAME}.xdw
     rm -f ${COMBRELOC}
     COMBRELOC=
     unset RELRO_NOW
@@ -400,11 +404,11 @@ if test -n "$GENERATE_AUTO_IMPORT_SCRIPT"; then
     echo "/* Script for ld --enable-auto-import: Like the default script except read only data is placed into .data  */"
     . ${CUSTOMIZER_SCRIPT}
     . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-  ) | sed -e '/^ *$/d;s/[      ]*$//' > ldscripts/${EMULATION_NAME}.xa
+  ) | sed -e '/^ *$/d;s/[       ]*$//' > ldscripts/${EMULATION_NAME}.xa
 fi
 
-case " $EMULATION_LIBPATH " in
-    *" ${EMULATION_NAME} "*) COMPILE_IN=true;;
+case "$COMPILE_IN: $EMULATION_LIBPATH " in
+    :*" ${EMULATION_NAME} "*) COMPILE_IN=yes;;
 esac
 
 # PR ld/5652:
This page took 0.037288 seconds and 4 git commands to generate.