Ok by me.
/Erik
On 2020-08-14 06:21, Magnus Ihse Bursie wrote:
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