Gast
#2954837
Hallo, ich habe bisher mit GCC 3.4 gearbeitet (Nios II). In meinem System habe ich einen Koprozessor, der Double +-*/ rechnet. Um diesen einzubinden, habe ich einen Treiber geschrieben, der die selben Funktionsnamen wie in der libgcc verwendet (z.b. double __adddf3 (double, double);). Das hat dann dazu geführt, dass der Linker die lokale (von mir geschriebene) Funktion benutzt hat anstatt der libgcc-Softwarefloat-Routine. Jetzt bin ich gezwungen, meine Toolchain auf GCC 4.1 umzustellen. Leider scheint der Linker dort die lokale Funktion nicht mehr einzubinden und verwendet ausschliesslich die in der libgcc hinterlegte. Selbst ein direkter Aufruf von __adddf3() ruft die falsche Funktion auf. Nur wenn ich die Funktion umbenenne kann ich sie überhaupt aufrufen, jedoch wird dann a = b + c; leider nicht mehr automatisch ersetzt wie bislang. Nachdem ich jetzt nach einem Tag suchen und probieren nicht weiterkomme, hoffe ich dass mir von euch jemand ein paar Hinweise dazu geben kann!