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 >
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