Rail Shafigulin via llvm-dev
2016-Mar-14 18:37 UTC
[llvm-dev] clang triple and clang target
On Sat, Mar 12, 2016 at 2:38 PM, Tim Northover <t.p.northover at gmail.com> wrote:> On 12 March 2016 at 11:51, Rail Shafigulin via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > I tried every possible combination of --target I could think of but > nothing > > worked. Would you mind helping me out? > > First, 64-bit x86 is "x86_64", and 32-bit is "i386" in the triple. For > ARM you'd probably want "thumbv8" or "aarch64". Also, "eabi" is only a > thing on ARM targets, try "gnu" for x86. > > Cheers. > > Tim. >Hi Tim. Thanks for the response. I tried the x86 suggestion but it didn't work. Clearly I'm doing something wrong, but I don't know what exactly. I would really appreciate your help in this. Here is the command line I'm using clang -S test.c -o test.sse2.x86_64.s --target=x86_64-pc-linux-gnu -mfloat-abi=hard -mcpu=k8 -mfpu=SSE2 -fslp-vectorize-aggressive -fslp-vectorize-aggressive -fslp-vectorize -fvectorize -fno-lax-vector-conversions -O3 Here is the response that I get: clang-3.5: warning: argument unused during compilation: '-mfloat-abi=hard' clang-3.5: warning: argument unused during compilation: '-mcpu=k8' clang-3.5: warning: argument unused during compilation: '-mfpu=SSE2' error: unable to create target: 'No available targets are compatible with this triple, see -version for the available targets.' clang --version command produces the following result: clang version 3.5.0 Target: x86_64-unknown-linux-gnu Thread model: posix test.c is attached to this email. So what am I doing wrong? -- Rail Shafigulin Software Engineer Esencia Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160314/8f332672/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: test.c Type: text/x-csrc Size: 206 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160314/8f332672/attachment.c>
Hi Rail, In general we follow the GCC options, documented at https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html for x86 (and similar places for ARM etc). There may be gaps in what Clang supports, and possibly even oddities that we support but GNU doesn't (--target being a case in point). But in general if you're trying to use an option not listed there you should expect to have a bad time of it. On 14 March 2016 at 11:37, Rail Shafigulin <rail at esenciatech.com> wrote:> clang-3.5: warning: argument unused during compilation: '-mfloat-abi=hard'Fair enough, there's no soft-float ABI for x86_64.> clang-3.5: warning: argument unused during compilation: '-mcpu=k8'x86 uses -march and -mtune instead of -mcpu.> clang-3.5: warning: argument unused during compilation: '-mfpu=SSE2'I believe x86 uses "-msse2" for this, but since k8 already has SSE2 (like all 64-bit chips) it shouldn't be needed anyway.> error: unable to create target: 'No available targets are compatible with > this triple, see -version for the available targets.'This I can't explain. It works for me here, where are you getting your clang from?> clang version 3.5.0 > Target: x86_64-unknown-linux-gnu > Thread model: posixPerhaps try updating Clang? Version 3.5 is getting long in the tooth now. Cheers. Tim.
Ramakrishna Mallireddy via llvm-dev
2016-Mar-14 19:32 UTC
[llvm-dev] clang triple and clang target
As --version output, your native target triple is: x86_64-unknown-linux-gnu, & for cross-compilation need to check the build make file settings. try with x86_64-unknown-linux-gnu, for linux-X86 target. *This is related to llvm 3.9.0,* if (LLVM_NATIVE_ARCH MATCHES "i[2-6]86") set(LLVM_NATIVE_ARCH X86) elseif (LLVM_NATIVE_ARCH STREQUAL "x86") set(LLVM_NATIVE_ARCH X86) elseif (LLVM_NATIVE_ARCH STREQUAL "amd64") set(LLVM_NATIVE_ARCH X86) elseif (LLVM_NATIVE_ARCH STREQUAL "x86_64") set(LLVM_NATIVE_ARCH X86) elseif (LLVM_NATIVE_ARCH MATCHES "sparc") set(LLVM_NATIVE_ARCH Sparc) elseif (LLVM_NATIVE_ARCH MATCHES "powerpc") set(LLVM_NATIVE_ARCH PowerPC) elseif (LLVM_NATIVE_ARCH MATCHES "aarch64") set(LLVM_NATIVE_ARCH AArch64) elseif (LLVM_NATIVE_ARCH MATCHES "arm64") set(LLVM_NATIVE_ARCH AArch64) elseif (LLVM_NATIVE_ARCH MATCHES "arm") set(LLVM_NATIVE_ARCH ARM) elseif (LLVM_NATIVE_ARCH MATCHES "mips") set(LLVM_NATIVE_ARCH Mips) elseif (LLVM_NATIVE_ARCH MATCHES "xcore") set(LLVM_NATIVE_ARCH XCore) elseif (LLVM_NATIVE_ARCH MATCHES "msp430") set(LLVM_NATIVE_ARCH MSP430) elseif (LLVM_NATIVE_ARCH MATCHES "hexagon") set(LLVM_NATIVE_ARCH Hexagon) elseif (LLVM_NATIVE_ARCH MATCHES "s390x") set(LLVM_NATIVE_ARCH SystemZ) elseif (LLVM_NATIVE_ARCH MATCHES "wasm32") set(LLVM_NATIVE_ARCH WebAssembly) elseif (LLVM_NATIVE_ARCH MATCHES "wasm64") set(LLVM_NATIVE_ARCH WebAssembly) else () message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}") endif () On Tue, Mar 15, 2016 at 12:07 AM, Rail Shafigulin via llvm-dev < llvm-dev at lists.llvm.org> wrote:> > > On Sat, Mar 12, 2016 at 2:38 PM, Tim Northover <t.p.northover at gmail.com> > wrote: > >> On 12 March 2016 at 11:51, Rail Shafigulin via llvm-dev >> <llvm-dev at lists.llvm.org> wrote: >> > I tried every possible combination of --target I could think of but >> nothing >> > worked. Would you mind helping me out? >> >> First, 64-bit x86 is "x86_64", and 32-bit is "i386" in the triple. For >> ARM you'd probably want "thumbv8" or "aarch64". Also, "eabi" is only a >> thing on ARM targets, try "gnu" for x86. >> >> Cheers. >> >> Tim. >> > > Hi Tim. > > Thanks for the response. I tried the x86 suggestion but it didn't work. > Clearly I'm doing something wrong, but I don't know what exactly. I would > really appreciate your help in this. Here is the command line I'm using > > clang -S test.c -o test.sse2.x86_64.s --target=x86_64-pc-linux-gnu > -mfloat-abi=hard -mcpu=k8 -mfpu=SSE2 -fslp-vectorize-aggressive > -fslp-vectorize-aggressive -fslp-vectorize -fvectorize > -fno-lax-vector-conversions -O3 > > Here is the response that I get: > > clang-3.5: warning: argument unused during compilation: '-mfloat-abi=hard' > clang-3.5: warning: argument unused during compilation: '-mcpu=k8' > clang-3.5: warning: argument unused during compilation: '-mfpu=SSE2' > error: unable to create target: 'No available targets are compatible with > this triple, see -version for the available targets.' > > clang --version command produces the following result: > > clang version 3.5.0 > Target: x86_64-unknown-linux-gnu > Thread model: posix > > test.c is attached to this email. > > So what am I doing wrong? > > -- > Rail Shafigulin > Software Engineer > Esencia Technologies > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160315/1771bf46/attachment.html>
Rail Shafigulin via llvm-dev
2016-Mar-14 21:28 UTC
[llvm-dev] clang triple and clang target
On Mon, Mar 14, 2016 at 12:15 PM, Tim Northover <t.p.northover at gmail.com> wrote:> Hi Rail, > > In general we follow the GCC options, documented at > https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html for x86 (and > similar places for ARM etc). There may be gaps in what Clang supports, > and possibly even oddities that we support but GNU doesn't (--target > being a case in point). But in general if you're trying to use an > option not listed there you should expect to have a bad time of it. > > On 14 March 2016 at 11:37, Rail Shafigulin <rail at esenciatech.com> wrote: > > clang-3.5: warning: argument unused during compilation: > '-mfloat-abi=hard' > > Fair enough, there's no soft-float ABI for x86_64. > > > clang-3.5: warning: argument unused during compilation: '-mcpu=k8' > > x86 uses -march and -mtune instead of -mcpu. > > clang-3.5: warning: argument unused during compilation: '-mfpu=SSE2' > > I believe x86 uses "-msse2" for this, but since k8 already has SSE2 > (like all 64-bit chips) it shouldn't be needed anyway. > > > error: unable to create target: 'No available targets are compatible with > > this triple, see -version for the available targets.' > > This I can't explain. It works for me here, where are you getting your > clang from? > > > clang version 3.5.0 > > Target: x86_64-unknown-linux-gnu > > Thread model: posix > > Perhaps try updating Clang? Version 3.5 is getting long in the tooth now. > > Cheers. > > Tim. >Thanks for the info. I'm currently stuck with 3.5, can't really upgrade. As far as not having an available target, it turns out I was using a wrong clang binary (I have several installed). Really appreciate the help. -- Rail Shafigulin Software Engineer Esencia Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160314/e33479e5/attachment.html>