problem with symlinks during libstdc++ build (was: gcc-help Digest 18 Jun 2008 01:13:58 -0000 Issue 2753)
Ralf Wildenhues
Ralf.Wildenhues@gmx.de
Wed Jun 18 18:19:00 GMT 2008
Hello Bob,
* Bob Walters wrote on Wed, Jun 18, 2008 at 07:05:05AM CEST:
> On Jun 17, 2008, at 9:13 PM, Ralf Wildenhues wrote:
>
>>> It looks as if the "($LN_S) $? ." command is failing.
>>
>> Can you show how exactly they fail? Remove the @ preceding the
>> commands and the 2>/dev/null to see what happens, and post the output
>> of the failure, please.
>
> I removed the two bits/gslice links, and the stamp-bits file as an
> experiment.
> Switched back to the std Makefile (with $?)
>
> make showed:
>
> mkdir -p ./bits
> cd ./bits && ln -s /Users/bobw/Desktop/gcc.svn/gcc/libstdc++-v3/
> include/bits/basic_string.h /Users/bobw/Desktop/gcc.svn/gcc/libstdc++-
> v3/include/bits/cpp_type_traits.h /Users/bobw/Desktop/gcc.svn/gcc/
> libstdc++-v3/include/bits/deque.tcc /Users/bobw/Desktop/gcc.svn/gcc/
> libstdc++-v3/include/bits/fstream.tcc /Users/bobw/Desktop/gcc.svn/gcc/
> libstdc++-v3/include/bits/stl_deque.h /Users/bobw/Desktop/gcc.svn/gcc/
[...]
> libstdc++-v3/include/bits/vector.tcc .
> ln: ./basic_string.h: File exists
[...]
> make: [stamp-bits] Error 1 (ignored)
>
> Everything above looks right, except that the two gslice headers are not
> in $? argument list, as you can see. I confirmed that they are in
> ${bits_headers}, and the files exist in the source dirs. Changing the
> $? argument in the make to ${bit_headers} results in a much longer
> command containing all the source files in ${bit_headers} producing the
> correct links.
That's weird, though. $? lists all prerequisites that are newer than
the target, in this case stamp-bits. If the target does not exist, $?
should list all prerequisites.
Please check whether your Apple-built make 3.81 has patches compared to
upstream. FWIW, I tried 3.79, 3.79.1, 3.80, and 3.81, on
i686-pc-linux-gnu, and all of them worked with the experiment you
described above. Done to exclude that this bug which looks related:
<http://savannah.gnu.org/bugs/?16051> isn't the cause.
Does make perchance find a stray stamp-bits file in a VPATH search (that
may come from, say, an earlier, non-VPATH build)? You can use
make -d stamp-bits
in order to find out.
Thanks,
Ralf
More information about the Gcc-help
mailing list