$ more m.f print*,'a= ',a() print*,'b= ',b() end $ more a.f function a() print*,'hello from a' a=5.0 return end $ more b.f function b() print*,'hello from b' b=15.0 return end $ flang -o m m.f a.f b.f $ ./m a= hello from a 5.000000 b= hello from b 15.00000 $ gfortran5 -o m m.f a.f b.f $ ./m /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc5/libgfortran.so.3 not found # compile with flang only a.f $ flang -c a.f -o a.o clang-3.9: ^[[0;1;35mwarning: ^[[0m-lflang: 'linker' input unused^[[0m clang-3.9: ^[[0;1;35mwarning: ^[[0m-lflangmain: 'linker' input unused^[[0m clang-3.9: ^[[0;1;35mwarning: ^[[0m-lflangrti: 'linker' input unused^[[0m clang-3.9: ^[[0;1;35mwarning: ^[[0m-lompstub: 'linker' input unused^[[0m clang-3.9: ^[[0;1;35mwarning: ^[[0m-lexecinfo: 'linker' input unused^[[0m clang-3.9: ^[[0;1;35mwarning: ^[[0margument unused during compilation: '-L/usr/l ocal/flang/lib' # compile with gfortran only b.f $ gfortran5 -c b.f -o b.o $ flang -o m m.f a.o b.o /usr/bin/ld: error: undefined symbol: _gfortran_st_write >>> referenced by b.f >>> b.o:(b_) /usr/bin/ld: error: undefined symbol: _gfortran_transfer_character_write >>> referenced by b.f >>> b.o:(b_) /usr/bin/ld: error: undefined symbol: _gfortran_st_write_done >>> referenced by b.f >>> b.o:(b_) clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation) $ flang -o m m.f a.o b.o /usr/local/lib/gcc5/libgfortran.so $ ./m /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc5/libgfortran.so.3 not found $ gfortran -o m m.f a.o b.o /usr/local/lib/gcc5/libgfortran.sogfortran[1@5  a.o: In function `a_': /home/db/a.f:3: undefined reference to `f90io_src_info03' /home/db/a.f:3: undefined reference to `f90io_print_init' /home/db/a.f:3: undefined reference to `f90io_sc_ch_ldw' /home/db/a.f:3: undefined reference to `f90io_ldw_end' collect2: error: ld returned 1 exit status $ gfortran5 -o m m.f a.o b.o /usr/local/lib/gcc5/libgfortran.so /usr/local/flang /lib/libflang.so //usr/local/flang/lib/libflangrti.so: undefined reference to `backtrace_symbols' //usr/local/flang/lib/libflangrti.so: undefined reference to `backtrace' collect2: error: ld returned 1 exit status # Removing I/O from a.f and b.f $ cat a.b cat: a.b: No such file or directory $ cat a.f function a() C print*,'hello from a' a=5.0 return end $ cat b.f function b() C print*,'hello from b' b=15.0 return end $ flang -c -o a.o a. clang-3.9: warning: -lflang: 'linker' input unused clang-3.9: warning: -lflangmain: 'linker' input unused clang-3.9: warning: -lflangrti: 'linker' input unused clang-3.9: warning: -lompstub: 'linker' input unused clang-3.9: warning: -lexecinfo: 'linker' input unused clang-3.9: warning: argument unused during compilation: '-L/usr/local/flang/lib' $ gfortran5 -c -o b.o b.f $ flang -o m m.f a.o b.o $ ./m a= 5.000000 b= 15.00000 $ gfortran5 -o m m.f a.o b.o $ ./m /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc5/libgfortran.so.3 not found