flee@dictionopolis.cs.psu.edu (Felix Lee) (12/12/90)
12.8k is a little large. The changes below will reduce the size to
2.6k. Apply the patch below to src/icont/ixhdr.c, and add the
following to config/unix/sun4/define.h:
#define MaxHdr 2688
#define UseFakeFunctionsInHdr
UseFakeFunctionsInHdr will replace some standard C library functions
with smaller and simpler versions in ixhdr.c.
This may have benefit for systems other than Sun-4s; I haven't tried.
The real trick is to reduce the header to 20 bytes.
--
Felix Lee flee@cs.psu.edu
*** /tmp/,RCSt1a04604 Tue Dec 11 16:30:01 1990
--- ixhdr.c Tue Sep 11 19:22:57 1990
***************
*** 30,35 ****
--- 30,61 ----
#define Iconx IconxPath
#endif /* Iconx */
+ #ifdef UseFakeFunctionsInHdr
+ /* fake functions to reduce executable size. */
+ novalue exit(x) int x; { _exit(x); }
+
+ /* small, inefficient strcpy(). */
+ char * strcpy(a, b) register char * a; register char * b;
+ {
+ while (*a++ = *b++) ;
+ return a; /* note! this is incompatible with real strcpy */
+ }
+ /* small, inefficient strlen(). */
+ int strlen(s) char * s;
+ {
+ register char * p;
+ while (*p++) ;
+ return p - s;
+ }
+ /* small, inefficient strcat(). */
+ char * strcat(a, b) register char * a; register char * b;
+ {
+ while (*a++) ;
+ while (*a++ = *b++) ;
+ return a; /* note! this is incompatible with real strcat */
+ }
+ #endif UseFakeFunctionsInHdr
+
novalue main(argc, argv)
int argc;
char **argv;