Merge branch 'binutils_regressions' into 'master'

Binutils regressions

See merge request redox-os/relibc!269
This commit is contained in:
Jeremy Soller
2020-05-13 22:02:31 +00:00
7 changed files with 13 additions and 8 deletions
+4 -3
View File
@@ -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
View File
@@ -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);
+1
View File
@@ -41,6 +41,7 @@ EXPECT_NAMES=\
stdio/scanf \
stdio/setvbuf \
stdio/sprintf \
stdio/printf_space_pad \
stdlib/a64l \
stdlib/alloc \
stdlib/atof \
+1 -1
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
#include <stdio.h>
int main() {
printf ("%s%*s\n","A", 3, "B");
}