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