17 lines
838 B
C++
17 lines
838 B
C++
#include "mozilla/Module.h"
|
|
|
|
/* Ensure end_kPStaticModules is at the end of the .kPStaticModules section
|
|
* on Windows. Somehow, placing the object last is not enough with PGO/LTCG. */
|
|
#ifdef _MSC_VER
|
|
/* Sections on Windows are in two parts, separated with $. When linking,
|
|
* sections with the same first part are all grouped, and ordered
|
|
* alphabetically with the second part as sort key. */
|
|
# pragma section(".kPStaticModules$Z", read)
|
|
# undef NSMODULE_SECTION
|
|
# define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$Z"), dllexport)
|
|
#endif
|
|
/* This could be null, but this needs a dummy value to ensure it actually ends
|
|
* up in the same section as other NSMODULE_DEFNs, instead of being moved to a
|
|
* separate readonly section. */
|
|
NSMODULE_DEFN(end_kPStaticModules) = (mozilla::Module*)&NSMODULE_NAME(end_kPStaticModules);
|