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

Version 1.7.0 (insiders) of extension now requires an OS with glibc 2.27 or newer #8192

Closed
ChenCuiPlasma opened this issue Sep 28, 2021 · 23 comments
Assignees
Labels
bug fixed Check the Milestone for the release in which the fix is or will be available. Language Service quick fix

Comments

@ChenCuiPlasma
Copy link

Bug type: Language Service

Describe the bug

  • OS and Version: Ubuntu 16.04 LTS
  • VS Code Version: 1.60.2
  • C/C++ Extension Version: 1.7.0-insider
  • A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc):
    After the update of 1.7.0-insider extension this afternoon, the language server of C/C++ extension continues to crash and it notifies that "version `GLIBC_2.27' not found", I assume this comes with the compatibility with the Ubuntu 16.04 system

Expected behavior

The IntelliSense stops to work after the crash of the language server

@sc420
Copy link

sc420 commented Sep 28, 2021

Got same issue with v1.7.0-insiders on CentOS 7:

.../.vscode-server/extensions/ms-vscode.cpptools-1.7.0-insiders/bin/cpptools: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by .../.vscode-server/extensions/ms-vscode.cpptools-1.7.0-insiders/bin/cpptools)

I downgraded it to v1.6.0 and disabled the extension auto-update, it works fine now.

@nolongerwait
Copy link

nolongerwait commented Sep 28, 2021

same issue with v1.7.0-insiders on Debian 9

/home/????/.vscode-server/extensions/ms-vscode.cpptools-1.7.0-insiders/bin/cpptools: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/????/.vscode-server/extensions/ms-vscode.cpptools-1.7.0-insiders/bin/cpptools)

@nolongerwait
Copy link

How to set it to find libs according to the configured path, Rather than the system default? Since our develop environment has multiple sets of compilation environments, I specified C_Cpp.compilePath, but it obviously didn't take effect.

@lixin-wei
Copy link

lixin-wei commented Sep 28, 2021

same issue in CentOS 7. Could you please keep the compatibility to gdbc <= 2.24? It's hard to upgrade glibc.

/home/admin/.vscode-server/extensions/ms-vscode.cpptools-1.7.0-insiders/bin/cpptools: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /home/admin/.vscode-server/extensions/ms-vscode.cpptools-1.7.0-insiders/bin/cpptools)

I have to downgraded it to v1.6.0.

@ChenCuiPlasma
Copy link
Author

I also downgrade the version back to 1.60. Upgrade glibc for the system may result in the disability of boot process... so if it is possible please check the compatibility of the glibc of the cpp extension.

@jhsterling
Copy link

How do I disable auto update of the extension? I download and install v1.6 but then it auto updates to v1.7

@lixin-wei
Copy link

@jhsterling It's here:

image

@jhsterling
Copy link

@lixin-wei
Got it. Thanks.

@perrog
Copy link

perrog commented Sep 28, 2021

Same problem for me.

  • OS and Version: CentOS Linux release 7.9.2009 (Core)
  • VS Code Version: 1.60.0

@michelleangela
Copy link
Contributor

michelleangela commented Sep 28, 2021

There was a build change for version 1.7.0 because Azure Ubuntu 16 build pool is no longer available. Because of the build change, version 1.7.0 of the extension now requires an OS with glibc 2.27 or newer.

Sorry we failed to communicate this requirement as we were not sure if it would be an actual issue.

To continue to use version 1.6.0 of the extension without auto-updating to 1.7.0, disable the setting extensions.autoUpdate.

A request to add back the Azure Ubuntu 16 image build pool can be filed at https://github.com/actions/virtual-environments.

@ykuchin
Copy link

ykuchin commented Sep 28, 2021

Same on Oracle Linux 7

@michelleangela michelleangela changed the title Compatibility of Version 1.7.0-insider to Ubuntu 16.04 Version 1.7.0 of the extension now requires an OS with glibc 2.27 or newer Sep 28, 2021
@bobbrow bobbrow pinned this issue Sep 28, 2021
@sean-mcmanus
Copy link
Contributor

