--- 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");