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
@@ -71,8 +71,8 @@ module fpm_compiler
71
71
id_pgi, &
72
72
id_nvhpc, &
73
73
id_nag, &
74
+ id_flang_classic, &
74
75
id_flang, &
75
- id_flang_new, &
76
76
id_f18, &
77
77
id_ibmxl, &
78
78
id_cray, &
@@ -275,7 +275,13 @@ module fpm_compiler
275
275
flag_cray_free_form = " -ffree"
276
276
277
277
character (* ), parameter :: &
278
- flag_flang_new_openmp = " -fopenmp"
278
+ flag_flang_new_openmp = " -fopenmp" , &
279
+ flag_flang_new_debug = " -g" , &
280
+ flag_flang_new_opt = " -O3" , &
281
+ flag_flang_new_pic = " -fPIC" , &
282
+ flag_flang_new_free_form = " -ffree-form" , &
283
+ flag_flang_new_fixed_form = " -ffixed-form" , &
284
+ flag_flang_new_no_implicit_typing = " -fimplicit-none"
279
285
280
286
contains
281
287
@@ -296,11 +302,11 @@ function get_default_flags(self, release) result(flags)
296
302
! Append position-independent code (PIC) flag, that is necessary
297
303
! building shared libraries
298
304
select case (self% id)
299
- case (id_gcc, id_f95, id_caf, id_flang , id_f18, id_lfortran, &
305
+ case (id_gcc, id_f95, id_caf, id_flang_classic , id_f18, id_lfortran, &
300
306
id_intel_classic_nix, id_intel_classic_mac, id_intel_llvm_nix, &
301
307
id_pgi, id_nvhpc, id_nag, id_cray, id_ibmxl)
302
308
pic_flag = " -fPIC"
303
- case (id_flang_new )
309
+ case (id_flang )
304
310
! flang-new doesn't support -fPIC on Windows MSVC target
305
311
if (get_os_type() == OS_WINDOWS) then
306
312
pic_flag = " "
@@ -414,6 +420,11 @@ subroutine get_release_compile_flags(id, flags)
414
420
flags = &
415
421
flag_lfortran_opt
416
422
423
+ case (id_flang)
424
+ flags = &
425
+ flag_flang_new_opt// &
426
+ flag_flang_new_pic
427
+
417
428
end select
418
429
end subroutine get_release_compile_flags
419
430
@@ -509,6 +520,12 @@ subroutine get_debug_compile_flags(id, flags)
509
520
510
521
case (id_lfortran)
511
522
flags = " "
523
+
524
+ case (id_flang)
525
+ flags = &
526
+ flag_flang_new_debug// &
527
+ flag_flang_new_pic
528
+
512
529
end select
513
530
end subroutine get_debug_compile_flags
514
531
@@ -521,7 +538,7 @@ pure subroutine set_cpp_preprocessor_flags(id, flags)
521
538
select case (id)
522
539
case default
523
540
flag_cpp_preprocessor = " "
524
- case (id_caf, id_gcc, id_f95, id_nvhpc, id_flang_new )
541
+ case (id_caf, id_gcc, id_f95, id_nvhpc, id_flang )
525
542
flag_cpp_preprocessor = " -cpp"
526
543
case (id_intel_classic_windows, id_intel_llvm_windows)
527
544
flag_cpp_preprocessor = " /fpp"
@@ -616,7 +633,7 @@ function get_include_flag(self, path) result(flags)
616
633
flags = " -I " // path
617
634
618
635
case (id_caf, id_gcc, id_f95, id_cray, id_nvhpc, id_pgi, &
619
- & id_flang, id_flang_new , id_f18, &
636
+ & id_flang_classic, id_flang , id_f18, &
620
637
& id_intel_classic_nix, id_intel_classic_mac, &
621
638
& id_intel_llvm_nix, id_lahey, id_nag, id_ibmxl, &
622
639
& id_lfortran)
@@ -640,10 +657,10 @@ function get_module_flag(self, path) result(flags)
640
657
case (id_caf, id_gcc, id_f95, id_cray, id_lfortran)
641
658
flags = " -J " // path
642
659
643
- case (id_nvhpc, id_pgi, id_flang )
660
+ case (id_nvhpc, id_pgi, id_flang_classic )
644
661
flags = " -module " // path
645
662
646
- case (id_flang_new , id_f18)
663
+ case (id_flang , id_f18)
647
664
flags = " -module-dir " // path
648
665
649
666
case (id_intel_classic_nix, id_intel_classic_mac, &
@@ -674,7 +691,7 @@ function get_shared_flag(self) result(shared_flag)
674
691
select case (self% id)
675
692
case default
676
693
shared_flag = " -shared"
677
- case (id_gcc, id_f95, id_flang, id_flang_new , id_lfortran)
694
+ case (id_gcc, id_f95, id_flang_classic, id_flang , id_lfortran)
678
695
shared_flag = " -shared"
679
696
case (id_intel_classic_nix, id_intel_llvm_nix, id_pgi, id_nvhpc)
680
697
shared_flag = " -shared"
@@ -709,6 +726,9 @@ function get_feature_flag(self, feature) result(flags)
709
726
case (id_cray)
710
727
flags = flag_cray_no_implicit_typing
711
728
729
+ case (id_flang)
730
+ flags = flag_flang_new_no_implicit_typing
731
+
712
732
end select
713
733
714
734
case (" implicit-typing" )
@@ -740,7 +760,7 @@ function get_feature_flag(self, feature) result(flags)
740
760
case (id_caf, id_gcc, id_f95)
741
761
flags = flag_gnu_free_form
742
762
743
- case (id_pgi, id_nvhpc, id_flang )
763
+ case (id_pgi, id_nvhpc, id_flang_classic )
744
764
flags = flag_pgi_free_form
745
765
746
766
case (id_nag)
@@ -756,14 +776,17 @@ function get_feature_flag(self, feature) result(flags)
756
776
case (id_cray)
757
777
flags = flag_cray_free_form
758
778
779
+ case (id_flang)
780
+ flags = flag_flang_new_free_form
781
+
759
782
end select
760
783
761
784
case (" fixed-form" )
762
785
select case (self% id)
763
786
case (id_caf, id_gcc, id_f95)
764
787
flags = flag_gnu_fixed_form
765
788
766
- case (id_pgi, id_nvhpc, id_flang )
789
+ case (id_pgi, id_nvhpc, id_flang_classic )
767
790
flags = flag_pgi_fixed_form
768
791
769
792
case (id_nag)
@@ -782,6 +805,9 @@ function get_feature_flag(self, feature) result(flags)
782
805
case (id_lfortran)
783
806
flags = flag_lfortran_fixed_form
784
807
808
+ case (id_flang)
809
+ flags = flag_flang_new_fixed_form
810
+
785
811
end select
786
812
787
813
case (" default-form" )
@@ -851,7 +877,7 @@ subroutine get_default_c_compiler(f_compiler, c_compiler)
851
877
case (id_intel_llvm_nix,id_intel_llvm_windows)
852
878
c_compiler = ' icx'
853
879
854
- case (id_flang, id_flang_new , id_f18)
880
+ case (id_flang_classic, id_flang , id_f18)
855
881
c_compiler= ' clang'
856
882
857
883
case (id_ibmxl)
@@ -886,7 +912,7 @@ subroutine get_default_cxx_compiler(f_compiler, cxx_compiler)
886
912
case (id_intel_llvm_nix,id_intel_llvm_windows)
887
913
cxx_compiler = ' icpx'
888
914
889
- case (id_flang, id_flang_new , id_f18)
915
+ case (id_flang_classic, id_flang , id_f18)
890
916
cxx_compiler= ' clang++'
891
917
892
918
case (id_ibmxl)
@@ -1000,7 +1026,7 @@ function match_compiler_type(compiler) result(id)
1000
1026
end if
1001
1027
1002
1028
if (check_compiler(compiler, " flang-new" )) then
1003
- id = id_flang_new
1029
+ id = id_flang
1004
1030
return
1005
1031
end if
1006
1032
@@ -1009,6 +1035,11 @@ function match_compiler_type(compiler) result(id)
1009
1035
return
1010
1036
end if
1011
1037
1038
+ if (check_compiler(compiler, " flang-classic" )) then
1039
+ id = id_flang_classic
1040
+ return
1041
+ end if
1042
+
1012
1043
if (check_compiler(compiler, " flang" )) then
1013
1044
id = id_flang
1014
1045
return
@@ -1793,8 +1824,8 @@ pure function compiler_id_name(id) result(name)
1793
1824
case (id_pgi); name = " pgfortran"
1794
1825
case (id_nvhpc); name = " nvfortran"
1795
1826
case (id_nag); name = " nagfor"
1796
- case (id_flang); name = " flang"
1797
- case (id_flang_new); name = " flang-new"
1827
+ case (id_flang_classic); name = " flang"
1828
+ case (id_flang); name = " flang-new"
1798
1829
case (id_f18); name = " f18"
1799
1830
case (id_ibmxl); name = " xlf90"
1800
1831
case (id_cray); name = " crayftn"
0 commit comments