Vscode-cpptools: Alpine operating system support

Created on 9 Jan 2020  路  10Comments  路  Source: microsoft/vscode-cpptools

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

  • OS and Version: Alpine 3.11
  • VS Code Version: 1.41
  • C/C++ Extension Version: 2.26
  • C/C++ Extension does not support Alpine environment due to the use of musl library.

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.

Feature Request Language Service

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.

All 10 comments

+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.
Was this page helpful?
0 / 5 - 0 ratings