I don't think g95 can generate 64-bit code. I looked at the generated intermediate assembly code and found it uses 32-bit instructions. The error message refers to the sequence at the entrance point, which is
Code:
MAIN_:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $0, -8(%ebp)
<snip>
This is clearly 32-bit code which is rejected by the assembler ("as"), hence the error message.
It appears you have to cross-compile for 32-bit on your 64-bit system, and run the generated code with multilib support. To do this, you must install the
glibc.i686 and glibc-devel.i686 packages (the architecture suffix i686 is required). To compile the hello world program, use this command
Code:
g95 -Wa,--32 -Wl,-melf_i386 helloworld.f
This tells the intermediate assembler to work with 32-bit code, and the linker to look for 32-bit shared libraries.
In any case, cross-compiling is a pain, and running the generated code under 32-bit multilib support is only pain doubly afflicted. If possible, I think you are better without g95 and use the well-supported gfortran compiler and do everything in full 64-bit. The former looks dead project to me anyway.