diff options
author | Iain Sandoe <iain@codesourcery.com> | 2012-01-12 14:03:12 +0000 |
---|---|---|
committer | Iain Sandoe <iain@codesourcery.com> | 2012-01-12 14:03:12 +0000 |
commit | 50d10658eef31d1c68763d556f02954b9c7c4f00 (patch) | |
tree | dcb4c7afc7cee5e547676de8c5069101eb4ddcf1 /gas/testsuite | |
parent | 0a4734dc09362b45ad88c4092fe2531d27b8d1d1 (diff) | |
download | gdb-50d10658eef31d1c68763d556f02954b9c7c4f00.zip gdb-50d10658eef31d1c68763d556f02954b9c7c4f00.tar.gz gdb-50d10658eef31d1c68763d556f02954b9c7c4f00.tar.bz2 |
add indirect_symbol to mach-o port.
bfd:
* mach-o.c (bfd_mach_o_count_indirect_symbols): New.
(bfd_mach_o_build_dysymtab_command): Populate indirect symbol table.
* mach-o.h (bfd_mach_o_asymbol): Move declaration to start of the
file. (bfd_mach_o_section): Add indirect_syms field.
gas:
* config/obj-macho.c (obj_mach_o_set_symbol_qualifier): Switch off
lazy when the symbol is private_extern.
(obj_mach_o_indirect_sym): New type.
(obj_mach_o_indirect_symbol): New.
(mach_o_pseudo_table): Use obj_mach_o_indirect_symbol.
(obj_macho_frob_label): Adjust to avoid adding bsyms for locals.
(obj_macho_frob_label): Likewise. Adjust external and comm
symbol tests.
(obj_mach_o_set_indirect_symbols): New.
(obj_mach_o_frob_file_after_relocs): New.
*config/obj-macho.h (obj_frob_file_after_relocs): Define.
(obj_mach_o_frob_file_after_relocs): Declare.
include/mach-o:
* loader.h (BFD_MACH_O_INDIRECT_SYM_LOCAL): New.
(BFD_MACH_O_INDIRECT_SYM_ABS): New
gas/testsuite:
* gas/mach-o/dysymtab-2.d: New.
* gas/mach-o/err-syms-4.s: New.
* gas/mach-o/err-syms-5.s: New.
* gas/mach-o/err-syms-6.s: New.
* gas/mach-o/symbols-6-64.d: New.
* gas/mach-o/symbols-6-64.s: New.
* gas/mach-o/symbols-6.d: New.
* gas/mach-o/symbols-6.s: New.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/dysymtab-2.d | 45 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/err-syms-4.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/err-syms-5.s | 40 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/err-syms-6.s | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/symbols-6-64.d | 116 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/symbols-6-64.s | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/symbols-6.d | 116 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/symbols-6.s | 4 |
9 files changed, 362 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 3176c0c..4f6fa30 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2012-01-12 Iain Sandoe <idsandoe@googlemail.com> + + * gas/mach-o/dysymtab-2.d: New. + * gas/mach-o/err-syms-4.s: New. + * gas/mach-o/err-syms-5.s: New. + * gas/mach-o/err-syms-6.s: New. + * gas/mach-o/symbols-6-64.d: New. + * gas/mach-o/symbols-6-64.s: New. + * gas/mach-o/symbols-6.d: New. + * gas/mach-o/symbols-6.s: New. + 2012-01-09 Iain Sandoe <idsandoe@googlemail.com> * gas/mach-o/err-syms-1.s: New. diff --git a/gas/testsuite/gas/mach-o/dysymtab-2.d b/gas/testsuite/gas/mach-o/dysymtab-2.d new file mode 100644 index 0000000..a1a38b5 --- /dev/null +++ b/gas/testsuite/gas/mach-o/dysymtab-2.d @@ -0,0 +1,45 @@ +#as: -L -I $srcdir/$subdir +#objdump: -P dysymtab +#target: i?86-*-darwin* powerpc-*-darwin* +#source: symbols-6.s +.*: +file format mach-o.* +#... +Load command dysymtab: +( )+local symbols: idx:( )+0( )+num: 55( )+\(nxtidx: 55\) +( )+external symbols: idx:( )+55( )+num: 24( )+\(nxtidx: 79\) +( )+undefined symbols: idx:( )+79( )+num: 30( )+\(nxtidx: 109\) +( )+table of content: off: 0x00000000( )+num: 0( )+\(endoff: 0x00000000\) +( )+module table: off: 0x00000000( )+num: 0( )+\(endoff: 0x00000000\) +( )+external reference table: off: 0x00000000( )+num: 0( )+\(endoff: 0x00000000\) +( )+indirect symbol table: off: 0x000003b0( )+num: 25( )+\(endoff: 0x00000414\) +( )+external relocation table: off: 0x00000000( )+num: 0( )+\(endoff: 0x00000000\) +( )+local relocation table: off: 0x00000000( )+num: 0( )+\(endoff: 0x00000000\) +( )+indirect symbols: +( )+for section __dummy.__dummy: +( )+0000000000000000( )+0: 0x0000005e a +( )+0000000000000008( )+1: 0x00000063 b +( )+0000000000000010( )+2: 0x0000003d c +( )+0000000000000018( )+3: 0x0000001b d +( )+0000000000000020( )+4: 0x00000018 e +( )+0000000000000028( )+5: 0x00000040 f +( )+0000000000000030( )+6: 0x00000066 g +( )+for section __DATA.__la_symbol_ptr: +( )+0000000000000000( )+7: 0x0000005f a1 +( )+0000000000000004( )+8: 0x00000064 b1 +( )+0000000000000008( )+9: 0x0000003e c1 +( )+000000000000000c( )+10: 0x0000001c d1 +( )+0000000000000010( )+11: 0x00000019 e1 +( )+0000000000000014( )+12: 0x00000041 f1 +( )+0000000000000018( )+13: 0x00000067 g1 +( )+for section __DATA.__nl_symbol_ptr: +( )+0000000000000000( )+14: 0x00000060 a2 +( )+0000000000000004( )+15: 0x00000065 b2 +( )+0000000000000008( )+16: 0x0000003f c2 +( )+000000000000000c( )+17: 0x80000000 LOCAL +( )+0000000000000010( )+18: 0x80000000 LOCAL +( )+0000000000000014( )+19: 0x00000042 f2 +( )+0000000000000018( )+20: 0x00000068 g2 +( )+000000000000001c( )+21: 0x00000041 f1 +( )+0000000000000020( )+22: 0x00000067 g1 +( )+0000000000000024( )+23: 0x00000060 a2 +( )+0000000000000028( )+24: 0x00000065 b2 diff --git a/gas/testsuite/gas/mach-o/err-syms-4.s b/gas/testsuite/gas/mach-o/err-syms-4.s new file mode 100644 index 0000000..0bb55e9 --- /dev/null +++ b/gas/testsuite/gas/mach-o/err-syms-4.s @@ -0,0 +1,6 @@ +# { dg-do assemble } + + .indirect_symbol a + +# { dg-error " an .indirect_symbol must be in a symbol pointer or stub section." "" { target *-*-darwin*} 3 } + diff --git a/gas/testsuite/gas/mach-o/err-syms-5.s b/gas/testsuite/gas/mach-o/err-syms-5.s new file mode 100644 index 0000000..684bef0 --- /dev/null +++ b/gas/testsuite/gas/mach-o/err-syms-5.s @@ -0,0 +1,40 @@ +# { dg-do assemble { target i?86-*-darwin* powerpc*-*-darwin* } } + +# Show that we can check that there are enough syms for the section. + +# too few. + + .section __dummy, __dummy, symbol_stubs,strip_static_syms,4 + + .indirect_symbol a + + .section __dummy, __dummy1,lazy_symbol_pointers + + .indirect_symbol b + + .section __dummy, __dummy2,non_lazy_symbol_pointers + + .indirect_symbol c + +# OK. + .section __dummy, __dummy3,non_lazy_symbol_pointers + + .indirect_symbol d + .space 4 + + .section __dummy, __dummy4,symbol_stubs,strip_static_syms,17 + + .indirect_symbol e + .space 17 + +# too many + + .section __dummy, __dummy5,lazy_symbol_pointers + + .indirect_symbol f + .space 8 + +# { dg-error "the number of .indirect_symbols defined in section __dummy.__dummy does not match the number expected .1 defined, 0 expected." "" { target *-*-darwin*} 0 } +# { dg-error "the number of .indirect_symbols defined in section __dummy.__dummy1 does not match the number expected .1 defined, 0 expected." "" { target *-*-darwin*} 0 } +# { dg-error "the number of .indirect_symbols defined in section __dummy.__dummy2 does not match the number expected .1 defined, 0 expected." "" { target *-*-darwin*} 0 } +# { dg-error "the number of .indirect_symbols defined in section __dummy.__dummy5 does not match the number expected .1 defined, 2 expected." "" { target *-*-darwin*} 0 } diff --git a/gas/testsuite/gas/mach-o/err-syms-6.s b/gas/testsuite/gas/mach-o/err-syms-6.s new file mode 100644 index 0000000..95db793 --- /dev/null +++ b/gas/testsuite/gas/mach-o/err-syms-6.s @@ -0,0 +1,20 @@ +# { dg-do assemble { target x86_64-*-darwin* } } + + .section __dummy, __dummy, symbol_stubs,strip_static_syms,4 + + .indirect_symbol a + + .section __dummy, __dummy1,lazy_symbol_pointers + + .indirect_symbol b + + .section __dummy, __dummy2,non_lazy_symbol_pointers + + .indirect_symbol c + +# { dg-error "unknown or invalid section type .symbol_stubs." "" { target x86_64-*-darwin* } 3 } +# { dg-error "an .indirect_symbol must be in a symbol pointer or stub section" "" { target x86_64-*-darwin* } 5 } +# { dg-error "unknown or invalid section type .lazy_symbol_pointers." "" { target x86_64-*-darwin* } 7 } +# { dg-error "an .indirect_symbol must be in a symbol pointer or stub section" "" { target x86_64-*-darwin* } 9 } +# { dg-error "unknown or invalid section type .non_lazy_symbol_pointers." "" { target x86_64-*-darwin* } 11 } +# { dg-error "an .indirect_symbol must be in a symbol pointer or stub section" "" { target x86_64-*-darwin* } 13 } diff --git a/gas/testsuite/gas/mach-o/symbols-6-64.d b/gas/testsuite/gas/mach-o/symbols-6-64.d new file mode 100644 index 0000000..77b38c4 --- /dev/null +++ b/gas/testsuite/gas/mach-o/symbols-6-64.d @@ -0,0 +1,116 @@ +#as: -L -I $srcdir/$subdir +#objdump: -t +#target: powerpc64-*-darwin* +#source: symbols-6-64.s +.*: +file format mach-o.* +#... +SYMBOL TABLE: +0000000000000000 l.*0e SECT.*01 0000 \[.text\] Lzt0 +0000000000000002 l.*0e SECT.*01 0000 \[.text\] Lmt0 +0000000000000004 l.*0e SECT.*01 0000 \[.text\] Lat0 +0000000000000000 l.*0e SECT.*02 0000 \[.data\] Lzd0 +0000000000000002 l.*0e SECT.*02 0000 \[.data\] Lmd0 +0000000000000005 l.*0e SECT.*02 0000 \[.data\] Lad0 +0000000000000000 l.*0e SECT.*03 0000 \[.bss\] zlcomm0 +0000000000000006 l.*0e SECT.*03 0000 \[.bss\] mlcomm0 +000000000000000c l.*0e SECT.*03 0000 \[.bss\] alcomm0 +0000000000000000 l.*0e SECT.*04 0000 \[__HERE.__there\] Lzs0 +0000000000000002 l.*0e SECT.*04 0000 \[__HERE.__there\] Lms0 +0000000000000004 l.*0e SECT.*04 0000 \[__HERE.__there\] Las0 +0000000000000012 l.*0e SECT.*01 0000 \[.text\] Lzt1 +0000000000000015 l.*0e SECT.*01 0000 \[.text\] Lmt1 +0000000000000017 l.*0e SECT.*01 0000 \[.text\] Lat1 +0000000000000012 l.*0e SECT.*02 0000 \[.data\] Lzd1 +0000000000000014 l.*0e SECT.*02 0000 \[.data\] Lmd1 +0000000000000017 l.*0e SECT.*02 0000 \[.data\] Lad1 +0000000000000012 l.*0e SECT.*03 0000 \[.bss\] zlcomm1 +0000000000000018 l.*0e SECT.*03 0000 \[.bss\] mlcomm1 +000000000000001e l.*0e SECT.*03 0000 \[.bss\] alcomm1 +0000000000000016 l.*0e SECT.*04 0000 \[__HERE.__there\] Lzs1 +000000000000001e l.*0e SECT.*04 0000 \[__HERE.__there\] Lms1 +000000000000001f l.*0e SECT.*04 0000 \[__HERE.__there\] Las1 +000000000000001b l.*0e SECT.*01 0000 \[.text\] e +000000000000001c l.*0e SECT.*01 0000 \[.text\] e1 +000000000000001d l.*0e SECT.*01 0000 \[.text\] e2 +0000000000000024 l.*0e SECT.*02 0000 \[.data\] d +000000000000002c l.*0e SECT.*02 0000 \[.data\] d1 +0000000000000034 l.*0e SECT.*02 0000 \[.data\] d2 +0000000000000000 l.*0e SECT.*05 0000 \[__dummy.__dummy\] La +0000000000000008 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lb +0000000000000010 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lc +0000000000000018 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Ld +0000000000000020 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Le +0000000000000028 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lf +0000000000000030 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lg +0000000000000000 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] La1 +0000000000000004 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lb1 +0000000000000008 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lc1 +000000000000000c l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Ld1 +0000000000000010 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Le1 +0000000000000014 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lf1 +0000000000000018 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lg1 +0000000000000000 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] La2 +0000000000000004 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lb2 +0000000000000008 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lc2 +000000000000000c l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Ld2 +0000000000000010 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Le2 +0000000000000014 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lf2 +0000000000000018 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lg2 +000000000000001c l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lf11 +0000000000000020 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lg11 +0000000000000024 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] La12 +0000000000000028 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lb12 +0000000000000004 g.*0f SECT.*02 0000 \[.data\] adg0 +0000000000000016 g.*0f SECT.*02 0000 \[.data\] adg1 +0000000000000005 g.*0f SECT.*04 0000 \[__HERE.__there\] asg0 +000000000000001d g.*0f SECT.*04 0000 \[__HERE.__there\] asg1 +0000000000000005 g.*0f SECT.*01 0000 \[.text\] atg0 +0000000000000016 g.*0f SECT.*01 0000 \[.text\] atg1 +0000000000000018 g.*0f SECT.*01 0000 \[.text\] c +0000000000000019 g.*0f SECT.*01 0000 \[.text\] c1 +000000000000001a g.*0f SECT.*01 0000 \[.text\] c2 +000000000000003c g.*1f SECT.*02 0000 \[.data\] f +0000000000000044 g.*1f SECT.*02 0000 \[.data\] f1 +000000000000004c g.*1f SECT.*02 0000 \[.data\] f2 +0000000000000003 g.*0f SECT.*02 0000 \[.data\] mdg0 +0000000000000015 g.*0f SECT.*02 0000 \[.data\] mdg1 +0000000000000003 g.*0f SECT.*04 0000 \[__HERE.__there\] msg0 +000000000000001c g.*0f SECT.*04 0000 \[__HERE.__there\] msg1 +0000000000000003 g.*0f SECT.*01 0000 \[.text\] mtg0 +0000000000000014 g.*0f SECT.*01 0000 \[.text\] mtg1 +0000000000000001 g.*0f SECT.*02 0000 \[.data\] zdg0 +0000000000000013 g.*0f SECT.*02 0000 \[.data\] zdg1 +0000000000000001 g.*0f SECT.*04 0000 \[__HERE.__there\] zsg0 +0000000000000017 g.*0f SECT.*04 0000 \[__HERE.__there\] zsg1 +0000000000000001 g.*0f SECT.*01 0000 \[.text\] ztg0 +0000000000000013 g.*0f SECT.*01 0000 \[.text\] ztg1 +0000000000000000 g.*01 UND.*00 0000 _aud0 +0000000000000000 g.*01 UND.*00 0000 _aud1 +0000000000000000 g.*01 UND.*00 0000 _aus0 +0000000000000000 g.*01 UND.*00 0000 _aus1 +0000000000000000 g.*01 UND.*00 0000 _aut0 +0000000000000000 g.*01 UND.*00 0000 _mud0 +0000000000000000 g.*01 UND.*00 0000 _mud1 +0000000000000000 g.*01 UND.*00 0000 _mus0 +0000000000000000 g.*01 UND.*00 0000 _mus1 +0000000000000000 g.*01 UND.*00 0000 _mut0 +0000000000000000 g.*01 UND.*00 0000 _zud0 +0000000000000000 g.*01 UND.*00 0000 _zud1 +0000000000000000 g.*01 UND.*00 0000 _zus0 +0000000000000000 g.*01 UND.*00 0000 _zus1 +0000000000000000 g.*01 UND.*00 0000 _zut0 +0000000000000000 g.*01 UND.*00 0001 a +0000000000000000 g.*01 UND.*00 0001 a1 +0000000000000000 g.*01 UND.*00 0000 a2 +000000000000000a.*01 COM.*00 0300 acommon0 +000000000000000a.*01 COM.*00 0300 acommon1 +0000000000000000 g.*01 UND.*00 0001 b +0000000000000000 g.*01 UND.*00 0001 b1 +0000000000000000 g.*01 UND.*00 0000 b2 +0000000000000000 g.*11 UND.*00 0001 g +0000000000000000 g.*11 UND.*00 0001 g1 +0000000000000000 g.*11 UND.*00 0000 g2 +000000000000000a.*01 COM.*00 0300 mcommon0 +000000000000000a.*01 COM.*00 0300 mcommon1 +000000000000000a.*01 COM.*00 0300 zcommon0 +000000000000000a.*01 COM.*00 0300 zcommon1 diff --git a/gas/testsuite/gas/mach-o/symbols-6-64.s b/gas/testsuite/gas/mach-o/symbols-6-64.s new file mode 100644 index 0000000..2555360 --- /dev/null +++ b/gas/testsuite/gas/mach-o/symbols-6-64.s @@ -0,0 +1,4 @@ +# now look at what happens when we append some indirects to the normal +# syms. + .include "symbols-base-64.s" + .include "symbols-3.s" diff --git a/gas/testsuite/gas/mach-o/symbols-6.d b/gas/testsuite/gas/mach-o/symbols-6.d new file mode 100644 index 0000000..96cca41 --- /dev/null +++ b/gas/testsuite/gas/mach-o/symbols-6.d @@ -0,0 +1,116 @@ +#as: -L -I $srcdir/$subdir +#objdump: -t +#target: i?86-*-darwin* powerpc-*-darwin* +#source: symbols-6.s +.*: +file format mach-o.* +#... +SYMBOL TABLE: +00000000 l.*0e SECT.*01 0000 \[.text\] Lzt0 +00000002 l.*0e SECT.*01 0000 \[.text\] Lmt0 +00000004 l.*0e SECT.*01 0000 \[.text\] Lat0 +00000000 l.*0e SECT.*02 0000 \[.data\] Lzd0 +00000002 l.*0e SECT.*02 0000 \[.data\] Lmd0 +00000005 l.*0e SECT.*02 0000 \[.data\] Lad0 +00000000 l.*0e SECT.*03 0000 \[.bss\] zlcomm0 +00000006 l.*0e SECT.*03 0000 \[.bss\] mlcomm0 +0000000c l.*0e SECT.*03 0000 \[.bss\] alcomm0 +00000000 l.*0e SECT.*04 0000 \[__HERE.__there\] Lzs0 +00000002 l.*0e SECT.*04 0000 \[__HERE.__there\] Lms0 +00000004 l.*0e SECT.*04 0000 \[__HERE.__there\] Las0 +00000012 l.*0e SECT.*01 0000 \[.text\] Lzt1 +00000015 l.*0e SECT.*01 0000 \[.text\] Lmt1 +00000017 l.*0e SECT.*01 0000 \[.text\] Lat1 +00000012 l.*0e SECT.*02 0000 \[.data\] Lzd1 +00000014 l.*0e SECT.*02 0000 \[.data\] Lmd1 +00000017 l.*0e SECT.*02 0000 \[.data\] Lad1 +00000012 l.*0e SECT.*03 0000 \[.bss\] zlcomm1 +00000018 l.*0e SECT.*03 0000 \[.bss\] mlcomm1 +0000001e l.*0e SECT.*03 0000 \[.bss\] alcomm1 +00000016 l.*0e SECT.*04 0000 \[__HERE.__there\] Lzs1 +0000001e l.*0e SECT.*04 0000 \[__HERE.__there\] Lms1 +0000001f l.*0e SECT.*04 0000 \[__HERE.__there\] Las1 +0000001b l.*0e SECT.*01 0000 \[.text\] e +0000001c l.*0e SECT.*01 0000 \[.text\] e1 +0000001d l.*0e SECT.*01 0000 \[.text\] e2 +00000024 l.*0e SECT.*02 0000 \[.data\] d +0000002c l.*0e SECT.*02 0000 \[.data\] d1 +00000034 l.*0e SECT.*02 0000 \[.data\] d2 +00000000 l.*0e SECT.*05 0000 \[__dummy.__dummy\] La +00000008 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lb +00000010 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lc +00000018 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Ld +00000020 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Le +00000028 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lf +00000030 l.*0e SECT.*05 0000 \[__dummy.__dummy\] Lg +00000000 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] La1 +00000004 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lb1 +00000008 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lc1 +0000000c l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Ld1 +00000010 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Le1 +00000014 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lf1 +00000018 l.*0e SECT.*06 0000 \[.lazy_symbol_pointer\] Lg1 +00000000 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] La2 +00000004 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lb2 +00000008 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lc2 +0000000c l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Ld2 +00000010 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Le2 +00000014 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lf2 +00000018 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lg2 +0000001c l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lf11 +00000020 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lg11 +00000024 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] La12 +00000028 l.*0e SECT.*07 0000 \[.non_lazy_symbol_pointer\] Lb12 +00000004 g.*0f SECT.*02 0000 \[.data\] adg0 +00000016 g.*0f SECT.*02 0000 \[.data\] adg1 +00000005 g.*0f SECT.*04 0000 \[__HERE.__there\] asg0 +0000001d g.*0f SECT.*04 0000 \[__HERE.__there\] asg1 +00000005 g.*0f SECT.*01 0000 \[.text\] atg0 +00000016 g.*0f SECT.*01 0000 \[.text\] atg1 +00000018 g.*0f SECT.*01 0000 \[.text\] c +00000019 g.*0f SECT.*01 0000 \[.text\] c1 +0000001a g.*0f SECT.*01 0000 \[.text\] c2 +0000003c g.*1f SECT.*02 0000 \[.data\] f +00000044 g.*1f SECT.*02 0000 \[.data\] f1 +0000004c g.*1f SECT.*02 0000 \[.data\] f2 +00000003 g.*0f SECT.*02 0000 \[.data\] mdg0 +00000015 g.*0f SECT.*02 0000 \[.data\] mdg1 +00000003 g.*0f SECT.*04 0000 \[__HERE.__there\] msg0 +0000001c g.*0f SECT.*04 0000 \[__HERE.__there\] msg1 +00000003 g.*0f SECT.*01 0000 \[.text\] mtg0 +00000014 g.*0f SECT.*01 0000 \[.text\] mtg1 +00000001 g.*0f SECT.*02 0000 \[.data\] zdg0 +00000013 g.*0f SECT.*02 0000 \[.data\] zdg1 +00000001 g.*0f SECT.*04 0000 \[__HERE.__there\] zsg0 +00000017 g.*0f SECT.*04 0000 \[__HERE.__there\] zsg1 +00000001 g.*0f SECT.*01 0000 \[.text\] ztg0 +00000013 g.*0f SECT.*01 0000 \[.text\] ztg1 +00000000 g.*01 UND.*00 0000 _aud0 +00000000 g.*01 UND.*00 0000 _aud1 +00000000 g.*01 UND.*00 0000 _aus0 +00000000 g.*01 UND.*00 0000 _aus1 +00000000 g.*01 UND.*00 0000 _aut0 +00000000 g.*01 UND.*00 0000 _mud0 +00000000 g.*01 UND.*00 0000 _mud1 +00000000 g.*01 UND.*00 0000 _mus0 +00000000 g.*01 UND.*00 0000 _mus1 +00000000 g.*01 UND.*00 0000 _mut0 +00000000 g.*01 UND.*00 0000 _zud0 +00000000 g.*01 UND.*00 0000 _zud1 +00000000 g.*01 UND.*00 0000 _zus0 +00000000 g.*01 UND.*00 0000 _zus1 +00000000 g.*01 UND.*00 0000 _zut0 +00000000 g.*01 UND.*00 0001 a +00000000 g.*01 UND.*00 0001 a1 +00000000 g.*01 UND.*00 0000 a2 +0000000a.*01 COM.*00 0300 acommon0 +0000000a.*01 COM.*00 0300 acommon1 +00000000 g.*01 UND.*00 0001 b +00000000 g.*01 UND.*00 0001 b1 +00000000 g.*01 UND.*00 0000 b2 +00000000 g.*11 UND.*00 0000 g +00000000 g.*11 UND.*00 0000 g1 +00000000 g.*11 UND.*00 0000 g2 +0000000a.*01 COM.*00 0300 mcommon0 +0000000a.*01 COM.*00 0300 mcommon1 +0000000a.*01 COM.*00 0300 zcommon0 +0000000a.*01 COM.*00 0300 zcommon1 diff --git a/gas/testsuite/gas/mach-o/symbols-6.s b/gas/testsuite/gas/mach-o/symbols-6.s new file mode 100644 index 0000000..d909fbf --- /dev/null +++ b/gas/testsuite/gas/mach-o/symbols-6.s @@ -0,0 +1,4 @@ +# now look at what happens when we append some indirects to the normal +# syms. + .include "symbols-base.s" + .include "symbols-3.s" |