Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linker error VS 2017 build on Windows #399

Closed
ivti opened this issue Mar 14, 2021 · 40 comments · Fixed by root-project/root#7645
Closed

linker error VS 2017 build on Windows #399

ivti opened this issue Mar 14, 2021 · 40 comments · Fixed by root-project/root#7645
Assignees

Comments

@ivti
Copy link

ivti commented Mar 14, 2021

When building with an actual checkout on Windows the build of cling itself fails with a linker error, while llvm and clang is completely compiled.

Is there any hint how to fix this ?

Thanks
Thomas

Here is the linker error:

cling.cpp
253>Auto build dll exports
253> Creating library D:/work/libs/cling/src/build/Release/lib/cling.lib and object D:/work/libs/cling/src/build/Release/lib/cling.exp
253>cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@sa?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@z)
253>cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAAXXZ)
253>D:\work\libs\cling\src\build\Release\bin\cling.exe : fatal error LNK1120: 2 unresolved externals

@SimeonEhrig
Copy link
Contributor

Did you used the llvm[1] and clang[2] repositories from root? Cling requires some patches to llvm and clang to work.

[1] http://root.cern/git/llvm.git
[2] http://root.cern/git/clang.git

@ivti
Copy link
Author

ivti commented Mar 16, 2021

(sorry for the delay. Answered first on the notification email and this is not forwarded here)

yes, Simon,

I followed the instructions on the official sites and the root forum.

For safety the git configs below.

There is a weired directory: src/tools/cling/.github

No idea where it comes from.

After some reading there come up the following ideas:

  • upate of VS 2017

  • VCvars*.bat execution before cmake

  • using a git bash environment for all from the beginning

Good ideas ?

Here the git configs:

src.git:

[remote "origin"]
url = http://root.cern.ch/git/llvm.git
fetch = +refs/heads/:refs/remotes/origin/
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "cling-patches"]
remote = origin
merge = refs/heads/cling-patches

src\tools\clang:

[remote "origin"]
url = http://root.cern.ch/git/clang.git
fetch = +refs/heads/:refs/remotes/origin/
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "cling-patches"]
remote = origin
merge = refs/heads/cling-patches

src/tools/cling:

[remote "origin"]
url = http://root.cern.ch/git/cling.git
fetch = +refs/heads/:refs/remotes/origin/
[branch "master"]
remote = origin
merge = refs/heads/master

@reikdas
Copy link
Contributor

reikdas commented Mar 16, 2021

There is a weired directory: src/tools/cling/.github

No idea where it comes from.

The .github directory contains GitHub workflows, for eg. CI.

After some reading there come up the following ideas:

upate of VS 2017

VCvars*.bat execution before cmake

using a git bash environment for all from the beginning

Good ideas ?

Executing the VCvars*.bat file before cmake is important.

Are you by any chance using Ninja? Cling cannot be built on Windows using the Ninja generator as of now.

@SimeonEhrig
Copy link
Contributor

@reikdas Thanks for helping. I can give only basic support on Windows, because I'm developing on Linux.

@ivti
Copy link
Author

ivti commented Mar 16, 2021

thanks for the replies.

We don't use ninja for good reasons.

cmake is normally not depending on the vcvars*.bat/cmd file for setting environment variables. It detects the toolchains normally by itsself. Also on Windows.

Anyway. We will iterate through the options of my last and @reikdas comments.
I will leave a result here, with compiler, cmake, python .. whatever versions and configs .... if successful.

@ivti
Copy link
Author

ivti commented Mar 16, 2021

visual studio 2017 updated, vcvarsx86_amd64.cmd used, cmake 3.15.0,

Got the same error.

What I found now for the cling.exe project.

The linker get's additional options with 2 export advices and it can't find it within cling.exe:

/EXPORT:?getAsString@QualType@clang@@SA?AV?"$"basic_string@DU?"$"char_traits@D@std@@V?"$"allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@Z 
/EXPORT:?handle@raw_ostream@llvm@@EEAAXXZ

