Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29273 Discussions

Porting Compile Flags from pgf90 to ifort, convert big_endian error

ericab
Beginner
1,700 Views
Hello,

I'm porting a makefile from pgf90 to ifort, below are the details.

pgf90 original:
FC = pgf90
OPT = -O2 -pc 64 -Mdalign -Mnoframe -byteswapio -Mlfs -Wl,-Bstatic

My translation to ifort:
FC = ifort
OPT = -O2 -pc 64 -align dcommons -fno-omit-frame-pointer -convert big_endian,-i-static

I'm not entirely sure I ported the flags right (is there an Mlfs, Wl for ifort?)

I tried make with the ifort flags, but I get the error:

ifort: command line error: list type argument not allowed for '-convert'

Questions
1. Could somebody verify that I ported the flags correctly, and didn't leave anything important out?
2. Does anyone know why I'm getting problems with the -convert big_endian flag?

Using ifort on OSX.

Thanks very much.

Erica
0 Kudos
2 Replies
TimP
Honored Contributor III
1,700 Views
Gnu linker options are set the same way, beginning with -Wl,
-i-static applies only to some (not all) libraries supplied by the compiler. It does include the static libraries least likely to raise problems.
-pc64 wouldn't have any effect without an ia32 (32-bit only) option, where it would be the default. I can't find a reference on whether it means the same for pgf90; possibly it does.
You'd have to tell us the intent of -Mlfs; I've never seen that, and it's not visible in docs available on-line.
I think you're right in not trying to duplicate noframe until you have it running.
I suppose big_endian didn't work because you followed it by a comma rather than a space.
0 Kudos
ericab
Beginner
1,700 Views
Thanks for the response,

-Mlfs is a linux linker option for Large File Support
From the man pages: (32-bit Linux only) Link in the Large File Support routines available on Linux versions later than Red Hat 7.0 or SuSE 7.1. This will support files from Fortran I/O that are larger than 2GB. Equivalent to -L$PGI/linux86/10.4-0/liblf.

I think this isn't needed in OSX because it can handle large files by default, but I'm not sure.

-Wl, is another linux linker option to Pass each comma-delimited option to the linker.

You were right about big_endian and the comma. The program now compiles without error, but the program isn't successfully running, which suggests that one or more of my flag translations isn't working, or one of the ones I leftout was important.....

Thanks
0 Kudos
Reply