Skip to content

Commit fb5c3ab

Browse files
committed
---
yaml --- r: 219486 b: refs/heads/snap-stage3 c: 4a788a2 h: refs/heads/master v: v3
1 parent 8eccf53 commit fb5c3ab

File tree

4 files changed

+32
-29
lines changed

4 files changed

+32
-29
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
refs/heads/master: c044791d80ea0dc5c4b57b6030a67b69f8510239
3-
refs/heads/snap-stage3: 59be7535448e5c92b17307e2e4cf1f1980f7252a
3+
refs/heads/snap-stage3: 4a788a2003d6ad66b768f520a13f251c6800ab7d
44
refs/heads/try: b53c0f93eedcdedd4fd89bccc5a3a09d1c5cd23e
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/snap-stage3/src/liblibc/lib.rs

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5493,17 +5493,17 @@ pub mod funcs {
54935493
pub fn dup2(src: c_int, dst: c_int) -> c_int;
54945494
#[link_name = "_execv"]
54955495
pub fn execv(prog: *const c_char,
5496-
argv: *mut *const c_char) -> intptr_t;
5496+
argv: *const *const c_char) -> intptr_t;
54975497
#[link_name = "_execve"]
5498-
pub fn execve(prog: *const c_char, argv: *mut *const c_char,
5499-
envp: *mut *const c_char)
5498+
pub fn execve(prog: *const c_char, argv: *const *const c_char,
5499+
envp: *const *const c_char)
55005500
-> c_int;
55015501
#[link_name = "_execvp"]
55025502
pub fn execvp(c: *const c_char,
5503-
argv: *mut *const c_char) -> c_int;
5503+
argv: *const *const c_char) -> c_int;
55045504
#[link_name = "_execvpe"]
5505-
pub fn execvpe(c: *const c_char, argv: *mut *const c_char,
5506-
envp: *mut *const c_char) -> c_int;
5505+
pub fn execvpe(c: *const c_char, argv: *const *const c_char,
5506+
envp: *const *const c_char) -> c_int;
55075507
#[link_name = "_getcwd"]
55085508
pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char;
55095509
#[link_name = "_getpid"]
@@ -5687,12 +5687,12 @@ pub mod funcs {
56875687
pub fn dup(fd: c_int) -> c_int;
56885688
pub fn dup2(src: c_int, dst: c_int) -> c_int;
56895689
pub fn execv(prog: *const c_char,
5690-
argv: *mut *const c_char) -> c_int;
5691-
pub fn execve(prog: *const c_char, argv: *mut *const c_char,
5692-
envp: *mut *const c_char)
5690+
argv: *const *const c_char) -> c_int;
5691+
pub fn execve(prog: *const c_char, argv: *const *const c_char,
5692+
envp: *const *const c_char)
56935693
-> c_int;
56945694
pub fn execvp(c: *const c_char,
5695-
argv: *mut *const c_char) -> c_int;
5695+
argv: *const *const c_char) -> c_int;
56965696
pub fn fork() -> pid_t;
56975697
pub fn fpathconf(filedes: c_int, name: c_int) -> c_long;
56985698
pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char;
@@ -5702,7 +5702,9 @@ pub mod funcs {
57025702
pub fn getgroups(ngroups_max: c_int, groups: *mut gid_t)
57035703
-> c_int;
57045704
pub fn getlogin() -> *mut c_char;
5705-
pub fn getopt(argc: c_int, argv: *mut *const c_char,
5705+
// GNU getopt(3) modifies its arguments despite the
5706+
// char * const [] prototype; see the manpage.
5707+
pub fn getopt(argc: c_int, argv: *mut *mut c_char,
57065708
optstr: *const c_char) -> c_int;
57075709
pub fn getpgrp() -> pid_t;
57085710
pub fn getpid() -> pid_t;
@@ -5752,19 +5754,19 @@ pub mod funcs {
57525754
pub fn dup(fd: c_int) -> c_int;
57535755
pub fn dup2(src: c_int, dst: c_int) -> c_int;
57545756
pub fn execv(prog: *const c_char,
5755-
argv: *mut *const c_char) -> c_int;
5756-
pub fn execve(prog: *const c_char, argv: *mut *const c_char,
5757-
envp: *mut *const c_char)
5757+
argv: *const *const c_char) -> c_int;
5758+
pub fn execve(prog: *const c_char, argv: *const *const c_char,
5759+
envp: *const *const c_char)
57585760
-> c_int;
57595761
pub fn execvp(c: *const c_char,
5760-
argv: *mut *const c_char) -> c_int;
5762+
argv: *const *const c_char) -> c_int;
57615763
pub fn fork() -> pid_t;
57625764
pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char;
57635765
pub fn getegid() -> gid_t;
57645766
pub fn geteuid() -> uid_t;
57655767
pub fn getgid() -> gid_t;
57665768
pub fn getlogin() -> *mut c_char;
5767-
pub fn getopt(argc: c_int, argv: *mut *const c_char,
5769+
pub fn getopt(argc: c_int, argv: *const *const c_char,
57685770
optstr: *const c_char) -> c_int;
57695771
pub fn getuid() -> uid_t;
57705772
pub fn getsid(pid: pid_t) -> pid_t;

branches/snap-stage3/src/libstd/panicking.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,12 @@ pub fn on_panic(obj: &(Any+Send), file: &'static str, line: u32) {
3131
None => "Box<Any>",
3232
}
3333
};
34-
let mut err = match Stderr::new() {
35-
Ok(err) => err,
36-
_ => return,
37-
};
34+
let mut err = Stderr::new().ok();
3835
let thread = thread_info::current_thread();
3936
let name = thread.as_ref().and_then(|t| t.name()).unwrap_or("<unnamed>");
4037
let prev = LOCAL_STDERR.with(|s| s.borrow_mut().take());
41-
match prev {
42-
Some(mut stderr) => {
38+
match (prev, err.as_mut()) {
39+
(Some(mut stderr), _) => {
4340
// FIXME: what to do when the thread printing panics?
4441
let _ = writeln!(stderr,
4542
"thread '{}' panicked at '{}', {}:{}\n",
@@ -52,18 +49,22 @@ pub fn on_panic(obj: &(Any+Send), file: &'static str, line: u32) {
5249
*slot.borrow_mut() = s.take();
5350
});
5451
}
55-
None => {
56-
let _ = writeln!(&mut err, "thread '{}' panicked at '{}', {}:{}",
52+
(None, Some(ref mut err)) => {
53+
let _ = writeln!(err, "thread '{}' panicked at '{}', {}:{}",
5754
name, msg, file, line);
5855
if backtrace::log_enabled() {
59-
let _ = backtrace::write(&mut err);
56+
let _ = backtrace::write(err);
6057
}
6158
}
59+
_ => {}
6260
}
6361

6462
// If this is a double panic, make sure that we printed a backtrace
6563
// for this panic.
66-
if unwind::panicking() && !backtrace::log_enabled() {
67-
let _ = backtrace::write(&mut err);
64+
match err {
65+
Some(ref mut err) if unwind::panicking() && !backtrace::log_enabled() => {
66+
let _ = backtrace::write(err);
67+
}
68+
_ => {}
6869
}
6970
}

branches/snap-stage3/src/libstd/sys/unix/process.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ impl Process {
313313
if !envp.is_null() {
314314
*sys::os::environ() = envp as *const _;
315315
}
316-
let _ = libc::execvp(*argv, argv as *mut _);
316+
let _ = libc::execvp(*argv, argv);
317317
fail(&mut output)
318318
}
319319

0 commit comments

Comments
 (0)