<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Mar 31, 2014 at 2:03 PM, Andrea D'Amore <span dir="ltr"><<a href="mailto:and.damore@macports.org" target="_blank">and.damore@macports.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
I'm building neovim [1] on OS X 10.9.2 using clang from XCode 5.1, the<br>
--version output is:<br>
  > clang --version<br>
  Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)<br>
  Target: x86_64-apple-darwin13.1.0<br>
  Thread model: posix<br>
<br>
When building the repo at the specific revision in [2] I'm getting the<br>
following error when makefile tries to compile src/os/input.c:<br>
<br>
### START OF PASTE<br>
[ 95%] Building C object src/CMakeFiles/nvim.dir/os/input.c.o<br>
cd /tmp/neovim-git/build/src && /usr/bin/cc  -DHAVE_CONFIG_H -g<br>
-I/opt/local/include -I/tmp/neovim-git/.deps/usr/include<br>
-I/tmp/neovim-git/.deps/usr/include/luajit-2.0<br>
-I/tmp/neovim-git/build/config -I/tmp/neovim-git/src<br>
-I/tmp/neovim-git/src/proto    -Werror -Wall -Wextra -pedantic<br>
-Wno-unused-parameter -std=gnu99 -o CMakeFiles/nvim.dir/os/input.c.o<br>
-c /tmp/neovim-git/src/os/input.c<br>
/tmp/neovim-git/src/os/input.c:194:3: error: implicit declaration of<br>
function 'settmode' is invalid in C99<br>
[-Werror,-Wimplicit-function-declaration]<br>
  settmode(TMODE_COOK);<br>
  ^<br>
/tmp/neovim-git/src/os/input.c:194:3: note: did you mean 'setmode'?<br>
/usr/include/unistd.h:695:7: note: 'setmode' declared here<br>
void    *setmode(const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6,<br>
__IPHONE_2_0, __DARWIN_ALIAS(setmode));<br>
         ^<br>
1 error generated.<br>
make[3]: *** [src/CMakeFiles/nvim.dir/os/input.c.o] Error 1<br>
make[2]: *** [src/CMakeFiles/nvim.dir/all] Error 2<br>
make[1]: *** [all] Error 2<br>
make: *** [nvim] Error 2<br>
### END OF PASTE<br>
<br>
<br>
Function   void setterm(int)   is correctly declared in src/term.h and<br>
defined in src/term.c, also input.c is including src/term.h but if<br>
-I/opt/local/include comes before -I/tmp/neovim-git/src clang cannot<br>
see the setterm() declaration at all, also it suggest that it may be a<br>
typo for seterm() in unistd.h instead.<br>
<br>
If I move  -I/opt/local/include   after   -I/tmp/neovim-git/src   then<br>
input.c source file is correctly compiled.<br>
<br>
Is it correct for clang to not check in directories specified with<br>
following -I args for an exact match for the function prototype?<br>
Is the likeness of   seterm()   name tricking clang?<br></blockquote><div><br></div><div>If there's a term.h in /opt/local/include, and input.c says </div><div><br></div><div>  #include "term.h"</div><div><br>
</div><div>then it's correct for Clang to find that one. #include only includes one file, not all files on all include paths with the specified name.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Best regards<br>
<br>
[1] <a href="http://neovim.org/" target="_blank">http://neovim.org/</a><br>
[2] <a href="https://github.com/neovim/neovim/tree/54782ecf" target="_blank">https://github.com/neovim/neovim/tree/54782ecf</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Andrea<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</font></span></blockquote></div><br></div></div>