llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-flang-driver <details> <summary>Changes</summary> Enable -rpath, -shared, and -static for the flang frontend. This brings it in line with clang. Fixes issue #<!-- -->65546. --- Full diff: https://github.com/llvm/llvm-project/pull/66702.diff 2 Files Affected: - (modified) clang/include/clang/Driver/Options.td (+5-2) - (modified) flang/test/Driver/linker-flags.f90 (+16) ``````````diff diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 553c7928c4f949e..bf4c76d4555d152 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -5165,7 +5165,8 @@ def resource_dir : Separate<["-"], "resource-dir">, def resource_dir_EQ : Joined<["-"], "resource-dir=">, Flags<[NoXarchOption]>, Visibility<[ClangOption, CLOption, DXCOption]>, Alias<resource_dir>; -def rpath : Separate<["-"], "rpath">, Flags<[LinkerInput]>, Group<Link_Group>; +def rpath : Separate<["-"], "rpath">, Flags<[LinkerInput]>, Group<Link_Group>, + Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>; def rtlib_EQ : Joined<["-", "--"], "rtlib=">, HelpText<"Compiler runtime library to use">; def frtlib_add_rpath: Flag<["-"], "frtlib-add-rpath">, Flags<[NoArgumentUnused]>, @@ -5216,7 +5217,8 @@ def segs__read__only__addr : Separate<["-"], "segs_read_only_addr">; def segs__read__write__addr : Separate<["-"], "segs_read_write_addr">; def segs__read__ : Joined<["-"], "segs_read_">; def shared_libgcc : Flag<["-"], "shared-libgcc">; -def shared : Flag<["-", "--"], "shared">, Group<Link_Group>; +def shared : Flag<["-", "--"], "shared">, Group<Link_Group>, + Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>; def single__module : Flag<["-"], "single_module">; def specs_EQ : Joined<["-", "--"], "specs=">, Group<Link_Group>; def specs : Separate<["-", "--"], "specs">, Flags<[Unsupported]>; @@ -5226,6 +5228,7 @@ def start_no_unused_arguments : Flag<["--"], "start-no-unused-arguments">, def static_libgcc : Flag<["-"], "static-libgcc">; def static_libstdcxx : Flag<["-"], "static-libstdc++">; def static : Flag<["-", "--"], "static">, Group<Link_Group>, + Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>, Flags<[NoArgumentUnused]>; def std_default_EQ : Joined<["-"], "std-default=">; def std_EQ : Joined<["-", "--"], "std=">, diff --git a/flang/test/Driver/linker-flags.f90 b/flang/test/Driver/linker-flags.f90 index 09b8a224df13828..9a9ec5d28acb9c7 100644 --- a/flang/test/Driver/linker-flags.f90 +++ b/flang/test/Driver/linker-flags.f90 @@ -50,3 +50,19 @@ ! MSVC-SAME: FortranDecimal.lib ! MSVC-SAME: /subsystem:console ! MSVC-SAME: "[[object_file]]" + +! Verify that certain linker flags are known to the frontend and are passed on +! to the linker. + +! RUN: %flang -### -rpath /path/to/dir %s 2>&1 \ +! RUN: | FileCheck --check-prefix=CHECK-RPATH %s +! CHECK-RPATH: ld{{.*}} "-rpath" "/path/to/dir" + +! RUN: %flang -### -shared %s 2>&1 \ +! RUN: | FileCheck --check-prefix=CHECK-SHARED %s +! CHECK-SHARED: ld{{.*}} "-shared" + +! RUN: %flang -### -static %s 2>&1 \ +! RUN: | FileCheck --check-prefix=CHECK-STATIC %s +! CHECK-STATIC: ld{{.*}} "-static" + `````````` </details> https://github.com/llvm/llvm-project/pull/66702 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits