Closed Bug 1679148 Opened 3 years ago Closed 3 years ago

ERROR - /builds/worker/checkouts/gecko/comm/mail/app/nsMailApp.cpp:174:18: error: variable has incomplete type 'XREShellData'

Categories

(Thunderbird :: Upstream Synchronization, defect, P1)

Tracking

(thunderbird_esr78 unaffected, thunderbird84 unaffected)

RESOLVED FIXED
85 Branch
Tracking Status
thunderbird_esr78 --- unaffected
thunderbird84 --- unaffected

People

(Reporter: mkmelin, Assigned: mkmelin)

References

(Regression)

Details

(Keywords: regression)

Attachments

(2 files)

Trees are red. Seems there's an m-c problem with parsing logs as well (m-c closed)

Anway, https://firefoxci.taskcluster-artifacts.net/S1TTQUS2QHeL3IJ5fwXfgw/0/public/logs/live_backing.log ... is showing

[task 2020-11-24T10:41:50.768Z] 10:41:50 ERROR - /builds/worker/checkouts/gecko/comm/mail/app/nsMailApp.cpp:174:18: error: variable has incomplete type 'XREShellData'
[task 2020-11-24T10:41:50.768Z] 10:41:50 INFO - XREShellData shellData;
[task 2020-11-24T10:41:50.768Z] 10:41:50 INFO - ^
[task 2020-11-24T10:41:50.769Z] 10:41:50 INFO - /builds/worker/checkouts/gecko/xpcom/build/nsXULAppAPI.h:27:8: note: forward declaration of 'XREShellData'
[task 2020-11-24T10:41:50.769Z] 10:41:50 INFO - struct XREShellData;
[task 2020-11-24T10:41:50.769Z] 10:41:50 INFO - ^
[task 2020-11-24T10:41:50.769Z] 10:41:50 INFO - 1 error generated.
[task 2020-11-24T10:41:50.769Z] 10:41:50 INFO - /builds/worker/checkouts/gecko/config/rules.mk:674: recipe for target 'nsMailApp.o' failed

Something from https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=0e1c1a720ca740cce683878abb6836de6520c9ce - probably Simons changes to includes

There's plenty of more, once one gets past that...

This seems to be the c-c part. Some includes may or may not bee necessary. I'm sure some things could be done better...

But we need a mozilla-central fix as well, will put that into bug 1673931.

Assignee: nobody → mkmelin+mozilla
Status: NEW → ASSIGNED
Regressed by: 1673931

