[LLVMdev] Error building compiler-rt

Kostya Serebryany kcc at google.com
Wed Jul 17 01:17:30 PDT 2013


+Sergey Matveev


On Wed, Jul 10, 2013 at 2:00 AM, Andy Jost <Andrew.Jost at synopsys.com> wrote:

>  Ok, after familiarizing myself with clone it appears to me this is a bug
> in compiler-rt.****
>
> ** **
>
> From the clone man page:****
>
> ** **
>
> In Linux 2.4 and earlier, clone() does not take arguments ptid, tls, and
> ctid. ****
>
> ** **
>
> The source file passes those arguments without any fencing to check the
> Linux version.  Also, ptid, tls, and ctid are only used in conjunction with
> certain flags (e.g., CLONE_PARENT_SETTID), but none of those flags are set.
> ****
>
> ** **
>
> It looks like the fix (for all Linux versions) would be to simply remove
> the last three arguments from the call.****
>
> ** **
>
> -Andy****
>
> ** **
>
> *From:* llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] *On
> Behalf Of *Andy Jost
> *Sent:* Tuesday, July 09, 2013 2:44 PM
> *To:* LLVMdev at cs.uiuc.edu
> *Subject:* [LLVMdev] Error building compiler-rt****
>
> ** **
>
> Hi,****
>
> ** **
>
> I get the following error while building compiler-rt:****
>
> ** **
>
> /slowfs/msret_s1_us03/ajost/src/llvm-3.3.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux.cc:315:22:
> error: no matching function for call to 'clone'****
>
>   pid_t tracer_pid = clone(TracerThread, tracer_stack.Bottom(),****
>
>                      ^~~~~****
>
> /usr/include/bits/sched.h:71:12: note: candidate function not viable:
> requires 4 arguments, but 7 were provided****
>
> extern int clone (int (*__fn) (void *__arg), void *__child_stack,****
>
> ** **
>
> Inside sched.h, clone is indeed declared with four arguments, but,
> interestingly, the man page for clone provides this prototype:****
>
> ** **
>
>        #include <sched.h>****
>
> ** **
>
>        int clone(int (*fn)(void *), void *child_stack,****
>
>                  int flags, void *arg, ...****
>
>                  /* pid_t *pid, struct user_desc *tls, pid_t *ctid */ );**
> **
>
> ** **
>
> I’m running RedHat EL 2.6.9-89.ELlargesmp without root privileges.****
>
> ** **
>
> Is this a bug in LLVM?  Do I just have an old version of clone that’s not
> supported by LLVM?  I can try just removing the last three arguments from
> the compiler-rt source, but is that the best solution?  If someone can
> point out a clean way to fix this, then I don’t mind trying to contribute a
> patch (I would need to learn how).****
>
> ** **
>
> Also, is this something that autoconf should have detected?  What should
> it have done about it?****
>
> ** **
>
> -Andy ****
>
> ** **
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130717/5141754e/attachment.html>


More information about the llvm-dev mailing list