[ 
https://issues.apache.org/jira/browse/ARROW-7033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16964349#comment-16964349
 ] 

Wes McKinney commented on ARROW-7033:
-------------------------------------

I think this is a new issue with newer versions of Xcode, this was not required 
in the past as far as I know

> [C++] Error in./configure step for jemalloc when building on OSX 10.14.6
> ------------------------------------------------------------------------
>
>                 Key: ARROW-7033
>                 URL: https://issues.apache.org/jira/browse/ARROW-7033
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>            Reporter: Christian Hudon
>            Priority: Major
>
> Hello. I'm trying to build the C++ part of Apache Arrow (as a first step to 
> possible contributions). I'm following the C++ Development instructions, but 
> running into an error early. I also looked at ARROW-4935, but the cause there 
> seems different, so I'm opening a new bug report.
> I'm on MacOS 10.14.6. I have the XCode cli tools installed (via 
> xcode-select), and installed the other dependencies with Homebrew, giving it 
> the cpp/Brewfile. I want to be able to run the tests, so I'm configuring a 
> debug build with:
>   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
> from an out-of-source build, in a cpp/debug directory. Then, running make, I 
> get very quickly the following error:
> {{$ make}}
> {{[ 0%] Performing configure step for 'jemalloc_ep'}}
> {{CMake Error at 
> /Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-DEBUG.cmake:49
>  (message):}}
> {{ Command failed: 1}}{{'./configure' 
> 'AR=/Library/Developer/CommandLineTools/usr/bin/ar' 
> 'CC=/Library/Developer/CommandLineTools/usr/bin/cc' 
> '--prefix=/Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep/dist/'
>  '--with-jemalloc-prefix=je_arrow_' 
> '--with-private-namespace=je_arrow_private_' '--without-export' 
> '--disable-cxx' '--disable-libdl' '--disable-initial-exec-tls'}}{{See 
> also}}{{/Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-*.log}}
> {{make[2]: *** 
> [jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure] Error 1}}
> {{make[1]: *** [CMakeFiles/jemalloc_ep.dir/all] Error 2}}
> {{make: *** [all] Error 2}}
> {{Looking into the log file as suggested, I see:}}
> configure: error: in 
> `/Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep':
> configure: error: cannot run C compiled programs.
> If you meant to cross compile, use `--host'.
> See `config.log' for more details 
> ... which seems a bit suspicuous. Running the ./configure invocation 
> manually, I get the same error:
> {{$ './configure' 'AR=/Library/Developer/CommandLineTools/usr/bin/ar' 
> 'CC=/Library/Developer/CommandLineTools/usr/bin/cc' 
> '--prefix=/Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep/dist/'
>  '--with-jemalloc-prefix=je_arrow_' 
> '--with-private-namespace=je_arrow_private_' '--without-export' 
> '--disable-cxx' '--disable-libdl' '--disable-initial-exec-tls'}}
> {{checking for xsltproc... /usr/bin/xsltproc}}
> {{checking for gcc... /Library/Developer/CommandLineTools/usr/bin/cc}}
> {{checking whether the C compiler works... yes}}
> {{checking for C compiler default output file name... a.out}}
> {{checking for suffix of executables...}}
> {{checking whether we are cross compiling... configure: error: in 
> `/Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep':}}
> {{configure: error: cannot run C compiled programs.}}
> {{If you meant to cross compile, use `--host'.}}
> {{See `config.log' for more details}}{{}}
> {{Digging into config.log, I see:}}
> configure:3213: checking whether we are cross compiling
> *configure:3221: /Library/Developer/CommandLineTools/usr/bin/cc -o conftest 
> conftest.c >&5*
> *conftest.c:9:10: fatal error: 'stdio.h' file not found*
> #include <stdio.h>
>  ^~~~~~~~~
> 1 error generated.
> configure:3225: $? = 1
> configure:3232: ./conftest
> ./configure: line 3234: ./conftest: No such file or directory
> configure:3236: $? = 127
> configure:3243: error: in 
> `/Users/chrish/Code/arrow/cpp/debug/jemalloc_ep-prefix/src/jemalloc_ep':
> configure:3245: error: cannot run C compiled programs.
> If you meant to cross compile, use `--host'.
> (Relevant bit in bold.) Well, that would make more sense, at least. I create 
> a close-enough conftest.c by hand:
> {{#include <stdio.h>}}
> {{int main(void) \{ return 0; }}}
> and try to compile it with the same command-line invocation:
> {{$  /Library/Developer/CommandLineTools/usr/bin/cc -o conftest conftest.c}}
> {{I get that same error:}}
> conftest.c:1:10: fatal error: 'stdio.h' file not found
> #include <stdio.h>
>  ^~~~~~~~~
> 1 error generated.
> However, I also have a cc in /usr/bin. If I try that one instead, things 
> works:
> {{$ /usr/bin/cc -o conftest conftest.c}}
> {{$ ls -l conftest}}
> {{-rwxr-xr-x 1 chrish staff 4,2K oct 30 16:03 conftest*}}
> {{$ ./conftest}}
> {{(No error compiling or running conftest.c)}}
> The two executable seem to be the same compiler (or at least the exact same 
> version):
> {{$ /usr/bin/cc --version
> Apple LLVM version 10.0.1 (clang-1001.0.46.4)
> Target: x86_64-apple-darwin18.7.0
> Thread model: posix
> InstalledDir: /Library/Developer/CommandLineTools/usr/bin}}
> {{$ /Library/Developer/CommandLineTools/usr/bin/cc --version
> Apple LLVM version 10.0.1 (clang-1001.0.46.4)
> Target: x86_64-apple-darwin18.7.0
> Thread model: posix
> InstalledDir: /Library/Developer/CommandLineTools/usr/bin}}{{}}
> So... I guess at least for me, Apple's Clang works correctly only if invoked 
> from the /usr/bin path. Any reason why the configure, etc. scripts make a 
> special effort to invoke it from /Library/Developer/CommandLineTools/usr/bin, 
> if it's also available in /usr/bin (which is even in the path by default). 
> How do I fix this, so others don't run into that problem too? Thanks!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to