I searched the sources for any clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers) . I didn't find a version that would fit with 2 parameters.

I found in the cmakelists.txt a hint that cling shall export additional symbols, but I didn't find where this is defined.

When I remove the above /EXPORT commands it links now, but .... This should not happen.

@ivti
Copy link
Author

ivti commented Mar 17, 2021

finally I found the reason for the error.
In src\tools\cling\tools\driver\CMakeLists.txt
is an extra section for MSVC: if(MSVC) ...
There are hard coded linker export definitions that don't seem to match the actual state of the llvm/clang library.
The signiture of getAsString was changed with a third parameter and this can't match the hard coded definition in CMakeLists.txt.

I can change this by myself, but this is definitely a bug and hard stuff - so to say.

Who is maintaining this ?

@ivti
Copy link
Author

ivti commented Mar 17, 2021

I replaced the export symbol command as shown below. Links fine.
But: on exit of cling I get in case of error during usage a stack print with an error in getAsStringInternal. See second text box.
Without an error during usage no call stack appears.

I give up for the moment, because this needs more digging and without code knowledge this takes too much time.
Hopefully someone takes this up.

/EXPORT:?getAsString@QualType@clang@@SA?AV?"$"basic_string@DU?"$"char_traits@D@std@@V?"$"allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@Z 
---> /EXPORT:?getAsString@QualType@clang@@QEBA?AV?"$"basic_string@DU?"$"char_traits@D@std@@V?"$"allocator@D@2@@std@@AEBUPrintingPolicy@2@@Z

/EXPORT:??6raw_ostream@llvm@@QEAAAEAV01@PEBX@Z 
---> /EXPORT:??6raw_ostream@llvm@@QEAAAEAV01@PEBD@Z

printout of call stack (?) cling.exe on exit

[cling]$ #include 
[cling]$ using namespace std ;
[cling]$ cout << 1234 << end ;
...
--> forgot the "l" and a lot of errors come now
then quit
... 
[cling]$ .q
0x00007FF6CD640B1A (0x000001C274F3F2B0 0x000001C200000000 0x000000000000007F 0x00007FFB88BB9F66), ?getAsStringInternal@QualType@clang@@SAXPEBVType@2@VQualifiers@2@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBUPrintingPolicy@2@@Z() + 0x1B246AA bytes(s)
0x00007FFB88BB9D26 (0x0000002E8758F800 0x0000002E8758F858 0x0000002E8758F8F0 0x00007FFB88C8BC20), _execute_onexit_table() + 0x156 bytes(s)
0x00007FFB88BB9C4B (0x0000002E8758F8D8 0x00007FFB88C8BC20 0x000000003F800000 0x0000002E8758F848), _execute_onexit_table() + 0x7B bytes(s)
0x00007FFB88BB9C04 (0x00007FFB88C8C038 0x00007FFB00000002 0x0000000000000002 0x0000002E8758F840), _execute_onexit_table() + 0x34 bytes(s)
0x00007FFB88BB87D2 (0x0000000000000000 0x0000002E8758F8F0 0x0000000000000000 0x0000000000000000), exit() + 0x142 bytes(s)
0x00007FFB88BB875B (0x0000000000000000 0x0000000000000000 0x000001C274F3AAD0 0x0000002E8758F8D0), exit() + 0xCB bytes(s)
0x00007FFB88BB86FE (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), exit() + 0x6E bytes(s)
0x00007FF6CD641E6F (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), ??_U@YAPEAX_K@Z() + 0x4FB bytes(s)
0x00007FFB892A7C24 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0x14 bytes(s)
0x00007FFB8AF0D721 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)

@SimeonEhrig
Copy link
Contributor

@ivti Do you use the latest dev branch from yesterday? Axel fixed a segmentation fault at exiting cling. I'm not sure, if this is the same error, but could be.

@ivti
Copy link
Author

ivti commented Mar 17, 2021

@SimeonEhrig

