Commit 030abfa0d2

meme <meme@users.noreply.github.com>
2019-09-28 19:21:29
minor tweaks
1 parent 0c55609
Changed files (1)
src/link.cpp
@@ -1653,7 +1653,7 @@ static void construct_linker_job_elf(LinkJob *lj) {
         soname = buf_sprintf("lib%s.so.%" ZIG_PRI_usize, buf_ptr(g->root_out_name), g->version_major);
     }
 
-    if (target_requires_pie(g->zig_target) && !is_dyn_lib && g->libc != nullptr) {
+    if (target_requires_pie(g->zig_target) && g->out_type == OutTypeExe) {
         lj->args.append("-pie");
     }
 
@@ -1665,13 +1665,13 @@ static void construct_linker_job_elf(LinkJob *lj) {
         if (g->zig_target->os == OsNetBSD) {
             crt1o = "crt0.o";
         } else if (target_is_android(g->zig_target)) {
-            crt1o = "crtbegin_dynamic.o";
-        } else if (!g->have_dynamic_link) {
-            if (target_is_android(g->zig_target)) {
-                crt1o = "crtbegin.o";
+            if (g->have_dynamic_link) {
+                crt1o = "crtbegin_dynamic.o";
             } else {
-                crt1o = "crt1.o";
+                crt1o = "crtbegin_static.o";
             }
+        } else if (!g->have_dynamic_link) {
+            crt1o = "crt1.o";
         } else {
             crt1o = "Scrt1.o";
         }
@@ -1821,10 +1821,12 @@ static void construct_linker_job_elf(LinkJob *lj) {
     }
 
     // crt end
-    if (target_is_android(g->zig_target) && g->libc != nullptr) {
-        lj->args.append(get_libc_crt_file(g, "crtend_android.o"));
-    } else if (lj->link_in_crt && target_libc_needs_crti_crtn(g->zig_target)) {
-        lj->args.append(get_libc_crt_file(g, "crtn.o"));
+    if (lj->link_in_crt) {
+        if (target_is_android(g->zig_target)) {
+            lj->args.append(get_libc_crt_file(g, "crtend_android.o"));
+        } else if (target_libc_needs_crti_crtn(g->zig_target)) {
+            lj->args.append(get_libc_crt_file(g, "crtn.o"));
+        }
     }
 
     if (!g->zig_target->is_native) {