summaryrefslogtreecommitdiff
path: root/gas/config/obj-macho.h
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2011-12-14 10:30:06 +0000
committerTristan Gingold <gingold@adacore.com>2011-12-14 10:30:06 +0000
commit426a42def94d4edf831e4aeaca4e01c26c6400cf (patch)
tree6c4a2a594f3e06a1a20b0d3d1c537f1d411baff2 /gas/config/obj-macho.h
parentb816b3f502945e4fca98b889cfd0923cf1c11cf0 (diff)
downloadbinutils-redhat-426a42def94d4edf831e4aeaca4e01c26c6400cf.tar.gz
bfd/
2011-12-14 Iain Sandoe <iains@gcc.gnu.org> * mach-o-i386.c (text_section_names_xlat): New table. (data_section_names_xlat): Likewise. (import_section_names_xlat): Likewise. (mach_o_i386_segsec_names_xlat): Likewise. (bfd_mach_o_tgt_seg_table): Use new tables. * mach-o-x86-64.c (bfd_mach_o_tgt_seg_table): Set NULL. * mach-o.c (mach_o_section_name_xlat, mach_o_segment_name_xlat): Move to mach-o.h as typedefs. (text_section_names_xlat): Update for current GCC usage. (data_section_names_xlat): Likewise. (dwarf_section_names_xlat): Likewise. (objc_section_names_xlat): New table. (segsec_names_xlat): Add objc table. (bfd_mach_o_normalize_section_name): Replace with... (bfd_mach_o_section_data_for_mach_sect): New. (bfd_mach_o_section_data_for_bfd_name): New. (bfd_mach_o_section_data_for_bfd_name): Update to use additional data. (bfd_mach_o_convert_section_name_to_mach_o): Likewise. (bfd_mach_o_bfd_copy_private_section_data): Implement. (bfd_mach_o_write_symtab): Write a zero-length string as the first entry for compatibility with system tools. (bfd_mach_o_build_commands): Update section alignment info. (bfd_mach_o_new_section_hook): Use translation table data to define default section flags, type, attributes and alignment, when available. (bfd_mach_o_init_section_from_mach_o): Add TODO comment. (bfd_mach_o_section_type_name): Add 'symbol_stubs'. (bfd_mach_o_section_attribute_name): Add 'self_modifying_code'. (bfd_mach_o_get_section_type_from_name): Change "not-found" return value. (bfd_mach_o_tgt_seg_table): Set default NULL. * mach-o.h (bfd_mach_o_segment_command): Use define for name length. (bfd_mach_o_backend_data): Move until after contents are defined. (bfd_mach_o_normalize_section_name): Remove. (bfd_mach_o_convert_section_name_to_bfd): Declare. (mach_o_section_name_xlat): Declare. (mach_o_segment_name_xlat): Declare. (bfd_mach_o_section_data_for_mach_sect): Declare. (bfd_mach_o_section_data_for_bfd_name): Declare. include/ 2011-12-14 Iain Sandoe <iains@gcc.gnu.org> * mach-o/loader.h (bfd_mach_o_section_type): define BFD_MACH_O_S_ATTR_NONE to 0. gas/ 2011-12-14 Iain Sandoe <iains@gcc.gnu.org> * config/obj-macho.c: Add some more top-level comments. (collect_16char_name): New. (obj_mach_o_section): Amend to allow syntax compatible with existing system tools. Use section translation data when available. (obj_mach_o_segT_from_bfd_name): New. (known_sections): Update. (obj_mach_o_known_section): Use obj_mach_o_segT_from_bfd_name. (objc_sections): New. (obj_mach_o_objc_section): New. (debug_sections): New. (obj_mach_o_debug_section): New. (tgt_sections): New. (obj_mach_o_opt_tgt_section): New. (obj_mach_o_base_section): New. (obj_mach_o_common_parse): Update to create BSS on demand and to handle lcomm optional alignment param. (obj_mach_o_comm): Update parameter name. (obj_mach_o_placeholder): New. (mach_o_pseudo_table): Update for GCC section directives. * config/obj-macho.h (_OBJ_MACH_O_H): New. (USE_ALIGN_PTWO): Define. (S_SET_ALIGN) Define.
Diffstat (limited to 'gas/config/obj-macho.h')
-rw-r--r--gas/config/obj-macho.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/gas/config/obj-macho.h b/gas/config/obj-macho.h
index d7e9bda61e..94c1cded57 100644
--- a/gas/config/obj-macho.h
+++ b/gas/config/obj-macho.h
@@ -1,5 +1,5 @@
/* Mach-O object file format for gas, the assembler.
- Copyright 2009 Free Software Foundation, Inc.
+ Copyright 2009, 2011 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -18,13 +18,29 @@
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
+#ifndef _OBJ_MACH_O_H
+#define _OBJ_MACH_O_H
+
/* Tag to validate Mach-O object file format processing */
#define OBJ_MACH_O 1
+#include "bfd/mach-o.h"
+
#include "targ-cpu.h"
#define OUTPUT_FLAVOR bfd_target_mach_o_flavour
+/* All our align expressions are power of two. */
+#define USE_ALIGN_PTWO
+
+/* Common symbols can carry alignment information. */
+#ifndef S_SET_ALIGN
+#define S_SET_ALIGN(S,V) do {\
+ bfd_mach_o_asymbol *s = (bfd_mach_o_asymbol *) symbol_get_bfdsym (S);\
+ s->n_desc = (s->n_desc & 0xf0ff) | (((V) & 0x0f) << 8);\
+} while (0)
+#endif
+
extern const pseudo_typeS mach_o_pseudo_table[];
#ifndef obj_pop_insert
@@ -37,3 +53,5 @@ extern const pseudo_typeS mach_o_pseudo_table[];
#define obj_symbol_new_hook(s) {;}
#define EMIT_SECTION_SYMBOLS 0
+
+#endif /* _OBJ_MACH_O_H */