This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
src bfd/ChangeLog bfd/mach-o.c bfd/mach-o.h ga ...
- From: iains at sourceware dot org
- To: binutils-cvs at sourceware dot org
- Date: 3 Jan 2012 10:54:01 -0000
- Subject: src bfd/ChangeLog bfd/mach-o.c bfd/mach-o.h ga ...
CVSROOT: /cvs/src
Module name: src
Changes by: iains@sourceware.org 2012-01-03 10:54:01
Modified files:
bfd : ChangeLog mach-o.c mach-o.h
gas/testsuite : ChangeLog
Added files:
gas/testsuite/gas/mach-o: dysymtab-1-64.d dysymtab-1.d
symbols-1-64.d symbols-1.d
symbols-base-64.s symbols-base.s
Log message:
add dysymtab write support to bfd/mach-o.
bfd:
* mach-o.c (bfd_mach_o_write_symtab): Fill in the string table index
as the value of an indirect symbol. Keep the string table index in
non-indirect syms for reference.
(bfd_mach_o_write_dysymtab): New.
(bfd_mach_o_primary_symbol_sort_key): New.
(bfd_mach_o_cf_symbols): New.
(bfd_mach_o_sort_symbol_table): New.
(bfd_mach_o_mangle_symbols): Return early if no symbols. Sort symbols.
If we are emitting a dysymtab, process indirect symbols and count the
number of each other kind.
(bfd_mach_o_mangle_sections): New.
(bfd_mach_o_write_contents): Split out some pre-requisite code into
the command builder. Write dysymtab if the command is present.
(bfd_mach_o_count_sections_for_seg): New.
(bfd_mach_o_build_seg_command): New.
(bfd_mach_o_build_dysymtab_command): New.
(bfd_mach_o_build_commands): Reorganize to support the fact that some
commands are optional and should not be emitted if there are no
sections or symbols.
(bfd_mach_o_set_section_contents): Amend comment.
* mach-o.h: Amend and add to comments.
(mach_o_data_struct): Add fields for dysymtab symbols counts and a
pointer to the indirects, when present.
(bfd_mach_o_should_emit_dysymtab): New macro.
(IS_MACHO_INDIRECT): Likewise.
gas/testsuite:
* gas/mach-o/dysymtab-1-64.d: New.
* gas/mach-o/dysymtab-1.d: New.
* gas/mach-o/symbols-1-64.d: New.
* gas/mach-o/symbols-1.d: New.
* gas/mach-o/symbols-base-64.s: New.
* gas/mach-o/symbols-base.s: New.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5560&r2=1.5561
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/mach-o.c.diff?cvsroot=src&r1=1.81&r2=1.82
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/mach-o.h.diff?cvsroot=src&r1=1.36&r2=1.37
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/ChangeLog.diff?cvsroot=src&r1=1.1987&r2=1.1988
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/mach-o/dysymtab-1-64.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/mach-o/dysymtab-1.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/mach-o/symbols-1-64.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/mach-o/symbols-1.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/mach-o/symbols-base-64.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/mach-o/symbols-base.s.diff?cvsroot=src&r1=NONE&r2=1.1