Spoke too soon, build didn't finish. There's even one more problem to be resolved:

 0:07.10 In file included from /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.cpp:5:
 0:07.10 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:14:8: error: explicit specialization of undeclared template struct 'ParamTraits'
 0:07.10 struct ParamTraits<nsITransportSecurityInfo*> {
 0:07.10        ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 0:07.10 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:21:8: error: explicit specialization of non-template struct 'ParamTraits'
 0:07.10 struct ParamTraits<nsIX509Cert*> {
 0:07.10        ^          ~~~~~~~~~~~~~~
 0:07.10 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:21:8: error: redefinition of 'ParamTraits'
 0:07.10 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:14:8: note: previous definition is here
 0:07.10 struct ParamTraits<nsITransportSecurityInfo*> {
 0:07.10        ^
 0:07.10 In file included from Unified_cpp_ipc_glue2.cpp:11:
 0:07.10 In file included from /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.cpp:7:
 0:07.10 In file included from /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/ipc/IPCMessageUtils.h:11:
 0:07.10 In file included from /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:19:
 0:07.10 In file included from /home/magnus/Code/tb/mozilla/ipc/chromium/src/base/pickle.h:19:
 0:07.10 /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/mozilla/TimeStamp.h:21:8: error: redefinition of 'ParamTraits' as different kind of symbol
 0:07.10 struct ParamTraits;
 0:07.10        ^
 0:07.10 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:14:8: note: previous definition is here
 0:07.10 struct ParamTraits<nsITransportSecurityInfo*> {
 0:07.10        ^
 0:07.11 In file included from Unified_cpp_ipc_glue2.cpp:11:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.cpp:7:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/ipc/IPCMessageUtils.h:11:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:19:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/ipc/chromium/src/base/pickle.h:19:
 0:07.11 /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/mozilla/TimeStamp.h:292:22: error: explicit specialization of non-template struct 'ParamTraits'
 0:07.11   friend struct IPC::ParamTraits<mozilla::BaseTimeDuration<ValueCalculator>>;
 0:07.11                      ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 0:07.11 /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/mozilla/TimeStamp.h:574:22: error: explicit specialization of non-template struct 'ParamTraits'
 0:07.11   friend struct IPC::ParamTraits<mozilla::TimeStamp>;
 0:07.11                      ^          ~~~~~~~~~~~~~~~~~~~~
 0:07.11 In file included from Unified_cpp_ipc_glue2.cpp:11:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.cpp:7:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/ipc/IPCMessageUtils.h:11:
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:115:8: error: redefinition of 'ParamTraits' as different kind of symbol
 0:07.11 struct ParamTraits;
 0:07.11        ^
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:14:8: note: previous definition is here
 0:07.11 struct ParamTraits<nsITransportSecurityInfo*> {
 0:07.11        ^
 0:07.11 In file included from Unified_cpp_ipc_glue2.cpp:11:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.cpp:7:
 0:07.11 In file included from /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/ipc/IPCMessageUtils.h:11:
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:119:14: error: expected unqualified-id
 0:07.11   ParamTraits<std::decay_t<P>>::Write(m, std::forward<P>(p));
 0:07.11              ^
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:125:21: error: expected '(' for function-style cast or type construction
 0:07.11   return ParamTraits<P>::Read(m, iter, p);
 0:07.11          ~~~~~~~~~~~^
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:125:22: error: 'P' does not refer to a value
 0:07.11   return ParamTraits<P>::Read(m, iter, p);
 0:07.11                      ^
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:122:20: note: declared here
 0:07.11 template <typename P>
 0:07.11                    ^
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:125:24: error: no member named 'Read' in the global namespace; did you mean 'ParamTraits::Read'?
 0:07.11   return ParamTraits<P>::Read(m, iter, p);
 0:07.11                        ^~~~~~
 0:07.11                        ParamTraits::Read
 0:07.11 /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.h:16:15: note: 'ParamTraits::Read' declared here
 0:07.11   static bool Read(const Message* aMsg, PickleIterator* aIter,
 0:07.12               ^
 0:07.12 In file included from Unified_cpp_ipc_glue2.cpp:11:
 0:07.12 In file included from /home/magnus/Code/tb/mozilla/ipc/glue/TransportSecurityInfoUtils.cpp:7:
 0:07.12 In file included from /home/magnus/Code/tb/mozilla/obj-x86_64-pc-linux-gnu/dist/include/ipc/IPCMessageUtils.h:11:
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:130:14: error: expected unqualified-id
 0:07.12   ParamTraits<P>::Log(p, l);
 0:07.12              ^
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:464:16: error: expected unqualified-id
 0:07.12     ParamTraits<T*>::Write(m, p.get());
 0:07.12                ^
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:468:23: error: expected '(' for function-style cast or type construction
 0:07.12     return ParamTraits<T*>::Read(m, iter, r);
 0:07.12            ~~~~~~~~~~~^
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:468:24: error: 'T' does not refer to a value
 0:07.12     return ParamTraits<T*>::Read(m, iter, r);
 0:07.12                        ^
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:461:17: note: declared here
 0:07.12 template <class T>
 0:07.12                 ^
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:468:26: error: expected expression
 0:07.12     return ParamTraits<T*>::Read(m, iter, r);
 0:07.12                          ^
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:468:27: error: no member named 'Read' in the global namespace; did you mean simply 'Read'?
 0:07.12     return ParamTraits<T*>::Read(m, iter, r);
 0:07.12                           ^~~~~~
 0:07.12                           Read
 0:07.12 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:467:15: note: 'Read' declared here
 0:07.12   static bool Read(const Message* m, PickleIterator* iter, RefPtr<T>* r) {
 0:07.13               ^
 0:07.13 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:475:16: error: expected unqualified-id
 0:07.13     ParamTraits<T*>::Write(m, p.get());
 0:07.13                ^
 0:07.13 /home/magnus/Code/tb/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h:480:21: error: expected '(' for function-style cast or type construction
 0:07.13     if (!ParamTraits<T*>::Read(m, iter, &refptr)) {
 0:07.13          ~~~~~~~~~~~^
 0:07.13 fatal error: too many errors emitted, stopping now [-ferror-limit=]

Simon, any ides how to fix comment 3, or why it happens for Thunderbird?

Flags: needinfo?(sgiesecke)

(In reply to Magnus Melin [:mkmelin] from comment #4)

Simon, any ides how to fix comment 3,

Add

template <typename>
struct ParamTraits;

at the beginning of namespace IPC.

or why it happens for Thunderbird?

Not really, maybe difference due to unified build chunks.

Flags: needinfo?(sgiesecke)

Thanks, that seems to work! (Still waiting for the build to finish.)

(In reply to Magnus Melin [:mkmelin] from comment #6)

Thanks, that seems to work! (Still waiting for the build to finish.)

Great, can you add that to the patch from bug 1673931?

(In reply to Magnus Melin [:mkmelin] from comment #2)

Created attachment 9189612 [details] [diff] [review]
bug1679148_idl_includes_cc_fix.patch

This seems to be the c-c part. Some includes may or may not bee necessary. I'm sure some things could be done better...

Doesn't look too bad :) Maybe check again if some of the includes added to nsLDAPSyncQuery.h can be moved to nsLDAPSyncQuery.cpp?

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/integration/autoland/rev/3274b3c70762
declare template for ParamTraits, so that Thunderbird builds succeed. r=sg
Keywords: leave-open

(In reply to Simon Giesecke [:sg] [he/him] from comment #8)

Doesn't look too bad :) Maybe check again if some of the includes added to nsLDAPSyncQuery.h can be moved to nsLDAPSyncQuery.cpp?

Seems they could al be moved to .cpp yes, thanks!

Keywords: leave-open
Target Milestone: --- → 85 Branch

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/20e032e67470
fix includes to unbust builds after bug 1673931. r=bustage-fix

Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Keywords: regression
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: