Package: g++-4.9
Version: 4.9.2-8
Control: affects -1 src:qtbase-opensource-src
Dear gcc maintainers,
In qtbase-opensource-src 5.4.0+dfsg, src/tools/moc/main.cpp contains the following code:
if (output.size()) { // output file specified
out = fopen(QFile::encodeName(output).constData(), "w"); // create output file
if (!out)
{
fprintf(stderr, "moc: Cannot create %s\n", QFile::encodeName(output).constData());
return 1;
}
} else { // use stdout
out = stdout;
}
However, when moc is compiled, it behaves very strangely in this place:
* fopen does not seem to be called at all (at least there is no corresponding
open syscall in strace output), so `out' remains a null pointer.
* Only the "%s\n" part is printed to stderr, without the "moc: Cannot create "
part.
An example can be seen in qtbase-opensource-src/experimental build log.
A relevant part of it (simplified):
../bin/moc animation/qabstractanimation.h -o .moc/moc_qabstractanimation.cpp
.moc/moc_qabstractanimation.cpp
make[3]: *** [.moc/moc_qabstractanimation.cpp] Error 1
The last `write' call in strace output is:
write(2, ".moc/moc_qabstractanimation.cpp\n", 32) = 32
This only happens on sparc architecture.
Unfortunately, I did not manage to reproduce this with a smaller example, but
I can reliably reproduce this with moc on smetana.debian.org.
--
Dmitry ShachnevAttachment:
signature.asc
Description: OpenPGP digital signature