>> 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

Reply via email to