CSKY: Support attribute section.
[binutils-gdb.git] / ld / emulparams / elf64_sparc.sh
index 2ab2e4fabb9dfa306d9f9fd785671a81bddb5ae3..8ae29ad78c0f5f16d88899f6a7507e1b8abeecc2 100644 (file)
@@ -1,46 +1,50 @@
 SCRIPT_NAME=elf
 ELFSIZE=64
-TEMPLATE_NAME=elf32
+TEMPLATE_NAME=elf
 OUTPUT_FORMAT="elf64-sparc"
-TEXT_START_ADDR=0x100000
-MAXPAGESIZE=0x100000
-NONPAGED_TEXT_START_ADDR=0x100000
+NO_REL_RELOCS=yes
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
 ARCH="sparc:v9"
 MACHINE=
 DATA_PLT=
 GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
 NOP=0x01000000
+NO_SMALL_DATA=yes
 
-if [ "x${host}" = "x${target}" ]; then
+case "$target" in
+  sparc*-solaris*)
+    TEXT_START_ADDR=0x100000000
+    ;;
+  *)
+    TEXT_START_ADDR=0x100000
+    ;;
+esac
+
+# Treat a host that matches the target with the possible exception of "64"
+# and "v7", "v8", "v9" in the name as if it were native.
+if test `echo "$host" | sed -e 's/64//;s/v[789]//'` \
+ = `echo "$target" | sed -e 's/64//;s/v[789]//'`; then
   case " $EMULATION_LIBPATH " in
     *" ${EMULATION_NAME} "*)
-      # Native, and default or emulation requesting LIB_PATH.
-
-      # Linux and Solaris modify the default library search path
-      # to first include a 64-bit specific directory.  It's put
-      # in slightly different places on the two systems.
-      case "$target" in
-        sparc*-linux*)
-          suffix=64 ;;
-        sparc*-solaris*)
-          suffix=/sparcv9 ;;
-      esac
-
-      if [ -n "${suffix}" ]; then
-
-       LIB_PATH=/lib${suffix}:/lib
-       LIB_PATH=${LIB_PATH}:/usr/lib${suffix}:/usr/lib
-       if [ -n "${NATIVE_LIB_DIRS}" ]; then
-         LIB_PATH=${LIB_PATH}:`echo ${NATIVE_LIB_DIRS} | sed s/:/${suffix}:/g`${suffix}:${NATIVE_LIB_DIRS}
-       fi
-       if [ "${libdir}" != /usr/lib ]; then
-         LIB_PATH=${LIB_PATH}:${libdir}${suffix}:${libdir}
-       fi
-       if [ "${libdir}" != /usr/local/lib ]; then
-         LIB_PATH=${LIB_PATH}:/usr/local/lib${suffix}:/usr/local/lib
-       fi
-
-      fi
-    ;;
+      NATIVE=yes
+      ;;
   esac
 fi
+
+# Linux and Solaris modify the default library search path
+# to first include a 64-bit specific directory.  It's put
+# in slightly different places on the two systems.
+# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first
+# on Linux and /lib/sparcv9, /usr/lib/sparcv9 etc. on Solaris.
+case "$EMULATION_NAME" in
+  *64*)
+    case "$target" in
+      sparc*-linux*)
+       LIBPATH_SUFFIX=64 ;;
+      sparc*-solaris*)
+       LIBPATH_SUFFIX=/sparcv9 ;;
+    esac
+    ;;
+esac