Posted By: Drs (Fortran je muj kamarad) on 'CZprogram'
Title: Deleni nulou v g77
Date: Tue Mar 12 16:41:22 2002
Ahoj vsichni !
Vetsinu svych programu pisu na stroji Alpha s komercnim prekladacem f77 a ted
bych neco potreboval prelozit na Linuxu pomoci g77. Na rozdil od toho
komercniho prekladace neumi g77 pomoci nejakeho prepinace zapnout odchytani
deleni nulou, ale pocita dal s NaN, coz samozrejme pri ladeni nechci.
V infu pro g77 jsem nasel, ze to lze snadno vyresit prelozenim kodu:
#include <fpu_control.h>
static void __attribute__ ((constructor))
trapfpe ()
{
__setfpucw (_FPU_DEFAULT &
~(_FPU_MASK_IM | _FPU_MASK_ZM | _FPU_MASK_OM));
}
pomoci prikazu gcc -o libtrapfpe.a trapfpe.c a pote prilinkovanim teto
knihovny ke svemu programu. Problem mam ale s prelozenim tohoto kodu, dostavam
chybu:
/usr/lib/crt1.o: In function `_start':
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
/tmp/ccJ4QiJz.o: In function `trapfpe':
/tmp/ccJ4QiJz.o(.text+0x9): undefined reference to `__setfpucw'
collect2: ld returned 1 exit status
Protoze delam vetsinu prace ve Fortranu a C spis jen rekreacne, nepodarilo se
mi prijit na to, co s tim. Vi nekdo, co delam blbe ?
Dik za podnety :-)
DrS
------------------------------------------------------------------
To jen aby rec nestala ...