Toon posts:

[x86-64] Fortran en Fedore Core 2 x86-64

Pagina: 1
Acties:

Verwijderd

Topicstarter
Op een IBM eserver 325 (Opteron 248, 2 GB RAM, 72 GB RAID 1) draaiend onder Fedora Core 2 x86-64 ben ik al een tijdje bezig om Lahey Fortran 6.20c draaiend te krijgen. Het is me helaas niet gelukt, ik krijg steeds de volgende errors:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/tmp/asmjPhkj8.s:7162: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7169: Error: `-12(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7170: Error: `-12(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7171: Error: `52(%ecx)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7172: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7178: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7193: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7206: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7210: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7214: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7218: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7225: Error: `-12(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7226: Error: `-12(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7227: Error: `52(%ecx)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7228: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7232: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7237: Error: `-16(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7238: Error: `-16(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7239: Error: `52(%eax)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7240: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7244: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7248: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7252: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7256: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7260: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7264: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7268: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7269: Error: `4(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7274: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7275: Error: `4(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7280: Error: `(%esp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7290: Error: `-8(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7291: Error: suffix or operands invalid for `pop'
/tmp/asmjPhkj8.s:7292: Error: suffix or operands invalid for `pop'
/tmp/asmjPhkj8.s:7294: Error: suffix or operands invalid for `pop'
/tmp/asmjPhkj8.s:7381: Error: `8(%ebp)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7388: Error: `(%ecx)' is not a valid 64 bit base/index expression
/tmp/asmjPhkj8.s:7417: Error: suffix or operands invalid for `pop'

Bovenstaande is maar een stukje uit de gehele error melding maar het ziet er allemaal identiek uit behalve dat er bijv. '-24(%ebp)' staat i.p.v. `8(%ebp)'.

OK, fortran is 32 bits maar dat zou toch gewoon moeten draaien op een Opteron en 64 bits linux :?
Ben al een tijdje bezig en heb me helemaal suf gezocht en ben geen steek verder gekomen.
Wie kan me vertellen wat er hier mis gaat?

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Het lijkt erop dat de compiler valt over enkele assembler instructies. Maf, want wat ik zo 1-2-3 kan terugvinden via google, hoort de opteron gewoon deze instructie te ondersteunen.
Verder kan ik geen download van dit pakket vinden, dus ik kan het niet zelf ff testen om te kijken of het misschien aan je installatie ligt.
Trouwens, waarom pak je niet de fortran compiler die bij gcc zit ?

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Zo te zien verwacht de assembler een 64 bits assembly, maar produceert gcc 32 bits assembly. Weet je zeker dat je gcc versie in staat is om 64 bits binaries te produceren ?

Verwijderd

Topicstarter
moto-moi schreef op 03 september 2004 @ 17:32:
Het lijkt erop dat de compiler valt over enkele assembler instructies. Maf, want wat ik zo 1-2-3 kan terugvinden via google, hoort de opteron gewoon deze instructie te ondersteunen.
Verder kan ik geen download van dit pakket vinden, dus ik kan het niet zelf ff testen om te kijken of het misschien aan je installatie ligt.
Trouwens, waarom pak je niet de fortran compiler die bij gcc zit ?
Reden waarom we dit suffe pakket nog gebruiken is omdat er de afgelopen jaren hiermee veel gemaakt is en alles opnieuw schrijven dus een hels karwei is. Zeker als je rekening houdt met het feit dat er geen echte programmeurs zijn. Enige wat er nog gebeurt iis een beetje onderhoud.

O ja, als je wilt kan ik je wel een test exemplaar bezorgen O-)
igmar schreef op 03 september 2004 @ 18:05:
Zo te zien verwacht de assembler een 64 bits assembly, maar produceert gcc 32 bits assembly. Weet je zeker dat je gcc versie in staat is om 64 bits binaries te produceren ?
gcc-3.3.3-7.x86_64 staat er op. ik neem aan dat het wel 64 bits binaries kan produceren. Zo niet, dan zou 32 bits toch ook moeten werken, of vergis ik me nou :?
Zou echt doodzonde zijn als we het niet aan de praat kunnen krijgen: mooie server hiervoor gekocht en het wil maar niet ;( 8)7

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Gaat compilen uberhaupt wel goed ?

Wil zoiets als

C:
1
2
3
4
5
int main(int argc, char **argv)
{
   printf("blaat\n");
   return 0;
}


wel ? En zo ja, levert dit een 64 of 32 bits ELF op ? Verder is het zonder kopie van het pakket een beetje gokwerk, maar uit ervaring kan ik je vertellen dat niet alle pakketten 64 bits compiles fijn vinden.

Verwijderd

Topicstarter
Ik zal dit maandag eens proberen.
Alvast bedankt ;)

Edit: uitgevoerd en compilen gaat OK.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
 /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/cc1 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 ts.c -quiet -dumpbase ts.c -auxbase ts -version -o /tmp/ccYrOiCa.s
GNU C version 3.3.3 20040412 (Red Hat Linux 3.3.3-7) (x86_64-redhat-linux)
        compiled by GNU C version 3.3.3 20040412 (Red Hat Linux 3.3.3-7).
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128620
ignoring nonexistent directory "/usr/x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/include
 /usr/include
End of search list.
 as -V -Qy -o /tmp/ccpenHhm.o /tmp/ccYrOiCa.s
GNU assembler version 2.15.90.0.3 (x86_64-redhat-linux) using BFD version 2.15.90.0.3 20040415
 /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/collect2 --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/../../../../lib64/crt1.o /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/../../../../lib64/crti.o /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/crtbegin.o -L/usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3 -L/usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/../../../../lib64 -L/usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 /tmp/ccpenHhm.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/crtend.o /usr/lib/gcc-lib/x86_64-redhat-linux/3.3.3/../../../../lib64/crtn.o


en uitvoeren gaat ook OK: krijg netjes "blaat" op scherm :)
Hoe nu verder ?

[ Voor 130% gewijzigd door Verwijderd op 06-09-2004 16:04 ]

Pagina: 1