-
Notifications
You must be signed in to change notification settings - Fork 10.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[flang][Driver] Support -pthread
to the frontend.
#75739
Conversation
@llvm/pr-subscribers-clang @llvm/pr-subscribers-flang-driver Author: Kareem Ergawy (ergawy) ChangesAdds Full diff: https://github.com/llvm/llvm-project/pull/75739.diff 2 Files Affected:
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 1b02087425b751..b8b8d476413982 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -5297,7 +5297,7 @@ def pthreads : Flag<["-"], "pthreads">;
defm pthread : BoolOption<"", "pthread",
LangOpts<"POSIXThreads">, DefaultFalse,
PosFlag<SetTrue, [], [ClangOption], "Support POSIX threads in generated code">,
- NegFlag<SetFalse>, BothFlags<[], [ClangOption, CC1Option]>>;
+ NegFlag<SetFalse>, BothFlags<[], [ClangOption, CC1Option, FlangOption]>>;
def pie : Flag<["-"], "pie">, Group<Link_Group>;
def static_pie : Flag<["-"], "static-pie">, Group<Link_Group>;
def read__only__relocs : Separate<["-"], "read_only_relocs">;
diff --git a/flang/test/Driver/dynamic-linker.f90 b/flang/test/Driver/dynamic-linker.f90
index df119c22a2ea51..57a2af01aadff7 100644
--- a/flang/test/Driver/dynamic-linker.f90
+++ b/flang/test/Driver/dynamic-linker.f90
@@ -1,7 +1,7 @@
! Verify that certain linker flags are known to the frontend and are passed on
! to the linker.
-! RUN: %flang -### --target=x86_64-linux-gnu -rpath /path/to/dir -shared \
+! RUN: %flang -### --target=x86_64-linux-gnu -rpath /path/to/dir -shared -pthread \
! RUN: -static %s 2>&1 | FileCheck \
! RUN: --check-prefixes=GNU-LINKER-OPTIONS %s
! RUN: %flang -### --target=x86_64-windows-msvc -rpath /path/to/dir -shared \
@@ -13,6 +13,7 @@
! GNU-LINKER-OPTIONS-SAME: "-shared"
! GNU-LINKER-OPTIONS-SAME: "-static"
! GNU-LINKER-OPTIONS-SAME: "-rpath" "/path/to/dir"
+! GNU-LINKER-OPTIONS-SAME: "-lpthread"
! For MSVC, adding -static does not add any additional linker options.
! MSVC-LINKER-OPTIONS: "{{.*}}link{{(.exe)?}}"
|
Adds `-pthread` option to flang. Since the GNU toolchain already adds the required linker flag, we only need to declare `FlangOption` as one of the supported options for `-pthread`.
2880ebc
to
395b56f
Compare
Hi @ergawy , thanks for this contribution! Could you add a test that would demonstrate compilation failing without |
Thanks for the suggestion. Actually I failed to do that 😆. After looking into it, seems that for the GNU toolchain, the I think I will abandon this PR then. Just need to double check once more. |
Abandoning this PR since for the GNU toolchain there is no need to explicitly link with pthread to use the API. |
Adds
-pthread
option to flang. Since the GNU toolchain already adds the required linker flag, we only need to declareFlangOption
as one of the supported options for-pthread
.