ref: 9d46360c9d83fa95f42f1eebbad49ecd9281fb0d
parent: 1d3644a1684bd191f3a36568d94c2587c2d9f24f
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Apr 10 21:26:36 EDT 2020
backout the gethunk() again, as that breaks the assemblers the assemblers share gethunk() cc/macbody but are compiled without compat.c, so calls such as getenv() trigger malloc() which does its own sbrk() calls, breaking the continuity of the hunk. so this change needs another revision. until then, this is backed out.
--- a/sys/src/cmd/1l/obj.c
+++ b/sys/src/cmd/1l/obj.c
@@ -1099,11 +1099,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/2l/obj.c
+++ b/sys/src/cmd/2l/obj.c
@@ -1121,11 +1121,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/5l/obj.c
+++ b/sys/src/cmd/5l/obj.c
@@ -1152,11 +1152,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/6l/obj.c
+++ b/sys/src/cmd/6l/obj.c
@@ -1222,11 +1222,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/7l/obj.c
+++ b/sys/src/cmd/7l/obj.c
@@ -1178,11 +1178,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/8l/obj.c
+++ b/sys/src/cmd/8l/obj.c
@@ -1196,11 +1196,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/cc/macbody
+++ b/sys/src/cmd/cc/macbody
@@ -862,10 +862,7 @@
yyerror("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}
--- a/sys/src/cmd/kl/l.h
+++ b/sys/src/cmd/kl/l.h
@@ -241,7 +241,7 @@
EXTERN long staticgen;
EXTERN Prog* textp;
EXTERN long textsize;
-EXTERN uintptr thunk;
+EXTERN uintptr tothunk;
EXTERN char xcmp[C_NCLASS][C_NCLASS];
EXTERN int version;
EXTERN Prog zprg;
--- a/sys/src/cmd/kl/obj.c
+++ b/sys/src/cmd/kl/obj.c
@@ -194,7 +194,7 @@
out:
if(debug['v']) {
Bprint(&bso, "%5.2f cpu time\n", cputime());
- Bprint(&bso, "%zud memory used\n", thunk);
+ Bprint(&bso, "%zud memory used\n", tothunk);
Bprint(&bso, "%d sizeof adr\n", sizeof(Adr));
Bprint(&bso, "%d sizeof prog\n", sizeof(Prog));
}
@@ -983,9 +983,9 @@
long nh;
nh = NHUNK;
- if(thunk >= 5L*NHUNK) {
+ if(tothunk >= 5L*NHUNK) {
nh = 5L*NHUNK;
- if(thunk >= 25L*NHUNK)
+ if(tothunk >= 25L*NHUNK)
nh = 25L*NHUNK;
}
h = mysbrk(nh);
@@ -993,12 +993,10 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
- thunk += nh;
+
+ hunk = h;
+ nhunk = nh;
+ tothunk += nh;
}
void
--- a/sys/src/cmd/ql/l.h
+++ b/sys/src/cmd/ql/l.h
@@ -234,7 +234,7 @@
EXTERN long staticgen;
EXTERN Prog* textp;
EXTERN long textsize;
-EXTERN uintptr thunk;
+EXTERN uintptr tothunk;
EXTERN char xcmp[C_NCLASS][C_NCLASS];
EXTERN int version;
EXTERN Prog zprg;
--- a/sys/src/cmd/ql/obj.c
+++ b/sys/src/cmd/ql/obj.c
@@ -273,7 +273,7 @@
out:
if(debug['v']) {
Bprint(&bso, "%5.2f cpu time\n", cputime());
- Bprint(&bso, "%zud memory used\n", thunk);
+ Bprint(&bso, "%zud memory used\n", tothunk);
Bprint(&bso, "%d sizeof adr\n", sizeof(Adr));
Bprint(&bso, "%d sizeof prog\n", sizeof(Prog));
}
@@ -1117,9 +1117,9 @@
long nh;
nh = NHUNK;
- if(thunk >= 5L*NHUNK) {
+ if(tothunk >= 5L*NHUNK) {
nh = 5L*NHUNK;
- if(thunk >= 25L*NHUNK)
+ if(tothunk >= 25L*NHUNK)
nh = 25L*NHUNK;
}
h = mysbrk(nh);
@@ -1127,12 +1127,10 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
- thunk += nh;
+
+ hunk = h;
+ nhunk = nh;
+ tothunk += nh;
}
void
--- a/sys/src/cmd/vl/obj.c
+++ b/sys/src/cmd/vl/obj.c
@@ -1075,11 +1075,8 @@
diag("out of memory");
errorexit();
}
- if(nhunk == 0)
- hunk = h;
- else
- nh += (h - hunk) - nhunk;
- nhunk += nh;
+ hunk = h;
+ nhunk = nh;
thunk += nh;
}