summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuciano Rocha <strange@nsk.no-ip.org>2007-05-23 21:50:16 +0100
committerH. Peter Anvin <hpa@zytor.com>2007-05-25 15:01:09 -0700
commit1d81d5e3944dd5ac912150bc705fa7259eade541 (patch)
treee2b2854cb4c660521d4e3b413c944816daaa800e
parent7f2f6e3cec8eca7710acdd0b82b095834aecd400 (diff)
downloadsyslinux-1d81d5e3944dd5ac912150bc705fa7259eade541.tar.gz
Don't clobber /dev/null when compiling as root
Compiling as root is highly discouraged, but some people do it anyway. gcc_ok, however, can clobber /dev/null due to "-o /dev/null"; this is bad. Instead, write a temporary file and delete it.
-rw-r--r--Makefile6
-rw-r--r--com32/lib/MCONFIG6
-rw-r--r--com32/libutil/Makefile6
-rw-r--r--com32/modules/Makefile6
-rw-r--r--com32/samples/Makefile6
-rw-r--r--dos/Makefile6
-rw-r--r--extlinux/Makefile6
-rw-r--r--mbr/Makefile6
-rw-r--r--memdisk/Makefile6
-rw-r--r--menu/Makefile6
-rw-r--r--mtools/Makefile6
-rw-r--r--sample/Makefile6
-rw-r--r--unix/Makefile6
13 files changed, 52 insertions, 26 deletions
diff --git a/Makefile b/Makefile
index 5a27526c..24450357 100644
--- a/Makefile
+++ b/Makefile
@@ -17,8 +17,10 @@
# No builtin rules
MAKEFLAGS = -r
-gcc_ok = $(shell if gcc $(1) dummy.c -o /dev/null 2>/dev/null; \
- then echo '$(1)'; else echo '$(2)'; fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) dummy.c -o $$tmpf 2>/dev/null; \
+ then echo '$(1)'; else echo '$(2)'; fi; rm -f $$tmpf)
comma := ,
LDHASH := $(call gcc_ok,-Wl$(comma)--hash-style=both,)
diff --git a/com32/lib/MCONFIG b/com32/lib/MCONFIG
index 461ada44..781292ba 100644
--- a/com32/lib/MCONFIG
+++ b/com32/lib/MCONFIG
@@ -1,7 +1,9 @@
# -*- makefile -*-
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
GCCOPT := $(call gcc_ok,-m32,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/com32/libutil/Makefile b/com32/libutil/Makefile
index 1dac1f76..15393533 100644
--- a/com32/libutil/Makefile
+++ b/com32/libutil/Makefile
@@ -29,8 +29,10 @@
## Utility companion library for the COM32 library
##
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/com32/modules/Makefile b/com32/modules/Makefile
index bef45a87..9be0b85a 100644
--- a/com32/modules/Makefile
+++ b/com32/modules/Makefile
@@ -14,8 +14,10 @@
## samples for syslinux users
##
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/com32/samples/Makefile b/com32/samples/Makefile
index b694a489..b2544e6d 100644
--- a/com32/samples/Makefile
+++ b/com32/samples/Makefile
@@ -14,8 +14,10 @@
## samples for syslinux users
##
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/dos/Makefile b/dos/Makefile
index 5fd52d1b..53406b19 100644
--- a/dos/Makefile
+++ b/dos/Makefile
@@ -1,5 +1,7 @@
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-ffreestanding,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/extlinux/Makefile b/extlinux/Makefile
index 8d347a98..d2ea6f9b 100644
--- a/extlinux/Makefile
+++ b/extlinux/Makefile
@@ -1,5 +1,7 @@
-gcc_ok = $(shell if gcc $(1) ../dummy.c -o /dev/null 2>/dev/null; \
- then echo '$(1)'; else echo '$(2)'; fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) ../dummy.c -o $$tmpf 2>/dev/null; \
+ then echo '$(1)'; else echo '$(2)'; fi; rm -f $$tmpf)
comma := ,
LDHASH := $(call gcc_ok,-Wl$(comma)--hash-style=both,)
diff --git a/mbr/Makefile b/mbr/Makefile
index 7662a0a3..87744131 100644
--- a/mbr/Makefile
+++ b/mbr/Makefile
@@ -14,8 +14,10 @@
# Makefile for MBR
#
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-ffreestanding,) $(call gcc_ok,-fno-stack-protector)
diff --git a/memdisk/Makefile b/memdisk/Makefile
index 72234cab..161a163e 100644
--- a/memdisk/Makefile
+++ b/memdisk/Makefile
@@ -12,8 +12,10 @@
VERSION := $(shell cat ../version)
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,)
ALIGN := $(call gcc_ok,-falign-functions=0 -falign-jumps=0 -falign-loops=0,-malign-functions=0 -malign-jumps=0 -malign-loops=0)
diff --git a/menu/Makefile b/menu/Makefile
index cee1c3af..702f4563 100644
--- a/menu/Makefile
+++ b/menu/Makefile
@@ -14,8 +14,10 @@
## samples for syslinux users
##
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/mtools/Makefile b/mtools/Makefile
index 546e3d14..16d63a69 100644
--- a/mtools/Makefile
+++ b/mtools/Makefile
@@ -1,5 +1,7 @@
-gcc_ok = $(shell if gcc $(1) ../dummy.c -o /dev/null 2>/dev/null; \
- then echo '$(1)'; else echo '$(2)'; fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) ../dummy.c -o $$tmpf 2>/dev/null; \
+ then echo '$(1)'; else echo '$(2)'; fi; rm -f $$tmpf)
comma := ,
LDHASH := $(call gcc_ok,-Wl$(comma)--hash-style=both,)
diff --git a/sample/Makefile b/sample/Makefile
index f301b9f1..cc22a984 100644
--- a/sample/Makefile
+++ b/sample/Makefile
@@ -14,8 +14,10 @@
## samples for syslinux users
##
-gcc_ok = $(shell if gcc $(1) -c -x c /dev/null -o /dev/null 2>/dev/null; \
- then echo $(1); else echo $(2); fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
+ then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-ffreestanding,) $(call gcc_ok,-fno-stack-protector,)
diff --git a/unix/Makefile b/unix/Makefile
index f0ab279a..b0465299 100644
--- a/unix/Makefile
+++ b/unix/Makefile
@@ -1,5 +1,7 @@
-gcc_ok = $(shell if gcc $(1) ../dummy.c -o /dev/null 2>/dev/null; \
- then echo '$(1)'; else echo '$(2)'; fi)
+TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
+
+gcc_ok = $(shell tmpf=$(TMPFILE); if gcc $(1) ../dummy.c -o $$tmpf 2>/dev/null; \
+ then echo '$(1)'; else echo '$(2)'; fi; rm -f $$tmpf)
comma := ,
LDHASH := $(call gcc_ok,-Wl$(comma)--hash-style=both,)