glandium wrote:

There is something wrong going on with cmake:
STR:
- Download 
[testcase.zip](https://github.com/user-attachments/files/15597940/testcase.zip)
- Unzip it (it contains ClangRepl.cpp.obj and exports.def.objs)
- Run `cmake -E __create_def exports.def exports.def.objs --nm=/path/to/llvm-nm`

When running this with cmake on Windows, taking one of the symbols the lld-link 
was saying were missing:
```
        __profc_??$_Emplace_reallocate   DATA
        __profd_??$_Emplace_reallocate   DATA
        __profvp_??$_Emplace_reallocate          DATA
        
??$_Emplace_reallocate@AEBI@?$vector@IV?$allocator@I@std@@@std@@AEAAPEAIQEAIAEBI@Z
        
??$_Emplace_reallocate@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEAAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@QEAV21@AEBV21@@Z
        
??$_Emplace_reallocate@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@?$vector@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@V?$allocator@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@std@@@std@@AEAAPEAU?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@QEAU234@$$QEAU234@@Z
        
??$_Emplace_reallocate@UCompletion@LineEditor@llvm@@@?$vector@UCompletion@LineEditor@llvm@@V?$allocator@UCompletion@LineEditor@llvm@@@std@@@std@@AEAAPEAUCompletion@LineEditor@llvm@@QEAU234@$$QEAU234@@Z
        
??$_Emplace_reallocate@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@?$vector@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@V?$allocator@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@2@@std@@AEAAPEAV?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@1@QEAV21@$$QEAV21@@Z
```
Doing the same on Linux:
```
        
__profc_??$_Emplace_reallocate@AEBI@?$vector@IV?$allocator@I@std@@@std@@AEAAPEAIQEAIAEBI@Z.140565309351188016
    DATA
        
__profc_??$_Emplace_reallocate@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEAAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@QEAV21@AEBV21@@Z.166520529307557042
        DATA
        
__profc_??$_Emplace_reallocate@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@?$vector@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@V?$allocator@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@std@@@std@@AEAAPEAU?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@QEAU234@$$QEAU234@@Z.940266886021390796
     DATA
        
__profc_??$_Emplace_reallocate@UCompletion@LineEditor@llvm@@@?$vector@UCompletion@LineEditor@llvm@@V?$allocator@UCompletion@LineEditor@llvm@@@std@@@std@@AEAAPEAUCompletion@LineEditor@llvm@@QEAU234@$$QEAU234@@Z.928018419188693000
     DATA
        
__profc_??$_Emplace_reallocate@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@?$vector@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@V?$allocator@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@2@@std@@AEAAPEAV?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@1@QEAV21@$$QEAV21@@Z.1073799611620789089
        DATA
        
__profd_??$_Emplace_reallocate@AEBI@?$vector@IV?$allocator@I@std@@@std@@AEAAPEAIQEAIAEBI@Z.140565309351188016
    DATA
        
__profd_??$_Emplace_reallocate@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEAAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@QEAV21@AEBV21@@Z.166520529307557042
        DATA
        
__profd_??$_Emplace_reallocate@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@?$vector@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@V?$allocator@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@std@@@std@@AEAAPEAU?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@QEAU234@$$QEAU234@@Z.940266886021390796
     DATA
        
__profd_??$_Emplace_reallocate@UCompletion@LineEditor@llvm@@@?$vector@UCompletion@LineEditor@llvm@@V?$allocator@UCompletion@LineEditor@llvm@@@std@@@std@@AEAAPEAUCompletion@LineEditor@llvm@@QEAU234@$$QEAU234@@Z.928018419188693000
     DATA
        
__profd_??$_Emplace_reallocate@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@?$vector@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@V?$allocator@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@2@@std@@AEAAPEAV?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@1@QEAV21@$$QEAV21@@Z.1073799611620789089
        DATA
        
__profvp_??$_Emplace_reallocate@AEBI@?$vector@IV?$allocator@I@std@@@std@@AEAAPEAIQEAIAEBI@Z.140565309351188016
   DATA
        
__profvp_??$_Emplace_reallocate@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEAAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@QEAV21@AEBV21@@Z.166520529307557042
       DATA
        
__profvp_??$_Emplace_reallocate@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@?$vector@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@V?$allocator@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@2@@std@@AEAAPEAV?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@1@QEAV21@$$QEAV21@@Z.1073799611620789089
       DATA
        
??$_Emplace_reallocate@AEBI@?$vector@IV?$allocator@I@std@@@std@@AEAAPEAIQEAIAEBI@Z
        
??$_Emplace_reallocate@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEAAPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@QEAV21@AEBV21@@Z
        
??$_Emplace_reallocate@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@?$vector@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@V?$allocator@U?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@@std@@@std@@AEAAPEAU?$OptionValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@cl@llvm@@QEAU234@$$QEAU234@@Z
        
??$_Emplace_reallocate@UCompletion@LineEditor@llvm@@@?$vector@UCompletion@LineEditor@llvm@@V?$allocator@UCompletion@LineEditor@llvm@@@std@@@std@@AEAAPEAUCompletion@LineEditor@llvm@@QEAU234@$$QEAU234@@Z
        
??$_Emplace_reallocate@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@?$vector@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@V?$allocator@V?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@std@@@2@@std@@AEAAPEAV?$unique_ptr@VErrorInfoBase@llvm@@U?$default_delete@VErrorInfoBase@llvm@@@std@@@1@QEAV21@$$QEAV21@@Z
```

To produce this output, cmake runs `llvm-nm --no-weak --defined-only 
--format=posix` on Linux, but ... does its own thing on Windows, ignoring the 
--nm flag it gave itself.

I will file a bug against cmake.

https://github.com/llvm/llvm-project/pull/90373
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to