Hi, I am new to LLVM and clang and I would like to seek some professional help. :) I have been trying to compile some C code on a linux x86 computer for a Sparc machine. I used: clang -ccc-host-triple sparc-unknown-linux -ccc-clang-archs sparc -pthreads -lm -emit-llvm test.c -c -o -test.bc The following error messages are produced: /usr/include/pthread.h:665:6: error: 'regparm' is not valid on this platform __cleanup_fct_attribute; ^~~~~~~~~~~~~~~~~~~~~~~ In file included from TEST.C:46: In file included from /usr/include/stdlib.h:320: In file included from /usr/include/sys/types.h:271: /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) ^ ~ In file included from TEST.C:65: /usr/include/pthread.h:677:3: error: 'regparm' is not valid on this platform __cleanup_fct_attribute; ^~~~~~~~~~~~~~~~~~~~~~~ In file included from TEST.C:46: In file included from /usr/include/stdlib.h:320: In file included from /usr/include/sys/types.h:271: /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) ^ ~ In file included from TEST.C:65: /usr/include/pthread.h:718:6: error: 'regparm' is not valid on this platform __cleanup_fct_attribute __attribute__ ((__noreturn__)) ^~~~~~~~~~~~~~~~~~~~~~~ What causes the errors and how can I fix it? Thanks a lot and have a nice weekend! Best, Christine -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110916/ed23fc74/attachment.html>
On Sep 16, 2011, at 4:40 PM, Christine Cheng wrote:> Hi, > > I am new to LLVM and clang and I would like to seek some professional help. :) > > I have been trying to compile some C code on a linux x86 computer for a Sparc machine. > > I used: > > clang -ccc-host-triple sparc-unknown-linux -ccc-clang-archs sparc -pthreads -lm -emit-llvm test.c -c -o -test.bc > > The following error messages are produced: > > /usr/include/pthread.h:665:6: error: 'regparm' is not valid on this platform > __cleanup_fct_attribute; > ^~~~~~~~~~~~~~~~~~~~~~~ > In file included from TEST.C:46: > In file included from /usr/include/stdlib.h:320: > In file included from /usr/include/sys/types.h:271: > /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: > # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) > ^ ~ > In file included from TEST.C:65: > /usr/include/pthread.h:677:3: error: 'regparm' is not valid on this platform > __cleanup_fct_attribute; > ^~~~~~~~~~~~~~~~~~~~~~~ > In file included from TEST.C:46: > In file included from /usr/include/stdlib.h:320: > In file included from /usr/include/sys/types.h:271:The files in /usr/include are extremely unlikely to be the right ones. You need a Sparc standard library, not an x86 one like will be installed in /usr.> /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: > # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) > ^ ~ > In file included from TEST.C:65: > /usr/include/pthread.h:718:6: error: 'regparm' is not valid on this platform > __cleanup_fct_attribute __attribute__ ((__noreturn__)) > ^~~~~~~~~~~~~~~~~~~~~~~ > > What causes the errors and how can I fix it? > > Thanks a lot and have a nice weekend! > > Best, > Christine > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Fri, Sep 16, 2011 at 4:40 PM, Christine Cheng <clcheng at stanford.edu> wrote:> Hi, > > I am new to LLVM and clang and I would like to seek some professional help. > :) > > I have been trying to compile some C code on a linux x86 computer for a > Sparc machine. > > I used: > > clang -ccc-host-triple sparc-unknown-linux -ccc-clang-archs sparc -pthreads > -lm -emit-llvm test.c -c -o -test.bc > > The following error messages are produced: > > /usr/include/pthread.h:665:6: error: 'regparm' is not valid on this platform > __cleanup_fct_attribute; > ^~~~~~~~~~~~~~~~~~~~~~~ > In file included from TEST.C:46: > In file included from /usr/include/stdlib.h:320: > In file included from /usr/include/sys/types.h:271: > /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: > # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) > ^ ~ > In file included from TEST.C:65: > /usr/include/pthread.h:677:3: error: 'regparm' is not valid on this platform > __cleanup_fct_attribute; > ^~~~~~~~~~~~~~~~~~~~~~~ > In file included from TEST.C:46: > In file included from /usr/include/stdlib.h:320: > In file included from /usr/include/sys/types.h:271: > /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: > # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) > ^ ~ > In file included from TEST.C:65: > /usr/include/pthread.h:718:6: error: 'regparm' is not valid on this platform > __cleanup_fct_attribute __attribute__ ((__noreturn__)) > ^~~~~~~~~~~~~~~~~~~~~~~ > > What causes the errors and how can I fix it?You're using headers from your x86 machine to compile code for Sparc (and possibly a different OS?); that doesn't work in general. You'll need to somehow use headers from your target Sparc machine to make things work properly; you can probably just copy them, and use -nostdinc plus some -I flags to make clang use them. -Eli
Hi Eli, Thanks for the reply. Indeed there is solaris on the Sparc machine. I was told that it is quite difficult to install LLVM there so I am doing what I am doing. Is there a way for me to get headers from the target Sparc machine without installing LLVM there? Best, Christine On Fri, Sep 16, 2011 at 4:56 PM, Eli Friedman <eli.friedman at gmail.com>wrote:> On Fri, Sep 16, 2011 at 4:40 PM, Christine Cheng <clcheng at stanford.edu> > wrote: > > Hi, > > > > I am new to LLVM and clang and I would like to seek some professional > help. > > :) > > > > I have been trying to compile some C code on a linux x86 computer for a > > Sparc machine. > > > > I used: > > > > clang -ccc-host-triple sparc-unknown-linux -ccc-clang-archs sparc > -pthreads > > -lm -emit-llvm test.c -c -o -test.bc > > > > The following error messages are produced: > > > > /usr/include/pthread.h:665:6: error: 'regparm' is not valid on this > platform > > __cleanup_fct_attribute; > > ^~~~~~~~~~~~~~~~~~~~~~~ > > In file included from TEST.C:46: > > In file included from /usr/include/stdlib.h:320: > > In file included from /usr/include/sys/types.h:271: > > /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: > > # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) > > ^ ~ > > In file included from TEST.C:65: > > /usr/include/pthread.h:677:3: error: 'regparm' is not valid on this > platform > > __cleanup_fct_attribute; > > ^~~~~~~~~~~~~~~~~~~~~~~ > > In file included from TEST.C:46: > > In file included from /usr/include/stdlib.h:320: > > In file included from /usr/include/sys/types.h:271: > > /usr/include/bits/pthreadtypes.h:222:50: note: instantiated from: > > # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) > > ^ ~ > > In file included from TEST.C:65: > > /usr/include/pthread.h:718:6: error: 'regparm' is not valid on this > platform > > __cleanup_fct_attribute __attribute__ ((__noreturn__)) > > ^~~~~~~~~~~~~~~~~~~~~~~ > > > > What causes the errors and how can I fix it? > > You're using headers from your x86 machine to compile code for Sparc > (and possibly a different OS?); that doesn't work in general. You'll > need to somehow use headers from your target Sparc machine to make > things work properly; you can probably just copy them, and use > -nostdinc plus some -I flags to make clang use them. > > -Eli >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110916/8cb3ded6/attachment.html>