- /* Child */
- if (pid == 0) {
- void *ctx = talloc_new (NULL);
- char *lib_path;
-
- lib_path = find_libfips_path (ctx, argv[0]);
-
- setenv ("LD_PRELOAD", lib_path, 1);
-
- talloc_free (ctx);
-
- execvp (argv[0], argv);
- fprintf (stderr, "Failed to execute:");
- for (i = 0; argv[i]; i++) {
- fprintf (stderr, " %s", argv[i]);
- }
- fprintf (stderr, "\n");
- exit (1);
- }
-
- /* Parent */
- waitpid (pid, &status, 0);
- if (WIFEXITED (status)) {
- return (WEXITSTATUS (status));
- }
- if (WIFSIGNALED (status)) {
- fprintf (stderr, "Child terminated by signal %d\n",
- WTERMSIG (status));
- }
- return 1;
+ fprintf(stderr, "\nIt's possible fips was not compiled with support for %d-bit applications.\n", bits);
+ fprintf(stderr, "Perhaps you need to install gcc-multilib and re-compile fips?\n");
+ exit (1);