[PATCH] IA64 VMS

Nick Clifton nickc@redhat.com
Thu Dec 4 13:21:00 GMT 2008


Hi Douglas,

The patch is mostly OK, but I did have a few problems getting it to 
build.  For example:

  .../bfd/vmsutil.c: In function 'vms_file_stats_name':
  .../bfd/vmsutil.c:252: error: integer constant is too large for 'long' 
type

which I fixed by changing:

  +#define VMS_EPOCH_OFFSET 35067168000000000

to:

  +#define VMS_EPOCH_OFFSET 35067168000000000LL


Also:

  .../gas/config/tc-ia64.c: In function 'ia64_elf_section_letter':
  .../gas/config/tc-ia64.c:848: error: overflow in implicit constant 
conversion
  .../gas/config/tc-ia64.c:850: error: overflow in implicit constant 
conversion

Which does not appear to have a simple fix, since the attribute value 
that this function returns is intended to be a 'long' and the constant 
values that are triggering the above error messages are 'long long's. 
(Note - I am building on a 32-bit host...)


There are also some formatting issues in the patch:

  +  ia64*-*-*vms*)
  +    # No gdb or ld support yet.
  +    noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui 
itcl gdb ld"
  ++    ;;

Something went wrong with the above fragment - you have an extraneous 
'+' character at the start of the last line.


  +int
  +vms_file_stats_name (filename, cdt, siz, rfo, ver)
  +   const char *filename;
  +   long long *cdt;
  +   long *siz;
  +   char *rfo;
  +   int *ver;

We are switching to ISO C standard formatting for the binutils sources, 
so please could you include a function's parameter types in the function 
declaration.  Ie:

  +int
  +vms_file_stats_name (const char *filename,
  +                     long long *cdt,
  +                     long *siz,
  +                     char *rfo,
  +                     int *ver)


Also we are no longer using the PTR and PARAMS macros, so please could 
you change code like this:

  +static void elfNN_vms_post_process_headers
  +  PARAMS ((bfd *abfd, struct bfd_link_info *info));

to:

  +static void elfNN_vms_post_process_headers
  +  bfd *, struct bfd_link_info *);


Comments should be treated as sentances, so:

   +  /* create the .note section.  */

should start with a capital letter:

   +  /* Create the .note section.  */


Cheers
   Nick



More information about the Binutils mailing list