--- config_office/configure.in.old	2006-11-30 21:09:12.000000000 +0100
+++ config_office/configure.in	2007-01-08 16:36:33.000000000 +0100
@@ -1299,6 +1299,24 @@
 fi
 AC_SUBST(HAVE_LD_BDIRECT)
 
+if test "$GCC" = "yes"; then
+   AC_MSG_CHECKING( for --hash-style=gnu linker support )
+   hash_style_ldflags_save=$LDFLAGS
+   LDFLAGS="$LDFLAGS -Wl,--hash-style=gnu"
+   AC_LINK_IFELSE([AC_LANG_PROGRAM([
+   #include <stdio.h>
+   ],[
+    printf ("hello world\n");
+   ])], HAVE_LD_HASH_STYLE=TRUE, HAVE_LD_HASH_STYLE=FALSE)
+   if test "z$HAVE_LD_HASH_STYLE" = "zTRUE"; then
+     AC_MSG_RESULT( found )
+   else
+     AC_MSG_RESULT( not found )
+   fi
+   LDFLAGS=$hash_style_ldflags_save
+fi
+AC_SUBST(HAVE_LD_HASH_STYLE)
+
 dnl ===================================================================
 dnl Search all the common names for GNU make
 dnl ===================================================================
--- config_office/set_soenv.in.old	2006-11-30 21:09:12.000000000 +0100
+++ config_office/set_soenv.in	2007-01-08 16:36:21.000000000 +0100
@@ -1735,6 +1735,7 @@
 ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
 		"@HAVE_GCC_VISIBILITY_FEATURE@", "e" );
 ToFile( "HAVE_LD_BDIRECT",   "@HAVE_LD_BDIRECT@","e" );
+ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
 ToFile( "CXX",               $CXX,               "e" );
 ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
 ToFile( "MINGWSTRIP",        "@MINGWSTRIP@",     "e" );
--- solenv/inc/unxlngppc.mk.old	2006-11-30 21:08:51.000000000 +0100
+++ solenv/inc/unxlngppc.mk	2007-01-08 15:57:16.000000000 +0100
@@ -176,6 +176,11 @@
 .IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
 LINKFLAGS += -Wl,-Bdirect
 .ENDIF
+.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+LINKFLAGS += -Wl,--hash-style=gnu
+.ELSE
+LINKFLAGS += -Wl,-zdynsort
+.ENDIF
 
 # linker flags for linking applications
 LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
--- solenv/inc/unxlngs.mk.old	2006-11-30 21:08:51.000000000 +0100
+++ solenv/inc/unxlngs.mk	2007-01-08 15:57:16.000000000 +0100
@@ -176,6 +176,11 @@
 .IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
 LINKFLAGS += -Wl,-Bdirect
 .ENDIF
+.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+LINKFLAGS += -Wl,--hash-style=gnu
+.ELSE
+LINKFLAGS += -Wl,-zdynsort
+.ENDIF
 
 # linker flags for linking applications
 LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
--- solenv/inc/unxlngi6.mk.old	2006-11-30 21:08:51.000000000 +0100
+++ solenv/inc/unxlngi6.mk	2007-01-08 15:57:16.000000000 +0100
@@ -176,6 +176,11 @@
 .IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
 LINKFLAGS += -Wl,-Bdirect
 .ENDIF
+.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+LINKFLAGS += -Wl,--hash-style=gnu
+.ELSE
+LINKFLAGS += -Wl,-zdynsort
+.ENDIF
 
 # linker flags for linking applications
 LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
--- solenv/inc/unxlngx6.mk.old2	2007-01-08 16:28:14.000000000 +0100
+++ solenv/inc/unxlngx6.mk	2007-01-08 16:27:59.000000000 +0100
@@ -148,6 +148,11 @@
 .IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
 LINKFLAGS += -Wl,-Bdirect
 .ENDIF
+.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+LINKFLAGS += -Wl,--hash-style=gnu
+.ELSE
+LINKFLAGS += -Wl,-zdynsort
+.ENDIF
 
 # linker flags for linking applications
 LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
--- icu/makefile.mk.old	2006-11-30 21:08:51.000000000 +0100
+++ icu/makefile.mk	2007-01-08 16:43:33.000000000 +0100
@@ -75,10 +75,12 @@
 DISABLE_64BIT=--enable-64bit-libs=no
 .ENDIF			# "$(OS)"=="SOLARIS"
 
-.IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
-LDFLAGSADD=-Wl,-Bdirect
-.ELSE
 LDFLAGSADD=
+.IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
+LDFLAGSADD+= -Wl,-Bdirect
+.ENDIF
+.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+LDFLAGSADD += -Wl,--hash-style=gnu
 .ENDIF
 
 CONFIGURE_DIR=source
dummy line to avoid confusing diff-mode
--- stlport/makefile.mk.old	2006-11-30 21:08:51.000000000 +0100
+++ stlport/makefile.mk	2007-01-08 16:45:55.000000000 +0100
@@ -156,6 +156,9 @@
 .IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
 CXX+= -Wl,-Bdirect
 .ENDIF
+.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+CXX+= -Wl,--hash-style=gnu
+.ENDIF
 
 .IF "$(COM)"=="C52"
 BUILD_ACTION=make
