#if SY__OS_LINUX int spider; extern SyType(SYMBOL_SET_DEFINE) SY__FIRST(SYMBOL_SET_DEFINE); extern SyType(SYMBOL_SET_DEFINE) SY__OPL(SYMBOL_SET_DEFINE); // (these symbols are resolved in the linker script) #elif SY__OS_WINDOWS #if COMPILER_CL # pragma section(SY__GLUE(SYMBOL_SET_DEFINE,_section),read,write) #endif SyType(SYMBOL_SET_DEFINE) *SY__FIRST(SYMBOL_SET_DEFINE) = 0; SyType(SYMBOL_SET_DEFINE) *SY__OPL(SYMBOL_SET_DEFINE) = 0; SY__BEFORE_MAIN(SY__GLUE(SYMBOL_SET_DEFINE,__init)){ int size = sizeof(SY__GLUE(SYMBOL_SET_DEFINE,_section)) - 1; void *first = 0; void *opl = 0; sy__section_init(SY__GLUE(SYMBOL_SET_DEFINE,_section), size, (void**)&SY__FIRST(SYMBOL_SET_DEFINE), (void**)&SY__OPL(SYMBOL_SET_DEFINE)); } #else # error symbol_set.define not implemented for this OS #endif #undef SYMBOL_SET_DEFINE