Wer mit GNU ld linkt (und das ist wahrscheinlich bei der Arbeit mit bspw. Linux), trifft möglicherweise auf einen der beiden Bugs, welche mir seit gestern auf den Geist gehen:
1. ld sagt "undefined reference to X", beim Verlinken eines stub sagt es "multiple definition of X".
Workaround: Die Referenz war eigentlich vorhanden, deshalb auch die mehrfache Definition, einfach die object files mit der vermeintlich undefinierten Referenz aus dem Linkvorgang nehmen.
2. ld sagt bei Erzeugung eines binary output files:
"ld: reopening o: No such file or directory
ld: final link failed: No such file or directory"
oder "ld: final link failed: File truncated".
Workaround: ld scheint ein Limit für die Gesamtgröße der Inputfiles zu haben. Entweder die größten object files rausnemen oder ein anderes Format erzeugen.
Mein binutils hat die Version 2.20.1-system.20100303
Falls jemand anderes vor den selben Problemen steht, sollte er diesen Thread mit der Suchfunktion finden können.