#define USE_ELF_WRITER 1
#endif
-#if defined(TARGET_ARM) && !defined(TARGET_MACH)
+#if defined(TARGET_ARM) && !defined(TARGET_MACH) && !defined(HOST_WIN32)
#define USE_ELF_WRITER 1
#endif
static int
bin_writer_emit_writeout (MonoImageWriter *acfg)
{
- FILE *file;
ElfHeader header;
ElfProgHeader progh [4];
ElfSectHeader secth [SECT_NUM];
ElfSymbol *symtab;
ElfDynamic dynamic [14];
int *hash;
- int i, num_sections, file_offset, virt_offset, size, num_symtab;
+ int i, num_sections, file_offset, virt_offset, size;
int num_local_syms;
- file = acfg->fp;
-
/* Section headers */
memset (§h, 0, sizeof (secth));
memset (&dynamic, 0, sizeof (dynamic));
num_sections = collect_sections (acfg, secth, all_sections, 16);
hash = build_hash (acfg, num_sections, &dyn_str_table);
- num_symtab = hash [1]; /* FIXME */
#if 0
g_print ("num_sections: %d\n", num_sections);
g_print ("dynsym: %d, dynstr size: %d\n", hash [1], (int)dyn_str_table.data->len);
#endif
}
+#ifndef USE_BIN_WRITER
+static void
+asm_writer_emit_alignment_fill (MonoImageWriter *acfg, int size, int fill)
+{
+ asm_writer_emit_unset_mode (acfg);
+#if defined(TARGET_ASM_APPLE)
+ fprintf (acfg->fp, "\t.align %d, 0x%0x\n", ilog2 (size), fill);
+#else
+ asm_writer_emit_alignment (acfg, size);
+#endif
+}
+#endif
+
#ifdef __native_client_codegen__
static void
asm_writer_emit_nacl_call_alignment (MonoImageWriter *acfg) {
#endif
}
+void
+img_writer_emit_alignment_fill (MonoImageWriter *acfg, int size, int fill)
+{
+#ifdef USE_BIN_WRITER
+ if (acfg->use_bin_writer)
+ bin_writer_emit_alignment (acfg, size);
+ else
+ asm_writer_emit_alignment (acfg, size);
+#else
+ asm_writer_emit_alignment_fill (acfg, size, fill);
+#endif
+}
+
#ifdef __native_client_codegen__
void
img_writer_emit_nacl_call_alignment (MonoImageWriter *acfg) {