relocation-386.s revision 3c68acd202d061c38e9b7744012094b4009d932a
1c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck  %s
2c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola
31683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// Test that we produce the correct relocation types and that the relocations
41683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// correctly point to the section or the symbol.
5c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola
6f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK:      # Relocation 0
7f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT: (('r_offset', 0x00000002)
8a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000001)
9f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x09)
109edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: ),
11f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT:  # Relocation 1
129edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: (('r_offset',
139edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT:  ('r_sym',
14f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x04)
15aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ),
16f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT:  # Relocation 2
17aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: (('r_offset',
18aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT:  ('r_sym',
19f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x0a)
20aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ),
21c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola
221683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss)
23f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT:  # Relocation 3
24ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: (('r_offset',
25a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000007
26ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT:  ('r_type',
27ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: ),
28ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola
29eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// Relocation 4 (bar2@GOT) is of type R_386_GOT32
30f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT:  # Relocation 4
31eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: (('r_offset',
32eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT:  ('r_sym',
33f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x03
34eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: ),
35eada30479399014c22c7b7edb008177c312eefeeRafael Espindola
363cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 5 (foo@TLSGD) is of type R_386_TLS_GD
37f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 5
383cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000020)
39a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
40f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x12)
413cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ),
423cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
433cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 6 ($foo@TPOFF) is of type R_386_TLS_LE_32
44f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 6
453cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000025)
46a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
47f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x22)
483cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ),
493cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
503cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 7 (foo@INDNTPOFF) is of type R_386_TLS_IE
51f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 7
523cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000002b)
53a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
54f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x0f)
553cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ),
563cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
573cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 8 (foo@NTPOFF) is of type R_386_TLS_LE
58f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 8
593cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000031)
60a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
61f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x11)
62a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: ),
63a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola
64a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// Relocation 9 (foo@GOTNTPOFF) is of type R_386_TLS_GOTIE
65f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 9
66a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000037)
67a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
68f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x10)
69a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: ),
703cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
71a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// Relocation 10 (foo@TLSLDM) is of type R_386_TLS_LDM
72f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 10
73a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000003d)
74a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
75f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x13)
76a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: ),
770cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola
780cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// Relocation 11 (foo@DTPOFF) is of type R_386_TLS_LDO_32
79f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 11
800cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000043)
81a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
82f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x20)
830cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: ),
8412203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// Relocation 12 (calll 4096) is of type R_386_PC32
85f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 12
8612203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000048)
87a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000000)
88f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x02)
8912203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: ),
9025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 13 (zed@GOT) is of type R_386_GOT32 and uses the symbol
91f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 13
921683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: (('r_offset', 0x0000004e)
93a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
94f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x03)
9525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
9625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 14 (zed@GOTOFF) is of type R_386_GOTOFF and uses the symbol
97f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 14
9825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000054)
99a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
100f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x09)
10125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
10225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 15 (zed@INDNTPOFF) is of type R_386_TLS_IE and uses the symbol
103f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 15
10425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000005a)
105a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
106f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x0f)
10725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
10825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 16 (zed@NTPOFF) is of type R_386_TLS_LE and uses the symbol
109f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 16
11025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000060)
111a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
112f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x11)
1131683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: ),
11425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 17 (zed@GOTNTPOFF) is of type R_386_TLS_GOTIE and uses the symbol
115f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 17
11625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000066)
117a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
118f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x10)
11925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
12025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 18 (zed@PLT) is of type R_386_PLT32 and uses the symbol
121f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 18
12225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000006b)
123a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
124f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x04)
12525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
12625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 19 (zed@TLSGD) is of type R_386_TLS_GD and uses the symbol
127f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 19
12825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000071)
129a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
130f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x12)
13125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
13225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 20 (zed@TLSLDM) is of type R_386_TLS_LDM and uses the symbol
133f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 20
13425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000077)
135a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
136f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x13)
13725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
13825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 21 (zed@TPOFF) is of type R_386_TLS_LE_32 and uses the symbol
139f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT:# Relocation 21
14025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000007d)
141a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
142f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x22)
14325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
14425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 22 (zed@DTPOFF) is of type R_386_TLS_LDO_32 and uses the symbol
145f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: Relocation 22
14625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000083)
147a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x000004)
148f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x20)
14925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
150a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// Relocation 23 ($bar) is of type R_386_32 and uses the section
151f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: Relocation 23
152a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: (('r_offset',
153a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT:  ('r_sym',
154f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x01)
155a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: ),
156e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// Relocation 24 (foo@GOTTPOFF(%edx)) is of type R_386_TLS_IE_32 and uses the
157e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// symbol
158f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: Relocation 24
159e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// CHECK-NEXT: (('r_offset', 0x0000008e)
160a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000d)
161f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT:  ('r_type', 0x21)
162e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// CHECK-NEXT: ),
1631d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// Relocation 25 (_GLOBAL_OFFSET_TABLE_-bar2) is of type R_386_GOTPC.
1641d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT: Relocation 25
1651d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000094)
1661d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000b)
1671d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT:  ('r_type', 0x0a)
1683c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: ),
1693c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// Relocation 26 (und_symbol-bar2) is of type R_386_PC32
1703c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: Relocation 26
1713c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000009a)
1723c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000e)
1733c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT:  ('r_type', 0x02)
1743c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: ),
1750cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola
1767c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Section 4 is bss
177014180d387a875f7e04fd3532eab24dd0794db08Rafael Espindola// CHECK:      # Section 4
1789974b8b3cb49eb937cb148c4199e0d456186c3caRafael Espindola// CHECK-NEXT: (('sh_name', 0x0000000b) # '.bss'
1797c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
18065ad8dc807174b53615181a8170befdf60b6771dRafael Espindola// CHECK:      # Symbol 1
1817c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000005) # '.Lfoo'
1827c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
1837c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Symbol 4 is zed
18465ad8dc807174b53615181a8170befdf60b6771dRafael Espindola// CHECK:      # Symbol 4
1857c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000035) # 'zed'
1867c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_value', 0x00000000)
1877c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_size', 0x00000000)
188d7c278326f333f41d8ec8d19f817a117e3f11190Rafael Espindola// CHECK-NEXT:  ('st_bind', 0x0)
18971a8f5ca12e8536e6050cc7a09fa2a87ea629cfaRafael Espindola// CHECK-NEXT:  ('st_type', 0x6)
19067ac0c0d630aa823f31632beecef520df1d7c48bRafael Espindola// CHECK-NEXT:  ('st_other', 0x00)
191251a2bbfb00ceb254d7ac1d35ae975ad9e2145cfRafael Espindola// CHECK-NEXT:  ('st_shndx', 0x0005)
1927c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
1937c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Symbol 7 is section 4
19465ad8dc807174b53615181a8170befdf60b6771dRafael Espindola// CHECK:      # Symbol 7
1957c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000000) # ''
1967c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_value', 0x00000000)
1977c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_size', 0x00000000)
198d7c278326f333f41d8ec8d19f817a117e3f11190Rafael Espindola// CHECK-NEXT:  ('st_bind', 0x0)
19971a8f5ca12e8536e6050cc7a09fa2a87ea629cfaRafael Espindola// CHECK-NEXT:  ('st_type', 0x3)
20067ac0c0d630aa823f31632beecef520df1d7c48bRafael Espindola// CHECK-NEXT:  ('st_other', 0x00)
201251a2bbfb00ceb254d7ac1d35ae975ad9e2145cfRafael Espindola// CHECK-NEXT:  ('st_shndx', 0x0004)
2027c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
2037c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
204c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola        .text
205c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindolabar:
206c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola	leal	.Lfoo@GOTOFF(%ebx), %eax
2079edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola
2089edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola        .global bar2
2099edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindolabar2:
2109edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola	calll	bar2@PLT
211aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
212ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	movb	bar3@GOTOFF(%ebx), %al
213ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola
214ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	.type	bar3,@object
215ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	.local	bar3
216ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	.comm	bar3,1,1
2179edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola
218eada30479399014c22c7b7edb008177c312eefeeRafael Espindola        movl	bar2j@GOT(%eax), %eax
219eada30479399014c22c7b7edb008177c312eefeeRafael Espindola
2203cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        leal foo@TLSGD(, %ebx,1), %eax
2213cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        movl $foo@TPOFF, %edx
2223cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        movl foo@INDNTPOFF, %ecx
2233cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        addl foo@NTPOFF(%eax), %eax
224a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola        addl foo@GOTNTPOFF(%ebx), %ecx
225a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola        leal foo@TLSLDM(%ebx), %eax
2260cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola        leal foo@DTPOFF(%eax), %edx
22712203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola        calll 4096
22825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@GOT(%eax), %eax
22925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@GOTOFF(%eax), %eax
23025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@INDNTPOFF(%eax), %eax
2311683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola        movl zed@NTPOFF(%eax), %eax
23225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@GOTNTPOFF(%eax), %eax
23325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        call zed@PLT
23425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@TLSGD(%eax), %eax
23525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@TLSLDM(%eax), %eax
23625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@TPOFF(%eax), %eax
23725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@DTPOFF(%eax), %eax
238a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola        pushl $bar
239e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky        addl foo@GOTTPOFF(%edx), %eax
2401d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola        subl    _GLOBAL_OFFSET_TABLE_-bar2, %ebx
2413c68acd202d061c38e9b7744012094b4009d932aRafael Espindola        leal und_symbol-bar2(%edx),%ecx
2421683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola
2431683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola        .section        zedsec,"awT",@progbits
2441683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindolazed:
2451683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola        .long 0
2463cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
2479edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola        .section	.rodata.str1.16,"aMS",@progbits,1
248c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola.Lfoo:
249c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola	.asciz	 "bool llvm::llvm_start_multithreaded()"
250