Aloha, There do not seem to be any prerequisites given for gcc versions in the documentation. The code still has #ifdef's for gcc < 2.6 ... :)
In trying to compile binutils-2.23.2 with gcc-2.95.3 and make-3.82 on linux-2.4.32, the following issues were uncovered. a gratuitous ";;" *** dwarf2.c.ORIG Thu Jul 26 08:20:39 2012 --- dwarf2.c Thu Jun 27 15:22:09 2013 *************** *** 3621,3627 **** void _bfd_dwarf2_cleanup_debug_info (bfd *abfd, void **pinfo) { ! struct dwarf2_debug *stash = (struct dwarf2_debug *) *pinfo;; struct comp_unit *each; if (abfd == NULL || stash == NULL) --- 3621,3627 ---- void _bfd_dwarf2_cleanup_debug_info (bfd *abfd, void **pinfo) { ! struct dwarf2_debug *stash = (struct dwarf2_debug *) *pinfo; struct comp_unit *each; if (abfd == NULL || stash == NULL) an unnecessary violation of reasonable C standards, i.e., putting declarations after code *** ar.c.ORIG Sun Mar 24 22:06:21 2013 --- ar.c Thu Jun 27 15:43:35 2013 *************** *** 245,252 **** { FILE *s; - s = help ? stdout : stderr; - #if BFD_SUPPORTS_PLUGINS /* xgettext:c-format */ const char *command_line --- 245,250 ---- *************** *** 259,264 **** --- 257,265 ---- = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV]" " [member-name] [count] archive-file file...\n"); #endif + + s = help ? stdout : stderr; + fprintf (s, command_line, program_name); /* xgettext:c-format */ an understandable use of the "t" format, but 2.95.3 does not seem to understand it, or "z" -- agreed that "u" is no good either, but this is only on a 32-bit system :) *** readelf.c.ORIG Sun Mar 24 22:06:21 2013 --- readelf.c Thu Jun 27 15:55:23 2013 *************** *** 10471,10477 **** #ifndef __MSVCRT__ /* PR 11128: Use two separate invocations in order to work around bugs in the Solaris 8 implementation of printf. */ ! printf (" [%6tx] ", data - start); printf ("%s\n", data); #else printf (" [%6Ix] %s\n", (size_t) (data - start), data); --- 10471,10477 ---- #ifndef __MSVCRT__ /* PR 11128: Use two separate invocations in order to work around bugs in the Solaris 8 implementation of printf. */ ! printf (" [%6ux] ", (size_t)(data - start)); printf ("%s\n", data); #else printf (" [%6Ix] %s\n", (size_t) (data - start), data); a valid complaint about signed versus unsigned *** tc-i386-intel.c.ORIG Wed Jul 25 01:34:49 2012 --- tc-i386-intel.c Thu Jun 27 16:18:58 2013 *************** *** 792,798 **** || intel_state.is_mem) { /* Memory operand. */ ! if (i.mem_operands >= 2 - !current_templates->start->opcode_modifier.isstring) { /* Handle --- 792,798 ---- || intel_state.is_mem) { /* Memory operand. */ ! if ((int)i.mem_operands >= 2 - !current_templates->start->opcode_modifier.isstring) { /* Handle PRINTF_LIKE is used only here from its definition in as.h . There are version #ifdefs around the definition, but 2.95.3 does not work with the result *** tc-i386.c.ORIG Fri Nov 9 03:32:04 2012 --- tc-i386.c Thu Jun 27 16:22:33 2013 *************** *** 2007,2013 **** static void update_code_flag (int value, int check) { ! PRINTF_LIKE ((*as_error)); flag_code = (enum flag_code) value; if (flag_code == CODE_64BIT) --- 2007,2013 ---- static void update_code_flag (int value, int check) { ! void ((*as_error)) (const char *format, ...); flag_code = (enum flag_code) value; if (flag_code == CODE_64BIT) then came ld and "link_info shadows global definition" error messages and I gave up and switched to trying to get gcc-3.4.6 to compile :) Mahalo for listening, Jim _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils