Author: hahnfeld Date: Mon Jul 23 11:27:09 2018 New Revision: 337722 URL: http://llvm.org/viewvc/llvm-project?rev=337722&view=rev Log: Revert "[OPENMP] Fix PR38026: Link -latomic when -fopenmp is used."
This reverts commit r336467: libatomic is not available on all Linux systems and this commit completely breaks OpenMP on them, even if there are no atomic operations or all of them can be lowered to hardware instructions. See http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20180716/234816.html for post-commit discussion. Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp cfe/trunk/test/OpenMP/linking.c Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=337722&r1=337721&r2=337722&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Mon Jul 23 11:27:09 2018 @@ -479,7 +479,6 @@ void tools::gnutools::Linker::ConstructJ bool WantPthread = Args.hasArg(options::OPT_pthread) || Args.hasArg(options::OPT_pthreads); - bool WantAtomic = false; // FIXME: Only pass GompNeedsRT = true for platforms with libgomp that // require librt. Most modern Linux platforms do, but some may not. @@ -488,16 +487,13 @@ void tools::gnutools::Linker::ConstructJ /* GompNeedsRT= */ true)) // OpenMP runtimes implies pthreads when using the GNU toolchain. // FIXME: Does this really make sense for all GNU toolchains? - WantAtomic = WantPthread = true; + WantPthread = true; AddRunTimeLibs(ToolChain, D, CmdArgs, Args); if (WantPthread && !isAndroid) CmdArgs.push_back("-lpthread"); - if (WantAtomic) - CmdArgs.push_back("-latomic"); - if (Args.hasArg(options::OPT_fsplit_stack)) CmdArgs.push_back("--wrap=pthread_create"); Modified: cfe/trunk/test/OpenMP/linking.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/linking.c?rev=337722&r1=337721&r2=337722&view=diff ============================================================================== --- cfe/trunk/test/OpenMP/linking.c (original) +++ cfe/trunk/test/OpenMP/linking.c Mon Jul 23 11:27:09 2018 @@ -8,14 +8,14 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-32 %s // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" // CHECK-LD-32: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" -// CHECK-LD-32: "-lpthread" "-latomic" "-lc" +// CHECK-LD-32: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp -target x86_64-unknown-linux -rtlib=platform \ // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" // CHECK-LD-64: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" -// CHECK-LD-64: "-lpthread" "-latomic" "-lc" +// CHECK-LD-64: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp=libgomp -target i386-unknown-linux -rtlib=platform \ @@ -27,7 +27,7 @@ // SIMD-ONLY2-NOT: liomp // CHECK-GOMP-LD-32: "{{.*}}ld{{(.exe)?}}" // CHECK-GOMP-LD-32: "-lgomp" "-lrt" -// CHECK-GOMP-LD-32: "-lpthread" "-latomic" "-lc" +// CHECK-GOMP-LD-32: "-lpthread" "-lc" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 -fopenmp-simd -target i386-unknown-linux -rtlib=platform | FileCheck --check-prefix SIMD-ONLY2 %s // SIMD-ONLY2-NOT: lgomp @@ -39,21 +39,21 @@ // RUN: | FileCheck --check-prefix=CHECK-GOMP-LD-64 %s // CHECK-GOMP-LD-64: "{{.*}}ld{{(.exe)?}}" // CHECK-GOMP-LD-64: "-lgomp" "-lrt" -// CHECK-GOMP-LD-64: "-lpthread" "-latomic" "-lc" +// CHECK-GOMP-LD-64: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp -target i386-unknown-linux -rtlib=platform \ // RUN: | FileCheck --check-prefix=CHECK-IOMP5-LD-32 %s // CHECK-IOMP5-LD-32: "{{.*}}ld{{(.exe)?}}" // CHECK-IOMP5-LD-32: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" -// CHECK-IOMP5-LD-32: "-lpthread" "-latomic" "-lc" +// CHECK-IOMP5-LD-32: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp -target x86_64-unknown-linux -rtlib=platform \ // RUN: | FileCheck --check-prefix=CHECK-IOMP5-LD-64 %s // CHECK-IOMP5-LD-64: "{{.*}}ld{{(.exe)?}}" // CHECK-IOMP5-LD-64: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" -// CHECK-IOMP5-LD-64: "-lpthread" "-latomic" "-lc" +// CHECK-IOMP5-LD-64: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp=lib -target i386-unknown-linux \ @@ -71,7 +71,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-OVERRIDE-32 %s // CHECK-LD-OVERRIDE-32: "{{.*}}ld{{(.exe)?}}" // CHECK-LD-OVERRIDE-32: "-lgomp" "-lrt" -// CHECK-LD-OVERRIDE-32: "-lpthread" "-latomic" "-lc" +// CHECK-LD-OVERRIDE-32: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp -fopenmp=libgomp -target x86_64-unknown-linux \ @@ -79,7 +79,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-OVERRIDE-64 %s // CHECK-LD-OVERRIDE-64: "{{.*}}ld{{(.exe)?}}" // CHECK-LD-OVERRIDE-64: "-lgomp" "-lrt" -// CHECK-LD-OVERRIDE-64: "-lpthread" "-latomic" "-lc" +// CHECK-LD-OVERRIDE-64: "-lpthread" "-lc" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -fopenmp=libomp -target x86_64-msvc-win32 -rtlib=platform \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits