FS#57402 - [qt5-base] 5.10.0-4 build broke moc's #include handling

Attached to Project: Arch Linux
Opened by Matt Corallo (BlueMatt) - Tuesday, 06 February 2018, 21:22 GMT
Last edited by Antonio Rojas (arojas) - Tuesday, 06 February 2018, 22:04 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Upgraded from qt-base-5.10.0-1 to qt-base-5.10.0-4 (no other package changes) and moc stopped correctly handling #define's in #include's.

In a container (so nothing else changed and I reproduced a few times), running /usr/bin/moc-qt5 with some signals that are inside #ifdefs for something which is #define'd inside of an #include and the signals are no longer generated.

Specifically, running moc-qt5 against the following header file no longer generates the symbols inside of #ifdef ENABLE_WALLETs: https://github.com/bitcoin/bitcoin/blob/v0.16.0rc2/src/qt/bitcoingui.h#L178
Note that I removed the "#if defined(HAVE_CONFIG_H)" check at the top and changed the config/bitcoin-config.h file to only have a single "#define ENABLE_WALLET" line.

If a "#define ENABLE_WALLET" line is added in place of the #include there things work fine.

Really no clue what the hell is going on, but given I've isolated it down to the single package upgrade in a container seems to indicate its a build issue in the package?
This task depends upon

Closed by  Antonio Rojas (arojas)
Tuesday, 06 February 2018, 22:04 GMT
Reason for closing:  Duplicate
Additional comments about closing:   FS#57254 
Comment by Antonio Rojas (arojas) - Tuesday, 06 February 2018, 21:36 GMT
what kind of container?
Comment by Matt Corallo (BlueMatt) - Tuesday, 06 February 2018, 22:02 GMT
Docker. Just ran an interactive container, ran moc-qt5, checked output, upgraded qt5-base, ran moc-qt5 again and the output was missing slots.

Loading...