diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -24,12 +24,14 @@
 #include "hashtab.h"
 #include "filestuff.h"
 #include "vec.h"
+#ifndef __sparc__
 #ifdef HAVE_MMAP
 #include <sys/mman.h>
 #ifndef MAP_FAILED
 #define MAP_FAILED ((void *) -1)
 #endif
 #endif
+#endif
 #include "target.h"
 #include "gdb/fileio.h"
 #include "inferior.h"
@@ -484,6 +486,7 @@ free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore)
 
   if (sect != NULL && sect->data != NULL)
     {
+#ifndef __sparc__
 #ifdef HAVE_MMAP
       if (sect->map_addr != NULL)
 	{
@@ -493,6 +496,7 @@ free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore)
 	  gdb_assert (res == 0);
 	}
       else
+#endif
 #endif
 	xfree (sect->data);
     }
@@ -659,6 +663,7 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
   if (descriptor->data != NULL)
     goto done;
 
+#ifndef __sparc__
 #ifdef HAVE_MMAP
   if (!bfd_is_section_compressed (abfd, sectp))
     {
@@ -693,6 +698,7 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
 	}
     }
 #endif /* HAVE_MMAP */
+#endif
 
   /* Handle compressed sections, or ordinary uncompressed sections in
      the no-mmap case.  */
