From: Rolf Bjarne Kvinge Date: Wed, 6 Jan 2016 12:56:43 +0000 (+0100) Subject: [aot] Fix emission of external aot data by aligning tables in the file. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=45a86f2116bd4188c16b4ba13ac2b177054cf6bb [aot] Fix emission of external aot data by aligning tables in the file. The table reading code depends on data being aligned, so make sure it is. --- diff --git a/mono/mini/aot-compiler.c b/mono/mini/aot-compiler.c index 63a330d5370..b066a590993 100644 --- a/mono/mini/aot-compiler.c +++ b/mono/mini/aot-compiler.c @@ -2338,6 +2338,12 @@ emit_aot_data (MonoAotCompile *acfg, MonoAotFileTable table, const char *symbol, acfg->table_offsets [(int)table] = acfg->datafile_offset; fwrite (data,1, size, acfg->data_outfile); acfg->datafile_offset += size; + // align the data to 8 bytes. Put zeros in the file (so that every build results in consistent output). + int align = 8 - size % 8; + acfg->datafile_offset += align; + guint8 align_buf [16]; + memset (&align_buf, 0, sizeof (align_buf)); + fwrite (align_buf, align, 1, acfg->data_outfile); } else if (acfg->llvm) { mono_llvm_emit_aot_data (symbol, data, size); } else {