10
10
! Intel oneAPI ifx icx -module -I -qopenmp X
11
11
! PGI pgfortran pgcc -module -I -mp X
12
12
! NVIDIA nvfortran nvc -module -I -mp X
13
- ! LLVM flang flang clang -module -I -mp X
13
+ ! LLVM flang flang clang -module-dir -I -fopenmp X
14
14
! LFortran lfortran --- -J -I --openmp X
15
15
! Lahey/Futjitsu lfc ? -M -I -openmp ?
16
16
! NAG nagfor ? -mdir -I -openmp x
@@ -69,8 +69,8 @@ module fpm_compiler
69
69
id_pgi, &
70
70
id_nvhpc, &
71
71
id_nag, &
72
+ id_flang_classic, &
72
73
id_flang, &
73
- id_flang_new, &
74
74
id_f18, &
75
75
id_ibmxl, &
76
76
id_cray, &
@@ -273,7 +273,13 @@ module fpm_compiler
273
273
flag_cray_free_form = " -ffree"
274
274
275
275
character (* ), parameter :: &
276
- flag_flang_new_openmp = " -fopenmp"
276
+ flag_flang_new_openmp = " -fopenmp" , &
277
+ flag_flang_new_debug = " -g" , &
278
+ flag_flang_new_opt = " -O3" , &
279
+ flag_flang_new_pic = " -fPIC" , &
280
+ flag_flang_new_free_form = " -ffree-form" , &
281
+ flag_flang_new_fixed_form = " -ffixed-form" , &
282
+ flag_flang_new_no_implicit_typing = " -fimplicit-none"
277
283
278
284
contains
279
285
@@ -294,11 +300,11 @@ function get_default_flags(self, release) result(flags)
294
300
! Append position-independent code (PIC) flag, that is necessary
295
301
! building shared libraries
296
302
select case (self% id)
297
- case (id_gcc, id_f95, id_caf, id_flang , id_f18, id_lfortran, &
303
+ case (id_gcc, id_f95, id_caf, id_flang_classic , id_f18, id_lfortran, &
298
304
id_intel_classic_nix, id_intel_classic_mac, id_intel_llvm_nix, &
299
305
id_pgi, id_nvhpc, id_nag, id_cray, id_ibmxl)
300
306
pic_flag = " -fPIC"
301
- case (id_flang_new )
307
+ case (id_flang )
302
308
! flang-new doesn't support -fPIC on Windows MSVC target
303
309
if (get_os_type() == OS_WINDOWS) then
304
310
pic_flag = " "
@@ -412,6 +418,11 @@ subroutine get_release_compile_flags(id, flags)
412
418
flags = &
413
419
flag_lfortran_opt
414
420
421
+ case (id_flang)
422
+ flags = &
423
+ flag_flang_new_opt// &
424
+ flag_flang_new_pic
425
+
415
426
end select
416
427
end subroutine get_release_compile_flags
417
428
@@ -507,6 +518,12 @@ subroutine get_debug_compile_flags(id, flags)
507
518
508
519
case (id_lfortran)
509
520
flags = " "
521
+
522
+ case (id_flang)
523
+ flags = &
524
+ flag_flang_new_debug// &
525
+ flag_flang_new_pic
526
+
510
527
end select
511
528
end subroutine get_debug_compile_flags
512
529
@@ -519,7 +536,7 @@ pure subroutine set_cpp_preprocessor_flags(id, flags)
519
536
select case (id)
520
537
case default
521
538
flag_cpp_preprocessor = " "
522
- case (id_caf, id_gcc, id_f95, id_nvhpc, id_flang_new )
539
+ case (id_caf, id_gcc, id_f95, id_nvhpc, id_flang )
523
540
flag_cpp_preprocessor = " -cpp"
524
541
case (id_intel_classic_windows, id_intel_llvm_windows)
525
542
flag_cpp_preprocessor = " /fpp"
@@ -614,7 +631,7 @@ function get_include_flag(self, path) result(flags)
614
631
flags = " -I " // path
615
632
616
633
case (id_caf, id_gcc, id_f95, id_cray, id_nvhpc, id_pgi, &
617
- & id_flang, id_flang_new , id_f18, &
634
+ & id_flang_classic, id_flang , id_f18, &
618
635
& id_intel_classic_nix, id_intel_classic_mac, &
619
636
& id_intel_llvm_nix, id_lahey, id_nag, id_ibmxl, &
620
637
& id_lfortran)
@@ -638,10 +655,10 @@ function get_module_flag(self, path) result(flags)
638
655
case (id_caf, id_gcc, id_f95, id_cray, id_lfortran)
639
656
flags = " -J " // path
640
657
641
- case (id_nvhpc, id_pgi, id_flang )
658
+ case (id_nvhpc, id_pgi, id_flang_classic )
642
659
flags = " -module " // path
643
660
644
- case (id_flang_new , id_f18)
661
+ case (id_flang , id_f18)
645
662
flags = " -module-dir " // path
646
663
647
664
case (id_intel_classic_nix, id_intel_classic_mac, &
@@ -672,7 +689,7 @@ function get_shared_flag(self) result(shared_flag)
672
689
select case (self% id)
673
690
case default
674
691
shared_flag = " -shared"
675
- case (id_gcc, id_f95, id_flang, id_flang_new , id_lfortran)
692
+ case (id_gcc, id_f95, id_flang_classic, id_flang , id_lfortran)
676
693
shared_flag = " -shared"
677
694
case (id_intel_classic_nix, id_intel_llvm_nix, id_pgi, id_nvhpc)
678
695
shared_flag = " -shared"
@@ -707,6 +724,9 @@ function get_feature_flag(self, feature) result(flags)
707
724
case (id_cray)
708
725
flags = flag_cray_no_implicit_typing
709
726
727
+ case (id_flang)
728
+ flags = flag_flang_new_no_implicit_typing
729
+
710
730
end select
711
731
712
732
case (" implicit-typing" )
@@ -738,7 +758,7 @@ function get_feature_flag(self, feature) result(flags)
738
758
case (id_caf, id_gcc, id_f95)
739
759
flags = flag_gnu_free_form
740
760
741
- case (id_pgi, id_nvhpc, id_flang )
761
+ case (id_pgi, id_nvhpc, id_flang_classic )
742
762
flags = flag_pgi_free_form
743
763
744
764
case (id_nag)
@@ -754,14 +774,17 @@ function get_feature_flag(self, feature) result(flags)
754
774
case (id_cray)
755
775
flags = flag_cray_free_form
756
776
777
+ case (id_flang)
778
+ flags = flag_flang_new_free_form
779
+
757
780
end select
758
781
759
782
case (" fixed-form" )
760
783
select case (self% id)
761
784
case (id_caf, id_gcc, id_f95)
762
785
flags = flag_gnu_fixed_form
763
786
764
- case (id_pgi, id_nvhpc, id_flang )
787
+ case (id_pgi, id_nvhpc, id_flang_classic )
765
788
flags = flag_pgi_fixed_form
766
789
767
790
case (id_nag)
@@ -780,6 +803,9 @@ function get_feature_flag(self, feature) result(flags)
780
803
case (id_lfortran)
781
804
flags = flag_lfortran_fixed_form
782
805
806
+ case (id_flang)
807
+ flags = flag_flang_new_fixed_form
808
+
783
809
end select
784
810
785
811
case (" default-form" )
@@ -849,7 +875,7 @@ subroutine get_default_c_compiler(f_compiler, c_compiler)
849
875
case (id_intel_llvm_nix,id_intel_llvm_windows)
850
876
c_compiler = ' icx'
851
877
852
- case (id_flang, id_flang_new , id_f18)
878
+ case (id_flang_classic, id_flang , id_f18)
853
879
c_compiler= ' clang'
854
880
855
881
case (id_ibmxl)
@@ -884,7 +910,7 @@ subroutine get_default_cxx_compiler(f_compiler, cxx_compiler)
884
910
case (id_intel_llvm_nix,id_intel_llvm_windows)
885
911
cxx_compiler = ' icpx'
886
912
887
- case (id_flang, id_flang_new , id_f18)
913
+ case (id_flang_classic, id_flang , id_f18)
888
914
cxx_compiler= ' clang++'
889
915
890
916
case (id_ibmxl)
@@ -998,7 +1024,7 @@ function get_id(compiler) result(id)
998
1024
end if
999
1025
1000
1026
if (check_compiler(compiler, " flang-new" )) then
1001
- id = id_flang_new
1027
+ id = id_flang
1002
1028
return
1003
1029
end if
1004
1030
@@ -1007,6 +1033,11 @@ function get_id(compiler) result(id)
1007
1033
return
1008
1034
end if
1009
1035
1036
+ if (check_compiler(compiler, " flang-classic" )) then
1037
+ id = id_flang_classic
1038
+ return
1039
+ end if
1040
+
1010
1041
if (check_compiler(compiler, " flang" )) then
1011
1042
id = id_flang
1012
1043
return
@@ -1752,8 +1783,8 @@ pure function compiler_name(self) result(name)
1752
1783
case (id_pgi); name = " pgfortran"
1753
1784
case (id_nvhpc); name = " nvfortran"
1754
1785
case (id_nag); name = " nagfor"
1755
- case (id_flang ); name = " flang"
1756
- case (id_flang_new ); name = " flang-new "
1786
+ case (id_flang_classic ); name = " flang-classic "
1787
+ case (id_flang ); name = " flang"
1757
1788
case (id_f18); name = " f18"
1758
1789
case (id_ibmxl); name = " xlf90"
1759
1790
case (id_cray); name = " crayftn"
0 commit comments