updated and compiled cling with Axel Naumanns last commit.
Doesn't change the behaviour described in the last message from me.

@SimeonEhrig
Copy link
Contributor

@ivti I already feared it, because of the symbol name in the error message. But it was a cheap try ;-)

@ivti
Copy link
Author

ivti commented Mar 18, 2021

I found now that since 2017 these Export sections for cling.exe in src\tools\cling\tools\driver\CMakeLists.txt were not touched anymore while llvm and cling proceed. Bertran Bellnot and Frederich Munch were involved. It would be nice to learn why these exports and which are required.

@SimeonEhrig
Copy link
Contributor

@bellenot can you help us with this problem?

@bellenot
Copy link
Member

I'll take a look

@bellenot
Copy link
Member

@ivti do you compile cling in 64 bit or 32 bit mode?

@ivti
Copy link
Author

ivti commented Mar 22, 2021

@bellenot 64bit !

@bellenot
Copy link
Member

Can you try to remove those two lines from llvm\tools\cling\tools\driver\CMakeLists.txt as shown in this diff:

diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt
index 44401f54..1968b97f 100644
--- a/tools/driver/CMakeLists.txt
+++ b/tools/driver/CMakeLists.txt
@@ -74,7 +74,6 @@ if(MSVC)

   # Most (if not all) of these MSVC decided are inlines that aren't exported
   set(cling_exports ${cling_exports} ?print@Decl@clang@@QEBAXAEAVraw_ostream@llvm@@I_N@Z
-    ?getAsString@QualType@clang@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@Z
     ??6raw_ostream@llvm@@QEAAAEAV01@PEBX@Z
     ?getQualifiedNameAsString@NamedDecl@clang@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
     ?insert_imp_big@SmallPtrSetImplBase@llvm@@AEAA?AU?$pair@PEBQEBX_N@std@@PEBX@Z
@@ -90,7 +89,6 @@ if(MSVC)
     ??1raw_string_ostream@llvm@@UEAA@XZ
     ?flush_nonempty@raw_ostream@llvm@@AEAAXXZ
     ?getASTContext@Decl@clang@@QEBAAEAVASTContext@2@XZ
-    ?handle@raw_ostream@llvm@@EEAAXXZ
     ?preferred_buffer_size@raw_ostream@llvm@@MEBA_KXZ
     ?write_impl@raw_string_ostream@llvm@@EEAAXPEBD_K@Z
     ?castToDeclContext@Decl@clang@@SAPEAVDeclContext@2@PEBV12@@Z

And BTW, @vgvassilev , it looks like the patch for include\llvm\Support\type_traits.h has not been back-ported to Cling...

@ivti
Copy link
Author

ivti commented Mar 22, 2021

@bellenot thanks for the patch. I will try it later as I am in another project now.
With patching the CMakeLists.txt I have to run the configuration from start.

@ivti
Copy link
Author

ivti commented Mar 22, 2021

@bellenot I just uploaded the patched CMakeLists.txt as patch was a bit moaning about it. But seems to be correct.
CMakeLists.txt

@bellenot
Copy link
Member

@ivti thanks, I'll submit a PR

@bellenot bellenot self-assigned this Mar 23, 2021
bellenot added a commit to bellenot/root that referenced this issue Mar 23, 2021
Resolves root-project/cling#399
Fix the following linker errors:
253>cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@sa?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@z)
253>cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAAXXZ)
253>D:\work\libs\cling\src\build\Release\bin\cling.exe : fatal error LNK1120: 2 unresolved externals
@ivti
Copy link
Author

ivti commented Mar 23, 2021

@bellenot I have not tested it! Sorry for the "seems to be correct".

@bellenot
Copy link
Member

@bellenot I have not tested it! Sorry for the "seems to be correct".

Can you test it? It works for me with the latest version of VS 2019

@ivti
Copy link
Author

ivti commented Mar 23, 2021

