diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 75aa2ee..281ddc1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
 2016-12-16  Doug Evans  <dje@google.com>
 
+	* objfile-flags.h (objfile_flag): Add comment.
+	* objfiles.c (objfile_purge_solibs): Check OBJF_MAINLINE.
+	* solib-svr4.c (svr4_same_1): Add check for Fuchsia.
+	* symfile.c (symbol_file_add_with_addrs): Mark PIE executables as
+	OBJF_SHARED.
+	* target.c (target_translate_tls_address): Add check for OBJF_MAINLINE.
+
+2016-12-16  Doug Evans  <dje@google.com>
+
 	* fuchsia-tdep.c (fuchsia_solib_create_inferior_hook): New function.
 	(fuchsia_init_abi): Provide solib_create_inferior_hook.
 	* solib-svr4.c (svr4_apply_exec_displacement): New function.
diff --git a/gdb/objfile-flags.h b/gdb/objfile-flags.h
index da03918..11ff6a3 100644
--- a/gdb/objfile-flags.h
+++ b/gdb/objfile-flags.h
@@ -36,9 +36,12 @@
     OBJF_REORDERED = 1 << 0,	/* Functions are reordered */
 
     /* Distinguish between an objfile for a shared library and a
-       "vanilla" objfile.  This may come from a target's
-       implementation of the solib interface, from add-symbol-file, or
-       any other mechanism that loads dynamic objects.  */
+       "vanilla" objfile.  This is also set for PIE executables.
+       To distinguish whether an objfile is the main executable, check
+       OBJF_MAINLINE.
+       This may come from a target's implementation of the solib interface,
+       from add-symbol-file, or any other mechanism that loads dynamic
+       objects.  */
     OBJF_SHARED = 1 << 1,	/* From a shared library */
 
     /* User requested that this objfile be read in it's entirety.  */
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 4dc6a0a..377ad67 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -1095,7 +1095,9 @@
     /* We assume that the solib package has been purged already, or will
        be soon.  */
 
-    if (!(objf->flags & OBJF_USERLOADED) && (objf->flags & OBJF_SHARED))
+    if (!(objf->flags & OBJF_USERLOADED)
+	&& !(objf->flags & OBJF_MAINLINE)
+	&& (objf->flags & OBJF_SHARED))
       free_objfile (objf);
   }
 }
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index f9446b0..d19b48c 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -179,6 +179,15 @@
       && strcmp (inferior_so_name, "/lib/sparcv9/ld.so.1") == 0)
     return 1;
 
+  /* On Fuchsia, ld.so.1 doesn't have a path, and is the same as libc.so,
+     which doesn't have a path either.  */
+  if (gdbarch_osabi (target_gdbarch ()) == GDB_OSABI_FUCHSIA)
+    {
+      if (strcmp (gdb_so_name, "ld.so.1") == 0
+	  && strcmp (inferior_so_name, "libc.so") == 0)
+	return 1;
+    }
+
   return 0;
 }
 
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 52f99bf..d019981 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1166,7 +1166,17 @@
     error (_("Not confirmed."));
 
   if (mainline)
-    flags |= OBJF_MAINLINE;
+    {
+      flags |= OBJF_MAINLINE;
+
+      /* Mark PIE executables as shared.
+	 This is important on Fuchsia as the main executable isn't loaded yet
+	 when the process starts, it's loaded by the dynamic linker similarly
+	 to shared libs.  */
+      if ((bfd_get_file_flags (exec_bfd) & DYNAMIC) != 0)
+	flags |= OBJF_SHARED;
+    }
+
   objfile = allocate_objfile (abfd, name, flags);
 
   if (parent)
diff --git a/gdb/target.c b/gdb/target.c
index 246d292..8ad8ee3 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -879,7 +879,9 @@
          throw the error to some higher catcher.  */
       CATCH (ex, RETURN_MASK_ALL)
 	{
-	  int objfile_is_library = (objfile->flags & OBJF_SHARED);
+	  int objfile_is_library
+	    = ((objfile->flags & OBJF_SHARED)
+	       && !(objfile->flags & OBJF_MAINLINE));
 
 	  switch (ex.error)
 	    {
