[LLVMdev] [cfe-dev] use of undeclared identifier '__NR_*' error while building clang
Alexey Samsonov
vonosmas at gmail.com
Fri Jun 13 15:23:20 PDT 2014
On Mon, Jun 9, 2014 at 6:12 PM, Sandeep K Chaudhary <
babbusandy2006 at gmail.com> wrote:
> Hi Reid,
>
> Thanks for the reply !
>
> Earlier the build was complaining about not having /asm in /usr/include so
> I created a symbolic link to it with asm-generic, after that I am
> encountering this issue.
>
> I just grep'ed for '__NR_fork', and I can see these numbers in the header
> files.
>
> sandeep at ubuntu:/usr/include$ grep -rni __NR_fork .
> ./asm-generic/unistd.h:850:#define __NR_fork 1079
> ./asm-generic/unistd.h:852:__SYSCALL(__NR_fork, sys_fork)
> ./asm-generic/unistd.h:854:__SYSCALL(__NR_fork, sys_ni_syscall)
> ./asm-generic/unistd.h:858:#define __NR_syscalls (__NR_fork+1)
> ./x86_64-linux-gnu/asm/unistd_x32.h:51:#define __NR_fork
> (__X32_SYSCALL_BIT + 57)
> ./x86_64-linux-gnu/asm/unistd_64.h:61:#define __NR_fork 57
> ./x86_64-linux-gnu/asm/unistd_32.h:6:#define __NR_fork 2
> ./x86_64-linux-gnu/bits/syscall.h:70:#define SYS_fork __NR_fork
> ./x86_64-linux-gnu/bits/syscall.h:418:#define SYS_fork __NR_fork
> ./x86_64-linux-gnu/bits/syscall.h:730:#define SYS_fork __NR_fork
>
> So these numbers are available in /usr/include. Are these not sufficient?
>
Sanitizers use this line to get syscall numbers:
#include <sys/syscall.h>
>
> Thanks,
> Sandeep.
>
>
>
>
> On Mon, Jun 9, 2014 at 8:37 PM, Reid Kleckner <rnk at google.com> wrote:
>
>> -cfe-dev
>>
>> Based on your question on IRC, it sounds like there's something wrong
>> with your Linux headers. Make sure you have something that provides the
>> syscall numbers in /usr/include. My workstation has them in
>> x86_64-linux-gnu/asm/unistd_(32|64).h:
>>
>> $ ack '__NR_fork' /usr/include/
>> /usr/include/asm-generic/unistd.h
>> 849:#define __NR_fork 1079
>> 851:__SYSCALL(__NR_fork, sys_fork)
>> 853:__SYSCALL(__NR_fork, sys_ni_syscall)
>> 857:#define __NR_syscalls (__NR_fork+1)
>>
>> /usr/include/x86_64-linux-gnu/asm/unistd_32.h
>> 10:#define __NR_fork 2
>>
>> /usr/include/x86_64-linux-gnu/asm/unistd_64.h
>> 136:#define __NR_fork 57
>> 137:__SYSCALL(__NR_fork, stub_fork)
>>
>> /usr/include/x86_64-linux-gnu/bits/syscall.h
>> 70:#define SYS_fork __NR_fork
>> 417:#define SYS_fork __NR_fork
>>
>>
>> On Mon, Jun 9, 2014 at 5:08 PM, Sandeep K Chaudhary <
>> babbusandy2006 at gmail.com> wrote:
>>
>>> Hi guys,
>>>
>>> I am following this[1] tutorial to install clang. However, I have made a
>>> small change in the configure command, and I am running it with
>>> '--enable-optimized' option to avoid the debug build.
>>>
>>> I am getting the errors (given at the end) related to *undeclared
>>> identifiers '__NR_*'*. Can someone please provide some input about how
>>> to tackle this issue?
>>>
>>> On my other machine, I followed the same guide[1] (without the
>>> --enable-optimized option), and everything built successfully.
>>>
>>> [1] http://clang.llvm.org/get_started.html
>>>
>>> ====================
>>> warning: clang_darwin.mk: dropping arch 'x86_64h' from lib 'ubsan_osx'
>>> (ld does not support it)
>>> make[5]: Entering directory
>>> `/home/sandeep/llvm_clang/llvm/projects/compiler-rt'
>>> COMPILE: clang_linux/san-i386/i386:
>>> /home/sandeep/llvm_clang/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
>>> /home/sandeep/llvm_clang/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc:123:27:
>>> error: use of undeclared identifier '__NR_open'
>>> return internal_syscall(SYSCALL(open), (uptr)filename, flags);
>>> ^
>>> /home/sandeep/llvm_clang/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc:17:24:
>>> note: expanded from macro 'SYSCALL'
>>> # define SYSCALL(name) __NR_ ## name
>>> ^
>>> <scratch space>:62:1: note: expanded from here
>>> __NR_open
>>> ^
>>> /home/sandeep/llvm_clang/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc:132:27:
>>> error: use of undeclared identifier '__NR_open'
>>> return internal_syscall(SYSCALL(open), (uptr)filename, flags, mode);
>>> ^
>>> --------------
>>>
>>> /home/sandeep/llvm_clang/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc:516:27:
>>> error: use of undeclared identifier '__NR_fork'
>>> return internal_syscall(SYSCALL(fork));
>>> ^
>>> /home/sandeep/llvm_clang/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc:17:24:
>>> note: expanded from macro 'SYSCALL'
>>> # define SYSCALL(name) __NR_ ## name
>>> ^
>>> <scratch space>:62:1: note: expanded from here
>>> __NR_fork
>>> ^
>>> 12 errors generated.
>>> make[5]: ***
>>> [/home/sandeep/llvm_clang/build/tools/clang/runtime/compiler-rt/clang_linux/san-i386/i386/SubDir.lib__sanitizer_common/sanitizer_linux.o]
>>> Error 1
>>> make[5]: Leaving directory
>>> `/home/sandeep/llvm_clang/llvm/projects/compiler-rt'
>>> make[4]: *** [BuildRuntimeLibraries] Error 2
>>> make[4]: Leaving directory
>>> `/home/sandeep/llvm_clang/build/tools/clang/runtime/compiler-rt'
>>> make[3]: *** [compiler-rt/.makeall] Error 2
>>> make[3]: Leaving directory
>>> `/home/sandeep/llvm_clang/build/tools/clang/runtime'
>>> make[2]: *** [all] Error 1
>>> make[2]: Leaving directory `/home/sandeep/llvm_clang/build/tools/clang'
>>> make[1]: *** [clang/.makeall] Error 2
>>> make[1]: Leaving directory `/home/sandeep/llvm_clang/build/tools'
>>> make: *** [all] Error 1
>>>
>>> Thanks and regards,
>>> Sandeep.
>>>
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>>
>>>
>>
>
>
> --
> Thanks and regards,
> Sandeep K Chaudhary.
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
--
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140613/f8bc20a7/attachment.html>
More information about the llvm-dev
mailing list