[LLVMdev] Error building compiler-rt
Sergey Matveev
earthdok at google.com
Wed Jul 17 01:33:43 PDT 2013
This is already fixed.
On Wed, Jul 17, 2013 at 12:17 PM, Kostya Serebryany <kcc at google.com> wrote:
> +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/09ec725f/attachment.html>
More information about the llvm-dev
mailing list