When a (bash) environment variable TMP is set to a file with execution rights 0755, gcc aborts with an internal error. E.g.:
# -- bash shell -------------------------------------------------------------- $ uname -a CYGWIN_NT-5.1 DF8JLP0J 1.5.5(0.94/3/2) 2003-09-20 16:31 i686 unknown unknown Cygwin $ gcc --version gcc (GCC) 3.3.1 (cygming special) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ cat a.c #include <stdlib.h> #include <stdio.h> int main(int argc , char *argv[]){ printf("Ok.\n"); return 0; } $ unset TMP $ gcc -save-temps a.c $ touch /tmp/file.txt $ export TMP=/tmp/file.txt $ gcc -save-temps a.c $ chmod u+x /tmp/file.txt $ gcc -save-temps a.c $ chmod 0755 /tmp/file.txt $ gcc -save-temps a.c gcc: Internal error: Aborted (program collect2) Please submit a full bug report. See <URL:http://gcc.gnu.org/bugs.html> for instructions. ## ---------------------------------------------------------- The MAN page does not note a dependency to TMP (only TMPDIR) ist listed. -- Summary: Environment variable TMP may yield gcc: abort with internal error Product: gcc Version: 3.3.1 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: m at verified dot de CC: gcc-bugs at gcc dot gnu dot org,m at verified dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19089