message: Fix TLS offsets
diff: @@ -316,6 +316,12 @@ impl Linker {
  mmap_data.copy_from_slice(obj_data);
  },
  program_header::PT_TLS => {
  + let valign = if ph.p_align > 0 {
  + ((ph.p_memsz + (ph.p_align - 1))/ph.p_align) * ph.p_align
  + } else {
  + ph.p_memsz
  + } as usize;
  +
  let obj_data = {
  let range = ph.file_range();
  match object.get(range.clone()) {
  @@ -328,11 +334,12 @@ impl Linker {
  let tls_data = {
  let (index, start) = if *elf_name == primary {
  - (0, tls.len() - tls_primary)
  + (0, tls.len() - valign)
  } else {
  - tls_offset += obj_data.len();
  + let start = tls.len() - (tls_offset + valign);
  + tls_offset += vsize;
  tls_index += 1;
  - (tls_index, tls.len() - tls_offset)
  + (tls_index, start)
  };
  let range = start..start + obj_data.len();
  match tls.get_mut(range.clone()) {
  