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

More cleanup for armhfp and aarch64 rpm hardcoded dependencies #111253

Merged
merged 2 commits into from
Nov 25, 2020

Conversation

psgreco
Copy link
Contributor

@psgreco psgreco commented Nov 24, 2020

Continuing with #111198 there is some more cleanup to be done in the hardcoded dependencies. If I'm not mistaken, with this cleanup, the build I tested doesn't have any missing deps to run in CentOS8.

Wrt CentOS7, there are some missing deps in libstdc++.so.6 (like GLIBCXX_3.4.20 and CXXABI_1.3.9), but those should be fixed at build time.

Related to RPM part of #106473

Pablo Greco added 2 commits November 24, 2020 20:44
@joaomoreno
Copy link
Member

Thanks a lot @psgreco!

What do you mean by the following?

Wrt CentOS7, there are some missing deps in libstdc++.so.6 (like GLIBCXX_3.4.20 and CXXABI_1.3.9), but those should be fixed at build time.

Anything we can/should do here?

@psgreco
Copy link
Contributor Author

psgreco commented Nov 25, 2020

Wrt CentOS7, there are some missing deps in libstdc++.so.6 (like GLIBCXX_3.4.20 and CXXABI_1.3.9), but those should be fixed at build time.

Anything we can/should do here?

You need to build the binaries using an older version of libstdc++, the binaries have real references a libstdc++ version that will never be available in CentOS7 (not the hardcoded ones for your rpms). I'm guessing you're not using CentOS7 to build. If you can't do this, maybe you'll need to provide an alternative solution (like static binaries or providing a compatible libstdc++.s.6)

There's a small hack I use to check for this stuff (real hack, hehe) find . -exec ldd {} \; 2>&1|egrep -v '(execution permission|not a dynamic|not regular file)'|grep found. When I run it in CentOS7 I get these results

./resources/app/node_modules.asar.unpacked/node-pty/build/Release/pty.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./resources/app/node_modules.asar.unpacked/node-pty/build/Release/pty.node)
./resources/app/node_modules.asar.unpacked/native-keymap/build/Release/keymapping.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./resources/app/node_modules.asar.unpacked/native-keymap/build/Release/keymapping.node)
./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node)
./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node)
./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node)
./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./resources/app/node_modules.asar.unpacked/spdlog/build/Release/spdlog.node)
./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node)
./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node)
./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node)
./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-encrypt/build/Release/vscode-encrypt-native.node)
./resources/app/node_modules.asar.unpacked/vsda/build/Release/vsda.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./resources/app/node_modules.asar.unpacked/vsda/build/Release/vsda.node)
./resources/app/node_modules.asar.unpacked/vsda/build/Release/vsda.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./resources/app/node_modules.asar.unpacked/vsda/build/Release/vsda.node)
./resources/app/node_modules.asar.unpacked/vscode-sqlite3/build/Release/sqlite.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-sqlite3/build/Release/sqlite.node)
./resources/app/node_modules.asar.unpacked/vscode-sqlite3/build/Release/sqlite.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-sqlite3/build/Release/sqlite.node)
./resources/app/node_modules.asar.unpacked/vscode-nsfw/build/Release/nsfw.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-nsfw/build/Release/nsfw.node)
./resources/app/node_modules.asar.unpacked/vscode-nsfw/build/Release/nsfw.node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-nsfw/build/Release/nsfw.node)
./resources/app/node_modules.asar.unpacked/vscode-nsfw/build/Release/nsfw.node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./resources/app/node_modules.asar.unpacked/vscode-nsfw/build/Release/nsfw.node)

Which means I already have the needed lib (/lib64/libstdc++.so.6) but it doesn't provide the needed version.

@joaomoreno
Copy link
Member

Got it, thanks! I'm guessing this is an issue in x64 as well.

Related, wrt to server: microsoft/vscode-remote-release#2998

@psgreco
Copy link
Contributor Author

psgreco commented Nov 25, 2020

Yes, sounds like the same issue, and also yes, using an older debian should fix this, though I'd rather use CentOS since IIUC jessie is EOL since Jun 2020. If you need newer versions of things (like gcc), you could activate the necessary "devtoolsets" and still keep the compatibility with the base libstdc++ version. I'm talking about using gcc 7, 8 or 9 instead of the default 4.8.5

@github-actions github-actions bot locked and limited conversation to collaborators Jan 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants