This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Problem building glibc
- From: Michael Eager <eager at eagerm dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Tue, 19 May 2015 15:44:47 -0700
- Subject: Re: Problem building glibc
- Authentication-results: sourceware.org; auth=none
- References: <555B84FA dot 7090902 at eagerm dot com> <20150519194000 dot 1E23E2C3AD8 at topped-with-meat dot com>
On 05/19/2015 12:39 PM, Roland McGrath wrote:
I can't reproduce any problem with make-3.81, though I didn't try using
trunk binutils and gcc too. As you can imagine, people are not commonly
hitting anything like this or we would have addressed it. So you'll have
to do your own debugging.
The scenario of a header file being installed during the build suggests
that the include searching is going wrong. Nothing from the install
directory should be used during the build. I'd look at the .d (or .dt)
files in string/ and see which ones refer to anything in the install
directory, then figure out why it's coming out that way.
There are a number of dependencies on headers in the install directory.
Most are the headers installed by gcc, under ...-linux-gnu/4.9.2. If
I filter those out, there are dependencies for install/include/limits.h.
Once this is touched, almost everything needs to be remade.
Should I configure with --with-headers pointing somewhere else?
Finding limits.h from the wrong place doesn't really explain the infinite
iteration behavior. But it's the most obvious place to look from what
you've described, and fixing the root cause of that might make everything
else shape up.
Running "make -d" I see this:
Considering target file `/local/work/fsf-head/build/glibc/iconv/stamp.o'.
Considering target file `/local/work/fsf-head/build/glibc/iconv/iconv_open.o'.
Looking for an implicit rule for `/local/work/fsf-head/build/glibc/iconv/iconv_open.o'.
Trying pattern rule with stem `iconv_open'.
Trying implicit prerequisite `../sysdeps/unix/sysv/linux/x86_64/64/iconv_open.S'.
Trying pattern rule with stem `iconv_open'.
...
Prerequisite `/local/work/fsf-head/build/glibc/gnu/lib-names-64.stmp' is newer than
target `/local/work/fsf-head/build/glibc/gnu/lib-names-64.h'.
...
Prerequisite `/local/work/fsf-head/build/glibc/libc-modules.stmp' is newer than target
`/local/work/fsf-head/build/glibc/libc-modules.h'.
Must remake target `/local/work/fsf-head/build/glibc/libc-modules.h'.
...
Pruning file `../include/limits.h'.
Considering target file `force-install'.
File `force-install' does not exist.
Finished prerequisites of target file `force-install'.
Must remake target `force-install'.
Successfully remade target file `force-install'.
Finished prerequisites of target file `/local/work/fsf-head/install/include/limits.h'.
Prerequisite `../include/limits.h' is older than target
`/local/work/fsf-head/install/include/limits.h'.
Prerequisite `force-install' of target `/local/work/fsf-head/install/include/limits.h'
does not exist.
Must remake target `/local/work/fsf-head/install/include/limits.h'.
There are hundreds of "Must remake target" lines, including several for
install/include/limits.h.
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077