Closed Bug 943197 Opened 6 years ago Closed 6 years ago

Remove useless -DIMPL_LIBXUL

Categories

(Firefox Build System :: General, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED
mozilla28

People

(Reporter: glandium, Assigned: glandium)

References

Details

(Whiteboard: [qa-])

Attachments

(1 file)

No description provided.
Attachment #8338253 - Flags: review?(mshal)
I saw this the other week and also thought about removing it, but I couldn't convince myself that it didn't somehow affect files compiled in those directories (various things in xpcom/ care about IMPL_LIBXUL).  Did you verify that it doesn't, or did I just not look far enough down the rabbit hole to understand how everything fits together?
Flags: needinfo?(mh+mozilla)
I tried changing these defines to -DMARF_IMPL_LIBXUL, and then added #warning lines in the xpcom headers where IMPL_LIBXUL is used if MARF_IMPL_LIBXUL was defined. It looks like nscore.h is included by xpcom/string/src/nsUTF8UtilsSSE2.cpp and xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp, so I think those two directories at least require some further investigation.
Apart from xpcom/typelib/xpt/tests/Makefile.in, which i think should actually not be changed, all the others are for things that end up in libxul by force of FINAL_LIBRARY, possibly transitively. config/config.mk defines LIBXUL_LIBRARY at makefile level when FINAL_LIBRARY in backend.mk is xul (which it is for everything that has a FINAL_LIBRARY in moz.build that ends up being xul if it is the FINAL_LIBRARY of the FINAL_LIBRARY (...)). And LIBXUL_LIBRARY defined at makefile level makes IMPL_LIBXUL defined at C/C++ level.
Flags: needinfo?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #4)
> Apart from xpcom/typelib/xpt/tests/Makefile.in, which i think should
> actually not be changed, all the others are for things that end up in libxul
> by force of FINAL_LIBRARY, possibly transitively. config/config.mk defines
> LIBXUL_LIBRARY at makefile level when FINAL_LIBRARY in backend.mk is xul
> (which it is for everything that has a FINAL_LIBRARY in moz.build that ends
> up being xul if it is the FINAL_LIBRARY of the FINAL_LIBRARY (...)). And
> LIBXUL_LIBRARY defined at makefile level makes IMPL_LIBXUL defined at C/C++
> level.

Works for me - thanks for the clarification!
Attachment #8338253 - Flags: review?(mshal) → review+
https://hg.mozilla.org/mozilla-central/rev/e044bc75f8a8
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Whiteboard: [qa-]
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.