open3600

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
BeMa
Wannabe
Inlägg: 8
Blev medlem: 27 jun 2007, 08:29
Ort: Kungsbacka

open3600

Inlägg av BeMa »

Hej

Behöver hjälp av någon som kan gcc (bättre än mig). Jag kör open3600 ( http://open3600.fast-mail.nl/tiki-index.php ) mot min väderstation, en WS3600 från Lacrosse. Jag kör mysql3600 som plockar värden och stoppar in den i en tabell direkt. Allt funkar smärtfritt på min gamla dator, en PII som går med fedora 4 (32 bitar). open3600 är där kompilerad med

gcc (GCC) 4.0.2 20051125 (Red Hat 4.0.2-8)
Copyright © 2005 Free Software Foundation, Inc.

Den nya maskinen går med Fedora 8, 64 bitar på en E8200, gcc är här

gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
Copyright © 2006 Free Software Foundation, Inc.

Problemet är att kompileringen går smärtfritt (exakt samma varningar som på den gamla) på den nya maskinen men programmen funkar ej. Har provat med flaggorna -m32 och -m64 (fick då ändra lite länkningar i Makefile vid -m64) men negativt resultat :( ..

När jag kör programmen så slukar de nästan 40-60% av processon men inget händer, inga felmeddelanden...

Binärer kompilerade på den gamla datorn funkar på den nya, utom mysql3600 (den jag vill ha) tror det är länkning till något bibliotek som blir fel version...

Jag ser att filerna blir lite olika stora mellan maskinerna...

Frågor,
Finns det "default" flaggor som skiljer mellan de två gcc versionerna ?
Sätts några flaggor på ett visst sätt bara för jag kör x86_64 versionen ? Borde det inte fungera med -m32 då ?
Kan man köra någon debug för att se var progammet fastnar ?

Som sagt, jag är helt ute o cyklar på detta problem...

Tacksam för alla tips....
BeMa
Wannabe
Inlägg: 8
Blev medlem: 27 jun 2007, 08:29
Ort: Kungsbacka

Re: open3600

Inlägg av BeMa »

Hej

Tog tag i problemet nu och det visade sig att den nya versionen av kompilatorn plockade bort en fördröjning i koden.

void delay_loop(unsigned long count)
{
do {} while (--count);
}

Jag gjorde en fuling (bättre sätt finns förmodligen)..

void delay_loop(double count)
{
do {} while (--count);
}

och då fungerade det...
Skriv svar