stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: missing build line for 22.locale.codecvt.out
Date Thu, 08 Nov 2007 05:36:45 GMT
Travis Vitek wrote:
> 
> 
> Martin Sebor wrote:
>> It looks like the implicit rules are somehow causing it. Passing
>> -r to make to disable them make it work:
>>
>> $ rm -f 22.locale.codecvt.out.o 22.locale.codecvt.out; \
>>       make 22.locale.codecvt.out && ls -l 22.locale.codecvt.out \
>>    || rm -f 22.locale.codecvt.out.o 22.locale.codecvt.out; \
>>    make -r 22.locale.codecvt.out && ls -l 22.locale.codecvt.out
>> make: Nothing to be done for `22.locale.codecvt.out'.
>> 22.locale.codecvt.out: No such file or directory
>> gcc -c -I/build/sebor/stdcxx/include/ansi -D_RWSTDDEBUG 
>> -D_RWSTD_USE_CONFIG -I/build/sebor/stdcxx/include 
>> -I/build/sebor/stdcxx-gcc-4.1.0-11s/include 
>> -I/build/sebor/stdcxx/../rwtest -I/build/sebor/stdcxx/../rwtest/include 
>> -I/build/sebor/stdcxx/tests/include  -pedantic -nostdinc++ -g  -W -Wall 
>> -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long 
>> /build/sebor/stdcxx/tests/localization/22.locale.codecvt.out.cpp
>> gcc 22.locale.codecvt.out.o -o 22.locale.codecvt.out 
>> -L/build/sebor/stdcxx-gcc-4.1.0-11s/rwtest -lrwtest11s 
>> -L/build/sebor/stdcxx-gcc-4.1.0-11s/lib -lstd11s  -lsupc++ -lm
>> rm 22.locale.codecvt.out.o
>> -rwxr-xr-x   1 sebor    devel    3032001 Mar 12 12:31
>> 22.locale.codecvt.out
>>
> 
> Well `gmake -r 22.locale.codecvt.out' doesn't work on AIX with gmake v3.80.
> If I remove the %.out rule from makefile.rules, I can use -r and the problem
> goes away.

I can confirm the same behavior with GNU make 3.81 on Linux.

I don't understand the why -r switch works. This is the output
I get from make -d after disabling the %.out: % rule:

$    ls -l 22.locale.codecvt.* \
   || make -d 22.locale.codecvt.out 2>&1 | tail -n 11 \
   && ls -l 22.locale.codecvt.*
ls: 22.locale.codecvt.*: No such file or directory
  No implicit rule found for `22.locale.codecvt.out'.
   Considering target file 
`/build/sebor/stdcxx-gcc-4.1.2-15S/lib/libstd15S.a'.
    Finished prerequisites of target file 
`/build/sebor/stdcxx-gcc-4.1.2-15S/lib/libstd15S.a'.
   No need to remake target 
`/build/sebor/stdcxx-gcc-4.1.2-15S/lib/libstd15S.a'.
   Considering target file 
`/build/sebor/stdcxx-gcc-4.1.2-15S/rwtest/librwtest15S.a'.
    Finished prerequisites of target file 
`/build/sebor/stdcxx-gcc-4.1.2-15S/rwtest/librwtest15S.a'.
   No need to remake target 
`/build/sebor/stdcxx-gcc-4.1.2-15S/rwtest/librwtest15S.a'.
  Finished prerequisites of target file `22.locale.codecvt.out'.
Must remake target `22.locale.codecvt.out'.
Successfully remade target file `22.locale.codecvt.out'.
make: Nothing to be done for `22.locale.codecvt.out'.
ls: 22.locale.codecvt.*: No such file or directory

> 
> I find this issue particularly annoying because it happens across the board
> and it isn't caused by a compiler bug or even an issue with the code itself.
> If we refuse to rename the test to eliminate this issue, then we should do
> _something_ to eliminate the error. I realize that renaming the test is a
> less than ideal solution, but something is definitely better than nothing.

Ugh. I really don't want to hack around it by renaming the test.
If it bothers you that much why don't you take the time to figure
out what's behind the make behavior we don't understand? We'll
all learn something :)

Martin

Mime
View raw message