--- dietlibc-0.34/diet.c.orig 2020-04-22 01:00:18.176151567 +0200 +++ dietlibc-0.34/diet.c 2020-04-22 01:02:12.779007194 +0200 @@ -155,6 +155,14 @@ else if (!strncmp(shortplatform, "amd64", 5)) strcpy(shortplatform, "x86_64"); else if (!strncmp(shortplatform, "armv", 4)) strcpy(shortplatform, "arm"); else if (!strncmp(shortplatform, "sparcv", 6)) strcpy(shortplatform, "sparc"); + if (!strncmp(shortplatform, "x86_64", 6) && (m==32)) strcpy(shortplatform, "i386"); + else if (!strncmp(shortplatform, "i386", 4) && (m==64)) strcpy(shortplatform, "x86_64"); + else if (!strncmp(shortplatform, "sparc64", 7) && (m==32)) strcpy(shortplatform, "sparc"); + else if (!strncmp(shortplatform, "sparc", 5) && (m==64)) strcpy(shortplatform, "sparc64"); + else if (!strncmp(shortplatform, "ppc64", 5) && (m==32)) strcpy(shortplatform, "ppc"); + else if (!strncmp(shortplatform, "ppc", 3) && (m==64)) strcpy(shortplatform, "ppc64"); + else if (!strncmp(shortplatform, "s390x", 5) && (m==32)) strcpy(shortplatform, "s390"); + else if (!strncmp(shortplatform, "s390", 4) && (m==64)) strcpy(shortplatform, "s390x"); if (!strncmp(shortplatform, "powerpc", 7)) { shortplatform[0] = shortplatform[1] = 'p'; shortplatform[2] = 'c'; memmove(&shortplatform[3], &shortplatform[7], strlen(&shortplatform[7]) + 1); @@ -168,23 +176,23 @@ } else { #ifdef __sparc__ #ifdef __arch64__ - shortplatform="sparc64"; + shortplatform=(m==32?"sparc":"sparc64"); #else - shortplatform="sparc"; + shortplatform=(m==64?"sparc64":"sparc"); #endif #endif #ifdef __powerpc__ - shortplatform="ppc"; + shortplatform=(m==64?"ppc64":"ppc"); #endif #ifdef __powerpc64__ #ifdef __LITTLE_ENDIAN__ shortplatform="ppc64le"; #else - shortplatform="ppc64"; + shortplatform=(m==32?"ppc":"ppc64"); #endif #endif #ifdef __i386__ - shortplatform="i386"; + shortplatform=(m==64?"x86_64":"i386"); #endif #ifdef __alpha__ shortplatform="alpha";