output: centralize the null definition of ofmt->segbase

Only two output formats (obj and ieee) actually need ofmt->segbase, so
move the common dummy definion into nullout.c.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
H. Peter Anvin 2018-06-14 22:41:00 -07:00
parent e803010163
commit 0125c446dd
10 changed files with 22 additions and 56 deletions

View File

@ -54,3 +54,8 @@ void null_reset(void)
{
/* Nothing to do */
}
int32_t null_segbase(int32_t segment)
{
return segment;
}

View File

@ -889,11 +889,6 @@ static void aout_sect_write(struct Section *sect,
sect->len += len;
}
static int32_t aout_segbase(int32_t segment)
{
return segment;
}
extern macros_t aout_stdmac[];
#endif /* OF_AOUT || OF_AOUTB */
@ -917,7 +912,7 @@ const struct ofmt of_aout = {
aout_section_names,
NULL,
null_sectalign,
aout_segbase,
null_segbase,
null_directive,
aout_cleanup,
NULL /* pragma list */
@ -944,7 +939,7 @@ const struct ofmt of_aoutb = {
aout_section_names,
NULL,
null_sectalign,
aout_segbase,
null_segbase,
null_directive,
aout_cleanup,
NULL /* pragma list */

View File

@ -605,11 +605,6 @@ static void as86_sect_write(struct Section *sect,
sect->datalen += len;
}
static int32_t as86_segbase(int32_t segment)
{
return segment;
}
extern macros_t as86_stdmac[];
const struct ofmt of_as86 = {
@ -629,7 +624,7 @@ const struct ofmt of_as86 = {
as86_section_names,
NULL,
null_sectalign,
as86_segbase,
null_segbase,
null_directive,
as86_cleanup,
NULL /* pragma list */

View File

@ -1373,11 +1373,6 @@ bin_directive(enum directive directive, char *args, int pass)
}
}
static int32_t bin_segbase(int32_t segment)
{
return segment;
}
const struct ofmt of_bin, of_ith, of_srec;
static void binfmt_init(void);
static void do_output_bin(void);
@ -1645,7 +1640,7 @@ const struct ofmt of_bin = {
bin_secname,
NULL,
bin_sectalign,
bin_segbase,
null_segbase,
bin_directive,
bin_cleanup,
NULL /* pragma list */
@ -1668,7 +1663,7 @@ const struct ofmt of_ith = {
bin_secname,
NULL,
bin_sectalign,
bin_segbase,
null_segbase,
bin_directive,
bin_cleanup,
NULL /* pragma list */
@ -1691,7 +1686,7 @@ const struct ofmt of_srec = {
bin_secname,
NULL,
bin_sectalign,
bin_segbase,
null_segbase,
bin_directive,
bin_cleanup,
NULL /* pragma list */

View File

@ -1135,11 +1135,6 @@ static void coff_sectalign(int32_t seg, unsigned int value)
s->flags = (s->flags & ~IMAGE_SCN_ALIGN_MASK) | value;
}
static int32_t coff_segbase(int32_t segment)
{
return segment;
}
extern macros_t coff_stdmac[];
#endif /* defined(OF_COFF) || defined(OF_WIN32) */
@ -1163,7 +1158,7 @@ const struct ofmt of_coff = {
coff_section_names,
NULL,
coff_sectalign,
coff_segbase,
null_segbase,
coff_directives,
coff_cleanup,
NULL /* pragma list */
@ -1194,7 +1189,7 @@ const struct ofmt of_win32 = {
coff_section_names,
NULL,
coff_sectalign,
coff_segbase,
null_segbase,
coff_directives,
coff_cleanup,
NULL /* pragma list */
@ -1223,7 +1218,7 @@ const struct ofmt of_win64 = {
coff_section_names,
NULL,
coff_sectalign,
coff_segbase,
null_segbase,
coff_directives,
coff_cleanup,
NULL /* pragma list */

View File

@ -318,11 +318,6 @@ static void dbg_sectalign(int32_t seg, unsigned int value)
seg, value);
}
static int32_t dbg_segbase(int32_t segment)
{
return segment;
}
static enum directive_result
dbg_directive(enum directive directive, char *value, int pass)
{
@ -480,7 +475,7 @@ const struct ofmt of_dbg = {
dbg_section_names,
dbg_herelabel,
dbg_sectalign,
dbg_segbase,
null_segbase,
dbg_directive,
dbg_cleanup,
dbg_pragma_list

View File

@ -2220,11 +2220,6 @@ static void elf_sectalign(int32_t seg, unsigned int value)
s->align = value;
}
static int32_t elf_segbase(int32_t segment)
{
return segment;
}
extern macros_t elf_stdmac[];
/* Claim "elf" as a pragma namespace, for the future */
@ -2281,7 +2276,7 @@ const struct ofmt of_elf32 = {
elf_section_names,
NULL,
elf_sectalign,
elf_segbase,
null_segbase,
elf_directive,
elf_cleanup,
elf_pragma_list,
@ -2333,7 +2328,7 @@ const struct ofmt of_elf64 = {
elf_section_names,
NULL,
elf_sectalign,
elf_segbase,
null_segbase,
elf_directive,
elf_cleanup,
elf_pragma_list,
@ -2385,7 +2380,7 @@ const struct ofmt of_elfx32 = {
elf_section_names,
NULL,
elf_sectalign,
elf_segbase,
null_segbase,
elf_directive,
elf_cleanup,
NULL /* pragma list */

View File

@ -44,6 +44,7 @@ enum directive_result
null_directive(enum directive directive, char *value, int pass);
void null_sectalign(int32_t seg, unsigned int value);
void null_reset(void);
int32_t null_segbase(int32_t seg);
/* Do-nothing versions of all the debug routines */
void null_debug_init(void);

View File

@ -1191,11 +1191,6 @@ static void macho_sectalign(int32_t seg, unsigned int value)
s->align = align;
}
static int32_t macho_segbase(int32_t section)
{
return section;
}
extern macros_t macho_stdmac[];
/* Comparison function for qsort symbol layout. */
@ -2394,7 +2389,7 @@ const struct ofmt of_macho32 = {
macho_section,
macho_herelabel,
macho_sectalign,
macho_segbase,
null_segbase,
null_directive,
macho_cleanup,
macho_pragma_list
@ -2461,7 +2456,7 @@ const struct ofmt of_macho64 = {
macho_section,
macho_herelabel,
macho_sectalign,
macho_segbase,
null_segbase,
null_directive,
macho_cleanup,
macho_pragma_list,

View File

@ -712,11 +712,6 @@ static void rdf2_cleanup(void)
fwriteint16_t(0, ofile);
}
static int32_t rdf2_segbase(int32_t segment)
{
return segment;
}
/*
* Handle RDOFF2 specific directives
*/
@ -779,7 +774,7 @@ const struct ofmt of_rdf2 = {
rdf2_section_names,
NULL,
null_sectalign,
rdf2_segbase,
null_segbase,
rdf2_directive,
rdf2_cleanup,
NULL /* pragma list */