Hi Thomas,

I have managed to identify a few relatively recent changes that have caused
the MinGW build to break and I have submitted a PR to get the MinGW build
to work again and all unit tests to pass:
https://github.com/rdkit/rdkit/pull/4347

Please find attached a small patch that should fix the MinGW build for you
too.

Cheers,
Paolo

On Sat, Jul 17, 2021 at 12:29 AM Paolo Tosco <paolo.tosco.m...@gmail.com>
wrote:

> Hi Thomas,
>
> Thanks for reporting this. I’ll provide a fix ASAP.
>
> Cheers,
> p.
>
> > On 16 Jul 2021, at 16:22, Veith, Thomas <thomas.ve...@novartis.com>
> wrote:
> >
> > Hi *,
> >
> > When trying to build RDKit for Windows with the MINGW toolchain, the
> build dies during linking:
> >
> > [ 49%] Building CXX object
> Code/GraphMol/FileParsers/CMakeFiles/FileParsers.dir/MultithreadedSmilesMolSupplier.cpp.obj
> > [ 49%] Building CXX object
> Code/GraphMol/FileParsers/CMakeFiles/FileParsers.dir/MultithreadedSDMolSupplier.cpp.obj
> > [ 49%] Linking CXX shared library ../../../bin/libRDKitFileParsers.dll
> > /usr/bin/x86_64-w64-mingw32-ld:
> CMakeFiles/FileParsers.dir/objects.a(MolFileWriter.cpp.obj):MolFileWriter.cpp:(.text+0xe3ba):
> undefined reference to `RDDepict::compute2DCoords(RDKit::ROMol&,
> std::map<int, RDGeom::Point2D, std::less<int>, std::allocator<std::pair<int
> const, RDGeom::Point2D> > > const*, bool, bool, unsigned int, unsigned int,
> int, bool, bool)'
> > collect2: error: ld returned 1 exit status
> > make[2]: ***
> [Code/GraphMol/FileParsers/CMakeFiles/FileParsers.dir/build.make:557:
> bin/libRDKitFileParsers.dll] Error 1
> > make[1]: *** [CMakeFiles/Makefile2:3249:
> Code/GraphMol/FileParsers/CMakeFiles/FileParsers.dir/all] Error 2
> > make: *** [Makefile:171: all] Error 2
> >
> > I’m using the following cmake options:
> >
> >    cmake -DRDK_BUILD_THREADSAFE_SSS=OFF \
> >      -DCMAKE_BUILD_TYPE=Release -DRDK_BUILD_AVALON_SUPPORT=ON
> -DRDK_BUILD_INCHI_SUPPORT=ON \
> >      -DRDK_BUILD_PYTHON_WRAPPERS=OFF  -DRDK_BUILD_SWIG_WRAPPERS=ON
> -DRDK_BUILD_SWIG_CSHARP_WRAPPER=ON -DRDK_BUILD_SWIG_JAVA_WRAPPER=OFF \
> >      -DRDK_USE_BOOST_IOSTREAMS=ON -DRDK_USE_BOOST_SERIALIZATION=ON
> -DRDK_USE_BOOST_STACKTRACE=OFF \
> >      -DBUILD_TESTING=OFF -DRDK_BUILD_CPP_TESTS=OFF \
> >      -DRDK_INSTALL_INTREE=OFF -DCMAKE_INSTALL_PREFIX=/image/rdk/win ..
>
> >
> > When looking a bit into it, the symbol is in the obj file:
> > /src/rdkit-Release_2021_03_3/buildw# nm
> Code/GraphMol/Depictor/CMakeFiles/Depictor_static.dir/RDDepictor.cpp.obj |
> grep compute2DCo
> > 00000000000030d0 T
> _ZN8RDDepict15compute2DCoordsERN5RDKit5ROMolEPKSt3mapIiN6RDGeom7Point2DESt4lessIiESaISt4pairIKiS5_EEEbbjjibb
> >
> > The symbol is in the DLL
> > bin/libRDKitDepictor.dll
> > 000000006f204470 T
> _ZN8RDDepict15compute2DCoordsERN5RDKit5ROMolEPKSt3mapIiN6RDGeom7Point2DESt4lessIiESaISt4pairIKiS5_EEEbbjjibb
> >
> > The symbol in in the tree in libRDKitDepictor_static.a
> > nm libRDKitDepictor_static.a | grep compute2DC
> > 00000000000030d0 T
> _ZN8RDDepict15compute2DCoordsERN5RDKit5ROMolEPKSt3mapIiN6RDGeom7Point2DESt4lessIiESaISt4pairIKiS5_EEEbbjjibb
> >
> > But the symbol is missing in lib/libRDKitDepictor.dll.a
> >
> > The build works for linux and osx, so it seems to be specific to windows.
> >
> > I tried to compile all releases from 2021 and the bug is there since
> 2021_03_1.
> >
> > I also tried crosscompile which has the same behavior as the native
> windows build (with two different versions of the toolchain for two
> different Ubuntu release) so it seems its not related to a specific gcc
> version/mingw version.
> > (cross compile cmake was  cmake -DCMAKE_CROSSCOMPILING=ON
> -DCMAKE_TOOLCHAIN_FILE=../win-x64.cmake
> -DMSVC_RUNTIME_DLL=/work/mingw/msvcr110.dll –
> > DRDK_BUILD_THREADSAFE_SSS=OFF \
> >      -DCMAKE_BUILD_TYPE=Release -DRDK_BUILD_AVALON_SUPPORT=ON
> -DRDK_BUILD_INCHI_SUPPORT=ON \
> >      -DRDK_BUILD_PYTHON_WRAPPERS=OFF  -DRDK_BUILD_SWIG_WRAPPERS=ON
> -DRDK_BUILD_SWIG_CSHARP_WRAPPER=ON -DRDK_BUILD_SWIG_JAVA_WRAPPER=OFF \
> >      -DRDK_USE_BOOST_IOSTREAMS=ON -DRDK_USE_BOOST_SERIALIZATION=ON
> -DRDK_USE_BOOST_STACKTRACE=OFF \
> >      -DBUILD_TESTING=OFF -DRDK_BUILD_CPP_TESTS=OFF \
> >      -DBOOST_ROOT=/work/mingw/mingw64 -DRDK_INSTALL_INTREE=OFF
> -DCMAKE_INSTALL_PREFIX=/image/rdk/win ..
> > )
> >
> > I attach a Dockerfile where you can easily reproduce the issue.
> >
> > Best,
> > Thomas
> >
> > p.s.: Also there was a minimal patch required to allow compiling of some
> explicit template instantiations, pls find attached
> >
> >
> > <fix_template.patch>
> > <win-x64.cmake>
> > <Dockerfile>
> > _______________________________________________
> > Rdkit-devel mailing list
> > Rdkit-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/rdkit-devel
>

Attachment: fix_mingw_build_20210721.diff
Description: Binary data

_______________________________________________
Rdkit-devel mailing list
Rdkit-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-devel

Reply via email to