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

Add support for arm and arm64 intelliSenseModes #4271

Closed
sean-mcmanus opened this issue Sep 18, 2019 · 18 comments
Closed

Add support for arm and arm64 intelliSenseModes #4271

sean-mcmanus opened this issue Sep 18, 2019 · 18 comments
Labels
Feature Request fixed Check the Milestone for the release in which the fix is or will be available. Language Service Works in VS So we'd need to fix it for VS Code to reach parity.
Milestone

Comments

@sean-mcmanus
Copy link
Collaborator

This is semi-separate from the other issues tracking our extension running on ARM machines, i.e. this is for whenever the user's code is built to target arm.

intelliSenseModes would be gcc-arm, gcc-arm64, clang-arm, clang-arm64, windows-arm, windows-arm64 .

Originally reported at #4269 .

@EmbeddedBacon
Copy link

When use VS Code and the remote extension to edit on a Raspberry Pi (v3 in this case) I see the error:

Architecture arm is not supported.
Source: C/C++ (Extension)

This is the issue tracking this feature, correct?

@sean-mcmanus
Copy link
Collaborator Author

sean-mcmanus commented Oct 28, 2019

Running on ARM is being tracked by #429 and #2506. This issue is related, but would repro even on a non-ARM machine that was targeting ARM.

@EmbeddedBacon
Copy link

@thanks, Mr. @sean-mcmanus . I will make sure to watch these two other threads. Thanks!

@boardkeystown
Copy link

It would be super helpful if there was some way to use intelliSenseModes for the raspberry pi 2,3,and 4.

@ghuser404
Copy link

ghuser404 commented Apr 30, 2020

Is this supposed to be detected automatically by querying compiler? I'm using arm-raspberrypi-linux-gnueabi-g++ and I get IntelliSense Mode: gcc-x64.

PS. I'm trying this on the insiders build.

@michelleangela
Copy link
Contributor

michelleangela commented Apr 30, 2020

Is this supposed to be detected automatically by querying compiler? I'm using arm-raspberrypi-linux-gnueabi-g++ and I get IntelliSense Mode: gcc-x64.

PS. I'm trying this on the insiders build.

What value did you set IntelliSenseMode property? Can you share your c_cpp_properties.json file? The IntelliSenseMode is not set automatically and must be set to architecture/compiler that best matches your compiler and target architecture. In this case, it should be set to gcc-arm.

@sean-mcmanus
Copy link
Collaborator Author

@ghuser404 You could upvote #5258 .

@ghuser404
Copy link

@michelleangela I'm not setting IntelliSenseMode, I think sometimes it figures what compiler part to use (gcc or msvc), but it does not automatically detect architecture? Pretty much all I have in c_cpp_properties.json is "configurationProvider": "ms-vscode.cmake-tools" and I thought the idea was for everything to be set properly depending on CMake configuration?

This is not ideal, because when you use cmake-tools, you'll want to use different variants with possibly different compilers. So you would be switching between cmake-tools variants, and not between cpptools configs. Currently it seems you would have to switch between both, and it seems too error-prone.

Hopefully the above said make sense.

@ghuser404
Copy link

@sean-mcmanus Ah nice, this seems to be the thing.

@michelleangela
Copy link
Contributor

michelleangela commented Apr 30, 2020

If the IntelliSense configuration settings are coming from a configurationProvider, the provider may need to specify the correct IntelliSenseMode for a given compiler.

The task for ms-vscode.cmake-tools on adding support for ARM IntelliSenseMode as well as better selection of IntelliSenseMode for possible compilers is currently in progress. The issue is microsoft/vscode-cmake-tools#1155.

@ghuser404
Copy link

@michelleangela Awesome! Thanks for the information.

@elahehrashedi
Copy link
Contributor

This issue is fixed in 0.28.0.
0.28.0 release: https://github.com/microsoft/vscode-cpptools/releases/tag/0.28.0

@sokzmalin
Copy link

I'm a little confused. Support ARM architecture is supposed to be added in 0.28.0 but I'm still getting "architecture arm is not supported". Running VSCode remotely on raspberry pi 4 hardware. So I'm not what is the status of the ARM support.

@michelleangela
Copy link
Contributor

michelleangela commented May 21, 2020

@sokzmalin

This feature is for adding IntelliSense modes to emulate ARM architecture and not for the extension to run on an actual ARM device. The issue to add support for the extension to run on ARM devices is being tracked by issues #429 and #2506.

@jakcho
Copy link

jakcho commented Jun 6, 2020

@sokzmalin

This feature is for adding IntelliSense modes to emulate ARM architecture and not for the extension to run on an actual ARM device. The issue to add support for the extension to run on ARM devices is being tracked by issues #429 and #2506.

I am developing and app using Windows 10 for Raspberry pi3, using the remote-ssh connection.
I am facing: "Architecture arm is not supported."
Is the fix in this thread supposed to work for my setup? Using intelisense 28.2 version, installed on remote.

@michelleangela
Copy link
Contributor

I am developing and app using Windows 10 for Raspberry pi3, using the remote-ssh connection.
I am facing: "Architecture arm is not supported."
Is the fix in this thread supposed to work for my setup? Using intelisense 28.2 version, installed on remote.

@jakcho , the issue tracking the support for the extension to run on ARM/ARM64 devices are at #429 and #2506. This issue #4271 was for IntelliSense modes only.

@mirkow
Copy link

mirkow commented Jun 8, 2020

I am developing and app using Windows 10 for Raspberry pi3, using the remote-ssh connection.
I am facing: "Architecture arm is not supported."
Is the fix in this thread supposed to work for my setup? Using intelisense 28.2 version, installed on remote.

@jakcho , the issue tracking the support for the extension to run on ARM/ARM64 devices are at #429 and #2506. This issue #4271 was for IntelliSense modes only.

What is the difference? I face the same issue as @jakcho. To work remotely on the Raspberry PI with IntelliSense would awesome.

@michelleangela
Copy link
Contributor

IntelliSense mode is just emulation, where the IntelliSense engine will evaluate data sizes and some preprocessor definitions in the source code based on the selected IntelliSense mode architecture. So the host machine that the extension is running on can be an x64-bit machine, but you can tell IntelliSense to evaluate the source code as if it's being compiled for a different architecture.

This is different from running the C/C++ extension on an ARM or ARM64 machine. For the extension to run on those machines, the extension needs to be build for those machine instruction set. Currently, the extension can run on x64 bit machines on Windows, Linux, and macOS platforms.

@github-actions github-actions bot locked and limited conversation to collaborators Oct 11, 2020
@michelleangela michelleangela removed their assignment Feb 12, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Feature Request fixed Check the Milestone for the release in which the fix is or will be available. Language Service Works in VS So we'd need to fix it for VS Code to reach parity.
Projects
None yet
Development

No branches or pull requests

10 participants