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

Clem Wang edited comment on PYLUCENE-10 at 2/10/21, 1:55 AM:
-------------------------------------------------------------

I had a lot of trouble with building PyLucene.   I finally got it built (under 
Python 2.7) with much gnashing of teeth but I'm not sure I can get it to run 
under 2.7 (I'm not going to bother describing that since I don't think it will 
be useful.) I'd rather try to get PyLucene built and running under Python 3.x.

I suspect some of this has to do with lack of support from Apple and Oracle for 
Java as well as half-hearted support between gcc & clang headers, libraries, 
and flags, so I'm not even sure how much responsibility falls onto PyLucene.

For me, it would be preferable if I could just download a binary (although I 
don't know how difficult that would be).

My configuration:
 * pylucene-8.6.1 gotten from 
[https://mirrors.ocf.berkeley.edu/apache/lucene/pylucene/]

 * Mac OSX 10.15.7
 * Macbook Pro, Intel Core i7
 * gcc --version   gcc (Homebrew GCC 10.2.0_3) 10.2.0
 * clang --version
 ** Apple clang version 12.0.0 (clang-1200.0.32.29)
 ** Target: x86_64-apple-darwin19.6.0
 ** Thread model: posix

 
 * Python 3.8.2
 * java -version
 ** openjdk version "1.8.0_282"
 ** OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)
 ** OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08, mixed mode)

 

I get 4 errors I get when building with Python 3.8.2, of which one is easy to 
fix but the other are total puzzles to me:

 

 
{code:java}
python setup.py build
...
/opt/local/bin/gcc -Wno-unused-result -Wsign-compare -Wunreachable-code 
-fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall 
-iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders 
-iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers
 -arch arm64 -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 
-stdlib=libc++
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++'
{code}
 

 

Error 1. this makes least amount of sense is having two different architecture 
flags when I'm building on and for an Intel machine.  However, I have no idea 
where this is being mandated.  (I can't find it in the setup.py file)  
{code:java}
flags -arch arm64 -arch x86_64{code}
 

Error 2 & 3  couldn't find this string in setup.py and nothing actionable with 
google:  
{code:java}
-iwithsysroot/....{code}
 but it does appear to be a clang flag:  
https://clang.llvm.org/docs/ClangCommandLineReference.html

Error 4 seems easy to fix:
{code:java}
-stdlib=libc++{code}
it looks like shouldn't be used and that was easy to remove from setup.py:

[https://stackoverflow.com/questions/19774778/when-is-it-necessary-to-use-the-flag-stdlib-libstdc]

 

I also believe that 
{code:java}
-ljvm{code}
and
{code:java}
 -ljava{code}
flags need to be removed as well from the LFLAGS for darwin.

 


was (Author: clemwang906):
I had a lot of trouble with building PyLucene.   I finally got it built (under 
Python 2.7) with much gnashing of teeth but I'm not sure I can get it to run 
under 2.7 (I'm not going to bother describing that since I don't think it will 
be useful.) I'd rather try to get PyLucene built and running under Python 3.x.

I suspect some of this has to do with lack of support from Apple and Oracle for 
Java as well as half-hearted support between gcc & clang headers, libraries, 
and flags, so I'm not even sure how much responsibility falls onto PyLucene.

For me, it would be preferable if I could just download a binary (although I 
don't know how difficult that would be).

My configuration:
 * pylucene-8.6.1 gotten from 
https://mirrors.ocf.berkeley.edu/apache/lucene/pylucene/

 * Mac OSX 10.15.7
 * Macbook Pro, Intel Core i7
 * gcc --version   gcc (Homebrew GCC 10.2.0_3) 10.2.0
 * clang --version
 ** Apple clang version 12.0.0 (clang-1200.0.32.29)
 ** Target: x86_64-apple-darwin19.6.0
 ** Thread model: posix

 
 * Python 3.8.2
 * java -version
 ** openjdk version "1.8.0_282"
 ** OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)
 ** OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08, mixed mode)

 

I get 4 errors I get when building with Python 3.8.2, of which one is easy to 
fix but the other are total puzzles to me:

 

 
{code:java}
python setup.py build
...
/opt/local/bin/gcc -Wno-unused-result -Wsign-compare -Wunreachable-code 
-fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall 
-iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders 
-iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers
 -arch arm64 -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 
-stdlib=libc++
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++'
{code}
 

 

Error 1. this makes least amount of sense is having two different architecture 
flags when I'm building on and for an Intel machine.  However, I have no idea 
where this is being mandated.  (I can't find it in the setup.py file)  
{code:java}
flags -arch arm64 -arch x86_64{code}
 

Error 2 & 3  couldn't find this string in setup.py and nothing useful with 
google:  
{code:java}
-iwithsysroot/....{code}
 

Error 4 seems easy to fix:
{code:java}
-stdlib=libc++{code}
it looks like shouldn't be used and that was easy to remove from setup.py:

[https://stackoverflow.com/questions/19774778/when-is-it-necessary-to-use-the-flag-stdlib-libstdc]

 

I also believe that 
{code:java}
-ljvm{code}
and
{code:java}
 -ljava{code}
flags need to be removed as well from the LFLAGS for darwin.

 

> Building Pylucene is way too difficult
> --------------------------------------
>
>                 Key: PYLUCENE-10
>                 URL: https://issues.apache.org/jira/browse/PYLUCENE-10
>             Project: PyLucene
>          Issue Type: Bug
>         Environment: Linux, Windows Mac
>            Reporter: Philippe Ombredanne
>            Priority: Major
>              Labels: build, linux, mac, window
>
> The amount of work needed to make a redistributable build for a few common os 
> is rather big
> Could there be an effort to provide these pre-built?



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

Reply via email to