Bug 137323

Summary: scripts/basic/split-include fails to stat include/linux/autoconf.h
Product: [Fedora] Fedora Reporter: Christoph Hellwig <hch>
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: pfrields, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-10-06 03:56:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Christoph Hellwig 2004-10-27 15:29:01 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.7.3)
Gecko/20041007 Epiphany/1.2.8

Description of problem:
When trying to build a kernel (rpmbuild --rebuild
kernel-2.6.9-1.643.src.rpm or manual build of mainline) the build
fails with

-------- snip --------
scripts/basic/split-include: include/linux/autoconf.h: Invalid argument
make: *** [include/config/MARKER] Error 1
-------- snip --------

putting some instrumentation in there shows that the first stat
(in line 76) fails with -ENODEV.

strace doesn't really give usefull output, it doesn't even include
the failing stat:

-------- snip --------
execve("./scripts/basic/split-include",
["./scripts/basic/split-include", "include/linux/autoconf.h",
"include/linux/config"], [/* 23 vars */]) = 0
uname({sys="Linux", node="bunny.lst.de", ...}) = 0
brk(0)                                  = 0x502000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a95556000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=112215, ...}) = 0
mmap(NULL, 112215, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2a95557000
close(3)                                = 0
open("/lib64/tls/libc.so.6", O_RDONLY)  = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\305\301"...,
640) = 640
lseek(3, 624, SEEK_SET)                 = 624
read(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\4\0\0\0"...,
32) = 32
fstat(3, {st_mode=S_IFREG|0755, st_size=1606872, ...}) = 0
mmap(0x3fd8c00000, 2297832, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3fd8c00000
mprotect(0x3fd8d28000, 1085416, PROT_NONE) = 0
mmap(0x3fd8e00000, 184320, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x3fd8e00000
mmap(0x3fd8e2d000, 16360, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3fd8e2d000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a95573000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a95574000
mprotect(0x3fd8e27000, 16384, PROT_READ) = 0
mprotect(0x3fd8b14000, 4096, PROT_READ) = 0
arch_prctl(0x1002, 0x2a95573b00)        = 0
munmap(0x2a95557000, 112215)            = 0
write(2, "./scripts/basic/split-include: ", 31) = 31
write(2, "include/linux/autoconf.h: Invali"..., 43) = 43
exit_group(0x1, 0x1, 0x3fd8c64d60, 0, 0x3c <unfinished ... exit status 1>
-------- snip --------

This is a FC3 install updated to yersterday's rawhide.

Version-Release number of selected component (if applicable):
2.6.9-1.643

How reproducible:
Always

Steps to Reproduce:
1. try to build a kernel
2.
3.
    

Actual Results:  split-include aborts

Expected Results:  split-include creates include/linux/config/* files

Additional info:

Comment 1 Dave Jones 2004-10-29 00:00:44 UTC
-ENODEV  ?! wtf ?

can you add a printf ("FOO! %s\n", str_file_autoconf);

and find out what its trying to open ?
Here it seems to do the right thing (on the -637 kernel, and nothing really
stands out as obvious candidate between 637 -> 643).

I'll reboot in a sec, and try to reproduce.

Does your /dev look ok ?  Running latest udev ?


Comment 2 Dave Jones 2004-10-29 00:09:56 UTC
hmm, works just fine for me (on x86-64 too)

with my above debug printf it just prints out 'include/linux/autoconf.h'
as expected. I'm strongly suspecting something has hosed your /dev


Comment 3 Dave Jones 2005-09-28 10:04:00 UTC
did this ever get fixed ?