Author: Patrick McDermott Subject: Add another search directory to gcc driver diff -Naurp src.orig/gcc/gcc.c src/gcc/gcc.c --- src.orig/gcc/gcc.c 2018-02-09 01:44:06.000000000 -0500 +++ src/gcc/gcc.c 2019-05-02 19:28:55.475950656 -0400 @@ -1496,6 +1496,8 @@ static const char *const standard_libexe static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; +static const char *const user_tooldir_prefix = USER_TOOLDIR_PREFIX; + /* For native compilers, these are well-known paths containing components that may be provided by the system. For cross compilers, these paths are not used. */ @@ -4304,6 +4306,16 @@ process_command (unsigned int decoded_op PREFIX_PRIORITY_LAST, 0, 0); } + add_prefix (&exec_prefixes, + concat (user_tooldir_prefix, dir_separator_str, NULL), + 0, PREFIX_PRIORITY_LAST, 0, 0); + add_prefix (&startfile_prefixes, + concat (user_tooldir_prefix, dir_separator_str, NULL), + 0, PREFIX_PRIORITY_LAST, 0, 0); + add_prefix (&include_prefixes, + concat (user_tooldir_prefix, dir_separator_str, NULL), + 0, PREFIX_PRIORITY_LAST, 0, 0); + /* COMPILER_PATH and LIBRARY_PATH have values that are lists of directory names with colons. */ diff -Naurp src.orig/gcc/Makefile.in src/gcc/Makefile.in --- src.orig/gcc/Makefile.in 2018-03-09 10:24:44.000000000 -0500 +++ src/gcc/Makefile.in 2019-05-02 19:05:56.069075629 -0400 @@ -666,6 +666,7 @@ gcc_tooldir = @gcc_tooldir@ build_tooldir = $(exec_prefix)/$(target_noncanonical) # Directory in which the compiler finds target-independent g++ includes. gcc_gxx_include_dir = @gcc_gxx_include_dir@ +gcc_gxx_tool_include_dir = $(gcc_gxx_include_dir)/$(target_noncanonical) gcc_gxx_include_dir_add_sysroot = @gcc_gxx_include_dir_add_sysroot@ # Directory to search for site-specific includes. local_includedir = $(local_prefix)/include @@ -2186,6 +2187,7 @@ DRIVER_DEFINES = \ -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \ -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \ -DTOOLDIR_BASE_PREFIX=\"$(libsubdir_to_prefix)$(prefix_to_exec_prefix)\" \ + -DUSER_TOOLDIR_PREFIX=\"$(user_tooldir_prefix)\" \ -DACCEL_DIR_SUFFIX=\"$(accel_dir_suffix)\" \ @TARGET_SYSTEM_ROOT_DEFINE@ \ $(VALGRIND_DRIVER_DEFINES) \ @@ -2873,7 +2875,7 @@ PREPROCESSOR_DEFINES = \ -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ - -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \ + -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_tool_include_dir)\" \ -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ diff -Naurp src.orig/Makefile.def src/Makefile.def --- src.orig/Makefile.def 2017-11-28 05:35:37.000000000 -0500 +++ src/Makefile.def 2019-05-02 19:23:36.588174507 -0400 @@ -229,6 +229,8 @@ flags_to_pass = { flag= sysconfdir ; }; flags_to_pass = { flag= tooldir ; }; flags_to_pass = { flag= build_tooldir ; }; flags_to_pass = { flag= target_alias ; }; +flags_to_pass = { flag= user_tooldir_prefix ; }; +flags_to_pass = { flag= gcc_gxx_tool_include_dir ; }; // Build tools flags_to_pass = { flag= AWK ; }; diff -Naurp src.orig/Makefile.in src/Makefile.in --- src.orig/Makefile.in 2017-11-28 05:35:37.000000000 -0500 +++ src/Makefile.in 2019-05-02 19:24:29.804137725 -0400 @@ -737,6 +737,8 @@ BASE_FLAGS_TO_PASS = \ "tooldir=$(tooldir)" \ "build_tooldir=$(build_tooldir)" \ "target_alias=$(target_alias)" \ + "user_tooldir_prefix=$(user_tooldir_prefix)" \ + "gcc_gxx_tool_include_dir=$(gcc_gxx_tool_include_dir)" \ "AWK=$(AWK)" \ "BISON=$(BISON)" \ "CC_FOR_BUILD=$(CC_FOR_BUILD)" \