Problem building glibc

Michael Eager eager@eagerm.com
Tue May 19 23:45:00 GMT 2015


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



More information about the Libc-alpha mailing list