[cfe-dev] use of undeclared identifier '__NR_*' error while building clang

Reid Kleckner rnk at google.com
Mon Jun 9 17:37:18 PDT 2014


-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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140609/caefa651/attachment.html>


More information about the cfe-dev mailing list