goos garch
SVN=121367
diff --git a/src/cmd/6l/obj.c b/src/cmd/6l/obj.c
index 0e5dafe..fec3a60 100644
--- a/src/cmd/6l/obj.c
+++ b/src/cmd/6l/obj.c
@@ -60,7 +60,7 @@
n = Bread(b, buf1, 5);
if(n == 5 && (buf1[2] == 1 && buf1[3] == '<' || buf1[3] == 1 && buf1[4] == '<'))
v = 1; /* good enough for our purposes */
- else{
+ else {
Bseek(b, 0, 0);
n = Bread(b, buf2, SARMAG);
v = n == SARMAG && strncmp(buf2, ARMAG, SARMAG) == 0;
@@ -347,22 +347,27 @@
lastp = firstp;
if(INITENTRY == nil) {
- INITENTRY = "_rt0";
- a = mal(strlen(INITENTRY)+strlen(goarch)+strlen(goos)+10);
- strcpy(a, INITENTRY);
- strcat(a, "_");
- strcat(a, goarch);
- strcat(a, "_");
- strcat(a, goos);
- INITENTRY = a;
+ INITENTRY = mal(strlen(goarch)+strlen(goos)+10);
+ sprint(INITENTRY, "_rt0_%s_%s", goarch, goos);
}
-
lookup(INITENTRY, 0)->type = SXREF;
+ if(!debug['l']) {
+ a = mal(strlen(goroot)+strlen(goarch)+strlen(goos)+20);
+ sprint(a, "%s/lib/rt0_%s_%s.6", goroot, goarch, goos);
+ objfile(a);
+ }
+
while(*argv)
objfile(*argv++);
- if(!debug['l'])
+
+ if(!debug['l']) {
loadlib();
+ a = mal(strlen(goroot)+strlen(goarch)+20);
+ sprint(a, "%s/lib/rt_%s.6", goroot, goarch);
+ objfile(a);
+ }
+
firstp = firstp->link;
if(firstp == P)
errorexit();