diff --git a/make/linux/makefiles/gcc.make b/make/linux/makefiles/gcc.make index 4a01c29c50e720ba0c3e97ff9c3203965812170f..1a1f1465c81be5c0d6b82c3498ae37c5084f7232 100644 --- a/make/linux/makefiles/gcc.make +++ b/make/linux/makefiles/gcc.make @@ -131,6 +131,14 @@ endif # Enable linker optimization LFLAGS += -Xlinker -O1 +# If this is a --hash-style=gnu system, use --hash-style=both +# The gnu .hash section won't work on some Linux systems like SuSE 10. +_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | grep -- '--hash-style=gnu') +ifneq ($(_HAS_HASH_STYLE_GNU),) + LDFLAGS_HASH_STYLE = -Wl,--hash-style=both +endif +LFLAGS += $(LDFLAGS_HASH_STYLE) + # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. MAPFLAG = -Xlinker --version-script=FILENAME