On 2009-10-02 21:37, Benjamin Kramer wrote:>> I had a close look at the link line, and -lpsapi is specified before
>> -lLLVMSystem (which is giving the error).
>> When I put -lpsapi after -lLLVMSystem, it links ok.
>
> I commited a fix for this problem and a modified version of Jay's
> patch here:
>
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090928/088265.html
>
> I hope MingW builds work again now :)
Now the problem comes from another side, as GNU ld seems rather picky
about the library order:
$ g++ -I/d/Home/Dim/Src/llvm/include -I/d/Home/Dim/Src/llvm/obj/include
-I/d/Home/Dim/Src/llvm/obj/unittests/Transforms/Utils
-I/d/Home/Dim/Src/llvm/unittests/Transforms/Utils -D_DEBUG -D_GNU_SOURCE
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
-I/d/Home/Dim/Src/llvm/utils/unittest/googletest/include/ -Wno-variadic-macros
-g -fno-exceptions -Woverloaded-virtual -pedantic -Wno-long-long -Wall -W
-Wno-unused-parameter -Wwrite-strings -g -L/d/Home/Dim/Src/llvm/obj/Debug/lib
-L/d/Home/Dim/Src/llvm/obj/Debug/lib -o Debug/UtilsTests.exe
/d/Home/Dim/Src/llvm/obj/unittests/Transforms/Utils/Debug/Cloning.o
-lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore
-lLLVMSupport -lLLVMSystem -lpthread -lpsapi -limagehlp -lm -lGoogleTest
-lUnitTestMain
d:/Home/Dim/Src/llvm/obj/Debug/lib/libGoogleTest.a(gtest.o):gtest.cc:(.text$_ZN4llvm14raw_os_ostreamC1ERSo[llvm::raw_os_ostream::raw_os_ostream(std::basic_ostre
am<char, std::char_traits<char> >&)]+0x1e): undefined reference
to `vtable for llvm::raw_os_ostream'
d:/Home/Dim/Src/llvm/obj/Debug/lib/libGoogleTest.a(gtest.o):gtest.cc:(.text$_ZN4llvm23convertible_fwd_ostreamD1Ev[llvm::convertible_fwd_ostream::~convertible_fw
d_ostream()]+0x2b): undefined reference to
`llvm::raw_os_ostream::~raw_os_ostream()'
d:/Home/Dim/Src/llvm/obj/Debug/lib/libGoogleTest.a(gtest.o):gtest.cc:(.text$_ZN4llvm23convertible_fwd_ostreamD0Ev[llvm::convertible_fwd_ostream::~convertible_fw
d_ostream()]+0x2b): undefined reference to
`llvm::raw_os_ostream::~raw_os_ostream()'
collect2: ld returned 1 exit status
E.g. now libGoogletest.a requires some symbols from libLLVMSupport.a,
and it has been moved to the end of the linking command line.
When I make the order:
-lGoogleTest
-lUnitTestMain
-lLLVMTransformUtils
-lLLVMipa
-lLLVMAnalysis
-lLLVMTarget
-lLLVMMC
-lLLVMCore
-lLLVMSupport
-lLLVMSystem
-lpthread
-lpsapi
-limagehlp
-lm
it links okay. I have tested a similar fix as r83252, which I saw you
just committed, and that seems to work. At least, it's far into the
examples directory by now, without problems...