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

Explain the disadvantages of linking to old glibc versions #12

Open
heinrich5991 opened this issue May 10, 2018 · 5 comments
Open

Explain the disadvantages of linking to old glibc versions #12

heinrich5991 opened this issue May 10, 2018 · 5 comments

Comments

@heinrich5991
Copy link
Contributor

After reading the README, I couldn't tell why I shouldn't always link to glibc 2.5 symbols. Is there any downside?

@wheybags
Copy link
Owner

wheybags commented May 12, 2018 via email

@devnoname120
Copy link

Are security issues fixed as well on old symbols implementations?

@probonopd
Copy link

After reading the README, I couldn't tell why I shouldn't always link to glibc 2.5 symbols. Is there any downside?

I wonder the same thing, too.

@jwakely
Copy link

jwakely commented Sep 12, 2019

Old glibc versions don't have new features. If you want to call a new function like pthread_cond_clockwait then you have to link to the new glibc that provides the definition of that new function. If you bind some symbols like sqrt and memcpy to older versions, that doesn't remove the dependency on the new function which is only present in the new glibc. You just get older (probably slower, maybe buggy) versions of some symbols, but you still depend on the new glibc.

Are security issues fixed as well on old symbols implementations?

I think typically, yes. e.g. for the realpath function, the realpath@GLIBC_2.0 and realpath@@GLIBC_2.3 symbols share the same __realpath implementation, so fixes are done to __realpath and both versioned symbols get the fix. That might not always be true though.

@probonopd
Copy link

Old glibc versions don't have new features.

Can't we just declare that stuff "feature complete", freeze it indefinitely, and add new functions in other libraries?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants