Merge branch 'binutils_regressions' into 'master'
Binutils regressions See merge request redox-os/relibc!269
This commit is contained in:
@@ -472,7 +472,6 @@ struct PrintfArg {
|
||||
sign_always: bool,
|
||||
min_width: Number,
|
||||
precision: Option<Number>,
|
||||
pad_space: Number,
|
||||
pad_zero: Number,
|
||||
intkind: IntKind,
|
||||
fmt: u8,
|
||||
@@ -596,7 +595,6 @@ impl Iterator for PrintfIter {
|
||||
sign_always,
|
||||
min_width,
|
||||
precision,
|
||||
pad_space,
|
||||
pad_zero,
|
||||
intkind,
|
||||
fmt,
|
||||
@@ -667,8 +665,11 @@ unsafe fn inner_printf<W: Write>(w: W, format: *const c_char, mut ap: VaList) ->
|
||||
let sign_always = arg.sign_always;
|
||||
let min_width = arg.min_width.resolve(&mut varargs, &mut ap);
|
||||
let precision = arg.precision.map(|n| n.resolve(&mut varargs, &mut ap));
|
||||
let pad_space = arg.pad_space.resolve(&mut varargs, &mut ap);
|
||||
let pad_zero = arg.pad_zero.resolve(&mut varargs, &mut ap);
|
||||
let pad_space = match pad_zero {
|
||||
0 => min_width,
|
||||
_ => 0,
|
||||
};
|
||||
let intkind = arg.intkind;
|
||||
let fmt = arg.fmt;
|
||||
let fmtkind = arg.fmtkind;
|
||||
|
||||
+2
-4
@@ -394,7 +394,7 @@ impl Linker {
|
||||
};
|
||||
if same_elf {
|
||||
let addr = dso.as_ref().unwrap().base_addr;
|
||||
let mut size = bounds.1;
|
||||
let size = bounds.1;
|
||||
// Fill the gaps i the binary
|
||||
let mut ranges = Vec::new();
|
||||
for ph in elf.program_headers.iter() {
|
||||
@@ -410,8 +410,6 @@ impl Linker {
|
||||
let mut start = addr;
|
||||
for (vaddr, vsize) in ranges.iter() {
|
||||
if start < addr + vaddr {
|
||||
let gap_size = addr + vaddr - start;
|
||||
size += gap_size;
|
||||
sys_mman::mmap(
|
||||
start as *mut c_void,
|
||||
addr + vaddr - start,
|
||||
@@ -668,7 +666,7 @@ impl Linker {
|
||||
set_u64(tm as u64);
|
||||
}
|
||||
reloc::R_X86_64_DTPOFF64 => {
|
||||
set_u64((s + a) as u64);
|
||||
set_u64(rel.r_offset as u64);
|
||||
}
|
||||
reloc::R_X86_64_GLOB_DAT | reloc::R_X86_64_JUMP_SLOT => {
|
||||
set_u64(s as u64);
|
||||
|
||||
@@ -41,6 +41,7 @@ EXPECT_NAMES=\
|
||||
stdio/scanf \
|
||||
stdio/setvbuf \
|
||||
stdio/sprintf \
|
||||
stdio/printf_space_pad \
|
||||
stdlib/a64l \
|
||||
stdlib/alloc \
|
||||
stdlib/atof \
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ int main(void) {
|
||||
int ret2 = strerror_r(err, buf2, 3);
|
||||
printf("errno: %d = %s, return: %d\n", err, buf2, ret2);
|
||||
|
||||
char buf3[256];
|
||||
char buf3[256] = {0};
|
||||
int ret3 = strerror_r(err, buf3, 0);
|
||||
printf("errno: %d = %s, return: %d\n", err, buf3, ret3);
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
A B
|
||||
@@ -0,0 +1,4 @@
|
||||
#include <stdio.h>
|
||||
int main() {
|
||||
printf ("%s%*s\n","A", 3, "B");
|
||||
}
|
||||
Reference in New Issue
Block a user