Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153511507
D22064.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
20 KB
Referenced Files
None
Subscribers
None
D22064.id.diff
View Options
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 <bsd.port.pre.mk>
-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 <bsd.port.post.mk>
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 <bsd.port.options.mk>
.include <bsd.port.pre.mk>
-.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, "<base><arg>*");
-+ which produces: reg=3<BITTWO,BITONE>
-+ 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, "<base><arg>*");
++ which produces: reg=3<BITTWO,BITONE>
++ 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)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Apr 22, 1:31 PM (11 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31981729
Default Alt Text
D22064.id.diff (20 KB)
Attached To
Mode
D22064: Divorce the ARM bare-metal GCC ports from the FreeBSD GCC xtoolchain ports.
Attached
Detach File
Event Timeline
Log In to Comment