Type: General
I'm not sure if this issue is already tracked somewhere else. I checked before to open this one, and I only found pull requests talking about disabling the support of the extension under Alpine and ARM environment:
Describe the bug
I don't know what are the dependencies of the C/C++ Extension since this is not an open source extension. But what is the cost to add the support of musl library in addition of the usual libc library ?
I'm currently looking to mount a development Docker environment based on an Alpine operating system.
+1 on this.
I think this feature might get more and more requested given that 1) Remote-Containers is getting more popular to develop on Windows machines without cluttering them 2) Alpine is getting very popular because of its speed, and is starting to support more libraries and tools.
Same here, would definitely love to see that coming so that I can use it on gitpod using Alpine. Thanks!
So what exactly isn't working and how does it depend on musl?
@Trass3r Are you asking us? I think the cpptools/cpptools-srv doesn't run. @andreeis Might know more.
Yes, so we get that message alpine is not supported but it's not clear which features are affected.
vscode-cpptools consists of different components. I personally only use the debugger as there are other solutions for LSP.
@WardenGnaw Do you know anything about Alpine support for the debugger?
If there is a Mono Runtime (using musl) that works on Alpine, we can ship the debugger to work on Alpine.
From when I last checked, there was not an officially supported Mono Runtime for Alpine.
There is a mono package (https://pkgs.alpinelinux.org/package/edge/testing/x86_64/mono), but it's not ready for production right now. The package is only available on edge branch, not on the 3.12 release. And it's tagged as testing.
Indeed. It can be installed via
sed -i -e 's/v[[:digit:]]\..*\//edge\//g' /etc/apk/repositories
apk update && apk upgrade --no-cache --available
apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing mono
Then one can test the current state by removing
else if (process.platform === 'linux' && fs.existsSync('/etc/alpine-release')) {
errMsg = localize(1, null);
}
from ~/.vscode-server/extensions/ms-vscode.cpptools-*/dist/main.js, reloading and running
rm ~/.vscode-server/extensions/ms-vscode.cpptools-*/debugAdapters/mono.linux-x86_64
~/.vscode-server/extensions/ms-vscode.cpptools-1.1.2/debugAdapters/OpenDebugAD7
But...
Got a SIGSEGV while executing native code.
Ok it's way easier: https://github.com/sgerrand/alpine-pkg-glibc#installing
Most helpful comment
+1 on this.
I think this feature might get more and more requested given that 1) Remote-Containers is getting more popular to develop on Windows machines without cluttering them 2) Alpine is getting very popular because of its speed, and is starting to support more libraries and tools.