--- dietlibc-0.25/diet.c.orig	2004-06-28 13:49:18.742612936 +0200
+++ dietlibc-0.25/diet.c	2004-06-28 14:12:08.260414584 +0200
@@ -64,7 +64,7 @@
   int preprocess=0;
   int verbose=0;
   int profile=0;
-  char diethome[]=DIETHOME;
+  char *diethome;
   char platform[1000];
 #ifdef __DYN_LIB
   int shared=0;
@@ -72,7 +72,7 @@
   char* shortplatform=0;
 #ifdef WANT_SAFEGUARD
   char safeguard1[]="-include";
-  char safeguard2[]=DIETHOME "/include/dietref.h";
+  char safeguard2[1000]; /*=DIETHOME "/include/dietref.h";*/
 #endif
   const char *nostdlib="-nostdlib";
   const char *libgcc="-lgcc";
@@ -82,13 +82,29 @@
   int mangleopts=0;
   char manglebuf[1024];
 
+  /* Handle DIETHOME environment var */
+  if (!(diethome = getenv("DIETHOME")))
+    diethome = DIETHOME;
+
+  if (strlen(diethome) > 500) {
+    __write2("Environment variable DIETHOME is too long.\n");
+    return -1;
+  }
+  
+#ifdef WANT_SAFEGUARD
+  strcpy(safeguard2, diethome);
+  strcat(safeguard2, "/include/dietref.h");
+#endif
+
+  strcpy(platform, diethome);
+
 #ifdef INSTALLVERSION
-  strcpy(platform,DIETHOME "/lib-");
+  strcat(platform, "/lib-");
 #else
 #ifndef __DYN_LIB
-  strcpy(platform,DIETHOME "/bin-");
+  strcat(platform, "/bin-");
 #else
-  strcpy(platform,DIETHOME "/pic-");
+  strcat(platform, "/pic-");
 #endif
 #endif
   strcpy(dashL,"-L");