$OpenBSD: patch-gcc_gcc_c,v 1.2 2012/09/01 00:00:33 pascal Exp $ --- gcc/gcc.c.orig Mon Mar 5 21:37:05 2007 +++ gcc/gcc.c Thu Aug 30 11:24:50 2012 @@ -684,7 +684,7 @@ proper position among the other output files. */ #ifndef LINK_PIE_SPEC #ifdef HAVE_LD_PIE -#define LINK_PIE_SPEC "%{pie:-pie} " +#define LINK_PIE_SPEC "%{pie:-pie} %{p|pg|nopie:-nopie} " #else #define LINK_PIE_SPEC "%{pie:} " #endif @@ -1313,7 +1313,7 @@ translate_options (int *argcp, const char *const **arg /* Store the translation as one argv elt or as two. */ if (arg != 0 && strchr (arginfo, 'j') != 0) newv[newindex++] = concat (option_map[j].equivalent, arg, - NULL); + (void *)0); else if (arg != 0) { newv[newindex++] = option_map[j].equivalent; @@ -1642,7 +1642,7 @@ init_gcc_specs (struct obstack *obstack, const char *s "%{shared:", shared_name, "}" #endif #endif - "}}", NULL); + "}}", (void *)0); obstack_grow (obstack, buf, strlen (buf)); free (buf); @@ -1840,7 +1840,7 @@ set_spec (const char *name, const char *spec) old_spec = *(sl->ptr_spec); *(sl->ptr_spec) = ((spec[0] == '+' && ISSPACE ((unsigned char)spec[1])) - ? concat (old_spec, spec + 1, NULL) + ? concat (old_spec, spec + 1, (void *)0) : xstrdup (spec)); #ifdef DEBUG_SPECS @@ -2410,12 +2410,12 @@ for_each_path (const struct path_prefix *paths, just_multi_suffix = just_machine_suffix; if (do_multi && multilib_dir && strcmp (multilib_dir, ".") != 0) { - multi_dir = concat (multilib_dir, dir_separator_str, NULL); - multi_suffix = concat (multi_suffix, multi_dir, NULL); - just_multi_suffix = concat (just_multi_suffix, multi_dir, NULL); + multi_dir = concat (multilib_dir, dir_separator_str, (void *)0); + multi_suffix = concat (multi_suffix, multi_dir, (void *)0); + just_multi_suffix = concat (just_multi_suffix, multi_dir, (void *)0); } if (do_multi && multilib_os_dir && strcmp (multilib_os_dir, ".") != 0) - multi_os_dir = concat (multilib_os_dir, dir_separator_str, NULL); + multi_os_dir = concat (multilib_os_dir, dir_separator_str, (void *)0); while (1) { @@ -2761,8 +2761,8 @@ add_sysrooted_prefix (struct path_prefix *pprefix, con if (target_system_root) { if (target_sysroot_suffix) - prefix = concat (target_sysroot_suffix, prefix, NULL); - prefix = concat (target_system_root, prefix, NULL); + prefix = concat (target_sysroot_suffix, prefix, (void *)0); + prefix = concat (target_system_root, prefix, (void *)0); /* We have to override this because GCC's notion of sysroot moves along with GCC. */ @@ -3344,7 +3344,7 @@ process_command (int argc, const char **argv) break; new_argv0 = xmemdup (progname, baselen, baselen + concat_length (new_version, new_machine, - "-gcc-", NULL) + 1); + "-gcc-", (void *)0) + 1); strcpy (new_argv0 + baselen, new_machine); strcat (new_argv0, "-gcc-"); strcat (new_argv0, new_version); @@ -3371,7 +3371,7 @@ process_command (int argc, const char **argv) standard_bindir_prefix, standard_libexec_prefix); if (gcc_exec_prefix) - putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL)); + putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, (void *)0)); } else { @@ -3379,7 +3379,7 @@ process_command (int argc, const char **argv) GCC_EXEC_PREFIX is typically a directory name with a trailing / (which is ignored by make_relative_prefix), so append a program name. */ - char *tmp_prefix = concat (gcc_exec_prefix, "gcc", NULL); + char *tmp_prefix = concat (gcc_exec_prefix, "gcc", (void *)0); gcc_libexec_prefix = make_relative_prefix (tmp_prefix, standard_exec_prefix, standard_libexec_prefix); @@ -3426,7 +3426,7 @@ process_command (int argc, const char **argv) { strncpy (nstore, startp, endp - startp); if (endp == startp) - strcpy (nstore, concat (".", dir_separator_str, NULL)); + strcpy (nstore, concat (".", dir_separator_str, (void *)0)); else if (!IS_DIR_SEPARATOR (endp[-1])) { nstore[endp - startp] = DIR_SEPARATOR; @@ -3460,7 +3460,7 @@ process_command (int argc, const char **argv) { strncpy (nstore, startp, endp - startp); if (endp == startp) - strcpy (nstore, concat (".", dir_separator_str, NULL)); + strcpy (nstore, concat (".", dir_separator_str, (void *)0)); else if (!IS_DIR_SEPARATOR (endp[-1])) { nstore[endp - startp] = DIR_SEPARATOR; @@ -3493,7 +3493,7 @@ process_command (int argc, const char **argv) { strncpy (nstore, startp, endp - startp); if (endp == startp) - strcpy (nstore, concat (".", dir_separator_str, NULL)); + strcpy (nstore, concat (".", dir_separator_str, (void *)0)); else if (!IS_DIR_SEPARATOR (endp[-1])) { nstore[endp - startp] = DIR_SEPARATOR; @@ -3961,7 +3961,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR PREFIX_PRIORITY_LAST, 1, 0); tooldir_prefix = concat (tooldir_base_prefix, spec_machine, - dir_separator_str, NULL); + dir_separator_str, (void *)0); /* If tooldir is relative, base it on exec_prefixes. A relative tooldir lets us move the installed tree as a unit. @@ -3976,28 +3976,28 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR { char *gcc_exec_tooldir_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str, - spec_version, dir_separator_str, tooldir_prefix, NULL); + spec_version, dir_separator_str, tooldir_prefix, (void *)0); add_prefix (&exec_prefixes, concat (gcc_exec_tooldir_prefix, "bin", - dir_separator_str, NULL), + dir_separator_str, (void *)0), NULL, PREFIX_PRIORITY_LAST, 0, 0); add_prefix (&startfile_prefixes, concat (gcc_exec_tooldir_prefix, "lib", - dir_separator_str, NULL), + dir_separator_str, (void *)0), NULL, PREFIX_PRIORITY_LAST, 0, 1); } tooldir_prefix = concat (standard_exec_prefix, spec_machine, dir_separator_str, spec_version, - dir_separator_str, tooldir_prefix, NULL); + dir_separator_str, tooldir_prefix, (void *)0); } add_prefix (&exec_prefixes, - concat (tooldir_prefix, "bin", dir_separator_str, NULL), + concat (tooldir_prefix, "bin", dir_separator_str, (void *)0), "BINUTILS", PREFIX_PRIORITY_LAST, 0, 0); add_prefix (&startfile_prefixes, - concat (tooldir_prefix, "lib", dir_separator_str, NULL), + concat (tooldir_prefix, "lib", dir_separator_str, (void *)0), "BINUTILS", PREFIX_PRIORITY_LAST, 0, 1); #if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS) @@ -4121,7 +4121,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR { /* POSIX allows separation of -l and the lib arg; canonicalize by concatenating -l with its arg */ infiles[n_infiles].language = "*"; - infiles[n_infiles++].name = concat ("-l", argv[++i], NULL); + infiles[n_infiles++].name = concat ("-l", argv[++i], (void *)0); } else if (strncmp (argv[i], "-l", 2) == 0) { @@ -6202,8 +6202,8 @@ main (int argc, char **argv) /* Read specs from a file if there is one. */ machine_suffix = concat (spec_machine, dir_separator_str, - spec_version, dir_separator_str, NULL); - just_machine_suffix = concat (spec_machine, dir_separator_str, NULL); + spec_version, dir_separator_str, (void *)0); + just_machine_suffix = concat (spec_machine, dir_separator_str, (void *)0); specs_file = find_a_file (&startfile_prefixes, "specs", R_OK, true); /* Read the specs file unless it is a default one. */ @@ -6317,12 +6317,12 @@ main (int argc, char **argv) if (gcc_exec_prefix) add_prefix (&startfile_prefixes, concat (gcc_exec_prefix, machine_suffix, - standard_startfile_prefix, NULL), + standard_startfile_prefix, (void *)0), NULL, PREFIX_PRIORITY_LAST, 0, 1); add_prefix (&startfile_prefixes, concat (standard_exec_prefix, machine_suffix, - standard_startfile_prefix, NULL), + standard_startfile_prefix, (void *)0), NULL, PREFIX_PRIORITY_LAST, 0, 1); } @@ -6348,7 +6348,7 @@ main (int argc, char **argv) /* If we have a GCC_EXEC_PREFIX envvar, modify it for cpp's sake. */ if (gcc_exec_prefix) gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str, - spec_version, dir_separator_str, NULL); + spec_version, dir_separator_str, (void *)0); /* Now we have the specs. Set the `valid' bits for switches that match anything in any spec. */