@bellenot Huuh. Here we go. I am using still VS 2017. The minimum version required is VS 2017 with all updates, as I found it in CMake version hints. Also for Clang - on the website - Link from Axel Naumann. If VS 2019 is required then this should be at a minimum in the driver CMake files with this extra exports.
By the way: What is the reason for this extra exports. Is this required if the Clang run-time compiler uses these symbols, or if the C++ programs "interpreted" by Cling require the methods and classes ? I found a short remark about in-line functions to be exported.

vgvassilev pushed a commit to root-project/root that referenced this issue Mar 23, 2021
Resolves root-project/cling#399
Fix the following linker errors:
253>cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@sa?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@z)
253>cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAAXXZ)
253>D:\work\libs\cling\src\build\Release\bin\cling.exe : fatal error LNK1120: 2 unresolved externals
FonsRademakers pushed a commit that referenced this issue Mar 23, 2021
Resolves #399
Fix the following linker errors:
253>cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@sa?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@z)
253>cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAAXXZ)
253>D:\work\libs\cling\src\build\Release\bin\cling.exe : fatal error LNK1120: 2 unresolved externals
@bellenot
Copy link
Member

@ivti Visual Studio 2019 is the minimal required version for ROOT, and I don't know if it's the same for Cling. Please try and let us know. And those symbols have to be exported to be somehow visible by the Jit. This should not be necessary and will be fixed in the future, hopefully.

@ivti
Copy link
Author

ivti commented Mar 24, 2021

@bellenot I will test first 2017 and then 2019 using the buildtools. Hopefully this week.

@bellenot
Copy link
Member

@bellenot I will test first 2017 and then 2019 using the buildtools. Hopefully this week.

Thanks. 2019 is fine, I tested it. I just want to know about 2017

@ivti
Copy link
Author

ivti commented Mar 27, 2021

@bellenot first of all: good news it is build without linker errors with VS 2017 !

But when I run my little test, there is still a crash after ".q". See below.
The symbol getAsStringInternal is the game. But this error needs a new issue ?

D:\work\libs\cling\src\build\Release\bin>cling

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ #include '<'iostream'>'
[cling]$ using namespace std;
[cling]$ cout << "test" << endl ;
test
[cling]$ cout << "test" << enl ;
input_line_6:2:20: error: use of undeclared identifier 'enl'; did you mean 'endl'?
 cout << "test" << enl ;
                   ^~~
                   endl
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:1018:22: note: 'endl' declared here
                __CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr)
                                   ^
[cling]$ .q
 #0 0x00007ff76eb70d0a clang::QualType::getAsStringInternal(class clang::Type const *,class clang::Qualifiers,class std::basic_string,class std::allocator > &,struct clang::PrintingPolicy const &) (D:\work\libs\cling\src\build\Release\bin\cling.exe+0x2d30d0a)
 #1 0x00007ffb6b749d26 (C:\WINDOWS\System32\ucrtbase.dll+0x19d26)
 #2 0x00007ffb6b749c4b (C:\WINDOWS\System32\ucrtbase.dll+0x19c4b)
 #3 0x00007ffb6b749c04 (C:\WINDOWS\System32\ucrtbase.dll+0x19c04)
 #4 0x00007ffb6b7487d2 (C:\WINDOWS\System32\ucrtbase.dll+0x187d2)
 #5 0x00007ffb6b74875b (C:\WINDOWS\System32\ucrtbase.dll+0x1875b)
 #6 0x00007ffb6b7486fe (C:\WINDOWS\System32\ucrtbase.dll+0x186fe)
 #7 0x00007ff76eb7205f operator new[](unsigned __int64) (D:\work\libs\cling\src\build\Release\bin\cling.exe+0x2d3205f)
 #8 0x00007ffb6dce7c24 (C:\WINDOWS\System32\KERNEL32.DLL+0x17c24)
 #9 0x00007ffb6e82d721 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6d721)

@bellenot
Copy link
Member

