Author: gbercea Date: Mon Aug 27 13:16:20 2018 New Revision: 340772 URL: http://llvm.org/viewvc/llvm-project?rev=340772&view=rev Log: [OpenMP][NVPTX] Use appropriate _CALL_ELF macro when offloading
Summary: When offloading to a device and using the powerpc64le version of the auxiliary triple, the _CALL_ELF macro is not set correctly to 2 resulting in the attempt to include a header that does not exist. This patch fixes this problem. Reviewers: Hahnfeld, ABataev, caomhin Reviewed By: Hahnfeld Subscribers: guansong, cfe-commits Differential Revision: https://reviews.llvm.org/D51312 Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp cfe/trunk/test/Preprocessor/aux-triple.c Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=340772&r1=340771&r2=340772&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original) +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Mon Aug 27 13:16:20 2018 @@ -1106,14 +1106,19 @@ static void InitializePredefinedAuxMacro auto AuxTriple = AuxTI.getTriple(); // Define basic target macros needed by at least bits/wordsize.h and - // bits/mathinline.h + // bits/mathinline.h. + // On PowerPC, explicitely set _CALL_ELF macro needed for gnu/stubs.h. switch (AuxTriple.getArch()) { case llvm::Triple::x86_64: Builder.defineMacro("__x86_64__"); break; case llvm::Triple::ppc64: + Builder.defineMacro("__powerpc64__"); + Builder.defineMacro("_CALL_ELF", "1"); + break; case llvm::Triple::ppc64le: Builder.defineMacro("__powerpc64__"); + Builder.defineMacro("_CALL_ELF", "2"); break; default: break; Modified: cfe/trunk/test/Preprocessor/aux-triple.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/aux-triple.c?rev=340772&r1=340771&r2=340772&view=diff ============================================================================== --- cfe/trunk/test/Preprocessor/aux-triple.c (original) +++ cfe/trunk/test/Preprocessor/aux-triple.c Mon Aug 27 13:16:20 2018 @@ -14,7 +14,7 @@ // RUN: %clang_cc1 -x cuda -E -dM -ffreestanding < /dev/null \ // RUN: -triple nvptx64-none-none -aux-triple powerpc64le-unknown-linux-gnu \ // RUN: | FileCheck -match-full-lines %s \ -// RUN: -check-prefixes NVPTX64,PPC64,LINUX,LINUX-CPP +// RUN: -check-prefixes NVPTX64,PPC64LE,LINUX,LINUX-CPP // RUN: %clang_cc1 -x cuda -E -dM -ffreestanding < /dev/null \ // RUN: -triple nvptx64-none-none -aux-triple x86_64-unknown-linux-gnu \ // RUN: | FileCheck -match-full-lines %s \ @@ -24,7 +24,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding < /dev/null \ // RUN: -fopenmp -fopenmp-is-device -triple nvptx64-none-none \ // RUN: -aux-triple powerpc64le-unknown-linux-gnu \ -// RUN: | FileCheck -match-full-lines -check-prefixes NVPTX64,PPC64,LINUX %s +// RUN: | FileCheck -match-full-lines -check-prefixes NVPTX64,PPC64LE,LINUX %s // RUN: %clang_cc1 -E -dM -ffreestanding < /dev/null \ // RUN: -fopenmp -fopenmp-is-device -triple nvptx64-none-none \ // RUN: -aux-triple x86_64-unknown-linux-gnu \ @@ -33,13 +33,15 @@ // RUN: -fopenmp -fopenmp-is-device -triple nvptx64-none-none \ // RUN: -aux-triple powerpc64le-unknown-linux-gnu \ // RUN: | FileCheck -match-full-lines %s \ -// RUN: -check-prefixes NVPTX64,PPC64,LINUX,LINUX-CPP +// RUN: -check-prefixes NVPTX64,PPC64LE,LINUX,LINUX-CPP // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding < /dev/null \ // RUN: -fopenmp -fopenmp-is-device -triple nvptx64-none-none \ // RUN: -aux-triple x86_64-unknown-linux-gnu \ // RUN: | FileCheck -match-full-lines %s \ // RUN: -check-prefixes NVPTX64,X86_64,LINUX,LINUX-CPP +// PPC64LE:#define _CALL_ELF 2 + // NONE-NOT:#define _GNU_SOURCE // LINUX-CPP:#define _GNU_SOURCE 1 @@ -56,7 +58,7 @@ // LINUX:#define __linux__ 1 // NONE-NOT:#define __powerpc64__ -// PPC64:#define __powerpc64__ 1 +// PPC64LE:#define __powerpc64__ 1 // NONE-NOT:#define __x86_64__ // X86_64:#define __x86_64__ 1 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits