+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * aout-target.h (object_p): Formatting.
+       * bfd-in.h (bfd_get_filename): Don't cast to char*.
+       * corefile.c (generic_core_file_matches_executable_p): Constify
+       variables and remove cast.
+       * bfd-in2.h: Regenerate.
+
 2019-09-05  Alan Modra  <amodra@gmail.com>
 
        * elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
 
 #ifndef S_IXUSR
 #define S_IXUSR 0100   /* Execute by owner.  */
 #endif
-      if (stat(abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
+      if (stat (abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
        abfd->flags |= EXEC_P;
     }
 #endif /* ENTRY_CAN_BE_ZERO */
 
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-/* Cast from const char * to char * so that caller can assign to
-   a char * without a warning.  */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
 #define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 #define bfd_get_format(abfd) ((abfd)->format)
 #define bfd_get_target(abfd) ((abfd)->xvec->name)
 
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-/* Cast from const char * to char * so that caller can assign to
-   a char * without a warning.  */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
 #define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 #define bfd_get_format(abfd) ((abfd)->format)
 #define bfd_get_target(abfd) ((abfd)->xvec->name)
 
 bfd_boolean
 generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
 {
-  char *exec;
-  char *core;
-  char *last_slash;
+  const char *exec;
+  const char *core;
+  const char *last_slash;
 
   if (exec_bfd == NULL || core_bfd == NULL)
     return TRUE;
      non-const char *.  In this case, the assignement does not lead to
      breaking the const, as we're only reading the string.  */
 
-  core = (char *) bfd_core_file_failing_command (core_bfd);
+  core = bfd_core_file_failing_command (core_bfd);
   if (core == NULL)
     return TRUE;
 
 
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * nm.c (print_object_filename_bsd, print_object_filename_sysv),
+       (print_object_filename_posix, print_archive_filename_bsd),
+       (print_archive_filename_sysv, print_archive_filename_posix),
+       (print_archive_member_bsd, print_archive_member_sysv),
+       (print_archive_member_posix): Constify parameter.
+       (struct output_fns <print_object_filename, print_archive_filename>),
+       (<print_archive_member>): Likewise.
+       * objcopy.c (copy_archive): Add cast for make_tempdir.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
        * dwarf.c (check_uvalue): Remove unnecessary pointer checks.
 
   (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize)
 
 /* The output formatting functions.  */
-static void print_object_filename_bsd (char *);
-static void print_object_filename_sysv (char *);
-static void print_object_filename_posix (char *);
-static void print_archive_filename_bsd (char *);
-static void print_archive_filename_sysv (char *);
-static void print_archive_filename_posix (char *);
-static void print_archive_member_bsd (char *, const char *);
-static void print_archive_member_sysv (char *, const char *);
-static void print_archive_member_posix (char *, const char *);
+static void print_object_filename_bsd (const char *);
+static void print_object_filename_sysv (const char *);
+static void print_object_filename_posix (const char *);
+static void print_archive_filename_bsd (const char *);
+static void print_archive_filename_sysv (const char *);
+static void print_archive_filename_posix (const char *);
+static void print_archive_member_bsd (const char *, const char *);
+static void print_archive_member_sysv (const char *, const char *);
+static void print_archive_member_posix (const char *, const char *);
 static void print_symbol_filename_bsd (bfd *, bfd *);
 static void print_symbol_filename_sysv (bfd *, bfd *);
 static void print_symbol_filename_posix (bfd *, bfd *);
 struct output_fns
   {
     /* Print the name of an object file given on the command line.  */
-    void (*print_object_filename) (char *);
+    void (*print_object_filename) (const char *);
 
     /* Print the name of an archive file given on the command line.  */
-    void (*print_archive_filename) (char *);
+    void (*print_archive_filename) (const char *);
 
     /* Print the name of an archive member file.  */
-    void (*print_archive_member) (char *, const char *);
+    void (*print_archive_member) (const char *, const char *);
 
     /* Print the name of the file (and archive, if there is one)
        containing a symbol.  */
 /* Print the name of an object file given on the command line.  */
 
 static void
-print_object_filename_bsd (char *filename)
+print_object_filename_bsd (const char *filename)
 {
   if (filename_per_file && !filename_per_symbol)
     printf ("\n%s:\n", filename);
 }
 
 static void
-print_object_filename_sysv (char *filename)
+print_object_filename_sysv (const char *filename)
 {
   if (undefined_only)
     printf (_("\n\nUndefined symbols from %s:\n\n"), filename);
 }
 
 static void
-print_object_filename_posix (char *filename)
+print_object_filename_posix (const char *filename)
 {
   if (filename_per_file && !filename_per_symbol)
     printf ("%s:\n", filename);
 /* Print the name of an archive file given on the command line.  */
 
 static void
-print_archive_filename_bsd (char *filename)
+print_archive_filename_bsd (const char *filename)
 {
   if (filename_per_file)
     printf ("\n%s:\n", filename);
 }
 
 static void
-print_archive_filename_sysv (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_sysv (const char *filename ATTRIBUTE_UNUSED)
 {
 }
 
 static void
-print_archive_filename_posix (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_posix (const char *filename ATTRIBUTE_UNUSED)
 {
 }
 \f
 /* Print the name of an archive member file.  */
 
 static void
-print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
+print_archive_member_bsd (const char *archive ATTRIBUTE_UNUSED,
                          const char *filename)
 {
   if (!filename_per_symbol)
 }
 
 static void
-print_archive_member_sysv (char *archive, const char *filename)
+print_archive_member_sysv (const char *archive, const char *filename)
 {
   if (undefined_only)
     printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename);
 }
 
 static void
-print_archive_member_posix (char *archive, const char *filename)
+print_archive_member_posix (const char *archive, const char *filename)
 {
   if (!filename_per_symbol)
     printf ("%s[%s]:\n", archive, filename);
 
     }
 
   /* Make a temp directory to hold the contents.  */
-  dir = make_tempdir (bfd_get_filename (obfd));
+  dir = make_tempdir ((char *) bfd_get_filename (obfd));
   if (dir == NULL)
     fatal (_("cannot create tempdir for archive copying (error: %s)"),
           strerror (errno));
 
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * coffread.c (coff_symfile_read): Constify filename variable.
+       * dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
+       (elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
+       * gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
+       * solib.c (reload_shared_libraries_1): Likewise.
+       * symfile.c (reread_symbols): Likewise.
+       * solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
+       * solib-darwin.c (darwin_bfd_open): Likewise.
+       * symfile-mem.c (symbol_file_add_from_memory): Likewise.
+
 2019-09-03  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * psymtab.c (print_partial_symbols): Handle missing domain_enum
 
   struct coff_symfile_info *info;
   bfd *abfd = objfile->obfd;
   coff_data_type *cdata = coff_data (abfd);
-  char *filename = bfd_get_filename (abfd);
+  const char *filename = bfd_get_filename (abfd);
   int val;
   unsigned int num_symbols;
   int symtab_offset;
 
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *text_sect;
   unsigned char size_temp[DBX_STRINGTAB_SIZE_SIZE];
 
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   unsigned int stabsize;
 
   /* Allocate struct to keep track of stab reading.  */
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
 
   stabsread_new_init ();
 
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *stabsect;
   asection *stabstrsect;
   asection *text_sect;
 
 gdb_bfd_close_or_warn (struct bfd *abfd)
 {
   int ret;
-  char *name = bfd_get_filename (abfd);
+  const char *name = bfd_get_filename (abfd);
 
   bfd_map_over_sections (abfd, free_one_bfd_section, NULL);
 
 
      along with appended parenthesized member name in order to allow commands
      listing all shared libraries to display.  Otherwise, we would only be
      displaying the name of the archive member object.  */
-  xfree (bfd_get_filename (object_bfd.get ()));
+  xfree ((char *) bfd_get_filename (object_bfd.get ()));
   object_bfd->filename = xstrprintf ("%s%s",
-                                     bfd_get_filename (archive_bfd.get ()),
+                                    bfd_get_filename (archive_bfd.get ()),
                                     sep);
 
   return object_bfd;
 
   /* The current filename for fat-binary BFDs is a name generated
      by BFD, usually a string containing the name of the architecture.
      Reset its value to the actual filename.  */
-  xfree (bfd_get_filename (res.get ()));
+  xfree ((char *) bfd_get_filename (res.get ()));
   res->filename = xstrdup (pathname);
 
   return res;
 
 
   for (so = so_list_head; so != NULL; so = so->next)
     {
-      char *found_pathname = NULL;
+      const char *found_pathname = NULL;
       int was_loaded = so->symbols_loaded;
       symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
 
   /* Manage the new reference for the duration of this function.  */
   gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
 
-  xfree (bfd_get_filename (nbfd));
+  xfree ((char *) bfd_get_filename (nbfd));
   if (name == NULL)
     nbfd->filename = xstrdup ("shared object read from target memory");
   else
 
          /* Clean up any state BFD has sitting around.  */
          {
            gdb_bfd_ref_ptr obfd (objfile->obfd);
-           char *obfd_filename;
+           const char *obfd_filename;
 
            obfd_filename = bfd_get_filename (objfile->obfd);
            /* Open the new BFD before freeing the old one, so that
 
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
+       variable.
+       * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
+       * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
+
 2019-09-05  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR ld/24574
 
             FIXME: The code could be a lot cleverer about allocating space
             for the processed string.  */
          char *    end = strchr (var, '/');
-         char *    replacement = NULL;
+         const char *replacement = NULL;
          char *    v = var + 1;
          char *    freeme = NULL;
          unsigned  flen = strlen (filename);
 
                      {
                        struct bfd_symbol *s;
                        struct bfd_link_hash_entry * blhe;
-                       char *other_bfd_filename;
+                       const char *other_bfd_filename;
                        char *n;
 
                        s = (relocs[i]->sym_ptr_ptr)[0];
 
                      {
                        struct bfd_symbol *s;
                        struct bfd_link_hash_entry * blhe;
-                       char *other_bfd_filename;
+                       const char *other_bfd_filename;
                        char *n;
 
                        s = (relocs[i]->sym_ptr_ptr)[0];
 
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * sim-if.c (sim_open): Constify filename variable.
+
 2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
 
      specified.  */
   if (abfd != NULL && !cris_bare_iron)
     {
-      char *name = bfd_get_filename (abfd);
+      const char *name = bfd_get_filename (abfd);
       char **my_environ = GET_ENVIRON ();
       /* We use these maps to give the same behavior as the old xsim
         simulator.  */