{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/31457","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/31457/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/31457/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/31457/events","html_url":"https://github.com/rust-lang/rust/pull/31457","id":131908327,"number":31457,"title":"Use libc::abort, not intrinsics::abort, in rtabort!","user":{"login":"lambda","id":37398,"avatar_url":"https://avatars.githubusercontent.com/u/37398?v=3","gravatar_id":"","url":"https://api.github.com/users/lambda","html_url":"https://github.com/lambda","followers_url":"https://api.github.com/users/lambda/followers","following_url":"https://api.github.com/users/lambda/following{/other_user}","gists_url":"https://api.github.com/users/lambda/gists{/gist_id}","starred_url":"https://api.github.com/users/lambda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lambda/subscriptions","organizations_url":"https://api.github.com/users/lambda/orgs","repos_url":"https://api.github.com/users/lambda/repos","events_url":"https://api.github.com/users/lambda/events{/privacy}","received_events_url":"https://api.github.com/users/lambda/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"brson","id":147214,"avatar_url":"https://avatars.githubusercontent.com/u/147214?v=3","gravatar_id":"","url":"https://api.github.com/users/brson","html_url":"https://github.com/brson","followers_url":"https://api.github.com/users/brson/followers","following_url":"https://api.github.com/users/brson/following{/other_user}","gists_url":"https://api.github.com/users/brson/gists{/gist_id}","starred_url":"https://api.github.com/users/brson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brson/subscriptions","organizations_url":"https://api.github.com/users/brson/orgs","repos_url":"https://api.github.com/users/brson/repos","events_url":"https://api.github.com/users/brson/events{/privacy}","received_events_url":"https://api.github.com/users/brson/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2016-02-06T22:57:40Z","updated_at":"2016-02-07T00:39:42Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/31457","html_url":"https://github.com/rust-lang/rust/pull/31457","diff_url":"https://github.com/rust-lang/rust/pull/31457.diff","patch_url":"https://github.com/rust-lang/rust/pull/31457.patch"},"body":"intrinsics::abort compiles down to an illegal instruction, which on\r\nUnix-like platforms causes the process to be killed with SIGILL.  A more\r\nappropriate way to kill the process would be SIGABRT; this indicates\r\nbetter that the runtime has explicitly aborted, rather than some kind of\r\ncompiler bug or architecture mismatch that SIGILL might indicate.\r\n\r\nFor rtassert!, replace this with libc::abort.  libc::abort raises\r\nSIGABRT, but is defined to do so in such a way that it will terminate\r\nthe process even if SIGABRT is currently masked or caught by a signal\r\nhandler that returns.\r\n\r\nOn non-Unix platforms, retain the existing behavior.  On Windows we\r\nprefer to avoid depending on the C runtime, and we need a fallback for\r\nany other platforms that may be defined.  An alternative on Windows\r\nwould be to call TerminateProcess, but this seems less essential than\r\nswitching to using SIGABRT on Unix-like platforms, where it is common\r\nfor the process-killing signal to be printed out or logged.\r\n\r\nThis is a [breaking-change] for any code that depends on the exact\r\nsignal raised to abort a process via rtabort!\r\n\r\ncc #31273\r\ncc #31333"},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/180893670","html_url":"https://github.com/rust-lang/rust/pull/31457#issuecomment-180893670","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/31457","id":180893670,"user":{"login":"retep998","id":666308,"avatar_url":"https://avatars.githubusercontent.com/u/666308?v=3","gravatar_id":"","url":"https://api.github.com/users/retep998","html_url":"https://github.com/retep998","followers_url":"https://api.github.com/users/retep998/followers","following_url":"https://api.github.com/users/retep998/following{/other_user}","gists_url":"https://api.github.com/users/retep998/gists{/gist_id}","starred_url":"https://api.github.com/users/retep998/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/retep998/subscriptions","organizations_url":"https://api.github.com/users/retep998/orgs","repos_url":"https://api.github.com/users/retep998/repos","events_url":"https://api.github.com/users/retep998/events{/privacy}","received_events_url":"https://api.github.com/users/retep998/received_events","type":"User","site_admin":false},"created_at":"2016-02-07T00:39:41Z","updated_at":"2016-02-07T00:39:41Z","body":"Alternatively we can call [`RaiseFailFastException`](https://msdn.microsoft.com/en-us/library/windows/desktop/dd941688(v=vs.85).aspx) which is a full function call rather than a simple instruction."}}