[cfe-dev] Failure building x86_64-w64-mingw32 triplet of clang on Windows
Edward Diener via cfe-dev
cfe-dev at lists.llvm.org
Tue Jun 14 06:50:04 PDT 2016
On 6/14/2016 8:21 AM, NAKAMURA Takumi via cfe-dev wrote:
> I guess you are building on msys2 with external mingw-w64.
No, I am not. Ninja is calling mingw-64/gcc-5.3 directly to build
llvm/clang.
> CMake picks up msys2's libxml2, I guess.
I do have a 32-bit libxml2 on my Windows PATH from the GnuWin32 package.
But why is a build of llvm/clang requiring libxml2, whether a 32-bit or
64-bit version ?
>
> Could you try overriding CMake and reconfigure?
> -DCMAKE_LIBRARY_PATH="C:/mingw-w64/x86_64-4.9.3-posix-seh-rt_v4-rev1/mingw64/x86_64-w64-mingw32/lib"
Why would using gcc-4.9.3 make any difference ?
>
> On Tue, Jun 14, 2016 at 11:48 AM Edward Diener via cfe-dev
> <cfe-dev at lists.llvm.org
> <mailto:cfe-dev at lists.llvm.org>> wrote:
>
> On 6/13/2016 8:58 PM, Saleem Abdulrasool via cfe-dev wrote:
> > On Sun, Jun 12, 2016 at 7:51 AM, Edward Diener via cfe-dev
> > <cfe-dev at lists.llvm.org
> <mailto:cfe-dev at lists.llvm.org>
> > <mailto:cfe-dev at lists.llvm.org
> <mailto:cfe-dev at lists.llvm.org>>> wrote:
> >
> > I was successful building a 32-bit version clang from source on
> > Windows using gcc-5.3. When I try to build a 64-bit version of
> clang
> > on Windows with the triplet x86_64-w64-mingw32 and the 64-bit
> > version of gcc-5.3 I get as an error:
> >
> > [482/563] Linking CXX executable bin\c-index-test.exe
> > FAILED: bin/c-index-test.exe
> > cmd.exe /C "cd . &&
> > C:\utilities\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\min
> > gw64\bin\c++.exe -Wall -W -Wno-unused-parameter
> -Wwrite-strings
> > -Wcast-qual -Wn
> > o-missing-field-initializers -pedantic -Wno-long-long
> > -Wno-maybe-uninitialized -
> > Wdelete-non-virtual-dtor -Wno-comment -Werror=date-time
> > -std=gnu++11 -fno-common
> > -Woverloaded-virtual -fno-strict-aliasing -O2
> > tools/clang/tools/c-index-test
> > /CMakeFiles/c-index-test.dir/c-index-test.c.obj
> > tools/clang/tools/c-index-test/C
> > MakeFiles/c-index-test.dir/core_main.cpp.obj -o
> > bin\c-index-test.exe -Wl,--out-
> > implib,lib\libc-index-test.dll.a
> > -Wl,--major-image-version,0,--minor-image-versi
> > on,0 lib/libLLVMSupport.a lib/liblibclang.dll.a
> > lib/libclangAST.a lib/libclangB
> > asic.a lib/libclangFrontend.a lib/libclangIndex.a
> > C:/utilities/libxml/lib/libxml
> > 2.lib lib/libclangFrontend.a lib/libclangDriver.a -lversion
> > lib/libclangParse.a
> > lib/libLLVMMCParser.a lib/libclangSerialization.a
> > lib/libclangSema.a lib/libclan
> > gEdit.a lib/libclangAnalysis.a lib/libLLVMBitReader.a
> > lib/libLLVMOption.a lib/li
> > bLLVMProfileData.a lib/libclangFormat.a
> > lib/libclangToolingCore.a lib/libclangAS
> > T.a lib/libclangRewrite.a lib/libclangLex.a
> lib/libclangBasic.a
> > lib/libLLVMCore.
> > a lib/libLLVMMC.a lib/libLLVMSupport.a -lpsapi -lshell32
> -lole32
> > -luuid -lkernel
> > 32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32
> > -luuid -lcomdlg32 -l
> > advapi32 && cd ."
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x3066): undefined reference to
> > `xmlRelaxNGNewParserCtxt'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x307a): undefined reference to
> > `xmlRelaxNGParse'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x3085): undefined reference to
> `xmlParseDoc'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x3099): undefined reference to
> > `xmlRelaxNGNewValidCtxt'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x30a7): undefined reference to
> > `xmlRelaxNGValidateDoc'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x30bb): undefined reference to
> > `xmlGetLastError'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x30d3): undefined reference to
> > `xmlRelaxNGFreeValidCtxt'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x30db): undefined reference to
> `xmlFreeDoc'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x30e3): undefined reference to
> `xmlRelaxNGFree'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x30eb): undefined reference to
> > `xmlRelaxNGFreeParserCtxt'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text+0x3452): undefined reference to
> > `xmlGetLastError'
> >
> tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.obj:c-
> > index-test.c:(.text.startup+0x23): undefined reference to
> > `xmlCheckVersion'
> > collect2.exe: error: ld returned 1 exit status
> >
> >
> > Anyone know what I have to do to correct this problem ?
> >
> >
> > You are failing to link against libxml2. I don't have any idea
> why that
> > would be the case. I would recommend that you look at the cake output
> > and see if it failed to find the 64-bit version of libxml2 on your
> > installation.
>
> Why is llvm/clang looking for libxml2 ? It's not a part of the
> mingw-64/gcc compiler being used to build llvm/clang.
More information about the cfe-dev
mailing list