AVRGCC porblem linkovani
Milan B.
milan na bastl.sk
Úterý Květen 13 22:32:43 CEST 2014
On 13. 5. 2014 21:10, Jan Waclawek wrote:
> a je z nie prilis pochopitelnych dovodov nahradzana libgcc (to
> je vstavana kniznica do gcc), v ktorom sa prave nachadzaju
> neoptimalizovane verzie niektorych funkcii, ktore su v libm (uloha libm je
> prave ta, "prebit" tie neoptimalne "defaultne" implementacie z libgcc).
Tak toto je myslim uplne zle. Ulohou libm - a ani ziadnej dalsej
kniznice - *nie je* prebijat funkcie z libgcc - aj v tom vasom prvom
linku to naznacene aspon dvakrat. [1][2]
libgcc je specialna interna kniznica, ktora poskytuje funkcie pre
elementarne operacie, ktore nie su realizovatelne jednou alebo niekolko
malo strojovymi instrukciami [3]. V pripade, ze je k dispozicii viac
architektur, tak maju byt k dispozicii libgcc vo viacerych verziach, s
vyuzitim potencialu tej-ktorej architektury (multilib). GCC zrejme
neriesi, kam libgcc prida, lebo s nejakym prebijanim sa proste by design
nepocita.
To ale nic nemeni na skutocnosti, ze implementacia AVR portu je v tomto
ohlade urobena nekorektne - aj ked motivacia sa da domysliet - a
spominany problem tam naozaj existuje.
-m-
[1] I know that the current situation for the AVR is suboptimal, there
really are overrides in libm.a for functions that are already present in
libgcc.a.
[2] Also libm is not supposed to be overriding stuff in libgcc really...
[3] V tomto pripade __mulsf3 sa vola v pripade vyskytu operacie float*float
Další informace o konferenci Hw-list