| /* Check that --sysroot is applied to open(2). | 
 | #sim: --sysroot=@exedir@ | 
 |  | 
 |    We assume, with EXE being the name of the executable: | 
 |    - The simulator executes with cwd the same directory where the executable | 
 |      is located (so argv[0] contains a plain filename without directory | 
 |      components). | 
 |    - There's no /EXE on the host file system.  */ | 
 |  | 
 | #include <stdio.h> | 
 | #include <stdlib.h> | 
 | #include <string.h> | 
 | #include <errno.h> | 
 | int main (int argc, char *argv[]) | 
 | { | 
 |   char *fnam = argv[0]; | 
 |   FILE *f; | 
 |   if (argv[0][0] != '/') | 
 |     { | 
 |       fnam = malloc (strlen (argv[0]) + 2); | 
 |       if (fnam == NULL) | 
 | 	abort (); | 
 |       strcpy (fnam, "/"); | 
 |       strcat (fnam, argv[0]); | 
 |     } | 
 |  | 
 |   f = fopen (fnam, "rb"); | 
 |   if (f == NULL) | 
 |     abort (); | 
 |   fclose(f); | 
 |  | 
 |   /* Cover another execution path.  */ | 
 |   if (fopen ("/nonexistent", "rb") != NULL | 
 |       || errno != ENOENT) | 
 |     abort (); | 
 |   printf ("pass\n"); | 
 |   return 0; | 
 | } |