summaryrefslogtreecommitdiff
path: root/extlinux
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-02-06 16:33:39 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-02-06 16:33:39 -0800
commitdf2e79ce976ff922c46d56183a6a904f9d5b8cf6 (patch)
tree192c20e0cde3f250d40515b303e1944e30fc1c74 /extlinux
parent9b7224f6a3419bba497b2a47a0c27f8f4893a3cc (diff)
downloadsyslinux-df2e79ce976ff922c46d56183a6a904f9d5b8cf6.tar.gz
Deal with various distributions breaking gcc in weird ways
Diffstat (limited to 'extlinux')
-rw-r--r--extlinux/Makefile8
1 files changed, 7 insertions, 1 deletions
diff --git a/extlinux/Makefile b/extlinux/Makefile
index a450a3dc..8d347a98 100644
--- a/extlinux/Makefile
+++ b/extlinux/Makefile
@@ -1,8 +1,14 @@
+gcc_ok = $(shell if gcc $(1) ../dummy.c -o /dev/null 2>/dev/null; \
+ then echo '$(1)'; else echo '$(2)'; fi)
+
+comma := ,
+LDHASH := $(call gcc_ok,-Wl$(comma)--hash-style=both,)
+
CC = gcc
OPTFLAGS = -g -Os
INCLUDES = -I. -I.. -I../libfat
CFLAGS = -W -Wall -Wno-sign-compare -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES)
-LDFLAGS = -s
+LDFLAGS = $(LDHASH) -s
SRCS = extlinux.c ../extlinux_bss_bin.c ../extlinux_sys_bin.c
OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))