Replacing endl by "\n" fixes the issue for me, so this might be related to the issue #300

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot first of all: good news it is build without linker errors with VS 2017 !

But when I run my little test, there is still a crash after ".q". See below.
The symbol getAsStringInternal is the game. But this error needs a new issue ?

D:\work\libs\cling\src\build\Release\bin>cling

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ #include '<'iostream'>'
[cling]$ using namespace std;
[cling]$ cout << "test" << endl ;
test
[cling]$ cout << "test" << enl ;
input_line_6:2:20: error: use of undeclared identifier 'enl'; did you mean 'endl'?
 cout << "test" << enl ;
                   ^~~
                   endl
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:1018:22: note: 'endl' declared here
                __CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr)
                                   ^
[cling]$ .q
 #0 0x00007ff76eb70d0a clang::QualType::getAsStringInternal(class clang::Type const *,class clang::Qualifiers,class std::basic_string,class std::allocator > &,struct clang::PrintingPolicy const &) (D:\work\libs\cling\src\build\Release\bin\cling.exe+0x2d30d0a)
 #1 0x00007ffb6b749d26 (C:\WINDOWS\System32\ucrtbase.dll+0x19d26)
 #2 0x00007ffb6b749c4b (C:\WINDOWS\System32\ucrtbase.dll+0x19c4b)
 #3 0x00007ffb6b749c04 (C:\WINDOWS\System32\ucrtbase.dll+0x19c04)
 #4 0x00007ffb6b7487d2 (C:\WINDOWS\System32\ucrtbase.dll+0x187d2)
 #5 0x00007ffb6b74875b (C:\WINDOWS\System32\ucrtbase.dll+0x1875b)
 #6 0x00007ffb6b7486fe (C:\WINDOWS\System32\ucrtbase.dll+0x186fe)
 #7 0x00007ff76eb7205f operator new[](unsigned __int64) (D:\work\libs\cling\src\build\Release\bin\cling.exe+0x2d3205f)
 #8 0x00007ffb6dce7c24 (C:\WINDOWS\System32\KERNEL32.DLL+0x17c24)
 #9 0x00007ffb6e82d721 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6d721)

Replacing endl by "\n" fixes the issue for me, so this might be related to the issue #300

@bellenot It is not the endl that gives me a headache, it is the callstack output

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot It is not the endl that gives me a headache, it is the callstack output

(Sorry for the double reply, I am not so used with using github activities editing.)

Should I open a new issue for the following ?

@bellenot I tried now to compile with VS2019. I just dowloaded the buildtools 2019 for compilation. No success. I get 69 messages like the following (unfortunately German):

	Line 84: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable [D:\work\libs\cling\src\build\lib\Target\BPF\AsmParser\LLVMBPFAsmParser.vcxproj]
	Line 97: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. [D:\work\libs\cling\src\build\lib\Target\BPF\AsmParser\LLVMBPFAsmParser.vcxproj]
	Line 106: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAbstractMemberAccess.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 119: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAbstractMemberAccess.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 121: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAsmPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]

@bellenot
Copy link
Member

Please update cling, this should have been fixed last week or so

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot just updated cling. The same error type persists. only 50.

  1. changed files with new cling version:

boost.modulemap
CMakeLists.txt
DynamicLibraryManager.cpp
IncrementalParser.cpp
Interpreter.cpp
LookupHelper.cpp
template.C
cpt.py

