Re: [WARNING -mm] 2.6.18-rc2-mm1 build kills /dev/null!?

From: Andreas Mohr
Date: Thu Jul 27 2006 - 06:15:03 EST


Hi,

On Thu, Jul 27, 2006 at 12:11:28PM +0200, Andreas Mohr wrote:
> Hello all,
>
> for some reason a 2.6.18-rc2-mm1 build seems to kill my /dev/null device!

Replying to myself, this could easily be due to:

--- linux-2.6.18-rc2/scripts/Kbuild.include 2006-07-15 21:41:08.000000000 -
0700
+++ devel/scripts/Kbuild.include 2006-07-27 01:15:54.000000000 -0700
@@ -8,9 +8,13 @@ empty :=
space := $(empty) $(empty)

###
+# Name of target with a '.' as filename prefix. foo/bar.o => foo/.bar.o
+dot-target = $(dir $@).$(notdir $@)
+
+###
# The temporary file to save gcc -MD generated dependencies must not
# contain a comma
-depfile = $(subst $(comma),_,$(@D)/.$(@F).d)
+depfile = $(subst $(comma),_,$(dot-target).d)

###
# filename of target with directory and extension stripped
@@ -59,6 +63,12 @@ as-option = $(shell if $(CC) $(CFLAGS) $
-xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \
else echo "$(2)"; fi ;)

+# as-instr
+# Usage: cflags-y += $(call as-instr, instr, option1, option2)
+
+as-instr = $(shell if echo -e "$(1)" | $(AS) -Z -o /dev/null \
+ 2>&1 >/dev/null ; then echo "$(2)"; else echo "$(3)"; fi;)
+
# cc-option
# Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586)

@@ -77,14 +87,19 @@ cc-option-align = $(subst -functions=0,,

# cc-version
# Usage gcc-ver := $(call cc-version, $(CC))
-cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh \
- $(if $(1), $(1), $(CC)))
+cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC))

# cc-ifversion
# Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1)
cc-ifversion = $(shell if [ $(call cc-version, $(CC)) $(1) $(2) ]; then \
echo $(3); fi;)

+# ld-option
+# Usage: ldflags += $(call ld-option, -Wl$(comma)--hash-style=both)
+ld-option = $(shell if $(CC) $(1) \
+ -nostdlib -o /dev/null -xc /dev/null \
+ > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)
+


Possibly an older binutils doesn't have a "if *output* file /dev/null,
then kill output instead of overwriting file" check builtin as IIRC newer
utils often have?

# which ld
/usr/bin/ld

# rpm -qf /usr/bin/ld
binutils-2.15.92.0.2-5

Andreas Mohr
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/