* syscall.c (cb_syscall) <case CB_SYS_lstat>: New case.
[binutils-gdb.git] / sim / common / sim-load.c
index 22fb33b777b6201d1c5588b69165d31d67d3023b..5fc4c986c6727d8de37864cf7ad8e1a315d176b6 100644 (file)
@@ -1,5 +1,5 @@
 /* Utility to load a file into the simulator.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -19,7 +19,9 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    as it is used by simulators that don't use it [though that doesn't mean
    to suggest that they shouldn't :-)].  */
 
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+#include "cconfig.h"
+#endif
 #include "ansidecl.h"
 #include <stdio.h> /* for NULL */
 #ifdef ANSI_PROTOTYPES
@@ -36,8 +38,8 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "bfd.h"
 #include "sim-utils.h"
 
-#include "callback.h"
-#include "remote-sim.h"
+#include "gdb/callback.h"
+#include "gdb/remote-sim.h"
 
 static void eprintf PARAMS ((host_callback *, const char *, ...));
 static void xprintf PARAMS ((host_callback *, const char *, ...));
@@ -110,7 +112,7 @@ sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
        {
          bfd_size_type size;
 
-         size = bfd_get_section_size_before_reloc (s);
+         size = bfd_get_section_size (s);
          if (size > 0)
            {
              char *buffer;
@@ -166,6 +168,8 @@ sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
       report_transfer_performance (callback, data_count, start_time, end_time);
     }
 
+  bfd_cache_close (result_bfd);
+
   return result_bfd;
 }