Guess that this is caused by the set flags.
I don't know.
Can I include that somehow as I know it optimizes the code more?
Fortran uses C-linkage so any linker should be able to manage it.
Note that fortran mandates decoration of the function names itself, because reasons. So if you have:
subroutine dummy()
end subroutine dummy
This is seen by the linker as if it was defined as void dummy_().
If you intend to call fortran from C, you must provide the proper declarations for the compiler in your C code, they can't be deduced automatically.
When I use either gfortran or ifort in my code and I'll try to do the cross compilation. Will the fortran part of the code run flawlessly on Mac or Linux?
As long as you configure the compiler properly, you can treat fortran code as any other C code, so it should work fine, yes.
Tangent:
gfortran, I believe, still transpiles the fortran source to C and then runs the C compiler on top of it. In the end why should anyone invest time into keeping a real compiler for a zombie language up to date ...