list of errors:

	Line 84: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable [D:\work\libs\cling\src\build\lib\Target\BPF\AsmParser\LLVMBPFAsmParser.vcxproj]
	Line 97: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. [D:\work\libs\cling\src\build\lib\Target\BPF\AsmParser\LLVMBPFAsmParser.vcxproj]
	Line 106: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFISelLowering.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 119: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFISelLowering.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 121: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAsmPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 133: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAbstractMemberAccess.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 145: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAsmPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 149: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFAbstractMemberAccess.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 151: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFISelDAGToDAG.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 157: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFMISimplifyPatchable.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 177: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFISelDAGToDAG.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 179: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFMISimplifyPatchable.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 181: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFMIPeephole.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 194: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFMIPeephole.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 196: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFMIChecking.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 209: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\BPFMIChecking.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\LLVMBPFCodeGen.vcxproj]
	Line 215: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFMCCodeEmitter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 228: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFMCCodeEmitter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 230: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFAsmBackend.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 243: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFAsmBackend.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 245: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFMCTargetDesc.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 258: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFMCTargetDesc.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 260: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFELFObjectWriter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 273: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\BPF\MCTargetDesc\BPFELFObjectWriter.cpp) [D:\work\libs\cling\src\build\lib\Target\BPF\MCTargetDesc\LLVMBPFDesc.vcxproj]
	Line 276: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable [D:\work\libs\cling\src\build\lib\Target\BPF\Disassembler\LLVMBPFDisassembler.vcxproj]
	Line 289: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. [D:\work\libs\cling\src\build\lib\Target\BPF\Disassembler\LLVMBPFDisassembler.vcxproj]
	Line 373: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVISelDAGToDAG.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 386: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVISelDAGToDAG.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 388: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVMCInstLower.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 400: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVAsmPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 412: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVMCInstLower.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 416: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVAsmPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 418: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVTargetMachine.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 429: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVExpandPseudoInsts.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 442: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVMergeBaseOffset.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 449: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVTargetMachine.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 458: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVExpandPseudoInsts.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 461: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVMergeBaseOffset.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 463: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVISelLowering.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 476: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\RISCVISelLowering.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\LLVMRISCVCodeGen.vcxproj]
	Line 480: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\MCTargetDesc\RISCVMCTargetDesc.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\MCTargetDesc\LLVMRISCVDesc.vcxproj]
	Line 486: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\MCTargetDesc\RISCVInstPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\MCTargetDesc\LLVMRISCVDesc.vcxproj]
	Line 506: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\MCTargetDesc\RISCVInstPrinter.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\MCTargetDesc\LLVMRISCVDesc.vcxproj]
	Line 508: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. (Quelldatei wird kompiliert D:\work\libs\cling\src\lib\Target\RISCV\MCTargetDesc\RISCVMCTargetDesc.cpp) [D:\work\libs\cling\src\build\lib\Target\RISCV\MCTargetDesc\LLVMRISCVDesc.vcxproj]
	Line 511: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable [D:\work\libs\cling\src\build\lib\Target\RISCV\Disassembler\LLVMRISCVDisassembler.vcxproj]
	Line 524: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. [D:\work\libs\cling\src\build\lib\Target\RISCV\Disassembler\LLVMRISCVDisassembler.vcxproj]
	Line 528: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable [D:\work\libs\cling\src\build\lib\Target\RISCV\Utils\LLVMRISCVUtils.vcxproj]
	Line 541: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. [D:\work\libs\cling\src\build\lib\Target\RISCV\Utils\LLVMRISCVUtils.vcxproj]
	Line 544: D:\work\libs\cling\src\include\llvm/Support/type_traits.h(186,23): error C2338: inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable [D:\work\libs\cling\src\build\lib\ExecutionEngine\RuntimeDyld\LLVMRuntimeDyld.vcxproj]
	Line 557: D:\work\libs\cling\src\include\llvm/ADT/SmallVector.h(315,32): error C2976: "llvm::SmallVectorTemplateBase": Nicht gen�gend Vorlage-Argumente. [D:\work\libs\cling\src\build\lib\ExecutionEngine\RuntimeDyld\LLVMRuntimeDyld.vcxproj]

@bellenot
Copy link
Member

bellenot commented Mar 29, 2021

Did you update LLVM & Clang as well? (sorry the fix was in include\llvm\Support\type_traits.h)

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot seems to be the case. The vsbuildtools 2019 are brand new!

for safety here the git log output of src, tools/cling, tools/clang:

