summaryrefslogtreecommitdiff
path: root/print/ghostscript8
diff options
context:
space:
mode:
authorAndreas Klemm <andreas@FreeBSD.org>2000-08-24 20:44:58 +0000
committerAndreas Klemm <andreas@FreeBSD.org>2000-08-24 20:44:58 +0000
commit9f1c27c0ecdf94f3ab40ac68fbccd02ae789b3d5 (patch)
tree7be0757e7439f79bb73fbe041ccd2ce4005fed2e /print/ghostscript8
parent The software's own genarch program took several HOURS on (diff)
forgot the two patches, sorry.
PR: 20038 Submitted by: Mikhail Teterin <mi@aldan.algebra.com>
Diffstat (limited to 'print/ghostscript8')
-rw-r--r--print/ghostscript8/files/patch-ac87
-rw-r--r--print/ghostscript8/files/patch-ad15
2 files changed, 102 insertions, 0 deletions
diff --git a/print/ghostscript8/files/patch-ac b/print/ghostscript8/files/patch-ac
new file mode 100644
index 000000000000..319922485be0
--- /dev/null
+++ b/print/ghostscript8/files/patch-ac
@@ -0,0 +1,87 @@
+begin patches/patch-ac:
+This patch removes the code that tries to figure out the cache size of
+the host. The algorithm may very well fail under some circumstances --
+it makes too many assumptions about the cache behaviour, but most
+importantly, the figured out values ARE NOT USED anywhere in the
+ghostscript code anymore.
+
+ -mi
+
+--- src/genarch.c Thu Mar 9 03:40:41 2000
++++ src/genarch.c Wed Jul 19 09:37:30 2000
+@@ -43,11 +42,0 @@
+-private clock_t
+-time_clear(char *buf, int bsize, int nreps)
+-{
+- clock_t t = clock();
+- int i;
+-
+- for (i = 0; i < nreps; ++i)
+- memset(buf, 0, bsize);
+- return clock() - t;
+-}
+-
+@@ -181,63 +170,2 @@
+ #undef PRINT_MAX
+-
+- section(f, "Cache sizes");
+-
+- /*
+- * Determine the primary and secondary cache sizes by looking for a
+- * non-linearity in the time required to fill blocks with memset.
+- */
+- {
+-#define MAX_BLOCK (1 << 20)
+- static char buf[MAX_BLOCK];
+- int bsize = 1 << 10;
+- int nreps = 1;
+- clock_t t = 0;
+- clock_t t_eps;
+-
+- /*
+- * Increase the number of repetitions until the time is
+- * long enough to exceed the likely uncertainty.
+- */
+-
+- while ((t = time_clear(buf, bsize, nreps)) == 0)
+- nreps <<= 1;
+- t_eps = t;
+- while ((t = time_clear(buf, bsize, nreps)) < t_eps * 10)
+- nreps <<= 1;
+-
+- /*
+- * Increase the block size until the time jumps non-linearly.
+- */
+- for (; bsize <= MAX_BLOCK;) {
+- clock_t dt = time_clear(buf, bsize, nreps);
+-
+- if (dt > t + (t >> 1)) {
+- t = dt;
+- break;
+- }
+- bsize <<= 1;
+- nreps >>= 1;
+- if (nreps == 0)
+- nreps = 1, t <<= 1;
+- }
+- define_int(f, "ARCH_CACHE1_SIZE", bsize >> 1);
+- /*
+- * Do the same thing a second time for the secondary cache.
+- */
+- if (nreps > 1)
+- nreps >>= 1, t >>= 1;
+- for (; bsize <= MAX_BLOCK;) {
+- clock_t dt = time_clear(buf, bsize, nreps);
+-
+- if (dt > t * 1.25) {
+- t = dt;
+- break;
+- }
+- bsize <<= 1;
+- nreps >>= 1;
+- if (nreps == 0)
+- nreps = 1, t <<= 1;
+- }
+- define_int(f, "ARCH_CACHE2_SIZE", bsize >> 1);
+- }
+
diff --git a/print/ghostscript8/files/patch-ad b/print/ghostscript8/files/patch-ad
new file mode 100644
index 000000000000..943abecaa755
--- /dev/null
+++ b/print/ghostscript8/files/patch-ad
@@ -0,0 +1,15 @@
+This patch replaces the use of the dangerous mktemp/fopen combo
+with the safe mkstemp/fdopen.
+
+ -mi
+
+--- src/gp_unifs.c Thu Mar 9 03:40:41 2000
++++ src/gp_unifs.c Wed Jul 19 09:56:42 2000
+@@ -71,4 +71,5 @@
+ strcat(fname, "XXXXXX");
+- mktemp(fname);
+- return fopen(fname, mode);
++ len = mkstemp(fname); /* reuse the no longer needed variable */
++ if (len == -1) return NULL;
++ return fdopen(len, mode);
+ }