RFR: JDK-8251541 "no symbols" printed when building hotspot
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Fri Aug 14 13:21:33 UTC 2020
On 2020-08-14 14:49, Erik Joelsson wrote:
> On 2020-08-13 08:26, Magnus Ihse Bursie wrote:
>> Recently a lot of "no symbols" is shown when building hotspot, at
>> least on macOS.
>>
>> This comes from the new/delete operator check which uses nm.
>>
>> I have checked the source of these problems. Several files are now
>> empty due to refactoring and the use of (incidentally) file-wide
>> #ifdefs. So we just need to handle the fact that nm can write "no
>> symbols" to stderr.
>>
>> I also refactored the operator checking to use ExecuteWithLog, which
>> would have helped me track down this issue, had it been there from
>> the beginning. :)
>>
> I'm not sure how ExecuteWithLog helps. In your version of this recipe,
> both stdout and stderr are piped together into the greps and then
> stored in $1.op_check, which happens to be the same file
> ExecuteWithLog is piping output to, so there are two sets of pipes to
> this file. To me this looks like any output on stderr is will just get
> filtered out and the pipes ExecuteWithLog adds will never do anything.
Good point. I insist though that, had we had ExecuteWithLog, the error
message to stderr would have been easier for me to track, when we didn't
pipe stderr. :-)
However, ExecuteWithLog does other things than logging the output. It
also stored the command line for easy reproducability. My intention is
to long-term convert all external execution to using ExecuteWithLog (or
some form thereof).
So if you don't mind, I'd still like to keep it.
/Magnus
>
> /Erik
>
>> I have verified that this solves the bug. I have also for testing
>> introduced a incorrect use of "new" and verified that this still
>> trigger.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8251541
>> WebRev:
>> http://cr.openjdk.java.net/~ihse/JDK-8251541-stop-printing-no-symbol/webrev.01
>>
>> /Magnus
More information about the build-dev
mailing list