Clem Wang created PYLUCENE-56:
---------------------------------

             Summary: Can't build JCC on Mac
                 Key: PYLUCENE-56
                 URL: https://issues.apache.org/jira/browse/PYLUCENE-56
             Project: PyLucene
          Issue Type: Bug
         Environment: MacOSX 10.15.7, Intel Core i7, Python 3.8.2, gcc 
(Homebrew GCC 10.2.0_3) 10.2.0

following the instructions here:
http://lucene.apache.org/pylucene/jcc/install.html

svn co https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc jcc

Checked out revision 1886645.

            Reporter: Clem Wang


This is puzzling to me, as I can't figure out how the failing gcc command line 
gets its arguments (mostly).  I found one problem in the setup.py, but I can't 
find the error causing strings anywhere in the files in the jcc directory of 
sub directory.

 

Steps:

 
{code:java}
svn co https://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc jcc
Checked out revision 1886645.
cd jcc
python setup.py build
 
{code}
...

/opt/local/bin/gcc -Wno-unused-result -Wsign-compare -Wunreachable-code 
-fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall 
{color:#FF0000}*-iwithsysroot/*{color}System/Library/Frameworks/System.framework/PrivateHeaders
 
{color:#FF0000}*-iwithsysroot/*{color}Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers
 {color:#FF0000}*-arch arm64*{color} -arch x86_64 
-I/usr/local/opt/libomp/include -Xpreprocessor -fopenmp -dynamiclib -D_jcc_lib 
-DJCC_VER="3.8" 
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include 
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include/darwin
 -I_jcc3 -Ijcc3/sources -I/Users/cwang/3.7/include 
-I/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8
 -c jcc3/sources/jcc.cpp -o 
build/temp.macosx-10.14.6-x86_64-3.8/jcc3/sources/jcc.o -DPYTHON 
-fno-strict-aliasing -Wno-write-strings -mmacosx-version-min=10.9 -std=c++11  
{color:#FF0000}*-stdlib=libc++*{color}

 

which generates 4 errors due to the parts marked above in red bold:

 

*gcc:* *error:* this compiler does not support arm64

*gcc:* *error:* unrecognized command-line option 
'*-iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders*'

*gcc:* *error:* unrecognized command-line option 
'*-iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers*'

*gcc:* *error:* unrecognized command-line option '*-stdlib=libc++*'

error: command '/opt/local/bin/gcc' failed with exit status 1

 

Obviously, the contradictory  **
{code:java}

{code}
*-arch arm64*

needs to be removed but I can't find arm64 anywhere.

 

 

The unnecessary **
{code:java}

{code}
*-stdlib=libc++*

 

can be removed from setup.py:

CFLAGS = {
 'darwin': ['-fno-strict-aliasing', '-Wno-write-strings',
 '-mmacosx-version-min=10.9', '-std=c++11', 
{color:#FF0000}*'-stdlib=libc++'*{color}],

 

After poking around, I figured out that gcc uses
{code:java}
-I {code}
not
{code:java}
-i {code}
for includes.

 

Making these modifications (and adding
{code:java}
-Wno-attributes{code}
to remove warnings)

 

I came up with this line that does successfully compile without errors:

/opt/local/bin/gcc -Wno-attributes -Wno-unused-result -Wsign-compare 
-Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall 
-I/System/Library/Frameworks/System.framework/PrivateHeaders 
-I/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers
 -arch x86_64 -I/usr/local/opt/libomp/include -Xpreprocessor -fopenmp 
-dynamiclib -D_jcc_lib -DJCC_VER="3.8" 
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include 
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include/darwin
 -I_jcc3 -Ijcc3/sources -I/Users/cwang/3.7/include 
-I/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8
 -c jcc3/sources/jcc.cpp -o 
build/temp.macosx-10.14.6-x86_64-3.8/jcc3/sources/jcc.o -DPYTHON 
-fno-strict-aliasing -Wno-write-strings -mmacosx-version-min=10.9 -std=c++11

 

But other than removing  *'-stdlib=libc++'*  from the setup.py file I have no 
idea how to modify things to fix the compile errors by the line generated some 
how by setup.py



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

Reply via email to