Index: head/devel/aarch64-none-elf-gcc/Makefile =================================================================== --- head/devel/aarch64-none-elf-gcc/Makefile +++ head/devel/aarch64-none-elf-gcc/Makefile @@ -1,22 +1,99 @@ # $FreeBSD$ -PKGNAMEPREFIX= aarch64-none-elf- +PORTNAME= gcc +PORTVERSION= 6.4.0 +PORTREVISION= 7 +CATEGORIES= devel +MASTER_SITES= GCC +PKGNAMEPREFIX?= aarch64-none-elf- + +MAINTAINER= ports@FreeBSD.org COMMENT= GNU Compiler Collection for bare metal arm cross-development -GCC_TARGET= aarch64-none-elf -PLIST= ${.CURDIR}/pkg-plist +LICENSE= GPLv3 GPLv3RLE +LICENSE_COMB= multi + +BROKEN_mips= configure: error: cannot compute suffix of object files: cannot compile +BROKEN_mips64= configure: error: cannot compute suffix of object files: cannot compile + +LIB_DEPENDS= libgmp.so:math/gmp \ + libmpfr.so:math/mpfr \ + libmpc.so:math/mpc +BUILD_DEPENDS= ${GCC_TARGET}-as:devel/${PKGNAMEPREFIX}binutils +RUN_DEPENDS= ${GCC_TARGET}-as:devel/${PKGNAMEPREFIX}binutils + +USES= gmake iconv libtool tar:xz makeinfo compiler:c++11-lang + +PLIST_SUB= TARGETARCH=${PKGNAMEPREFIX:C/-//g} \ + OPSYS=${OPSYS:tl} \ + GCC_TARGET=${GCC_TARGET} \ + GCC_VERSION=${PORTVERSION} + +TARGETARCH= ${PKGNAMEPREFIX:C/-//g} + +GCC_TARGET?= aarch64-none-elf + +GNU_CONFIGURE= yes +CONFIGURE_OUTSOURCE= yes +CONFIGURE_ARGS+=--target=${GCC_TARGET} --disable-nls --enable-languages=c,c++ \ + --enable-gnu-indirect-function \ + --without-headers \ + --with-gmp=${LOCALBASE} \ + --with-pkgversion="FreeBSD Ports Collection for ${PKGNAMEPREFIX:C/-//g}" \ + --with-system-zlib \ + --with-gxx-include-dir=/usr/include/c++/v1/ \ + --with-sysroot="/" \ + --with-as=${LOCALBASE}/bin/${GCC_TARGET}-as \ + --with-ld=${LOCALBASE}/bin/${GCC_TARGET}-ld + # U-Boot requires libgcc, crossbuild and install it along with the compiler. ALL_TARGET= all-gcc all-target-libgcc INSTALL_TARGET= install-gcc install-target-libgcc -BROKEN_mips= configure: error: cannot compute suffix of object files: cannot compile -BROKEN_mips64= configure: error: cannot compute suffix of object files: cannot compile +.include -MASTERDIR= ${.CURDIR}/../powerpc64-gcc +post-patch: + @${REINPLACE_CMD} -e '/LIBSTDCXX/ s/stdc\+\+/c\+\+/g ' \ + ${WRKSRC}//gcc/cp/g++spec.c + @${REINPLACE_CMD} -e '/LOCAL_INCLUDE_DIR/ d ' \ + ${WRKSRC}//gcc/Makefile.in -.include "${MASTERDIR}/Makefile" +.if ${ARCH} == "amd64" +CONFIGURE_TARGET= x86_64-unknown-${OPSYS:tl}${OSREL} +.else +CONFIGURE_TARGET= ${ARCH}-unknown-${OPSYS:tl}${OSREL} +.endif # The following is required for clang to bootstrap gcc. .if ${COMPILER_TYPE} == clang MAKE_ARGS+= CXXFLAGS=-fbracket-depth=512 .endif + +.if ${ARCH} == "aarch64" +PLIST_SUB+= PLUGINS="@comment plugin does not build" +.else +PLIST_SUB+= PLUGINS="" +.endif + +post-install: +.for f in cpp gcov gcov-dump gcov-tool + @if [ -f ${STAGEDIR}${PREFIX}/bin/$f ] ; then \ + ${MV} ${STAGEDIR}${PREFIX}/bin/$f \ + ${STAGEDIR}${PREFIX}/bin/${GCC_TARGET}-$f ; \ + fi +.endfor +.for f in c++ cpp g++ gcc gcc-ar gcc-nm gcc-ranlib gcov gcov-dump gcov-tool + @if [ ! -f ${STAGEDIR}${PREFIX}/man/man1/${GCC_TARGET}-$f.1 ] ; then \ + if [ -f ${STAGEDIR}${PREFIX}/man/man1/$f.1 ] ; then \ + ${CP} ${STAGEDIR}${PREFIX}/man/man1/$f.1 \ + ${STAGEDIR}${PREFIX}/man/man1/${GCC_TARGET}-$f.1 ; \ + fi \ + fi + @${RM} ${STAGEDIR}${PREFIX}/bin/$f + @${RM} ${STAGEDIR}${PREFIX}/man/man1/$f.1 + @${RM} ${STAGEDIR}${PREFIX}/man/man1/$f.1.gz +.endfor + @${RM} ${STAGEDIR}${PREFIX}/share/info/* + @${RM} ${STAGEDIR}${PREFIX}/man/man7/* + +.include Index: head/devel/aarch64-none-elf-gcc/distinfo =================================================================== --- head/devel/aarch64-none-elf-gcc/distinfo +++ head/devel/aarch64-none-elf-gcc/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1514072608 +SHA256 (gcc-6.4.0.tar.xz) = 850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 +SIZE (gcc-6.4.0.tar.xz) = 76156220 Index: head/devel/aarch64-none-elf-gcc/pkg-descr =================================================================== --- head/devel/aarch64-none-elf-gcc/pkg-descr +++ head/devel/aarch64-none-elf-gcc/pkg-descr @@ -0,0 +1,4 @@ +GCC, the GNU Compiler Collection supporting C and C++ for arm bare metal +crossbuilding. + +WWW: http://gcc.gnu.org/ Index: head/devel/arm-none-eabi-gcc/Makefile =================================================================== --- head/devel/arm-none-eabi-gcc/Makefile +++ head/devel/arm-none-eabi-gcc/Makefile @@ -1,26 +1,13 @@ # $FreeBSD$ PKGNAMEPREFIX= arm-none-eabi- -COMMENT= GNU Compiler Collection for bare metal arm cross-development GCC_TARGET= arm-none-eabi PLIST= ${.CURDIR}/pkg-plist -# U-Boot requires libgcc, crossbuild and install it along with the compiler. -ALL_TARGET= all-gcc all-target-libgcc -INSTALL_TARGET= install-gcc install-target-libgcc - # libstdcxx won't build, but we don't need it or multiple float-abi libs. CONFIGURE_ARGS= --disable-libstdcxx \ --disable-multilib -BROKEN_mips= configure: error: cannot compute suffix of object files: cannot compile -BROKEN_mips64= configure: error: cannot compute suffix of object files: cannot compile +MASTERDIR= ${.CURDIR}/../aarch64-none-elf-gcc -MASTERDIR= ${.CURDIR}/../powerpc64-gcc - .include "${MASTERDIR}/Makefile" - -# The following is required for clang to bootstrap gcc. -.if ${COMPILER_TYPE} == clang -MAKE_ARGS+= CXXFLAGS=-fbracket-depth=512 -.endif Index: head/devel/powerpc64-gcc/Makefile =================================================================== --- head/devel/powerpc64-gcc/Makefile +++ head/devel/powerpc64-gcc/Makefile @@ -27,18 +27,14 @@ TARGETARCH= ${PKGNAMEPREFIX:C/-//g} -.if empty(GCC_TARGET) -# We are building for a FreeBSD target GCC_TARGET= ${PKGNAMEPREFIX:S/amd64/x86_64/}unknown-${OPSYS:tl}${OSREL} -EXTRA_PATCHES+= ${FILESDIR}/freebsd-format-extensions \ - ${FILESDIR}/freebsd-libdir -.endif BU_PREFIX?= ${GCC_TARGET} GNU_CONFIGURE= yes CONFIGURE_OUTSOURCE= yes CONFIGURE_ARGS+=--target=${GCC_TARGET} --disable-nls --enable-languages=c,c++ \ --enable-gnu-indirect-function \ + --enable-initfini-array \ --without-headers \ --with-gmp=${LOCALBASE} \ --with-pkgversion="FreeBSD Ports Collection for ${PKGNAMEPREFIX:C/-//g}" \ @@ -48,16 +44,11 @@ --with-as=${LOCALBASE}/bin/${BU_PREFIX}-as \ --with-ld=${LOCALBASE}/bin/${BU_PREFIX}-ld -ALL_TARGET?= all-gcc -INSTALL_TARGET?= install-gcc +ALL_TARGET= all-gcc +INSTALL_TARGET= install-gcc -.include .include -.if ${GCC_TARGET:M*${OPSYS:tl}*} != "" -CONFIGURE_ARGS+= --enable-initfini-array -.endif - post-patch: @${REINPLACE_CMD} -e '/LIBSTDCXX/ s/stdc\+\+/c\+\+/g ' \ ${WRKSRC}//gcc/cp/g++spec.c @@ -102,9 +93,7 @@ .endfor @${RM} ${STAGEDIR}${PREFIX}/share/info/* @${RM} ${STAGEDIR}${PREFIX}/man/man7/* -.if empty(PKGNAMEPREFIX:M*-*-) @${RM} -r ${STAGEDIR}${PREFIX}/lib/gcc/${GCC_TARGET}/${PORTVERSION}/include-fixed -.endif .if ${TARGETARCH} == "amd64" || ${TARGETARCH} == "i386" # Conflicts with sys/x86/include/float.h ${RM} ${STAGEDIR}${PREFIX}/lib/gcc/${GCC_TARGET}/${PORTVERSION}/include/float.h Index: head/devel/powerpc64-gcc/files/freebsd-format-extensions =================================================================== --- head/devel/powerpc64-gcc/files/freebsd-format-extensions +++ head/devel/powerpc64-gcc/files/freebsd-format-extensions @@ -1,117 +0,0 @@ -Index: gcc/c-family/c-format.c -=================================================================== ---- gcc/c-family/c-format.c (revision 216017) -+++ gcc/c-family/c-format.c (working copy) -@@ -622,6 +622,26 @@ - { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } - }; - -+static const format_char_info fbsd_ext_char_info = -+{ NULL, 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "cR", NULL }; -+ -+static const format_char_info fbsd_print_char_table[] = -+{ -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "*"); -+ which produces: reg=3 -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", &fbsd_ext_char_info }, -+ { "b", 0, STD_EXT, { T89_I, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "", &fbsd_ext_char_info }, -+ { "ry", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i", NULL }, -+ { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } -+}; -+ - static const format_char_info asm_fprintf_char_table[] = - { - /* C89 conversion specifiers. */ -@@ -872,6 +892,12 @@ - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', 0, - NULL, NULL -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK|FMT_FLAG_NULL_FORMAT_OK, -+ 'w', 0, 'p', 0, 'L', 0, -+ &integer_type_node, &integer_type_node - } - }; - -@@ -1426,6 +1452,9 @@ - - if (integer_zerop (format_tree)) - { -+ if (!(format_types[info->format_type].flags & FMT_FLAG_NULL_FORMAT_OK)) -+ warning (OPT_Wformat_, "null format string"); -+ - /* Skip to first argument to check, so we can see if this format - has any arguments (it shouldn't). */ - while (arg_num + 1 < info->first_arg_num) -@@ -1926,6 +1955,14 @@ - while (fli->name != 0 - && strncmp (fli->name, format_chars, strlen (fli->name))) - fli++; -+ /* -+ * Make sure FreeBSD's D format char takes preference -+ * over new DD length specifier if FreeBSD format -+ * extensions are requested. -+ */ -+ if (fli->index == FMT_LEN_D && flag_format_extensions -+ && fki->conversion_specs == print_char_table) -+ while (fli->name != 0) fli++; - if (fli->name != 0) - { - format_chars += strlen (fli->name); -@@ -1993,6 +2030,14 @@ - while (fci->format_chars != 0 - && strchr (fci->format_chars, format_char) == 0) - ++fci; -+ if (fci->format_chars == 0 && flag_format_extensions -+ && fki->conversion_specs == print_char_table) -+ { -+ fci = fbsd_print_char_table; -+ while (fci->format_chars != 0 -+ && strchr (fci->format_chars, format_char) == 0) -+ ++fci; -+ } - if (fci->format_chars == 0) - { - if (ISGRAPH (format_char)) -Index: gcc/c-family/c-format.h -=================================================================== ---- gcc/c-family/c-format.h (revision 216017) -+++ gcc/c-family/c-format.h (working copy) -@@ -75,11 +75,12 @@ - FMT_FLAG_DOLLAR_GAP_POINTER_OK = 128, - /* The format arg is an opaque object that will be parsed by an external - facility. */ -- FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL = 256 -+ FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL = 256, - /* Not included here: details of whether width or precision may occur - (controlled by width_char and precision_char); details of whether - '*' can be used for these (width_type and precision_type); details - of whether length modifiers can occur (length_char_specs). */ -+ FMT_FLAG_NULL_FORMAT_OK = 512 - }; - - /* Structure describing a length modifier supported in format checking, and -Index: gcc/config/freebsd.opt -=================================================================== ---- gcc/config/freebsd.opt (revision 216017) -+++ gcc/config/freebsd.opt (working copy) -@@ -34,6 +34,10 @@ - defsym= - Driver JoinedOrMissing - -+fformat-extensions -+Common Report Var(flag_format_extensions) Init(0) -+Allow FreeBSD kernel-specific printf format specifiers. -+ - posix - Driver - Index: head/devel/powerpc64-gcc/files/freebsd-libdir =================================================================== --- head/devel/powerpc64-gcc/files/freebsd-libdir +++ head/devel/powerpc64-gcc/files/freebsd-libdir @@ -1,43 +0,0 @@ -diff --git gcc/config/freebsd.h gcc/config/freebsd.h -index e7ea42370c5..191e7da2071 100644 ---- gcc/config/freebsd.h -+++ gcc/config/freebsd.h -@@ -44,6 +44,9 @@ along with GCC; see the file COPYING3. If not see - #undef LIB_SPEC - #define LIB_SPEC FBSD_LIB_SPEC - -+#undef STARTFILE_PREFIX_SPEC -+#define STARTFILE_PREFIX_SPEC "/usr/lib/ " -+ - #if defined(HAVE_LD_EH_FRAME_HDR) - #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " - #endif -diff --git gcc/gcc.c gcc/gcc.c -index f70755679f4..890ef20fd43 100644 ---- gcc/gcc.c -+++ gcc/gcc.c -@@ -4298,10 +4298,12 @@ process_command (unsigned int decoded_options_count, - } - - set_std_prefix (gcc_exec_prefix, len); -+#if 0 - add_prefix (&exec_prefixes, gcc_libexec_prefix, "GCC", - PREFIX_PRIORITY_LAST, 0, 0); - add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC", - PREFIX_PRIORITY_LAST, 0, 0); -+#endif - } - - /* COMPILER_PATH and LIBRARY_PATH have values -@@ -4585,9 +4587,11 @@ process_command (unsigned int decoded_options_count, - add_prefix (&exec_prefixes, - concat (tooldir_prefix, "bin", dir_separator_str, NULL), - "BINUTILS", PREFIX_PRIORITY_LAST, 0, 0); -+#if 0 - add_prefix (&startfile_prefixes, - concat (tooldir_prefix, "lib", dir_separator_str, NULL), - "BINUTILS", PREFIX_PRIORITY_LAST, 0, 1); -+#endif - free (tooldir_prefix); - - #if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS) Index: head/devel/powerpc64-gcc/files/patch-freebsd-format-extensions =================================================================== --- head/devel/powerpc64-gcc/files/patch-freebsd-format-extensions +++ head/devel/powerpc64-gcc/files/patch-freebsd-format-extensions @@ -0,0 +1,117 @@ +Index: gcc/c-family/c-format.c +=================================================================== +--- gcc/c-family/c-format.c (revision 216017) ++++ gcc/c-family/c-format.c (working copy) +@@ -622,6 +622,26 @@ + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } + }; + ++static const format_char_info fbsd_ext_char_info = ++{ NULL, 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "cR", NULL }; ++ ++static const format_char_info fbsd_print_char_table[] = ++{ ++ /* BSD conversion specifiers. */ ++ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). ++ The format %b is supported to decode error registers. ++ Its usage is: printf("reg=%b\n", regval, "*"); ++ which produces: reg=3 ++ The format %D provides a hexdump given a pointer and separator string: ++ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX ++ ("%*D", len, ptr, " ") -> XX XX XX XX ... ++ */ ++ { "D", 1, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", &fbsd_ext_char_info }, ++ { "b", 0, STD_EXT, { T89_I, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "", &fbsd_ext_char_info }, ++ { "ry", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i", NULL }, ++ { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } ++}; ++ + static const format_char_info asm_fprintf_char_table[] = + { + /* C89 conversion specifiers. */ +@@ -872,6 +892,12 @@ + strfmon_flag_specs, strfmon_flag_pairs, + FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', 0, + NULL, NULL ++ }, ++ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, ++ printf_flag_specs, printf_flag_pairs, ++ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK|FMT_FLAG_NULL_FORMAT_OK, ++ 'w', 0, 'p', 0, 'L', 0, ++ &integer_type_node, &integer_type_node + } + }; + +@@ -1426,6 +1452,9 @@ + + if (integer_zerop (format_tree)) + { ++ if (!(format_types[info->format_type].flags & FMT_FLAG_NULL_FORMAT_OK)) ++ warning (OPT_Wformat_, "null format string"); ++ + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ + while (arg_num + 1 < info->first_arg_num) +@@ -1926,6 +1955,14 @@ + while (fli->name != 0 + && strncmp (fli->name, format_chars, strlen (fli->name))) + fli++; ++ /* ++ * Make sure FreeBSD's D format char takes preference ++ * over new DD length specifier if FreeBSD format ++ * extensions are requested. ++ */ ++ if (fli->index == FMT_LEN_D && flag_format_extensions ++ && fki->conversion_specs == print_char_table) ++ while (fli->name != 0) fli++; + if (fli->name != 0) + { + format_chars += strlen (fli->name); +@@ -1993,6 +2030,14 @@ + while (fci->format_chars != 0 + && strchr (fci->format_chars, format_char) == 0) + ++fci; ++ if (fci->format_chars == 0 && flag_format_extensions ++ && fki->conversion_specs == print_char_table) ++ { ++ fci = fbsd_print_char_table; ++ while (fci->format_chars != 0 ++ && strchr (fci->format_chars, format_char) == 0) ++ ++fci; ++ } + if (fci->format_chars == 0) + { + if (ISGRAPH (format_char)) +Index: gcc/c-family/c-format.h +=================================================================== +--- gcc/c-family/c-format.h (revision 216017) ++++ gcc/c-family/c-format.h (working copy) +@@ -75,11 +75,12 @@ + FMT_FLAG_DOLLAR_GAP_POINTER_OK = 128, + /* The format arg is an opaque object that will be parsed by an external + facility. */ +- FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL = 256 ++ FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL = 256, + /* Not included here: details of whether width or precision may occur + (controlled by width_char and precision_char); details of whether + '*' can be used for these (width_type and precision_type); details + of whether length modifiers can occur (length_char_specs). */ ++ FMT_FLAG_NULL_FORMAT_OK = 512 + }; + + /* Structure describing a length modifier supported in format checking, and +Index: gcc/config/freebsd.opt +=================================================================== +--- gcc/config/freebsd.opt (revision 216017) ++++ gcc/config/freebsd.opt (working copy) +@@ -34,6 +34,10 @@ + defsym= + Driver JoinedOrMissing + ++fformat-extensions ++Common Report Var(flag_format_extensions) Init(0) ++Allow FreeBSD kernel-specific printf format specifiers. ++ + posix + Driver + Index: head/devel/powerpc64-gcc/files/patch-freebsd-libdir =================================================================== --- head/devel/powerpc64-gcc/files/patch-freebsd-libdir +++ head/devel/powerpc64-gcc/files/patch-freebsd-libdir @@ -0,0 +1,43 @@ +diff --git gcc/config/freebsd.h gcc/config/freebsd.h +index e7ea42370c5..191e7da2071 100644 +--- gcc/config/freebsd.h ++++ gcc/config/freebsd.h +@@ -44,6 +44,9 @@ along with GCC; see the file COPYING3. If not see + #undef LIB_SPEC + #define LIB_SPEC FBSD_LIB_SPEC + ++#undef STARTFILE_PREFIX_SPEC ++#define STARTFILE_PREFIX_SPEC "/usr/lib/ " ++ + #if defined(HAVE_LD_EH_FRAME_HDR) + #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " + #endif +diff --git gcc/gcc.c gcc/gcc.c +index f70755679f4..890ef20fd43 100644 +--- gcc/gcc.c ++++ gcc/gcc.c +@@ -4298,10 +4298,12 @@ process_command (unsigned int decoded_options_count, + } + + set_std_prefix (gcc_exec_prefix, len); ++#if 0 + add_prefix (&exec_prefixes, gcc_libexec_prefix, "GCC", + PREFIX_PRIORITY_LAST, 0, 0); + add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC", + PREFIX_PRIORITY_LAST, 0, 0); ++#endif + } + + /* COMPILER_PATH and LIBRARY_PATH have values +@@ -4585,9 +4587,11 @@ process_command (unsigned int decoded_options_count, + add_prefix (&exec_prefixes, + concat (tooldir_prefix, "bin", dir_separator_str, NULL), + "BINUTILS", PREFIX_PRIORITY_LAST, 0, 0); ++#if 0 + add_prefix (&startfile_prefixes, + concat (tooldir_prefix, "lib", dir_separator_str, NULL), + "BINUTILS", PREFIX_PRIORITY_LAST, 0, 1); ++#endif + free (tooldir_prefix); + + #if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS)