16. september 2005 - 23:36Der er
10 kommentarer og 1 løsning
Compilere til i586 på VIA C3?
Jeg har en lille pc med en VIA C3 Ezra processor som jeg bruger som hjemmeserver.
Processoren indetificerer sig selv som en i686 arkitektur, men mangler to instruktioner i forhold til Intels i686 processorer. Og (mindst) en af disse instruktioner bruger gcc i i686 mode, hvilket kan få systemet til at ”fryse”.
Jeg forestiller mig at gcc vælge at generere kode til en i686 (den arkitektur processoren oplyser) hvis ikke andet bliver angivet, og min maskine er da også blevet frygtelig ustabil efter jeg har compileret og installeret daemontools og djbdns.
Så hvordan sikrer jeg mig at gcc genererer kode til en i586 i stedet? Helst uden at skulle ændre i alverdens makefiler.
Og hvordan ser jeg om nogen af de rpm-pakker jeg allerede har installeret er til i686 arkitekturen?
Æv, nu er jeg jo for alvor nødt til at afsløre min uvidenhed... *G*
Hvad vil det sige at jeg "kører ./configure"?
Jeg har prøve at læse lidt rundt på nettet uden at blive meget klogere. Jeg er stadig på det niveau hvor jeg bare afvikler en eksisterende makefil eller installationsscript.
det fleste programmer du henter ned som source følger der et configure-script med når du pakker dem ud (jeg tænker her på filer som ender på .tar.gz (eller tgz som er det samme)).
At køre configure betyder ikke andet end at udføre ovenståede kommando fra kommandolinjen: CFLAGS="-O3 -fomit-frame-pointer -mcpu=i586 -march=i586" ./configure
Hmm, jeg kan ikke se nogle configure-scripts og jeg får blot en fejl når jeg giver den kommando du skriver. Mangler der ikke noget enten en kommando i starten af linjen eller en pipe/redirector i slutningen?
Både daemontools og djbdns kommer faktisk med et konfigurationsscript - det hed bare ikke præcis det du skrev. *G*
Jeg tilføjede de to argumenter "-mcpu=i586 -march=i586" til rækken af compilerdirektiver og oversatte programmerne, men der opstår stadig problemer af og til. Hvad gør de to første argumenter (-O3 -fomit-frame-pointer). Det ene program er i forvejen sat til at bruge -O2...
-O styrer hvormeget optimering GCC skal køre med. Omit-frame-pointer betyder at den sparer lidt plads i målfilen (programmet som du kører) men det er umuligt at debugge. Det er dog de færreste som kører debug og derfor kan man ligeså godt spare det
ok :-) glad for at det kom til at virke .. jeg håber på også på et tidspunkt at skulle lave den samme øvelse :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.