relocation-386.s revision ce2d3c57758619e99a99104e1168a9558658fab0
1f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck %s 229129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola 329129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// Test that we produce the correct relocation types and that the relocation 429129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// to .Lfoo uses the symbol and not the section. 529129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola 629129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// Section 3 is bss 729129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK: # Section 3 829129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: (('sh_name', 13) # '.bss' 929129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola 1029129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK: # Symbol 1 1129129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: (('st_name', 5) # '.Lfoo' 1229129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola 1329129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// Symbol 6 is section 3 1429129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK: # Symbol 6 1529129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: (('st_name', 0) # '' 1629129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: ('st_value', 0) 1729129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: ('st_size', 0) 1829129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: ('st_bind', 0) 19f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('st_type', 3) 20f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('st_other', 0) 21f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('st_shndx', 3) 22f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck 23f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK: # Relocation 0 24f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: (('r_offset', 2) 25f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('r_sym', 1) 26f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('r_type', 9) 27f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ), 28f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: # Relocation 1 29f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: (('r_offset', 30f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('r_sym', 31f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ('r_type', 4) 32f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ), 33f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: # Relocation 2 34f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: (('r_offset', 357486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ('r_sym', 367486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ('r_type', 10) 377486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ), 387486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola 397486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// Relocation 3 (bar3@GOTOFF) is done symbol 6 (bss) 407486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: # Relocation 3 417486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: (('r_offset', 427486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ('r_sym', 6 437486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ('r_type', 447486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ), 457486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola 467486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola .text 477486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindolabar: 487486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola leal .Lfoo@GOTOFF(%ebx), %eax 497486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola 507486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola .global bar2 51f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieckbar2: 52f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck calll bar2@PLT 53f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck addl $_GLOBAL_OFFSET_TABLE_, %ebx 547c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola movb bar3@GOTOFF(%ebx), %al 557486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola 5629129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola .type bar3,@object 57f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck .local bar3 58f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck .comm bar3,1,1 59f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck 60f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck .section .rodata.str1.16,"aMS",@progbits,1 61f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck.Lfoo: 62f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck .asciz "bool llvm::llvm_start_multithreaded()" 63f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck