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

Cannot run linux-arm64 published binary on CentOS 7 ARM64: GLIBCXX_3.4.21 not found #10839

Open
hjc4869 opened this issue Aug 6, 2018 · 5 comments
Labels
arch-arm64 area-Infrastructure-coreclr backlog-cleanup-candidate An inactive issue that has been marked for automated closure. no-recent-activity os-unsupported OS which is not officially supported
Milestone

Comments

@hjc4869
Copy link

hjc4869 commented Aug 6, 2018

The nuget packages built for linux-arm64 uses higher GLIBCXX versions than that on CentOS 7.

Steps to reproduce:
On a x86_64 machine with latest .NET Core SDK installed:

mkdir HelloWorld
cd HelloWorld
dotnet new console
dotnet publish -c Release -f netcoreapp2.1 -r linux-arm64

Copy the publish folder to a CentOS 7 ARM64 machine:

cd publish
./HelloWorld

output:

[hjc@centos7-64 publish]$ ./HelloWorld 
./HelloWorld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./HelloWorld)

This is probably because CentOS's libstdc++ only has GLIBCXX symbols up to 3.4.19

[hjc@centos7-64 publish]$ nm -D /lib64/libstdc++.so.6|grep GLIBCXX
0000000000000000 A GLIBCXX_3.4
0000000000000000 A GLIBCXX_3.4.1
0000000000000000 A GLIBCXX_3.4.10
0000000000000000 A GLIBCXX_3.4.11
0000000000000000 A GLIBCXX_3.4.12
0000000000000000 A GLIBCXX_3.4.13
0000000000000000 A GLIBCXX_3.4.14
0000000000000000 A GLIBCXX_3.4.15
0000000000000000 A GLIBCXX_3.4.16
0000000000000000 A GLIBCXX_3.4.17
0000000000000000 A GLIBCXX_3.4.18
0000000000000000 A GLIBCXX_3.4.19
0000000000000000 A GLIBCXX_3.4.2
0000000000000000 A GLIBCXX_3.4.3
0000000000000000 A GLIBCXX_3.4.4
0000000000000000 A GLIBCXX_3.4.5
0000000000000000 A GLIBCXX_3.4.6
0000000000000000 A GLIBCXX_3.4.7
0000000000000000 A GLIBCXX_3.4.8
0000000000000000 A GLIBCXX_3.4.9
@BruceForstall
Copy link
Member

@janvorli

@janvorli
Copy link
Member

janvorli commented Jan 9, 2019

That's correct, the ARM64 binaries are built on Ubuntu 16.04 and so it determines the minimum required glibc version.

@janvorli
Copy link
Member

janvorli commented Jan 9, 2019

@BruceForstall
Copy link
Member

So can we close this "by design" then?

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
Copy link
Contributor

Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process.

This process is part of our issue cleanup automation.

@dotnet-policy-service dotnet-policy-service bot added backlog-cleanup-candidate An inactive issue that has been marked for automated closure. no-recent-activity labels May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-arm64 area-Infrastructure-coreclr backlog-cleanup-candidate An inactive issue that has been marked for automated closure. no-recent-activity os-unsupported OS which is not officially supported
Projects
Status: No status
Development

No branches or pull requests

4 participants