Hi,

I have a linker problem when my templates are getting too big (e.g., 
many template parameters). The problem already occurred with mspgcc 
3.2.3, but still occurs with the latest build of 4.4.4.

A linker error looks as follows:
   out/routing_test.o: In function 
`wiselib::DsrRouting<wiselib::ContikiOsModel, 
wiselib::StaticArrayRoutingTable<wiselib::ContikiOsModel, 
wiselib::ContikiRadio<wiselib::ContikiOsModel>, 10u, 
wiselib::DsrRtValue<wiselib::ContikiRadio<wiselib::ContikiOsModel>, 
wiselib::vector_static<wiselib::ContikiOsModel, unsigned int, 8> > >, 
wiselib::ContikiRadio<wiselib::ContikiOsModel>, 
wiselib::ContikiDebug<wiselib::ContikiOsModel> >::enable_radio()': 
/home/tbaum/develop/wiselib.svn/wiselib.stable/algorithms/routing/dsr/dsr_routing.h:138:
 
undefined reference to 
`_ZN7wiselib12ContikiTimerINS_14ContikiOsModelEE9set_timerINS_10DsrRoutingIS1_NS_23StaticArrayRoutingTableIS1_NS_12ContikiRadioIS1_EELj10ENS_10DsrRtValueIS7_NS_13vector_staticIS1_jLi8EEEEEEES7_NS_12ContikiDebugIS1_EEEEXadsrSF_NSF_13timer_elapsedEPvEEEimPT_'
 
out/routing_test.o: In function 
`_ZN7wiselib12ContikiRadioINS_14ContikiOsModelEE17reg_recv_callbackINS_10DsrRoutingIS1_NS_23StaticArrayRoutingTableIS1_S2_Lj10ENS_10DsrRtValueIS2_NS_13vector_staticIS1_jLi8EEEEEEES2_NS_12ContikiDebugIS1_EEEEXadsrSD_NSD_7receiveEjhPhEEEiPT_':

What I have observed so far is the following:
   * When I reduce template parameters, or even simplify class names, 
the problem does not occur (I think, because the mangled "function" name 
gets smaller - however, that is not a solution for the long run)
   * Each name of such a function has a size of >= 256 characters

With other compilers (other than msp430-g++), the problem does also not 
occurr.

Do I get it right that there is a problem with mangled names greater 
than 255 bytes? If so, is there a possibility to get rid of that limit? 
(e.g., a parameter when compiling mspgcc4)

Or do I get something completely wrong?



Best,
Tobias

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to