This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Use "|" instead of "+" when combine the _IO_LINE_BUF and _IO_UNBUFFERED flags


On 07/08/2015 05:44 AM, Siddhesh Poyarekar wrote:
> On 8 July 2015 at 14:25, Carlos O'Donell <carlos@redhat.com> wrote:
>> This is a super annoying failure mode that happens when `make` fails or
>> is not run. The fix is as follows, and I'll check it in shortly.
>>
>> 2015-07-08  Carlos O'Donell  <carlos@redhat.com>
>>
>>         * Makefile ($(objpfx)check-local-headers.out):
>>         Redirect input from /dev/null.
>>
>> diff --git a/Makefile b/Makefile
>> index 658ccfa..c88b2e5 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -262,7 +262,7 @@ endif
>>
>>  $(objpfx)check-local-headers.out: scripts/check-local-headers.sh
>>         AWK='$(AWK)' scripts/check-local-headers.sh \
>> -         "$(includedir)" "$(objpfx)" > $@; \
>> +         "$(includedir)" "$(objpfx)" < /dev/null > $@; \
>>         $(evaluate-test)
> 
> That looks like a hack.  Does it hang because $(objpfx) and
> $(includedir) are not set?  A better fix ought to be to ensure that
> either 'make check' invokes make (and hence sets things up for the
> check target) or it fails early and cleanly, i.e. irrespective of
> whether the check-local-headers test is run or not.

It's not a hack. The script reads from stdin for the list of *.d
files that were created by the build, but if there are no *.d files
the shell expansion is empty and that forces the script to read from
the parent's inherited stdin. Since the parent never writes anything
to stdin the awk script blocks on the read forever. As Andreas notes
it should dep on the *.d files existing, and that is true. However,
even if that were fixed we should still read from /dev/null and
fail the test even if all the *.d files were deleted between the
time they were created and the script ran (robust).

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]