-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
WIP: Implement stable symbol-name generation algorithm. #31539
WIP: Implement stable symbol-name generation algorithm. #31539
Commits on Mar 15, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 1dae394 - Browse repository at this point
Copy the full SHA 1dae394View commit details -
Configuration menu - View commit details
-
Copy full SHA for d4b55d2 - Browse repository at this point
Copy the full SHA d4b55d2View commit details -
Make CrateStore::crate_name() return an InternedString to avoid unnec…
…essary allocations.
Configuration menu - View commit details
-
Copy full SHA for 95c0daf - Browse repository at this point
Copy the full SHA 95c0dafView commit details -
Make library paths passed by compiletest tool absolute.
Otherwise, changing the current working directory can mess up runtime linking.
Configuration menu - View commit details
-
Copy full SHA for 410caeb - Browse repository at this point
Copy the full SHA 410caebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 446d4ec - Browse repository at this point
Copy the full SHA 446d4ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for b2eed71 - Browse repository at this point
Copy the full SHA b2eed71View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5a7fd9 - Browse repository at this point
Copy the full SHA b5a7fd9View commit details -
Configuration menu - View commit details
-
Copy full SHA for eb4de06 - Browse repository at this point
Copy the full SHA eb4de06View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4d1259e - Browse repository at this point
Copy the full SHA 4d1259eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e3a78d8 - Browse repository at this point
Copy the full SHA e3a78d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6351081 - Browse repository at this point
Copy the full SHA 6351081View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9a1465c - Browse repository at this point
Copy the full SHA 9a1465cView commit details -
Configuration menu - View commit details
-
Copy full SHA for a3dc048 - Browse repository at this point
Copy the full SHA a3dc048View commit details -
Configuration menu - View commit details
-
Copy full SHA for b327213 - Browse repository at this point
Copy the full SHA b327213View commit details -
Configuration menu - View commit details
-
Copy full SHA for 25cbff1 - Browse repository at this point
Copy the full SHA 25cbff1View commit details -
Make the compiler emit an error if the crate graph contains two crate…
…s with the same crate-name and crate-salt but different SVHs.
Configuration menu - View commit details
-
Copy full SHA for 9d5ce13 - Browse repository at this point
Copy the full SHA 9d5ce13View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00c206f - Browse repository at this point
Copy the full SHA 00c206fView commit details -
Add a "link-guard" to avoid accidentally linking to a wrong dylib at …
…runtime. We want to prevent compiling something against one version of a dynamic library and then, at runtime accidentally using a different version of the dynamic library. With the old symbol-naming scheme this could not happen because every symbol had the SVH in it and you'd get an error by the dynamic linker when using the wrong version of a dylib. With the new naming scheme this isn't the case any more, so this patch adds the "link-guard" to prevent this error case. This is implemented as follows: - In every crate that we compile, we emit a function called "__rustc_link_guard_<crate-name>_<crate-svh>" - The body of this function contains calls to the "__rustc_link_guard" functions of all dependencies. - An executable contains a call to it's own "__rustc_link_guard" function. As a consequence the "__rustc_link_guard" function call graph mirrors the crate graph and the dynamic linker will fail if a wrong dylib is loaded somewhere because its "__rustc_link_guard" function will contain a different SVH in its name.
Configuration menu - View commit details
-
Copy full SHA for f6b0f17 - Browse repository at this point
Copy the full SHA f6b0f17View commit details