bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/16320] New: Gold generates odd MemSiz for TLS segment


From: hjl.tools at gmail dot com
Subject: [Bug gold/16320] New: Gold generates odd MemSiz for TLS segment
Date: Wed, 11 Dec 2013 20:40:03 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=16320

            Bug ID: 16320
           Summary: Gold generates odd MemSiz for TLS segment
           Product: binutils
           Version: 2.25 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ian at airs dot com
          Reporter: hjl.tools at gmail dot com
                CC: ccoutant at google dot com

address@hidden relro-6]$ cat x.cc
// This code is put into a shared library linked with -z relro.

// i1 and i2 are not relro variables.
int i1 = 1;
static int i2 = 2;

// P1 is a global relro variable.
int* const p1 __attribute__ ((aligned(32))) = &i1;

// P2 is a local relro variable.
int* const p2 __attribute__ ((aligned(32))) = &i2;

// Add a TLS variable to make sure -z relro works correctly with TLS.
__thread int i3 = 1;
__thread char i4[40] = { 1 };
address@hidden relro-6]$ make
./ld.gold -shared -z relro -o libx.so x.o
./strip --strip-debug libx.so -o bar
readelf -lSW bar > new.txt
readelf -lSW libx.so > old.txt
diff -up old.txt new.txt
--- old.txt    2013-12-11 12:38:48.674968042 -0800
+++ new.txt    2013-12-11 12:38:48.670968003 -0800
@@ -1,4 +1,4 @@
-There are 14 section headers, starting at offset 0x11d0:
+There are 14 section headers, starting at offset 0x10c8:

 Section Headers:
   [Nr] Name              Type            Address          Off    Size   ES Flg
Lk Inf Al
@@ -13,9 +13,9 @@ Section Headers:
   [ 8] .bss              NOBITS          0000000000002004 001004 000000 00  WA
 0   0  1
   [ 9] .comment          PROGBITS        0000000000000000 001004 00002d 01  MS
 0   0  1
   [10] .note.gnu.gold-version NOTE            0000000000000000 001034 00001c
00      0   0  4
-  [11] .symtab           SYMTAB          0000000000000000 001050 0000d8 18    
12   3  8
-  [12] .strtab           STRTAB          0000000000000000 001128 000030 00    
 0   0  1
-  [13] .shstrtab         STRTAB          0000000000000000 001158 000072 00    
 0   0  1
+  [11] .shstrtab         STRTAB          0000000000000000 001050 000072 00    
 0   0  1
+  [12] .symtab           SYMTAB          0000000000000000 001448 0001b0 18    
13  12  8
+  [13] .strtab           STRTAB          0000000000000000 0015f8 00002b 00    
 0   0  1
 Key to Flags:
   W (write), A (alloc), X (execute), M (merge), S (strings), l (large)
   I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
@@ -32,7 +32,7 @@ Program Headers:
   LOAD           0x000f20 0x0000000000001f20 0x0000000000001f20 0x0000e4
0x0000e4 RW  0x1000
   DYNAMIC        0x000f50 0x0000000000001f50 0x0000000000001f50 0x0000b0
0x0000b0 RW  0x8
   GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000
0x000000 RW  0
-  TLS            0x000f20 0x0000000000001f20 0x0000000000001f20 0x00002c
0x000030 R   0x10
+  TLS            0x000f20 0x0000000000001f20 0x0000000000001f20 0x00002c
0x00002c R   0x10
   GNU_RELRO      0x000f20 0x0000000000001f20 0x0000000000001f20 0x0000e0
0x0000e0 RW  0x10

  Section to Segment mapping:
make: *** [all] Error 1
address@hidden relro-6]$ 

Gold generates

  [ 5] .tdata            PROGBITS        0000000000001f20 000f20 00002c 00 WAT 
0   0 16

TLS            0x000f20 0x0000000000001f20 0x0000000000001f20 0x00002c 0x000030
R   0x10

Why is MemSiz > FileSiz?

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]