gcc44: Instruct linkers to create GNU hash tables
authorJohn Marino <draco@marino.st>
Sun, 11 Mar 2012 00:45:39 +0000 (01:45 +0100)
committerJohn Marino <draco@marino.st>
Sun, 11 Mar 2012 09:05:43 +0000 (10:05 +0100)
The real-time linker has just been taught how to use GNU hash tables
to speed up symbol lookup.  However, the linkers only generate SysV
hashes by default, so the specs file is being altered to generate
both types of hashes for every shared library and dynamic executable
for a while.  Maybe after a release or two we can consider only
generating the superior GNU hash, which will break forward compatibility
with older releases.

contrib/gcc-4.4/gcc/config/dragonfly.h

index b64a843..0f20b10 100644 (file)
@@ -111,11 +111,13 @@ along with GCC; see the file COPYING3.  If not see
   %{v:-V} \
   %{assert*} %{R*} %{rpath*} %{defsym*} \
   %{shared:-Bshareable %{h*} %{soname*}} \
-    %{!shared: \
-      %{!static: \
-        %{rdynamic:-export-dynamic} \
-        -dynamic-linker %(dfbsd_dynamic_linker) } \
-    %{static:-Bstatic}} \
+  %{!shared: \
+   %{!static: \
+    %{rdynamic:-export-dynamic} \
+    -dynamic-linker %(dfbsd_dynamic_linker) \
+   } \
+  %{static:-Bstatic}} \
+  %{!static:--hash-style=both} \
   %{symbolic:-Bsymbolic}"
 
 #undef  LINK_SPEC