diff --git a/src/Makefile b/src/Makefile index 0189a469..6537ecb4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,6 +7,7 @@ CLEANUP := CFLAGS := ASFLAGS := LDFLAGS := +HOST_CFLAGS := MAKEDEPS := Makefile ############################################################################### diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 0fab407c..bf4b93c5 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -381,6 +381,7 @@ CFLAGS += -g ifeq ($(CCTYPE),gcc) CFLAGS += -ffreestanding CFLAGS += -Wall -W -Wformat-nonliteral +HOST_CFLAGS += -Wall -W -Wformat-nonliteral endif ifeq ($(CCTYPE),icc) CFLAGS += -fno-builtin @@ -411,12 +412,14 @@ endif CFLAGS += $(WORKAROUND_CFLAGS) $(EXTRA_CFLAGS) ASFLAGS += $(WORKAROUND_ASFLAGS) $(EXTRA_ASFLAGS) LDFLAGS += $(WORKAROUND_LDFLAGS) $(EXTRA_LDFLAGS) +HOST_CFLAGS += -O2 -g # Inhibit -Werror if NO_WERROR is specified on make command line # ifneq ($(NO_WERROR),1) CFLAGS += -Werror ASFLAGS += --fatal-warnings +HOST_CFLAGS += -Werror endif # Function trace recorder state in the last build. This is needed @@ -1057,13 +1060,13 @@ endif # defined(BIN) # $(NRV2B) : util/nrv2b.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) -O2 -DENCODE -DDECODE -DMAIN -DVERBOSE -DNDEBUG \ - -DBITSIZE=32 -DENDIAN=0 -o $@ $< + $(Q)$(HOST_CC) $(HOST_CFLAGS) -DENCODE -DDECODE -DMAIN -DVERBOSE \ + -DNDEBUG -DBITSIZE=32 -DENDIAN=0 -o $@ $< CLEANUP += $(NRV2B) $(ZBIN) : util/zbin.c util/nrv2b.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) -O2 -o $@ $< + $(Q)$(HOST_CC) $(HOST_CFLAGS) -o $@ $< CLEANUP += $(ZBIN) ############################################################################### @@ -1071,23 +1074,25 @@ CLEANUP += $(ZBIN) # The EFI image converter # ELF2EFI_CFLAGS := -I$(BINUTILS_DIR)/include -I$(BFD_DIR)/include \ - -I$(ZLIB_DIR)/include -idirafter include \ - -L$(BINUTILS_DIR)/lib -L$(BFD_DIR)/lib -L$(ZLIB_DIR)/lib \ + -I$(ZLIB_DIR)/include -idirafter include +ELF2EFI_LDFLAGS := -L$(BINUTILS_DIR)/lib -L$(BFD_DIR)/lib -L$(ZLIB_DIR)/lib \ -lbfd -ldl -liberty -lz -Wl,--no-warn-search-mismatch $(ELF2EFI32) : util/elf2efi.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) $< $(ELF2EFI_CFLAGS) -DEFI_TARGET_IA32 -O2 -o $@ + $(Q)$(HOST_CC) $(HOST_CFLAGS) $(ELF2EFI_CFLAGS) -DEFI_TARGET_IA32 $< \ + $(ELF2EFI_LDFLAGS) -o $@ CLEANUP += $(ELF2EFI32) $(ELF2EFI64) : util/elf2efi.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) $< $(ELF2EFI_CFLAGS) -DEFI_TARGET_X64 -O2 -o $@ + $(Q)$(HOST_CC) $(HOST_CFLAGS) $(ELF2EFI_CFLAGS) -DEFI_TARGET_X64 $< \ + $(ELF2EFI_LDFLAGS) -o $@ CLEANUP += $(ELF2EFI64) $(EFIROM) : util/efirom.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) -idirafter include -O2 -o $@ $< + $(Q)$(HOST_CC) $(HOST_CFLAGS) -idirafter include -o $@ $< CLEANUP += $(EFIROM) ############################################################################### @@ -1096,7 +1101,7 @@ CLEANUP += $(EFIROM) # $(ICCFIX) : util/iccfix.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) -idirafter include -O2 -o $@ $< + $(Q)$(HOST_CC) $(HOST_CFLAGS) -idirafter include -o $@ $< CLEANUP += $(ICCFIX) ############################################################################### @@ -1105,7 +1110,7 @@ CLEANUP += $(ICCFIX) # $(EINFO) : util/einfo.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) -idirafter include -O2 -o $@ $< + $(Q)$(HOST_CC) $(HOST_CFLAGS) -idirafter include -o $@ $< CLEANUP += $(EINFO) ############################################################################### diff --git a/src/util/efirom.c b/src/util/efirom.c index d0bdace6..a65abfee 100644 --- a/src/util/efirom.c +++ b/src/util/efirom.c @@ -56,18 +56,6 @@ static void * xmalloc ( size_t len ) { return ptr; } -/** - * Get file size - * - * @v file File - * @v len File size - */ -static size_t file_size ( FILE *file ) { - ssize_t len; - - return len; -} - /** * Read information from PE headers * @@ -239,15 +227,15 @@ static int parse_options ( const int argc, char **argv, } int main ( int argc, char **argv ) { - struct options opts = { - }; - unsigned int infile_index; + struct options opts; + int infile_index; const char *infile_name; const char *outfile_name; FILE *infile; FILE *outfile; /* Parse command-line arguments */ + memset ( &opts, 0, sizeof ( opts ) ); infile_index = parse_options ( argc, argv, &opts ); if ( argc != ( infile_index + 2 ) ) { print_help ( argv[0] ); diff --git a/src/util/einfo.c b/src/util/einfo.c index 06736f21..15f920d0 100644 --- a/src/util/einfo.c +++ b/src/util/einfo.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -49,7 +50,8 @@ struct einfo { * @v infile Filename * @v opts Command-line options */ -static void einfo ( const char *infile, struct options *opts ) { +static void einfo ( const char *infile, + struct options *opts __attribute__ (( unused )) ) { int fd; struct stat stat; size_t len; @@ -85,9 +87,9 @@ static void einfo ( const char *infile, struct options *opts ) { for ( einfo = start ; ( ( void * ) einfo ) < ( start + len ) ; einfo = ( ( ( void * ) einfo ) + einfo->size ) ) { printf ( "%08x\t%s\t%d\t%s\n", einfo->error, - ( ( ( void * ) einfo ) + einfo->file ), + ( ( ( char * ) einfo ) + einfo->file ), einfo->line, - ( ( ( void * ) einfo ) + einfo->desc ) ); + ( ( ( char * ) einfo ) + einfo->desc ) ); } } @@ -115,8 +117,7 @@ static void print_help ( const char *program_name ) { * @v opts Options structure to populate */ static int parse_options ( const int argc, char **argv, - struct options *opts ) { - char *end; + struct options *opts __attribute__ (( unused )) ) { int c; while (1) { @@ -147,7 +148,7 @@ static int parse_options ( const int argc, char **argv, int main ( int argc, char **argv ) { struct options opts = { }; - unsigned int infile_index; + int infile_index; const char *infile; /* Parse command-line arguments */ diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c index e6629296..c8df22e1 100644 --- a/src/util/elf2efi.c +++ b/src/util/elf2efi.c @@ -459,7 +459,8 @@ static struct pe_section * process_section ( bfd *bfd, * @v rel Relocation entry * @v pe_reltab PE relocation table to fill in */ -static void process_reloc ( bfd *bfd, asection *section, arelent *rel, +static void process_reloc ( bfd *bfd __attribute__ (( unused )), + asection *section, arelent *rel, struct pe_relocs **pe_reltab ) { reloc_howto_type *howto = rel->howto; asymbol *sym = *(rel->sym_ptr_ptr); @@ -637,7 +638,7 @@ static void write_pe_file ( struct pe_header *pe_header, for ( section = pe_sections ; section ; section = section->next ) { if ( fseek ( pe, section->hdr.PointerToRawData, SEEK_SET ) != 0 ) { - eprintf ( "Could not seek to %lx: %s\n", + eprintf ( "Could not seek to %x: %s\n", section->hdr.PointerToRawData, strerror ( errno ) ); exit ( 1 ); @@ -786,7 +787,7 @@ int main ( int argc, char **argv ) { struct options opts = { .subsystem = EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION, }; - unsigned int infile_index; + int infile_index; const char *infile; const char *outfile; diff --git a/src/util/iccfix.c b/src/util/iccfix.c index 8b555c54..528bf4b2 100644 --- a/src/util/iccfix.c +++ b/src/util/iccfix.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -49,7 +50,7 @@ static int ICCFIX ( void *elf ) { ( align >= ICC_ALIGN_HACK_FACTOR ) ) { new_align = ( align / ICC_ALIGN_HACK_FACTOR ); shdr->sh_addralign = new_align; - dprintf ( "Section \"%s\": alignment %d->%d\n", + dprintf ( "Section \"%s\": alignment %ld->%ld\n", name, align, new_align ); } } diff --git a/src/util/nrv2b.c b/src/util/nrv2b.c index 6bac4cdd..cbb94c0e 100644 --- a/src/util/nrv2b.c +++ b/src/util/nrv2b.c @@ -77,7 +77,7 @@ static __inline__ void Error(char *message) /* These will be a complete waste of time on a lo-endian */ /* system, but it only gets done once so WTF. */ -static unsigned long i86ul_to_host(unsigned long ul) +static unsigned long __attribute__ (( unused )) i86ul_to_host(unsigned long ul) { unsigned long res = 0; int i; @@ -375,7 +375,6 @@ static int swd_init(struct ucl_swd *s, const uint8_t *dict, unsigned int dict_len) { unsigned int i = 0; - int c = 0; if (s->n == 0) s->n = N; @@ -439,7 +438,7 @@ static void swd_exit(struct ucl_swd *s) { /* unused s */ - + ( void ) s; } #define swd_pos2off(s,pos) \ diff --git a/src/util/zbin.c b/src/util/zbin.c index f0df5ea0..a9195164 100644 --- a/src/util/zbin.c +++ b/src/util/zbin.c @@ -218,7 +218,8 @@ static int process_zinfo_pack ( struct input_file *input, return 0; } -static int process_zinfo_payl ( struct input_file *input, +static int process_zinfo_payl ( struct input_file *input + __attribute__ (( unused )), struct output_file *output, union zinfo_record *zinfo ) { struct zinfo_payload *payload = &zinfo->payload; @@ -229,9 +230,11 @@ static int process_zinfo_payl ( struct input_file *input, if ( DEBUG ) { fprintf ( stderr, "PAYL at %#zx\n", output->hdr_len ); } + return 0; } -static int process_zinfo_add ( struct input_file *input, +static int process_zinfo_add ( struct input_file *input + __attribute__ (( unused )), struct output_file *output, size_t len, struct zinfo_add *add,