diff -Naurp dietlibc-0.33.20120825/diet.c~ dietlibc-0.33.20120825/diet.c --- diet.c~ 2013-11-03 18:56:45.416768005 +0100 +++ diet.c 2013-11-03 18:59:06.785762840 +0100 @@ -71,6 +71,7 @@ int main(int argc,char *argv[]) { int shared=0; #endif char* shortplatform=0; + char* shortplatform32=0; #ifdef WANT_SAFEGUARD char safeguard1[]="-include"; char* safeguard2; @@ -187,11 +188,26 @@ int main(int argc,char *argv[]) { shortplatform="parisc"; #endif #ifdef __x86_64__ - shortplatform=(m==32?"i386":(m==33?"x32":"x86_64")); + shortplatform="x86_64"; + shortplatform32="i386"; #endif #ifdef __ia64__ shortplatform="ia64"; #endif + /* Check for -m32 on biarch platforms */ + /* NOTE: though it's wrong to pass both -m32/-m64 flags to + * gcc at once, we pick up the last one only */ + if (shortplatform32) { + int i, m64=1; + for (i=0; i