src/
commit 43ad01796dee907e320eb06223f3bd61c335dd6c (HEAD -> cling-patches, tag: cling-patches-rrelease_90, tag: ROOT-patches-rrelease_90, origin/cling-patches, origin/ROOT-patches)
Author: Vassil Vassilev 
Date:   Wed Mar 3 19:31:18 2021 +0000

    Add missing includes.

tools/clang:
commit ddd3a61c4ec7cb9661e8dc9781dc797f70537519 (HEAD -> cling-patches, tag: cling-patches-rrelease_90, origin/cling-patches)
Author: Vassil Vassilev 
Date:   Tue Aug 25 19:36:56 2020 +0000

    Allow interfaces to operate on in-memory buffers with no source location info.

    This patch avoid an assert PresumedLoc::getFilename if it is invalid.

tools/cling:
commit df5fbb3c46a92a0841145cde0655e26c88ddff1b (tag: __internal-root-08c5147a876ca5215464b628d8e4bc6634d80167, origin/master, origin/HEAD)
Author: Bertrand Bellenot 
Date:   Tue Mar 23 09:53:23 2021 +0100

    Fix unresolved external symbol errors on Windows






@bellenot
Copy link
Member

Please make sure that include\llvm\Support\type_traits.h, at lines 185-190, the code looks like the following:

#ifdef HAVE_STD_IS_TRIVIALLY_COPYABLE
#ifndef _MSC_VER
  static_assert(value == std::is_trivially_copyable<T>::value,
                "inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable");
#endif
#endif

And re-build

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot the ifdef part below is missing and it is compiling now for a while again ....
2017 has no problems with it ? Should then not the version number be used to exclude it?
#ifndef _MSC_VER
..
#endif

@bellenot
Copy link
Member

2017 has no problems with it ? Should then not the version number be used to exclude it?

No idea, I don't have VS 2017 anymore

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot compiles now. Great. Still this nasty call stack. Do you have this also ?

[cling]$ .q
 #0 0x00007ff71cf5e3b1 operator new[](unsigned __int64) (d:\work\libs\cling\src\build\Release\bin\cling.exe+0x2dee3b1)
 #1 0x00007ffb9e0f9d26 (C:\WINDOWS\System32\ucrtbase.dll+0x19d26)
 #2 0x00007ffb9e0f9c4b (C:\WINDOWS\System32\ucrtbase.dll+0x19c4b)
 #3 0x00007ffb9e0f9c04 (C:\WINDOWS\System32\ucrtbase.dll+0x19c04)
 #4 0x00007ffb9e0f87d2 (C:\WINDOWS\System32\ucrtbase.dll+0x187d2)
 #5 0x00007ffb9e0f875b (C:\WINDOWS\System32\ucrtbase.dll+0x1875b)
 #6 0x00007ffb9e0f86fe (C:\WINDOWS\System32\ucrtbase.dll+0x186fe)
 #7 0x00007ff71cede6f3 operator new[](unsigned __int64) (d:\work\libs\cling\src\build\Release\bin\cling.exe+0x2d6e6f3)
 #8 0x00007ffba04f7c24 (C:\WINDOWS\System32\KERNEL32.DLL+0x17c24)
 #9 0x00007ffba0ecd721 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6d721)

@bellenot
Copy link
Member

Well, I only saw it when using std::endl, as in your example. Do you always see it?

@ivti
Copy link
Author

ivti commented Mar 29, 2021

@bellenot you are right. I tested a bit wildly around. And only if I use 'endl' it happens. I have a certain talent to find immediately the combination that produces failures. My fate. I am dreaded for this, but it helps to get a better user experience afterwards.
Thanks so far
bye for now
Thomas

nicknagi pushed a commit to nicknagi/root that referenced this issue Mar 30, 2021
Resolves root-project/cling#399
Fix the following linker errors:
253>cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@sa?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@z)
253>cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAAXXZ)
253>D:\work\libs\cling\src\build\Release\bin\cling.exe : fatal error LNK1120: 2 unresolved externals
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants