0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-09-22 10:43:39 -04:00

ofmt: Implement null_segalign stubs

Set stubs for all targets

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
Cyrill Gorcunov
2010-04-21 00:51:22 +04:00
parent d5f2aef30a
commit 2a587ab1c9
16 changed files with 38 additions and 0 deletions

2
nasm.c
View File

@@ -1241,6 +1241,8 @@ static void assemble_file(char *fname, StrList **depend_ptr)
"segment alignment `%s' is not power of two",
value);
}
/* callee should be able to handle all details */
ofmt->segalign(location.segment, align);
}
}
break;

6
nasm.h
View File

@@ -681,6 +681,12 @@ struct ofmt {
*/
int32_t (*section) (char *name, int pass, int *bits);
/*
* This procedure is called to modify segment alignment,
* there is a trick, the alignment can only increase
*/
void (*segalign)(int32_t seg, int value);
/*
* This procedure is called to modify the segment base values
* returned from the SEG operator. It is given a segment base

View File

@@ -49,3 +49,9 @@ int null_directive(enum directives directive, char *value, int pass)
(void)pass;
return 0;
}
void null_segalign(int32_t seg, int value)
{
(void)seg;
(void)value;
}

View File

@@ -924,6 +924,7 @@ struct ofmt of_aout = {
aout_out,
aout_deflabel,
aout_section_names,
null_segalign,
aout_segbase,
null_directive,
aout_filename,
@@ -946,6 +947,7 @@ struct ofmt of_aoutb = {
aout_out,
aout_deflabel,
aout_section_names,
null_segalign,
aout_segbase,
null_directive,
aout_filename,

View File

@@ -638,6 +638,7 @@ struct ofmt of_as86 = {
as86_out,
as86_deflabel,
as86_section_names,
null_segalign,
as86_segbase,
null_directive,
as86_filename,

View File

@@ -1672,6 +1672,7 @@ struct ofmt of_bin = {
bin_out,
bin_deflabel,
bin_secname,
null_segalign,
bin_segbase,
bin_directive,
bin_filename,
@@ -1690,6 +1691,7 @@ struct ofmt of_ith = {
bin_out,
bin_deflabel,
bin_secname,
null_segalign,
bin_segbase,
bin_directive,
ith_filename,
@@ -1708,6 +1710,7 @@ struct ofmt of_srec = {
bin_out,
bin_deflabel,
bin_secname,
null_segalign,
bin_segbase,
bin_directive,
srec_filename,

View File

@@ -1012,6 +1012,7 @@ struct ofmt of_coff = {
coff_out,
coff_deflabel,
coff_section_names,
null_segalign,
coff_segbase,
coff_directives,
coff_std_filename,
@@ -1034,6 +1035,7 @@ struct ofmt of_win32 = {
coff_out,
coff_deflabel,
coff_section_names,
null_segalign,
coff_segbase,
coff_directives,
coff_win32_filename,
@@ -1056,6 +1058,7 @@ struct ofmt of_win64 = {
coff_out,
coff_deflabel,
coff_section_names,
null_segalign,
coff_segbase,
coff_directives,
coff_win32_filename,

View File

@@ -166,6 +166,12 @@ static void dbg_out(int32_t segto, const void *data,
}
}
static void dbg_segalign(int32_t seg, int value)
{
fprintf(ofile, "set alignment (%d) for segment (%d)\n",
seg, value);
}
static int32_t dbg_segbase(int32_t segment)
{
return segment;
@@ -259,6 +265,7 @@ struct ofmt of_dbg = {
dbg_out,
dbg_deflabel,
dbg_section_names,
dbg_segalign,
dbg_segbase,
dbg_directive,
dbg_filename,

View File

@@ -1401,6 +1401,7 @@ struct ofmt of_elf32 = {
elf_out,
elf_deflabel,
elf_section_names,
null_segalign,
elf_segbase,
elf_directive,
elf_filename,

View File

@@ -1501,6 +1501,7 @@ struct ofmt of_elf64 = {
elf_out,
elf_deflabel,
elf_section_names,
null_segalign,
elf_segbase,
elf_directive,
elf_filename,

View File

@@ -1501,6 +1501,7 @@ struct ofmt of_ieee = {
ieee_out,
ieee_deflabel,
ieee_segment,
null_segalign,
ieee_segbase,
ieee_directive,
ieee_filename,

View File

@@ -41,6 +41,7 @@ uint64_t realsize(enum out_type type, uint64_t size);
/* Do-nothing versions of some output routines */
int null_setinfo(enum geninfo type, char **string);
int null_directive(enum directives directive, char *value, int pass);
void null_segalign(int32_t seg, int value);
/* Do-nothing versions of all the debug routines */
struct ofmt;

View File

@@ -1317,6 +1317,7 @@ struct ofmt of_macho32 = {
macho_output,
macho_symdef,
macho_section,
null_segalign,
macho_segbase,
null_directive,
macho_filename,

View File

@@ -1488,6 +1488,7 @@ struct ofmt of_macho64 = {
macho_output,
macho_symdef,
macho_section,
null_segalign,
macho_segbase,
null_directive,
macho_filename,

View File

@@ -2559,6 +2559,7 @@ struct ofmt of_obj = {
obj_out,
obj_deflabel,
obj_segment,
null_segalign,
obj_segbase,
obj_directive,
obj_filename,

View File

@@ -788,6 +788,7 @@ struct ofmt of_rdf2 = {
rdf2_out,
rdf2_deflabel,
rdf2_section_names,
null_segalign,
rdf2_segbase,
rdf2_directive,
rdf2_filename,