1

Background

I'm having more success than expected running binaries from a (relatively simple) C# program on "antiquated" arm and arm64 systems built on linux-x64 and published with RIDs linux-arm and linux-arm64.

On one machine I get the following, however: symbol _ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

According to some information I found, the reason is that from gcc-5 onward, the c++ ABI has changed. Indeed this system is a glibc-2.20 compiled with gcc-4.9.4.

My questions:

  • is there any already available RID which publishes binaries known to be compatible with gcc-4.9 on arm64 (all RIDs are here)? (I've tried some of "the oldest" I could find from the list, that support arm64, but none worked).
  • if not, would it be feasible to build the SDK in e.g. a wheezy arm64 container (I've had success with this compiling for glibc-2.19 compatibility).
  • if I have a custom-build cross-SDK, how can I add a RID so I can use it in the standard dotnet publish workflow? (I build on linux-x64 for linux-arm*)
ppenguin
  • 115
  • 9
  • Small update: by bundling a custom `libstdc++.so.6` (crossbuilt as necessary in a foreign-arch native container) as native lib with the dotnet app, the error can be worked around. It still does not address a completely transparent publish workflow though. – ppenguin May 26 '22 at 13:02

0 Answers0