CSKY: Support attribute section.
[binutils-gdb.git] / ld / emulparams / elf64_sparc.sh
index dda8f91ed420709a5843b4fd6e3a2db536bd820f..8ae29ad78c0f5f16d88899f6a7507e1b8abeecc2 100644 (file)
@@ -1,9 +1,50 @@
 SCRIPT_NAME=elf
+ELFSIZE=64
+TEMPLATE_NAME=elf
 OUTPUT_FORMAT="elf64-sparc"
-TEXT_START_ADDR=0x100200
-MAXPAGESIZE=0x100000
-NONPAGED_TEXT_START_ADDR=0x100200
+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
+
+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=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