The root cause is from actions/runner-images#3287 (we haven't yet found a way to keep the older glibc dependency when building on Ubuntu 18).

@perrog
Copy link

perrog commented Sep 28, 2021

Thanks for the answers. I checked with objdump -T and it seems to be the powf() function in cpptools that needs glibc 2.27. Maybe I misinterpret the output from objdump or dont understand .so versioning on Linux, but if it happens to be just powf() usage maybe one could roll one’s own power function to keep backward compatibility with older distros? Or maybe there is a way to add glibc 2.27 on my CentOs 7 devcontainer? (Yes, I’m running cpptools 1.6.0 for now but I’m eager to use the latest preview builds since it always improve and becoming better)

@michelleangela michelleangela changed the title Version 1.7.0 of the extension now requires an OS with glibc 2.27 or newer Version 1.7.0 (insiders) of extension now requires an OS with glibc 2.27 or newer Sep 29, 2021
@nolongerwait
Copy link

There was a build change for version 1.7.0 because Azure Ubuntu 16 build pool is no longer available. Because of the build change, version 1.7.0 of the extension now requires an OS with glibc 2.27 or newer.

Sorry we failed to communicate this requirement as we were not sure if it would be an actual issue.

To continue to use version 1.6.0 of the extension without auto-updating to 1.7.0, disable the setting extensions.autoUpdate.

A request to add back the Azure Ubuntu 16 image build pool can be filed at https://github.com/actions/virtual-environments.

So, anyone can answer my question?....How to set it to find libs according to the configured path, rather than use system default? Since our develop environment has multiple sets of compilation environments, I specified C_Cpp.compilePath, but it obviously didn't take effect.

@sean-mcmanus
Copy link
Contributor

sean-mcmanus commented Sep 29, 2021

@perrog Yes, you are correct -- the powf is the cause of the 2.27 requirement and without that it would drop to 2.17. It was on my TODO list to check that via readelf -a, but I was working other stuff and forgot about it. We may be able to fix it via avoiding the call to powf as you suggested. UPDATE: We have a fix, but it still needs to go through our code review and release process.

@nolongerwait I'm not sure what you're asking. The compilerPath is for configuring IntelliSense and is unrelated to this glibc issue.

@lixin-wei
Copy link

@sean-mcmanus How you fixed this? By using your own power function?

@sean-mcmanus
Copy link
Contributor

sean-mcmanus commented Sep 29, 2021

@lixin-wei Yes...we only call it in the simple pow(float, int) case.

@nolongerwait
Copy link

@sean-mcmanus Which config setting is related to this GLIBC issue? I mean that there are multiple compilation environments in my development environment, and there are different versions. I want to know whether I could use the configuration of vscode-cpptools to make it find the correct libc file or not? while, I don’t want to modify the default parameters of the system.

@sean-mcmanus
Copy link
Contributor

@nolongerwait No config setting is related to the glibc issue -- it's an issue with the cpptools binary. We'll be releasing a fix with 1.7.0-insiders2 tomorrow.

@zjwangmin
Copy link

@nolongerwait No config setting is related to the glibc issue -- it's an issue with the cpptools binary. We'll be releasing a fix with 1.7.0-insiders2 tomorrow.

Thanks a lot.

@michelleangela
Copy link
Contributor

1.7.0-insiders2 is now available with a fix for this issue. https://github.com/microsoft/vscode-cpptools/releases/tag/1.7.0-insiders2

@Colengms
Copy link
Contributor

Colengms commented Oct 1, 2021

Since this was a regression only in a previous insiders release, closing this issue.

@Colengms Colengms closed this as completed Oct 1, 2021
@sean-mcmanus sean-mcmanus unpinned this issue Oct 1, 2021
@nolongerwait
Copy link

@nolongerwait No config setting is related to the glibc issue -- it's an issue with the cpptools binary. We'll be releasing a fix with 1.7.0-insiders2 tomorrow.

Get it, Thanks for your reply.😁

@github-actions github-actions bot locked and limited conversation to collaborators Nov 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug fixed Check the Milestone for the release in which the fix is or will be available. Language Service quick fix
Projects
None yet
Development

No branches or pull requests