Issue 171026
Summary Targets *-w64-mingw32 with different rdata sizes
Labels new issue
Assignees
Reporter Niram7777
    1. When trying to add clang to a *-w64-mingw32 project, I get linker warnings:
```
[332/365] Linking target src/dxgi/dxgi.dll
/usr/x86_64-w64-mingw32/lib/libstdc++.a(eh_alloc.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(eh_exception.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(eh_personality.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(guard.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(new_op.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(new_op.o): duplicate section `.rdata$_ZTSSt9bad_alloc[_ZTSSt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(new_op.o): duplicate section `.rdata$_ZTISt9bad_alloc[_ZTISt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(new_opa.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(new_opa.o): duplicate section `.rdata$_ZTSSt9bad_alloc[_ZTSSt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(new_opa.o): duplicate section `.rdata$_ZTISt9bad_alloc[_ZTISt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(vterminate.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(locale.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(locale.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cow-shim_facets.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(ctype.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(ctype_members.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-locale-inst.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-locale-inst.o): duplicate section `.rdata$_ZTSNSt7__cxx117collateIcEE[_ZTSNSt7__cxx117collateIcEE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-locale-inst.o): duplicate section `.rdata$_ZTINSt7__cxx117collateIcEE[_ZTINSt7__cxx117collateIcEE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-shim_facets.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-wlocale-inst.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(functexcept.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(functexcept.o): duplicate section `.rdata$_ZTSSt9bad_alloc[_ZTSSt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(functexcept.o): duplicate section `.rdata$_ZTISt9bad_alloc[_ZTISt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(functexcept.o): duplicate section `.rdata$_ZTSSt13runtime_error[_ZTSSt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(functexcept.o): duplicate section `.rdata$_ZTISt13runtime_error[_ZTISt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(functional.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(locale-inst.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(locale_init.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(random.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(random.o): duplicate section `.rdata$_ZTSSt13runtime_error[_ZTSSt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(random.o): duplicate section `.rdata$_ZTISt13runtime_error[_ZTISt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(random.o): duplicate section `.rdata$_ZTSSt12system_error[_ZTSSt12system_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(random.o): duplicate section `.rdata$_ZTISt12system_error[_ZTISt12system_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(regex.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(regex.o): duplicate section `.rdata$_ZTSSt13runtime_error[_ZTSSt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(regex.o): duplicate section `.rdata$_ZTISt13runtime_error[_ZTISt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(regex.o): duplicate section `.rdata$_ZTISt11regex_error[_ZTISt11regex_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(system_error.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(system_error.o): duplicate section `.rdata$_ZTSSt13runtime_error[_ZTSSt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(system_error.o): duplicate section `.rdata$_ZTISt13runtime_error[_ZTISt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(system_error.o): duplicate section `.rdata$_ZTSSt12system_error[_ZTSSt12system_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(system_error.o): duplicate section `.rdata$_ZTISt12system_error[_ZTISt12system_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(thread.o): duplicate section `.rdata$_ZTSNSt6thread6_StateE[_ZTSNSt6thread6_StateE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(wlocale-inst.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_alloc.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_alloc.o): duplicate section `.rdata$_ZTSSt9bad_alloc[_ZTSSt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_alloc.o): duplicate section `.rdata$_ZTISt9bad_alloc[_ZTISt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_array_new.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_array_new.o): duplicate section `.rdata$_ZTSSt9bad_alloc[_ZTSSt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_array_new.o): duplicate section `.rdata$_ZTISt9bad_alloc[_ZTISt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_cast.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(bad_typeid.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(eh_aux_runtime.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(eh_aux_runtime.o): duplicate section `.rdata$_ZTSSt9bad_alloc[_ZTSSt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(eh_aux_runtime.o): duplicate section `.rdata$_ZTISt9bad_alloc[_ZTISt9bad_alloc]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(codecvt.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(monetary_members_cow.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(numeric_members_cow.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(stdexcept.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(stdexcept.o): duplicate section `.rdata$_ZTSSt13runtime_error[_ZTSSt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(stdexcept.o): duplicate section `.rdata$_ZTISt13runtime_error[_ZTISt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(lt1-codecvt.o): duplicate section `.rdata$_ZTSNSt6locale5facetE[_ZTSNSt6locale5facetE]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-ios_failure.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-ios_failure.o): duplicate section `.rdata$_ZTSSt13runtime_error[_ZTSSt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-ios_failure.o): duplicate section `.rdata$_ZTISt13runtime_error[_ZTISt13runtime_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-ios_failure.o): duplicate section `.rdata$_ZTSSt12system_error[_ZTSSt12system_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(cxx11-ios_failure.o): duplicate section `.rdata$_ZTISt12system_error[_ZTISt12system_error]' has different size
/usr/x86_64-w64-mingw32/lib/libstdc++.a(ios_failure.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
```
2. llvm-strip fails: `llvm-strip: error: '/mnt/data/build/debug/dxvk-master/x64/dxgi.dll': invalid SymbolTableIndex`

https://github.com/doitsujin/dxvk/pull/5367

I use:
```
[marin@pc-linux x64]$ clang++ --version
clang version 22.0.0git (https://github.com/llvm/llvm-project.git 8462cff40daf40e58d705f5d86d4e91ef6e6294c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/marin/install/bin
```
https://wiki.archlinux.org/title/MinGW_package_guidelines
https://archlinux.org/packages/extra/x86_64/mingw-w64-gcc/

3. Why the sections have different sizes ? I am guessing 16 is the good one for the platform? Can I specify the size on the command line?
```
[marin@pc-linux x64]$ size --format=sysv /usr/i686-w64-mingw32/lib/libstdc++.a | grep '.rdata$_ZTSSt9exception'
.rdata$_ZTSSt9exception    16 0
...
[marin@pc-linux x64]$ size --format=sysv /mnt/data/build/debug/dxvk-master/build.64/src/*/*/*.cpp.obj | grep '.rdata$_ZTSSt9exception'
.rdata$_ZTSSt9exception    13      0
...
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to