>> It seems therefore that using -finline-functions for heavy-template code >> is the way to go - I imagine a new section is created for each template >> instantiation; since most of those functions are small and get only >> called one or twice (serialization code), they can be effectively >> inlined and need no additional sections afterwards. >> >> Cheers, Vaclav > Hmm, new section is generated for each template ... hmm, might it be a > linker-script bug? As on final link sections should be merged into > default-sections - .data, .test, .rdata, etc. > What name it uses when compilation fails? It is just a wild guess that new section gets created for each template (I can't imagine why there would be 38k sections otherwise). The final link is not a problem, it is the intermediary .o file written by as.exe which is problematic.
Bellow is a snippet of the dump of one of the object files (compiled with function inlining) created with objdump -h, which seems to confirm my hypothesis - section for each used combination of boost::serialization, boost::shared_ptr etc templates. Cheers, vaclav > chunk-12-energytracker.o: file format pe-x86-64 > > Sections: > Idx Name Size VMA LMA File off Algn > 0 .text 00001f00 0000000000000000 0000000000000000 > 0000cc9c 2**4 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 1 .data 00000000 0000000000000000 0000000000000000 > 00000000 2**4 > ALLOC, LOAD, DATA > 2 .bss 00000020 0000000000000000 0000000000000000 > 00000000 2**4 > ALLOC > 3 .text$_ZN5boost6detail15sp_counted_baseD1Ev 00000010 > 0000000000000000 0000000000000000 0000eb9c 2**4 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE, > LINK_ONCE_DISCARD (COMDAT _ZN5boost6detail15sp_counted_baseD1Ev 4) > 4 .xdata$_ZN5boost6detail15sp_counted_baseD1Ev 00000004 > 0000000000000000 0000000000000000 0000ebac 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_DISCARD > 5 .pdata$_ZN5boost6detail15sp_counted_baseD1Ev 0000000c > 0000000000000000 0000000000000000 0000ebb0 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA, > LINK_ONCE_DISCARD > 6 .text$_ZN5boost6detail15sp_counted_base7destroyEv 00000020 > 0000000000000000 0000000000000000 0000ebbc 2**4 > CONTENTS, ALLOC, LOAD, READONLY, CODE, > LINK_ONCE_DISCARD (COMDAT _ZN5boost6detail15sp_counted_base7destroyEv 10) > 7 .xdata$_ZN5boost6detail15sp_counted_base7destroyEv 00000004 > 0000000000000000 0000000000000000 0000ebdc 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_DISCARD > 8 .pdata$_ZN5boost6detail15sp_counted_base7destroyEv 0000000c > 0000000000000000 0000000000000000 0000ebe0 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA, > LINK_ONCE_DISCARD > 9 > .text$_ZNK5boost13serialization13typeid_system27extended_type_info_typeid_014get_debug_infoEv > > 00000030 0000000000000000 0000000000000000 0000ebec 2**4 > CONTENTS, ALLOC, LOAD, READONLY, CODE, > LINK_ONCE_DISCARD (COMDAT > _ZNK5boost13serialization13typeid_system27extended_type_info_typeid_014get_debug_infoEv > > 13) > 10 > .xdata$_ZNK5boost13serialization13typeid_system27extended_type_info_typeid_014get_debug_infoEv > > 00000004 0000000000000000 0000000000000000 0000ec1c 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_DISCARD > 11 > .pdata$_ZNK5boost13serialization13typeid_system27extended_type_info_typeid_014get_debug_infoEv > > 0000000c 0000000000000000 0000000000000000 0000ec20 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA, > LINK_ONCE_DISCARD > 12 .text$_ZN5boost13serialization16void_cast_detail11void_casterD1Ev > 00000010 0000000000000000 0000000000000000 0000ec2c 2**4 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE, > LINK_ONCE_DISCARD (COMDAT > _ZN5boost13serialization16void_cast_detail11void_casterD1Ev 16) > 13 .xdata$_ZN5boost13serialization16void_cast_detail11void_casterD1Ev > 00000004 0000000000000000 0000000000000000 0000ec3c 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_DISCARD > 14 .pdata$_ZN5boost13serialization16void_cast_detail11void_casterD1Ev > 0000000c 0000000000000000 0000000000000000 0000ec40 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA, > LINK_ONCE_DISCARD > 15 .text$_ZN9boost_1326detail15sp_counted_base8destructEv 00000020 > 0000000000000000 0000000000000000 0000ec4c 2**4 > CONTENTS, ALLOC, LOAD, READONLY, CODE, > LINK_ONCE_DISCARD (COMDAT > _ZN9boost_1326detail15sp_counted_base8destructEv 21) [...] > 1300 > .rdata$_ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN3woo6ObjectEEEEE > > 00000060 0000000000000000 0000000000000000 0001e58c 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN3woo6ObjectEEEEE > > 3334) > 1301 > .rdata$_ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN9boost_1326detail20sp_counted_base_implIPN3woo6ObjectENS0_12null_deleterEEEEEEE > > 000000a0 0000000000000000 0000000000000000 0001e5ec 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN9boost_1326detail20sp_counted_base_implIPN3woo6ObjectENS0_12null_deleterEEEEEEE > > 3335) > 1302 .rdata$_ZTSN5boost7archive6detail25basic_pointer_oserializerE > 00000040 0000000000000000 0000000000000000 0001e68c 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost7archive6detail25basic_pointer_oserializerE 3336) > 1303 > .rdata$_ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN9boost_1326detail12shared_countEEEEE > > 00000080 0000000000000000 0000000000000000 0001e6cc 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN9boost_1326detail12shared_countEEEEE > > 3337) > 1304 > .rdata$_ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN9boost_1326detail15sp_counted_baseEEEEE > > 00000080 0000000000000000 0000000000000000 0001e74c 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost13serialization9singletonINS0_25extended_type_info_typeidIN9boost_1326detail15sp_counted_baseEEEEE > > 3338) > 1305 .rdata$_ZTSN5boost7archive6detail16basic_serializerE 00000040 > 0000000000000000 0000000000000000 0001e7cc 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost7archive6detail16basic_serializerE 3339) > 1306 .rdata$_ZTSN5boost13serialization18extended_type_infoE 00000040 > 0000000000000000 0000000000000000 0001e80c 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost13serialization18extended_type_infoE 3340) > 1307 .rdata$_ZTSN5boost13serialization16singleton_moduleE 00000040 > 0000000000000000 0000000000000000 0001e84c 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA, > LINK_ONCE_SAME_SIZE (COMDAT > _ZTSN5boost13serialization16singleton_moduleE 3341) > 1308 .drectve 000040a0 0000000000000000 0000000000000000 > 0001e88c 2**2 > CONTENTS, ALLOC, LOAD, DATA ------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
