Files
Retro68/gcc-15.1.0-diff.patch
2026-05-26 20:16:59 +02:00

5739 lines
200 KiB
Diff

diff --git a/gcc/compile b/gcc/compile
index a85b723c7e..23fcba0113 100755
--- a/gcc/compile
+++ b/gcc/compile
@@ -1,9 +1,9 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -67,7 +67,7 @@ func_file_conv ()
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin/*)
+ cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
@@ -255,7 +255,8 @@ EOF
echo "compile $scriptversion"
exit $?
;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
@@ -339,9 +340,9 @@ exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff --git a/gcc/depcomp b/gcc/depcomp
index 4e70ff0bbc..6b391623c4 100755
--- a/gcc/depcomp
+++ b/gcc/depcomp
@@ -1,9 +1,9 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2013-05-30.07; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@ scriptversion=2013-05-30.07; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -251,6 +251,41 @@ hp)
exit 1
;;
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
+ echo >> "$depfile"
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
@@ -748,9 +783,9 @@ exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff --git a/gcc/gcc/c-family/c-common.cc b/gcc/gcc/c-family/c-common.cc
index 587d76461e..f4f8549c1f 100644
--- a/gcc/gcc/c-family/c-common.cc
+++ b/gcc/gcc/c-family/c-common.cc
@@ -819,6 +819,11 @@ fix_string_type (tree value)
charsz = 1;
e_type = char_type_node;
}
+ else if (TREE_TYPE (value) == uchar_array_type_node)
+ {
+ charsz = 1;
+ e_type = unsigned_char_type_node;
+ }
else if (flag_char8_t && TREE_TYPE (value) == char8_array_type_node)
{
charsz = TYPE_PRECISION (char8_type_node) / BITS_PER_UNIT;
@@ -4610,6 +4615,12 @@ c_common_nodes_and_builtins (void)
char_array_type_node
= build_array_type (char_type_node, array_domain_type);
+ /* Make a type for arrays of unsigned characters.
+ Needed for "\ppascal string" support. */
+ uchar_array_type_node
+ = build_array_type (unsigned_char_type_node, array_domain_type);
+
+
string_type_node = build_pointer_type (char_type_node);
const_string_type_node
= build_pointer_type (build_qualified_type
diff --git a/gcc/gcc/c-family/c-common.h b/gcc/gcc/c-family/c-common.h
index ea6c297505..e9f972780f 100644
--- a/gcc/gcc/c-family/c-common.h
+++ b/gcc/gcc/c-family/c-common.h
@@ -343,6 +343,7 @@ enum c_tree_index
CTI_UINTPTR_TYPE,
CTI_CHAR_ARRAY_TYPE,
+ CTI_UCHAR_ARRAY_TYPE,
CTI_CHAR8_ARRAY_TYPE,
CTI_CHAR16_ARRAY_TYPE,
CTI_CHAR32_ARRAY_TYPE,
@@ -505,6 +506,7 @@ extern const unsigned int num_c_common_reswords;
#define truthvalue_false_node c_global_trees[CTI_TRUTHVALUE_FALSE]
#define char_array_type_node c_global_trees[CTI_CHAR_ARRAY_TYPE]
+#define uchar_array_type_node c_global_trees[CTI_UCHAR_ARRAY_TYPE]
#define char8_array_type_node c_global_trees[CTI_CHAR8_ARRAY_TYPE]
#define char16_array_type_node c_global_trees[CTI_CHAR16_ARRAY_TYPE]
#define char32_array_type_node c_global_trees[CTI_CHAR32_ARRAY_TYPE]
diff --git a/gcc/gcc/c-family/c-lex.cc b/gcc/gcc/c-family/c-lex.cc
index e450c9a57f..254c1c1942 100644
--- a/gcc/gcc/c-family/c-lex.cc
+++ b/gcc/gcc/c-family/c-lex.cc
@@ -1623,6 +1623,8 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string, bool translate)
zero '@' before each string. */
bool objc_at_sign_was_seen = false;
+ bool pascal_string = false;
+
retry:
tok = get_token (parse_in);
switch (tok->type)
@@ -1690,10 +1692,22 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string, bool translate)
warning (OPT_Wtraditional,
"traditional C rejects string constant concatenation");
+ if (!strncmp((const char*)strs[0].text, "\"\\p", 3))
+ {
+ pascal_string = true;
+ /* replace \p by a valid escape sequence */
+ ((unsigned char*)strs[0].text)[2] = 'n';
+ }
+
if ((translate
? cpp_interpret_string : cpp_interpret_string_notranslate)
(parse_in, strs, concats + 1, &istr, type))
{
+ if (pascal_string)
+ {
+ /* put the real string length in */
+ ((unsigned char*)istr.text)[0] = (unsigned char) (istr.len - 2);
+ }
value = build_string (istr.len, (const char *) istr.text);
free (CONST_CAST (unsigned char *, istr.text));
if (concats)
@@ -1745,7 +1759,10 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string, bool translate)
{
default:
case CPP_STRING:
- TREE_TYPE (value) = char_array_type_node;
+ if (pascal_string)
+ TREE_TYPE (value) = uchar_array_type_node;
+ else
+ TREE_TYPE (value) = char_array_type_node;
break;
case CPP_UTF8STRING:
if (flag_char8_t)
diff --git a/gcc/gcc/c/c-decl.cc b/gcc/gcc/c/c-decl.cc
index 8c420f2297..05e6bf2694 100644
--- a/gcc/gcc/c/c-decl.cc
+++ b/gcc/gcc/c/c-decl.cc
@@ -5638,7 +5638,8 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs,
break;
case FUNCTION_DECL:
- error ("function %qD is initialized like a variable", decl);
+ //error ("function %qD is initialized like a variable", decl);
+ // Retro68: a function defined by inline opcodes does not count as initialized.
initialized = false;
break;
diff --git a/gcc/gcc/c/c-parser.cc b/gcc/gcc/c/c-parser.cc
index 22ec0f849b..f8c9aaa39a 100644
--- a/gcc/gcc/c/c-parser.cc
+++ b/gcc/gcc/c/c-parser.cc
@@ -1926,6 +1926,8 @@ private:
#endif /* #if ENABLE_ANALYZER */
+static tree c_parser_inline_opcodes(c_parser *);
+
/* Parse a translation unit (C90 6.7, C99 6.9, C11 6.9).
translation-unit:
@@ -2856,30 +2858,37 @@ c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
&& !omp_dsimd_idattr_clauses.is_empty ())
c_finish_omp_declare_simd (parser, d, NULL_TREE,
&omp_dsimd_idattr_clauses);
- start_init (d, asm_name,
- TREE_STATIC (d) || specs->constexpr_p,
- specs->constexpr_p, &richloc);
- /* A parameter is initialized, which is invalid. Don't
- attempt to instrument the initializer. */
- int flag_sanitize_save = flag_sanitize;
- if (TREE_CODE (d) == PARM_DECL)
- flag_sanitize = 0;
- init = c_parser_initializer (parser, d);
- flag_sanitize = flag_sanitize_save;
- if (specs->constexpr_p)
+ if (d && TREE_CODE (d) == FUNCTION_DECL)
{
- finish_underspecified_init (underspec_name,
- underspec_state);
- d = pushdecl (d);
- if (omp_declare_simd_clauses)
- c_finish_omp_declare_simd (parser, d, NULL_TREE,
- omp_declare_simd_clauses);
- if (!specs->constexpr_p
- && !omp_dsimd_idattr_clauses.is_empty ())
- c_finish_omp_declare_simd (parser, d, NULL_TREE,
- &omp_dsimd_idattr_clauses);
+ tree rawinline_attr = c_parser_inline_opcodes (parser);
+ decl_attributes (&d, rawinline_attr, 0);
+ }
+ else
+ {
+ start_init (d, asm_name,
+ TREE_STATIC (d) || specs->constexpr_p,
+ specs->constexpr_p, &richloc);
+ /* A parameter is initialized, which is invalid. Don't
+ attempt to instrument the initializer. */
+ int flag_sanitize_save = flag_sanitize;
+ if (TREE_CODE (d) == PARM_DECL)
+ flag_sanitize = 0;
+ init = c_parser_initializer (parser, d);
+ flag_sanitize = flag_sanitize_save;
+ if (specs->constexpr_p)
+ {
+ finish_underspecified_init (underspec_name,
+ underspec_state);
+ d = pushdecl (d);
+ if (omp_declare_simd_clauses)
+ c_finish_omp_declare_simd (parser, d, NULL_TREE,
+ omp_declare_simd_clauses);
+ if (!omp_dsimd_idattr_clauses.is_empty ())
+ c_finish_omp_declare_simd (parser, d, NULL_TREE,
+ &omp_dsimd_idattr_clauses);
+ }
+ finish_init ();
}
- finish_init ();
}
if (oacc_routine_data)
c_finish_oacc_routine (oacc_routine_data, d, false);
@@ -3201,6 +3210,39 @@ c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
return result;
}
+/* Parse an initializer consisting of integer constants for a raw_inline
+ function declarator. Returns a tree list suitable for use as an attribute
+ argument to __raw_inline__. */
+
+static tree
+c_parser_inline_opcodes (c_parser *parser)
+{
+ tree attr_args;
+ vec<tree, va_gc> *expr_list;
+ bool braced = false;
+
+ braced = c_parser_next_token_is (parser, CPP_OPEN_BRACE);
+ if (braced)
+ c_parser_consume_token (parser);
+
+ expr_list = c_parser_expr_list (parser, false, true,
+ NULL, NULL, NULL, NULL);
+ attr_args = build_tree_list_vec (expr_list);
+ release_tree_vector (expr_list);
+
+ if (braced)
+ {
+ if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
+ c_parser_consume_token (parser);
+ else
+ c_parser_error (parser, "expected %<}%>");
+ }
+
+ return build_tree_list (
+ canonicalize_attr_name (get_identifier ("__raw_inline__")),
+ attr_args);
+}
+
/* Parse an asm-definition (asm() outside a function body). This is a
GNU extension.
@@ -9615,6 +9657,7 @@ c_parser_string_literal (c_parser *parser, bool translate, bool wide_ok)
location_t loc, last_tok_loc;
enum cpp_ttype type;
tree value, string_tree;
+ bool pascal_string = false;
tok = c_parser_peek_token (parser);
loc = tok->location;
@@ -9695,11 +9738,23 @@ c_parser_string_literal (c_parser *parser, bool translate, bool wide_ok)
warning (OPT_Wtraditional,
"traditional C rejects string constant concatenation");
+ if (!strncmp((const char*)strs[0].text, "\"\\p", 3))
+ {
+ pascal_string = true;
+ /* replace \p by a valid escape sequence */
+ ((unsigned char*)strs[0].text)[2] = 'n';
+ }
+
if ((type == CPP_STRING || wide_ok)
&& ((translate
? cpp_interpret_string : cpp_interpret_string_notranslate)
(parse_in, strs, count, &istr, type)))
{
+ if (pascal_string)
+ {
+ /* put the real string length in */
+ ((unsigned char*)istr.text)[0] = (unsigned char) (istr.len - 2);
+ }
value = build_string (istr.len, (const char *) istr.text);
free (CONST_CAST (unsigned char *, istr.text));
if (count > 1)
@@ -9759,10 +9814,7 @@ c_parser_string_literal (c_parser *parser, bool translate, bool wide_ok)
TREE_TYPE (value) = char_array_type_node;
break;
case CPP_UTF8STRING:
- if (flag_char8_t)
- TREE_TYPE (value) = char8_array_type_node;
- else
- TREE_TYPE (value) = char_array_type_node;
+ TREE_TYPE (value) = char_array_type_node;
break;
case CPP_STRING16:
TREE_TYPE (value) = char16_array_type_node;
diff --git a/gcc/gcc/calls.cc b/gcc/gcc/calls.cc
index 076e046a8e..d7ac76a77b 100644
--- a/gcc/gcc/calls.cc
+++ b/gcc/gcc/calls.cc
@@ -295,17 +295,29 @@ prepare_call_address (tree fndecl_or_type, rtx funexp, rtx static_chain_value,
}
else
{
- /* funexp could be a SYMBOL_REF represents a function pointer which is
- of ptr_mode. In this case, it should be converted into address mode
- to be a valid address for memory rtx pattern. See PR 64971. */
- if (GET_MODE (funexp) != Pmode)
- funexp = convert_memory_address (Pmode, funexp);
+ int is_magic = 0;
- if (!(flags & ECF_SIBCALL))
- {
- if (!NO_FUNCTION_CSE && optimize && ! flag_no_function_cse)
- funexp = force_reg (Pmode, funexp);
- }
+ if (fndecl_or_type)
+ {
+ tree fntype = TREE_TYPE(fndecl_or_type);
+ if(fntype && lookup_attribute ("raw_inline", TYPE_ATTRIBUTES (fntype)))
+ is_magic = 1;
+ }
+
+ if (!is_magic)
+ {
+ /* funexp could be a SYMBOL_REF represents a function pointer which is
+ of ptr_mode. In this case, it should be converted into address mode
+ to be a valid address for memory rtx pattern. See PR 64971. */
+ if (GET_MODE (funexp) != Pmode)
+ funexp = convert_memory_address (Pmode, funexp);
+
+ if (!(flags & ECF_SIBCALL))
+ {
+ if (!NO_FUNCTION_CSE && optimize && ! flag_no_function_cse)
+ funexp = force_reg (Pmode, funexp);
+ }
+ }
}
if (static_chain_value != 0
@@ -1333,7 +1345,8 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
rtx *old_stack_level,
poly_int64 *old_pending_adj,
bool *must_preallocate, int *ecf_flags,
- bool *may_tailcall, bool call_from_thunk_p)
+ bool *may_tailcall, bool call_from_thunk_p,
+ bool reverse_args)
{
CUMULATIVE_ARGS *args_so_far_pnt = get_cumulative_args (args_so_far);
location_t loc = EXPR_LOCATION (exp);
@@ -1341,7 +1354,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
/* Count arg position in order args appear. */
int argpos;
- int i;
+ int i, inc;
args_size->constant = 0;
args_size->var = 0;
@@ -1349,7 +1362,17 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
/* In this loop, we consider args in the order they are written.
We fill up ARGS from the back. */
- i = num_actuals - 1;
+ if (!reverse_args)
+ {
+ i = num_actuals - 1, inc = -1;
+ /* In this case, must reverse order of args
+ so that we compute and push the last arg first. */
+ }
+ else
+ {
+ i = 0, inc = 1;
+ }
+
{
int j = i;
call_expr_arg_iterator iter;
@@ -1358,7 +1381,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
if (struct_value_addr_value)
{
args[j].tree_value = struct_value_addr_value;
- j--;
+ j += inc;
}
argpos = 0;
FOR_EACH_CALL_EXPR_ARG (arg, iter, exp)
@@ -1372,18 +1395,18 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
{
tree subtype = TREE_TYPE (argtype);
args[j].tree_value = build1 (REALPART_EXPR, subtype, arg);
- j--;
+ j += inc;
args[j].tree_value = build1 (IMAGPART_EXPR, subtype, arg);
}
else
args[j].tree_value = arg;
- j--;
+ j += inc;
argpos++;
}
}
/* I counts args in order (to be) pushed; ARGPOS counts in order written. */
- for (argpos = 0; argpos < num_actuals; i--, argpos++)
+ for (argpos = 0; argpos < num_actuals; i += inc, argpos++)
{
tree type = TREE_TYPE (args[i].tree_value);
int unsignedp;
@@ -2788,6 +2811,10 @@ expand_call (tree exp, rtx target, int ignore)
unsigned HOST_WIDE_INT preferred_unit_stack_boundary;
/* The static chain value to use for this call. */
rtx static_chain_value;
+
+ /* True if this is a call to a pascal-declared function. */
+ bool is_pascal = false;
+
/* See if this is "nothrow" function call. */
if (TREE_NOTHROW (exp))
flags |= ECF_NOTHROW;
@@ -2812,6 +2839,10 @@ expand_call (tree exp, rtx target, int ignore)
struct_value = targetm.calls.struct_value_rtx (fntype, 0);
+#ifdef IS_PASCAL_FUNC
+ is_pascal = IS_PASCAL_FUNC(fntype, fndecl);
+#endif
+
/* Warn if this value is an aggregate type,
regardless of which calling convention we are using for it. */
if (AGGREGATE_TYPE_P (rettype))
@@ -3034,7 +3065,8 @@ expand_call (tree exp, rtx target, int ignore)
args_so_far, reg_parm_stack_space,
&old_stack_level, &old_pending_adj,
&must_preallocate, &flags,
- &try_tail_call, CALL_FROM_THUNK_P (exp));
+ &try_tail_call, CALL_FROM_THUNK_P (exp),
+ is_pascal);
if (args_size.var)
must_preallocate = true;
@@ -3108,6 +3140,9 @@ expand_call (tree exp, rtx target, int ignore)
if (CALL_EXPR_MUST_TAIL_CALL (exp))
try_tail_call = 1;
+ if (is_pascal)
+ try_tail_call = 0;
+
/* Rest of purposes for tail call optimizations to fail. */
if (try_tail_call)
try_tail_call = can_implement_as_sibling_call_p (exp,
@@ -3541,6 +3576,16 @@ expand_call (tree exp, rtx target, int ignore)
&low_to_save, &high_to_save);
#endif
+ if (is_pascal)
+ {
+ auto pascal_return_mode = TYPE_MODE (TREE_TYPE (funtype));
+ poly_uint16 modesize = GET_MODE_SIZE (pascal_return_mode);
+#ifdef PUSH_ROUNDING
+ modesize = PUSH_ROUNDING (modesize);
+#endif
+ push_block (gen_int_mode (modesize, Pmode), 0, 0);
+ }
+
/* Now store (and compute if necessary) all non-register parms.
These come before register parms, since they can require block-moves,
which could clobber the registers used for register parms.
@@ -3640,7 +3685,8 @@ expand_call (tree exp, rtx target, int ignore)
/* Figure out the register where the value, if any, will come back. */
valreg = 0;
if (TYPE_MODE (rettype) != VOIDmode
- && ! structure_value_addr)
+ && ! structure_value_addr
+ && ! is_pascal)
{
if (pcc_struct_value)
valreg = hard_function_value (build_pointer_type (rettype),
@@ -3727,6 +3773,27 @@ expand_call (tree exp, rtx target, int ignore)
next_arg_reg, valreg, old_inhibit_defer_pop, call_fusage,
flags, args_so_far);
+ if (is_pascal)
+ {
+ if (TYPE_MODE (rettype) != VOIDmode
+ && ! structure_value_addr)
+ {
+ valreg = gen_reg_rtx(TYPE_MODE(rettype));
+
+ poly_uint16 modesize = GET_MODE_SIZE (GET_MODE (valreg));
+#ifdef PUSH_ROUNDING
+ modesize = PUSH_ROUNDING (modesize);
+#endif
+ emit_move_insn(valreg,
+ gen_rtx_MEM( GET_MODE (valreg),
+ stack_pointer_rtx
+ ));
+
+ adjust_stack(gen_int_mode (modesize, Pmode));
+ }
+ }
+
+
if (flag_ipa_ra)
{
rtx_call_insn *last;
diff --git a/gcc/gcc/combine-stack-adj.cc b/gcc/gcc/combine-stack-adj.cc
index 1952d0fd51..be8bfcfa83 100644
--- a/gcc/gcc/combine-stack-adj.cc
+++ b/gcc/gcc/combine-stack-adj.cc
@@ -828,7 +828,10 @@ public:
rest_of_handle_stack_adjustments ();
return 0;
}
-
+ virtual opt_pass *clone ()
+ {
+ return new pass_stack_adjustments(m_ctxt);
+ }
}; // class pass_stack_adjustments
bool
diff --git a/gcc/gcc/combine.cc b/gcc/gcc/combine.cc
index e1186087df..c85c65deae 100644
--- a/gcc/gcc/combine.cc
+++ b/gcc/gcc/combine.cc
@@ -14489,10 +14489,10 @@ distribute_notes (rtx notes, rtx_insn *from_insn, rtx_insn *i3, rtx_insn *i2,
old_size = fixup_args_size_notes (PREV_INSN (i3), i3, args_size);
/* emit_call_1 adds for !ACCUMULATE_OUTGOING_ARGS
REG_ARGS_SIZE note to all noreturn calls, allow that here. */
- gcc_assert (maybe_ne (old_size, args_size)
+ /* gcc_assert (maybe_ne (old_size, args_size)
|| (CALL_P (i3)
&& !ACCUMULATE_OUTGOING_ARGS
- && find_reg_note (i3, REG_NORETURN, NULL_RTX)));
+ && find_reg_note (i3, REG_NORETURN, NULL_RTX))); ### */
}
break;
diff --git a/gcc/gcc/config.gcc b/gcc/gcc/config.gcc
index 40b50dc969..8637818880 100644
--- a/gcc/gcc/config.gcc
+++ b/gcc/gcc/config.gcc
@@ -477,6 +477,8 @@ m32r*-*-*)
m68k-*-*)
extra_headers=math-68881.h
extra_options="${extra_options} m68k/m68k-tables.opt"
+ c_target_objs="m68k-mac-pragmas.o"
+ cxx_target_objs="m68k-mac-pragmas.o"
;;
microblaze*-*-*)
cpu_type=microblaze
@@ -2433,6 +2435,23 @@ m68k-*-elf* | fido-*-elf*)
;;
esac
;;
+m68k-*-macos*)
+ default_m68k_cpu=68020
+ default_cf_cpu=5206
+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68k-macos.h"
+ tm_defines="${tm_defines} MOTOROLA=1"
+ tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf m68k/t-macos"
+ tmake_file="$tmake_file m68k/t-mlibs"
+ ;;
+
+fido-*-elf*)
+ default_m68k_cpu=68020
+ default_cf_cpu=5206
+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
+ tm_defines="${tm_defines} MOTOROLA=1"
+ tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
+ tmake_file="$tmake_file m68k/t-mlibs"
+ ;;
m68k*-*-netbsdelf*)
default_m68k_cpu=68020
default_cf_cpu=5475
@@ -3198,6 +3217,15 @@ pru*-*-*)
extra_objs="pru-pragma.o pru-passes.o"
use_gcc_stdint=wrap
;;
+powerpc-apple-macos*)
+ tm_file="${tm_file} rs6000/xcoff.h rs6000/macos.h"
+ tmake_file="rs6000/t-macos"
+ extra_options="${extra_options} rs6000/aix64.opt"
+ use_collect2=yes
+ thread_file='aix'
+ use_gcc_stdint=provide
+ extra_headers=
+ ;;
rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
tmake_file="rs6000/t-aix52 t-slibgcc"
if test x$cpu_is_64bit = xyes; then
diff --git a/gcc/gcc/config.host b/gcc/gcc/config.host
index 4c1a5e9910..60a778fbd5 100644
--- a/gcc/gcc/config.host
+++ b/gcc/gcc/config.host
@@ -260,6 +260,10 @@ case ${host} in
out_host_hook_obj="${out_host_hook_obj} host-ppc64-darwin.o"
host_xmake_file="${host_xmake_file} rs6000/x-darwin64"
;;
+ aarch64-*-darwin*)
+ out_host_hook_obj="${out_host_hook_obj} host-aarch64-darwin.o"
+ host_xmake_file="${host_xmake_file} aarch64/x-darwin"
+ ;;
rs6000-ibm-aix* | powerpc-ibm-aix*)
host_xmake_file="${host_xmake_file} rs6000/x-aix"
;;
diff --git a/gcc/gcc/config/aarch64/host-aarch64-darwin.c b/gcc/gcc/config/aarch64/host-aarch64-darwin.c
new file mode 100644
index 0000000000..5ed81cf7d6
--- /dev/null
+++ b/gcc/gcc/config/aarch64/host-aarch64-darwin.c
@@ -0,0 +1,32 @@
+/* i386-darwin host-specific hook definitions.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#define IN_TARGET_CODE 1
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "hosthooks.h"
+#include "hosthooks-def.h"
+#include "config/host-darwin.h"
+
+/* Darwin doesn't do anything special for aarch64 hosts; this file exists just
+ to include config/host-darwin.h. */
+
+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
diff --git a/gcc/gcc/config/m68k/m68k-mac-pragmas.c b/gcc/gcc/config/m68k/m68k-mac-pragmas.c
new file mode 100644
index 0000000000..5a543ba156
--- /dev/null
+++ b/gcc/gcc/config/m68k/m68k-mac-pragmas.c
@@ -0,0 +1,118 @@
+#include <string>
+#include <map>
+#include <vector>
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "double-int.h"
+#include "input.h"
+#include "alias.h"
+#include "symtab.h"
+#include "inchash.h"
+#include "tree.h"
+
+#include "c-family/c-pragma.h"
+#include "c-family/c-common.h"
+#include "diagnostic-core.h"
+#include "cpplib.h"
+
+std::map<std::string, int> pragma_parameter_register_names;
+extern std::map< std::string, std::vector<int> > pragma_parameter_directives;
+
+
+static int lookup_reg(std::string s)
+{
+ std::map<std::string, int>::const_iterator p = pragma_parameter_register_names.find(s);
+ if(p == pragma_parameter_register_names.end())
+ return -1;
+ return p->second;
+}
+
+static void
+m68k_pragma_parameter (cpp_reader * reader ATTRIBUTE_UNUSED)
+{
+ /* on off */
+ tree token;
+ enum cpp_ttype type;
+
+ std::string name;
+ std::vector<int> argregs;
+
+ type = pragma_lex (&token);
+ argregs.push_back(0);
+ if (type == CPP_NAME)
+ {
+ name = IDENTIFIER_POINTER(token);
+ type = pragma_lex (&token);
+ if (type == CPP_NAME)
+ {
+ argregs.back() = lookup_reg(name);
+ if(argregs.back() < 0)
+ {
+ error ("invalid register name %s", name.c_str());
+ return;
+ }
+ name = IDENTIFIER_POINTER(token);
+ type = pragma_lex (&token);
+ }
+ if (type == CPP_EOF)
+ {
+ pragma_parameter_directives[name] = argregs;
+ return;
+ }
+
+ if (type == CPP_OPEN_PAREN)
+ {
+ type = pragma_lex (&token);
+ while(argregs.size() == 1 ? type == CPP_NAME : type == CPP_COMMA)
+ {
+ if(argregs.size() != 1)
+ type = pragma_lex (&token);
+ if(type != CPP_NAME)
+ break;
+
+ argregs.push_back(lookup_reg(IDENTIFIER_POINTER(token)));
+ if(argregs.back() < 0)
+ {
+ error ("invalid register name %s", IDENTIFIER_POINTER(token));
+ return;
+ }
+
+ type = pragma_lex (&token);
+ }
+
+ if (type == CPP_CLOSE_PAREN)
+ {
+ type = pragma_lex (&token);
+ if (type != CPP_EOF)
+ {
+ error ("junk at end of #pragma parameter");
+ }
+ else
+ {
+ pragma_parameter_directives[name] = argregs;
+ }
+ return;
+ }
+ }
+ }
+ error ("malformed #pragma parameter ");
+}
+
+
+void
+m68k_register_pragmas()
+{
+ for(int i = 0; i < 8; i++)
+ {
+ std::string n(1, '0' + i);
+ pragma_parameter_register_names["__D" + n] = i;
+ pragma_parameter_register_names["__A" + n] = i + 8;
+ }
+ c_register_pragma (NULL, "parameter", m68k_pragma_parameter);
+
+}
diff --git a/gcc/gcc/config/m68k/m68k-macos.h b/gcc/gcc/config/m68k/m68k-macos.h
new file mode 100644
index 0000000000..b1ee725bb6
--- /dev/null
+++ b/gcc/gcc/config/m68k/m68k-macos.h
@@ -0,0 +1,26 @@
+
+#define LIBGCC_SPEC "--start-group -lretrocrt -lgcc -lInterface --end-group "
+#define LINK_SPEC "-elf2mac -q -undefined=_consolewrite"
+
+#undef LIB_SPEC
+#define LIB_SPEC "--start-group -lc -lretrocrt -lInterface --end-group"
+
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group -lgcc -lc -lretrocrt -lInterface --end-group"
+
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC ""
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC ""
+
+#undef CPP_SPEC
+#define CPP_SPEC "-Wno-trigraphs"
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("macintosh"); \
+ builtin_define ("Macintosh"); \
+ } \
+ while (0)
diff --git a/gcc/gcc/config/m68k/m68k-passes.def b/gcc/gcc/config/m68k/m68k-passes.def
new file mode 100644
index 0000000000..9a0f91d231
--- /dev/null
+++ b/gcc/gcc/config/m68k/m68k-passes.def
@@ -0,0 +1,22 @@
+
+/*
+ Macros that can be used in this file:
+ INSERT_PASS_AFTER (PASS, INSTANCE, TGT_PASS)
+ INSERT_PASS_BEFORE (PASS, INSTANCE, TGT_PASS)
+ REPLACE_PASS (PASS, INSTANCE, TGT_PASS)
+ */
+
+ // insert a stack adjustments (csa) pass early in compilation,
+ // before register allocation.
+ // This allows removing some extraneous moves in connection with pascal functions:
+ // pascal short bar(); pascal void foo(short);
+ // foo(bar());
+ //
+ // subq #2, sp
+ // jsr bar
+ // move (sp), d0 ; <-- otherwise we end up with these two useless instructions
+ // move d0, (sp) ; <-- which are not removed if the register is already allocated
+ // ; <-- when csa figures out that no actual push or pop is needed
+ // jsr foo
+
+INSERT_PASS_AFTER (pass_combine, 1, pass_stack_adjustments);
diff --git a/gcc/gcc/config/m68k/m68k-protos.h b/gcc/gcc/config/m68k/m68k-protos.h
index 9cba3be80a..460435e183 100644
--- a/gcc/gcc/config/m68k/m68k-protos.h
+++ b/gcc/gcc/config/m68k/m68k-protos.h
@@ -79,7 +79,7 @@ extern rtx m68k_legitimize_tls_address (rtx);
extern bool m68k_tls_reference_p (rtx, bool);
extern int valid_dbcc_comparison_p_2 (rtx, machine_mode);
extern rtx m68k_libcall_value (machine_mode);
-extern rtx m68k_function_value (const_tree, const_tree);
+extern rtx m68k_function_value (const_tree, const_tree, bool);
extern int emit_move_sequence (rtx *, machine_mode, rtx);
extern bool m68k_movem_pattern_p (rtx, rtx, HOST_WIDE_INT, bool);
extern const char *m68k_output_movem (rtx *, rtx, HOST_WIDE_INT, bool);
@@ -114,4 +114,8 @@ extern void init_68881_table (void);
extern rtx m68k_legitimize_call_address (rtx);
extern rtx m68k_legitimize_sibcall_address (rtx);
extern int m68k_hard_regno_rename_ok(unsigned int, unsigned int);
+
+extern void m68k_write_macsbug_name(FILE *, const char *, tree decl);
extern poly_int64 m68k_push_rounding (poly_int64);
+
+extern bool m68k_rawinline_p (rtx x);
diff --git a/gcc/gcc/config/m68k/m68k.cc b/gcc/gcc/config/m68k/m68k.cc
index d8fa6e00de..27377dd27d 100644
--- a/gcc/gcc/config/m68k/m68k.cc
+++ b/gcc/gcc/config/m68k/m68k.cc
@@ -17,6 +17,9 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#include <string>
+#include <map>
+#include <vector>
#define IN_TARGET_CODE 1
#include "config.h"
@@ -41,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "output.h"
#include "insn-attr.h"
#include "recog.h"
+#include "hashtab.h"
#include "diagnostic-core.h"
#include "flags.h"
#include "expmed.h"
@@ -66,11 +70,16 @@ along with GCC; see the file COPYING3. If not see
#include "optabs.h"
#include "builtins.h"
#include "rtl-iter.h"
+#include "stringpool.h"
#include "toplev.h"
/* This file should be included last. */
#include "target-def.h"
+
+std::map< std::string, std::vector<int> > pragma_parameter_directives;
+
+
enum reg_class regno_reg_class[] =
{
DATA_REGS, DATA_REGS, DATA_REGS, DATA_REGS,
@@ -191,6 +200,9 @@ static bool m68k_output_addr_const_extra (FILE *, rtx);
static void m68k_init_sync_libfuncs (void) ATTRIBUTE_UNUSED;
static enum flt_eval_method
m68k_excess_precision (enum excess_precision_type);
+
+static tree m68k_mangle_decl_assembler_name (tree decl, tree id);
+static pad_direction m68k_function_arg_padding (machine_mode mode, const_tree type);
static unsigned int m68k_hard_regno_nregs (unsigned int, machine_mode);
static bool m68k_hard_regno_mode_ok (unsigned int, machine_mode);
static bool m68k_modes_tieable_p (machine_mode, machine_mode);
@@ -282,8 +294,8 @@ static bool m68k_use_lra_p (void);
#undef TARGET_ATTRIBUTE_TABLE
#define TARGET_ATTRIBUTE_TABLE m68k_attribute_table
-#undef TARGET_PROMOTE_PROTOTYPES
-#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true
+//#undef TARGET_PROMOTE_PROTOTYPES
+//#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true
#undef TARGET_STRUCT_VALUE_RTX
#define TARGET_STRUCT_VALUE_RTX m68k_struct_value_rtx
@@ -358,6 +370,15 @@ static bool m68k_use_lra_p (void);
#undef TARGET_PROMOTE_FUNCTION_MODE
#define TARGET_PROMOTE_FUNCTION_MODE m68k_promote_function_mode
+#undef TARGET_FUNCTION_VALUE
+#define TARGET_FUNCTION_VALUE m68k_function_value
+
+#undef TARGET_MANGLE_DECL_ASSEMBLER_NAME
+#define TARGET_MANGLE_DECL_ASSEMBLER_NAME m68k_mangle_decl_assembler_name
+
+#undef TARGET_FUNCTION_ARG_PADDING
+#define TARGET_FUNCTION_ARG_PADDING m68k_function_arg_padding
+
#undef TARGET_HAVE_SPECULATION_SAFE_VALUE
#define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed
@@ -379,6 +400,12 @@ TARGET_GNU_ATTRIBUTES (m68k_attribute_table,
{ "interrupt_handler", 0, 0, true, false, false, false,
m68k_handle_fndecl_attribute, NULL },
{ "interrupt_thread", 0, 0, true, false, false, false,
+ m68k_handle_fndecl_attribute, NULL },
+ { "pascal", 0, 0, false, true, true, true,
+ m68k_handle_fndecl_attribute, NULL },
+ { "regparam", 1, 1, false, true, true, true,
+ m68k_handle_fndecl_attribute, NULL },
+ { "raw_inline", 1, 32, false, true, true, false,
m68k_handle_fndecl_attribute, NULL }
});
@@ -647,6 +674,8 @@ m68k_option_override (void)
clear how intentional that is. */
flag_no_function_cse = 1;
}
+ else if(TARGET_PCREL)
+ m68k_symbolic_call_var = M68K_SYMBOLIC_CALL_BSRW_C;
switch (m68k_symbolic_call_var)
{
@@ -662,6 +691,10 @@ m68k_option_override (void)
m68k_symbolic_call = "bsr%.l %p0";
break;
+ case M68K_SYMBOLIC_CALL_BSRW_C:
+ m68k_symbolic_call = "bsr%.w %c0";
+ break;
+
case M68K_SYMBOLIC_CALL_NONE:
gcc_assert (m68k_symbolic_call == NULL);
break;
@@ -799,6 +832,9 @@ m68k_handle_fndecl_attribute (tree *node, tree name,
int flags ATTRIBUTE_UNUSED,
bool *no_add_attrs)
{
+ if (TREE_CODE (*node) != FUNCTION_TYPE && TREE_CODE (*node) != TYPE_DECL)
+ {
+
if (TREE_CODE (*node) != FUNCTION_DECL)
{
warning (OPT_Wattributes, "%qE attribute only applies to functions",
@@ -820,6 +856,9 @@ m68k_handle_fndecl_attribute (tree *node, tree name,
}
return NULL_TREE;
+ }
+ else
+ return NULL_TREE;
}
static void
@@ -918,7 +957,7 @@ m68k_initial_elimination_offset (int from, int to)
static bool
m68k_save_reg (unsigned int regno, bool interrupt_handler)
{
- if (flag_pic && regno == PIC_REG)
+ if (!TARGET_SEP_DATA && flag_pic && regno == PIC_REG)
{
if (crtl->saves_all_registers)
return true;
@@ -1409,6 +1448,9 @@ m68k_ok_for_sibcall_p (tree decl, tree exp)
if (CALL_EXPR_STATIC_CHAIN (exp))
return false;
+ if (decl && lookup_attribute ("raw_inline", TYPE_ATTRIBUTES( TREE_TYPE(decl) )))
+ return false;
+
if (!VOID_TYPE_P (TREE_TYPE (DECL_RESULT (cfun->decl))))
{
/* Check that the return value locations are the same. For
@@ -1417,9 +1459,9 @@ m68k_ok_for_sibcall_p (tree decl, tree exp)
rtx cfun_value;
rtx call_value;
- cfun_value = FUNCTION_VALUE (TREE_TYPE (DECL_RESULT (cfun->decl)),
- cfun->decl);
- call_value = FUNCTION_VALUE (TREE_TYPE (exp), decl);
+ cfun_value = m68k_function_value (TREE_TYPE (DECL_RESULT (cfun->decl)),
+ cfun->decl, false);
+ call_value = m68k_function_value (TREE_TYPE (exp), decl, false);
/* Check that the values are equal or that the result the callee
function returns is superset of what the current function returns. */
@@ -1443,11 +1485,106 @@ m68k_ok_for_sibcall_p (tree decl, tree exp)
return false;
}
-/* On the m68k all args are always pushed. */
+/* On the m68k all args are always pushed - NOT. */
+
+void m68k_init_cumulative_args (CUMULATIVE_ARGS *cum,
+ const_tree fntype,
+ rtx libname ATTRIBUTE_UNUSED,
+ const_tree fndecl,
+ int n_named_args)
+{
+ cum->bytes = 0;
+ cum->index = 0;
+ cum->regparam = false;
+
+ if(!fntype)
+ return;
+
+ tree regparam = lookup_attribute ("regparam", TYPE_ATTRIBUTES( fntype ));
+ cum->regparam = regparam != NULL;
+ if(regparam)
+ {
+ regparam = TREE_VALUE(TREE_VALUE(regparam));
+ if(TREE_CODE(regparam) == STRING_CST)
+ {
+ const char *paramstr = TREE_STRING_POINTER(regparam);
+
+ const char *p = paramstr;
+
+ bool ok = true;
+ int idx = 0;
+ cum->arg_regs[0] = 0;
+ if(*p == '(')
+ {
+ idx = 1;
+ p++;
+ }
+ while(*p)
+ {
+ while(*p && (*p == '_' || *p == '%' || *p == ',' || *p == '(' || *p == ')' || *p == ' ' || *p == '\t'))
+ p++;
+
+ if(!*p)
+ break;
+
+ if(*p != 'a' && *p != 'd' && *p != 'A' && *p != 'D')
+ { ok = false; break; }
+ if(p[1] < '0' || p[1] > '7')
+ { ok = false; break; }
+ cum->arg_regs[idx++] = p[1] - '0'
+ + (*p == 'a' || *p == 'A' ? 8 : 0);
+
+ p += 2;
+
+ }
+ // TODO: error checking
+ cum->total_count = idx - 1;
+ if(cum->total_count < 0)
+ cum->total_count = 0;
+ }
+ }
+
+ if(!regparam && fndecl)
+ {
+ std::map< std::string, std::vector<int> >::iterator p
+ = pragma_parameter_directives.find(IDENTIFIER_POINTER(DECL_NAME(fndecl)));
+ if(p != pragma_parameter_directives.end())
+ {
+ cum->regparam = true;
+ cum->total_count = p->second.size()-1;
+ for(unsigned i = 0; i < p->second.size(); i++)
+ cum->arg_regs[i] = p->second[i];
+ }
+ }
+
+
+}
+
+int
+m68k_is_pascal_func(tree fntype, tree fndecl)
+{
+ if(!fntype)
+ return false;
+ if(lookup_attribute ("pascal", TYPE_ATTRIBUTES (fntype)))
+ {
+ CUMULATIVE_ARGS cum;
+ m68k_init_cumulative_args(&cum, fntype, NULL, fndecl, -1);
+ return !cum.regparam;
+ }
+ else
+ return false;
+}
static rtx
-m68k_function_arg (cumulative_args_t, const function_arg_info &)
+m68k_function_arg (cumulative_args_t cum_v, const function_arg_info &arg)
{
+ CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
+ if(!cum->regparam)
+ return NULL_RTX;
+
+ if(cum->index < cum->total_count)
+ return gen_rtx_REG (arg.mode, cum->arg_regs[cum->index+1]);
+ else
return NULL_RTX;
}
@@ -1457,9 +1594,11 @@ m68k_function_arg_advance (cumulative_args_t cum_v,
{
CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
- *cum += (arg.promoted_size_in_bytes () + 3) & ~3;
+ cum->bytes += (arg.type_size_in_bytes() + 1) & ~1;
+ cum->index ++;
}
+
/* Convert X to a legitimate function call memory reference and return the
result. */
@@ -1627,7 +1766,7 @@ m68k_find_flags_value (rtx op0, rtx op1, rtx_code code)
/* Called through CC_STATUS_INIT, which is invoked by final whenever a
label is encountered. */
-
+
void
m68k_init_cc ()
{
@@ -3291,7 +3430,7 @@ output_move_simode (rtx *operands)
const char *
output_move_himode (rtx *operands)
{
- if (GET_CODE (operands[1]) == CONST_INT)
+ if (GET_CODE (operands[1]) == CONST_INT)
{
if (operands[1] == const0_rtx
&& (DATA_REG_P (operands[0])
@@ -3324,7 +3463,7 @@ output_move_qimode (rtx *operands)
/* 68k family always modifies the stack pointer by at least 2, even for
byte pushes. The 5200 (ColdFire) does not do this. */
-
+
/* This case is generated by pushqi1 pattern now. */
gcc_assert (!(GET_CODE (operands[0]) == MEM
&& GET_CODE (XEXP (operands[0], 0)) == PRE_DEC
@@ -3362,7 +3501,7 @@ output_move_qimode (rtx *operands)
{
if (ADDRESS_REG_P (operands[1]))
CC_STATUS_INIT;
- return "move%.w %1,%0";
+ return "move%.w %1,%0";
}
return "move%.b %1,%0";
}
@@ -4419,24 +4558,24 @@ m68k_output_compare_di (rtx op0, rtx op1, rtx sc1, rtx sc2, rtx_insn *insn,
return code;
}
else
- {
+ {
output_asm_insn ("sub%.l %R0,%R3\n\tsubx%.l %0,%3", ops);
return swap_condition (code);
- }
+ }
}
static void
remember_compare_flags (rtx op0, rtx op1)
{
if (side_effects_p (op0) || side_effects_p (op1))
- CC_STATUS_INIT;
+ CC_STATUS_INIT;
else
- {
+ {
flags_compare_op0 = op0;
flags_compare_op1 = op1;
flags_operand1 = flags_operand2 = NULL_RTX;
flags_valid = FLAGS_VALID_SET;
- }
+ }
}
/* Emit a comparison between OP0 and OP1. CODE is the code of the
@@ -4524,11 +4663,11 @@ m68k_output_compare_qi (rtx op0, rtx op1, rtx_code code)
else if (GET_CODE (op0) == MEM && GET_CODE (op1) == MEM)
output_asm_insn ("cmpm%.b %1,%0", ops);
else if (REG_P (op1) || (!REG_P (op0) && GET_CODE (op0) != MEM))
- {
+ {
output_asm_insn ("cmp%.b %d0,%d1", ops);
std::swap (flags_compare_op0, flags_compare_op1);
return swap_condition (code);
- }
+ }
else
output_asm_insn ("cmp%.b %d1,%d0", ops);
return code;
@@ -4560,14 +4699,14 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code)
output_asm_insn ("ftst%.d %0", ops);
else
output_asm_insn ("ftst%.x %0", ops);
- }
- else
+ }
+ else
output_asm_insn (("ftst%." + prec + " %0").c_str (), ops);
return code;
}
switch (which_alternative)
- {
+ {
case 0:
if (TARGET_COLDFIRE_FPU)
output_asm_insn ("fcmp%.d %1,%0", ops);
@@ -4576,7 +4715,7 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code)
break;
case 1:
output_asm_insn (("fcmp%." + prec + " %f1,%0").c_str (), ops);
- break;
+ break;
case 2:
output_asm_insn (("fcmp%." + prec + " %0,%f1").c_str (), ops);
std::swap (flags_compare_op0, flags_compare_op1);
@@ -4688,7 +4827,7 @@ m68k_output_scc (rtx_code code)
return "spl %0";
case MINUS:
return "smi %0";
- default:
+ default:
gcc_unreachable ();
}
}
@@ -4770,7 +4909,7 @@ m68k_output_branch_float_rev (rtx_code code)
return "fjueq %l3";
default:
gcc_unreachable ();
- }
+ }
}
/* Return an output template for a floating point scc
@@ -5608,6 +5747,42 @@ output_xorsi3 (rtx *operands)
const char *
output_call (rtx x)
{
+ if(GET_CODE (x) == SYMBOL_REF)
+ {
+ tree decl = SYMBOL_REF_DECL(x);
+ if(decl)
+ {
+ tree attr = lookup_attribute ("raw_inline", TYPE_ATTRIBUTES( TREE_TYPE(decl) ));
+ if(attr)
+ {
+ tree arg = TREE_VALUE(attr);
+
+ static char buf[512];
+ char *p = buf, *e = buf + sizeof(buf);
+ bool first = true;
+ p += snprintf(p, e-p, ".short ");
+
+ while(arg)
+ {
+ tree word_tree = TREE_VALUE(arg);
+ gcc_assert(TREE_CODE(word_tree) == INTEGER_CST);
+ if (TREE_CODE(word_tree) == INTEGER_CST)
+ {
+ int word = TREE_INT_CST_LOW(word_tree);
+ if(!first)
+ p += snprintf(p, e-p, ", ");
+ first = false;
+ p += snprintf(p, e-p, "0x%04x", word);
+ }
+ arg = TREE_CHAIN(arg);
+ }
+
+ if(p < e)
+ return buf;
+ }
+ }
+ }
+
if (symbolic_operand (x, VOIDmode))
return m68k_symbolic_call;
else
@@ -5871,7 +6046,7 @@ m68k_preferred_reload_class (rtx x, enum reg_class rclass)
If there is need for a hard-float ABI it is probably worth doing it
properly and also passing function arguments in FP registers. */
rtx
-m68k_libcall_value (machine_mode mode)
+m68k_libcall_value (enum machine_mode mode)
{
switch (mode) {
case E_SFmode:
@@ -5891,11 +6066,27 @@ m68k_libcall_value (machine_mode mode)
NOTE: Due to differences in ABIs, don't call this function directly,
use FUNCTION_VALUE instead. */
rtx
-m68k_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED)
+m68k_function_value (const_tree valtype, const_tree func_decl_or_type, bool outgoing)
{
machine_mode mode;
mode = TYPE_MODE (valtype);
+
+ const_tree decl = NULL, type = NULL;
+ if(func_decl_or_type)
+ {
+ CUMULATIVE_ARGS cum;
+ decl = func_decl_or_type;
+ type = func_decl_or_type;
+ if(TREE_CODE(type) == FUNCTION_DECL)
+ type = TREE_TYPE(type);
+ else
+ decl = NULL;
+ m68k_init_cumulative_args(&cum, type, NULL, decl, -1);
+ if(cum.regparam)
+ return gen_rtx_REG (mode, cum.arg_regs[0]);
+ }
+
switch (mode) {
case E_SFmode:
case E_DFmode:
@@ -5907,8 +6098,11 @@ m68k_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED)
break;
}
+#if 1 /* POINTERS_IN_D0 */
+ return gen_rtx_REG (mode, D0_REG);
+#else
/* If the function returns a pointer, push that into %a0. */
- if (func && POINTER_TYPE_P (TREE_TYPE (TREE_TYPE (func))))
+ if (type && POINTER_TYPE_P (TREE_TYPE (type)) && !outgoing)
/* For compatibility with the large body of existing code which
does not always properly declare external functions returning
pointer types, the m68k/SVR4 convention is to copy the value
@@ -5929,6 +6123,7 @@ m68k_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED)
return gen_rtx_REG (mode, A0_REG);
else
return gen_rtx_REG (mode, D0_REG);
+#endif
}
/* Worker function for TARGET_RETURN_IN_MEMORY. */
@@ -7101,6 +7296,8 @@ m68k_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
static poly_int64
m68k_return_pops_args (tree fundecl, tree funtype, poly_int64 size)
{
+ if (lookup_attribute ("pascal", TYPE_ATTRIBUTES (funtype)))
+ return size;
return ((TARGET_RTD
&& (!fundecl
|| TREE_CODE (fundecl) != IDENTIFIER_NODE)
@@ -7180,6 +7377,66 @@ m68k_excess_precision (enum excess_precision_type type)
return FLT_EVAL_METHOD_UNPREDICTABLE;
}
+extern int retro68_hack_asm_rts_counter;
+
+void
+m68k_write_macsbug_name(FILE *file, const char *name, tree decl)
+{
+ int len = strlen(name);
+ if(len > 255)
+ len = 255;
+
+ const char *section_name = DECL_SECTION_NAME (decl);
+ if(flag_function_sections && section_name)
+ fprintf(file, "\t.pushsection %s.macsbug,\"ax\",@progbits\n", section_name);
+ fprintf(file, "# macsbug symbol\n");
+ if(!retro68_hack_asm_rts_counter)
+ fprintf(file, "\trts\n");
+ if(len < 32)
+ fprintf(file, "\t.byte %d\n", len | 0x80);
+ else
+ fprintf(file, "\t.byte 0x80\n\t.byte %d\n", len);
+
+ ASM_OUTPUT_ASCII(file, name, len);
+ fprintf(file, "\t.align 2,0\n\t.short 0\n");
+ if(flag_function_sections && section_name)
+ fprintf(file, "\t.popsection\n", section_name);
+}
+
+static tree
+m68k_mangle_decl_assembler_name (tree decl, tree id)
+{
+ tree new_id = NULL_TREE;
+
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ tree attrs = TYPE_ATTRIBUTES ( TREE_TYPE(decl) );
+ if (attrs != NULL_TREE)
+ {
+ if (lookup_attribute ("pascal", attrs))
+ {
+ const char *old_str = IDENTIFIER_POINTER (id != NULL_TREE ? id : DECL_NAME (decl));
+ char *new_str, *p;
+ int len = strlen(old_str);
+ new_str = XALLOCAVEC (char, 1 + len);
+ for(int i = 0; i < len; i++)
+ new_str[i] = TOUPPER(old_str[i]);
+ new_str[len] = 0;
+
+ return get_identifier (new_str);
+ }
+ }
+ }
+
+ return id;
+}
+
+static pad_direction
+m68k_function_arg_padding (machine_mode mode, const_tree type)
+{
+ return PAD_UPWARD;
+}
+
/* Implement PUSH_ROUNDING. On the 680x0, sp@- in a byte insn really pushes
a word. On the ColdFire, sp@- in a byte insn pushes just a byte. */
@@ -7269,4 +7526,23 @@ m68k_use_lra_p ()
return m68k_lra_p;
}
+/* Return true if X is a SYMBOL_REF referring to a raw_inline function. */
+
+bool
+m68k_rawinline_p (rtx x)
+{
+ if (GET_CODE (x) == SYMBOL_REF)
+ {
+ tree decl = SYMBOL_REF_DECL (x);
+ if (decl)
+ {
+ tree attr = lookup_attribute ("raw_inline",
+ TYPE_ATTRIBUTES (TREE_TYPE (decl)));
+ if (attr)
+ return true;
+ }
+ }
+ return false;
+}
+
#include "gt-m68k.h"
diff --git a/gcc/gcc/config/m68k/m68k.h b/gcc/gcc/config/m68k/m68k.h
index 05e6ca7062..1bb1bb777b 100644
--- a/gcc/gcc/config/m68k/m68k.h
+++ b/gcc/gcc/config/m68k/m68k.h
@@ -54,6 +54,7 @@ along with GCC; see the file COPYING3. If not see
#define SUBTARGET_EXTRA_SPECS
+
/* Note that some other tm.h files include this one and then override
many of the definitions that relate to assembler syntax. */
@@ -193,9 +194,16 @@ along with GCC; see the file COPYING3. If not see
\
builtin_assert ("cpu=m68k"); \
builtin_assert ("machine=m68k"); \
+ \
+ builtin_define("pascal=__attribute__((__pascal__))"); \
} \
while (0)
+
+extern void m68k_register_pragmas(void);
+ /* Target Pragmas. */
+#define REGISTER_TARGET_PRAGMAS() m68k_register_pragmas ()
+
/* Classify the groups of pseudo-ops used to assemble QI, HI and SI
quantities. */
#define INT_OP_STANDARD 0 /* .byte, .short, .long */
@@ -287,7 +295,7 @@ along with GCC; see the file COPYING3. If not see
#define UNITS_PER_WORD 4
-#define PARM_BOUNDARY (TARGET_SHORT ? 16 : 32)
+#define PARM_BOUNDARY 16 /* (TARGET_SHORT ? 16 : 32) */
#define STACK_BOUNDARY 16
#define FUNCTION_BOUNDARY 16
#define EMPTY_FIELD_BOUNDARY 16
@@ -340,7 +348,7 @@ along with GCC; see the file COPYING3. If not see
0, 0, 0, 0, 0, 0, 0, 0, \
\
/* Address registers. */ \
- 0, 0, 0, 0, 0, 0, 0, 1, \
+ 0, 0, 0, 0, 0, 1, 0, 1, \
\
/* Floating point registers \
(if available). */ \
@@ -357,10 +365,10 @@ along with GCC; see the file COPYING3. If not see
Aside from that, you can include as many other registers as you like. */
#define CALL_USED_REGISTERS \
{/* Data registers. */ \
- 1, 1, 0, 0, 0, 0, 0, 0, \
+ 1, 1, 1, 0, 0, 0, 0, 0, \
\
/* Address registers. */ \
- 1, 1, 0, 0, 0, 0, 0, 1, \
+ 1, 1, 0, 0, 0, 1, 0, 1, \
\
/* Floating point registers \
(if available). */ \
@@ -473,8 +481,7 @@ extern enum reg_class regno_reg_class[];
#define FIRST_PARM_OFFSET(FNDECL) 8
/* On the m68k the return value defaults to D0. */
-#define FUNCTION_VALUE(VALTYPE, FUNC) \
- gen_rtx_REG (TYPE_MODE (VALTYPE), D0_REG)
+// gen_rtx_REG (TYPE_MODE (VALTYPE), D0_REG)
/* On the m68k the return value defaults to D0. */
#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, D0_REG)
@@ -490,13 +497,21 @@ extern enum reg_class regno_reg_class[];
/* On the m68k, all arguments are usually pushed on the stack. */
#define FUNCTION_ARG_REGNO_P(N) 0
-/* On the m68k, this is a single integer, which is a number of bytes
- of arguments scanned so far. */
-#define CUMULATIVE_ARGS int
+
+typedef struct {
+ int bytes; /* number of bytes of arguments scanned so far. */
+ int total_count;
+ int index;
+ int regparam;
+ int arg_regs[32];
+
+} CUMULATIVE_ARGS;
+
+extern void m68k_init_cumulative_args (CUMULATIVE_ARGS *cum, const_tree fntype, rtx libname, const_tree fundecl, int n_named_args);
/* On the m68k, the offset starts at 0. */
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
- ((CUM) = 0)
+ m68k_init_cumulative_args(&(CUM), (FNTYPE), (LIBNAME), (INDIRECT), (N_NAMED_ARGS));
#define FUNCTION_PROFILER(FILE, LABELNO) \
asm_fprintf (FILE, "\tlea %LLP%d,%Ra0\n\tjsr mcount\n", (LABELNO))
@@ -901,7 +916,8 @@ extern const char *m68k_symbolic_call;
extern const char *m68k_symbolic_jump;
enum M68K_SYMBOLIC_CALL { M68K_SYMBOLIC_CALL_NONE, M68K_SYMBOLIC_CALL_JSR,
- M68K_SYMBOLIC_CALL_BSR_C, M68K_SYMBOLIC_CALL_BSR_P };
+ M68K_SYMBOLIC_CALL_BSR_C, M68K_SYMBOLIC_CALL_BSR_P,
+ M68K_SYMBOLIC_CALL_BSRW_C };
extern enum M68K_SYMBOLIC_CALL m68k_symbolic_call_var;
@@ -920,3 +936,15 @@ extern int m68k_sched_address_bypass_p (rtx_insn *, rtx_insn *);
extern int m68k_sched_indexed_address_bypass_p (rtx_insn *, rtx_insn *);
#define CPU_UNITS_QUERY 1
+
+#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
+ do \
+ { \
+ if (!flag_inhibit_size_directive) \
+ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
+ m68k_write_macsbug_name(FILE, FNAME, DECL); \
+ } \
+ while (0)
+
+extern int m68k_is_pascal_func(tree, tree);
+#define IS_PASCAL_FUNC(fntype, fndecl) m68k_is_pascal_func(fntype, fndecl)
diff --git a/gcc/gcc/config/m68k/m68k.md b/gcc/gcc/config/m68k/m68k.md
index 35bf1c683c..8c122ee558 100644
--- a/gcc/gcc/config/m68k/m68k.md
+++ b/gcc/gcc/config/m68k/m68k.md
@@ -1166,12 +1166,26 @@
move%.b %1,%0"
[(set_attr "type" "clr,clr,move,move")])
-(define_expand "pushqi1"
- [(set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (const_int -2)))
- (set (mem:QI (plus:SI (reg:SI SP_REG) (const_int 1)))
- (match_operand:QI 0 "general_operand" ""))]
+; (define_expand "pushqi1"
+; [(set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (const_int -2)))
+; (set (mem:QI (reg:SI SP_REG) )
+; (match_operand:QI 0 "general_operand" ""))]
+; "!TARGET_COLDFIRE"
+; "")
+
+; (define_insn "*pushqi1"
+; [(set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (const_int -2)))
+; (set (mem:QI (reg:SI SP_REG) )
+; (match_operand:QI 0 "general_operand" ""))]
+; "!TARGET_COLDFIRE"
+; { return "move%.b %0,%-"; })
+
+(define_insn "*pushqi1"
+ [
+ (set (mem:QI (pre_modify:SI (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (const_int -2))))
+ (match_operand:QI 0 "general_operand" "dmn"))]
"!TARGET_COLDFIRE"
- "")
+ { return "move%.b %0,%-"; })
(define_expand "reload_insf"
[(set (match_operand:SF 0 "nonimmediate_operand" "=f")
@@ -6018,6 +6032,41 @@
operands[1] = m68k_legitimize_call_address (operands[1]);
})
+(define_expand "call_pop"
+ [(parallel [(call (match_operand:QI 0 "memory_operand" "")
+ (match_operand:SI 1 "general_operand" ""))
+ (set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG)
+ (match_operand:SI 3 "" "")))])]
+ ""
+{
+ operands[0] = m68k_legitimize_call_address (operands[0]);
+})
+(define_expand "call_value_pop"
+ [(parallel [(set (match_operand 0 "" "")
+ (call (match_operand:QI 1 "memory_operand" "")
+ (match_operand:SI 2 "general_operand" "")))
+ (set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG)
+ (match_operand:SI 4 "" "")))])]
+ ""
+{
+ operands[1] = m68k_legitimize_call_address (operands[1]);
+})
+
+(define_insn "*call_pop"
+ [(call (mem:QI (match_operand:SI 0 "call_operand" "a,W"))
+ (match_operand:SI 1 "general_operand" "g,g"))
+ (set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG)
+ (match_operand:SI 2 "" "")))]
+ ;; Operand 1 not really used on the m68000.
+ "!SIBLING_CALL_P (insn)"
+{
+ return output_call (operands[0]);
+}
+ [(set_attr "type" "jsr")])
+
(define_insn "*non_symbolic_call_value"
[(set (match_operand 0 "" "=rf,rf")
(call (mem:QI (match_operand:SI 1 "non_symbolic_call_operand" "a,W"))
@@ -6036,7 +6085,7 @@
"!SIBLING_CALL_P (insn) && m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_JSR"
{
operands[0] = operands[1];
- return m68k_symbolic_call;
+ return output_call (operands[0]);
}
[(set_attr "type" "jsr")
(set_attr "opx" "1")])
@@ -6048,14 +6097,66 @@
;; Operand 2 not really used on the m68000.
"!SIBLING_CALL_P (insn)
&& (m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSR_C
- || m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSR_P)"
+ || m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSR_P
+ || m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSRW_C)"
+{
+ operands[0] = operands[1];
+ return output_call (operands[0]);
+}
+ [(set_attr "type" "bsr")
+ (set_attr "opx" "1")])
+
+
+(define_insn "*non_symbolic_call_value_pop"
+ [(set (match_operand 0 "" "=rf,rf")
+ (call (mem:QI (match_operand:SI 1 "non_symbolic_call_operand" "a,W"))
+ (match_operand:SI 2 "general_operand" "g,g")))
+ (set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG)
+ (match_operand:SI 3 "" "")))]
+ ;; Operand 2 not really used on the m68000.
+ "!SIBLING_CALL_P (insn)"
+ "jsr %a1"
+ [(set_attr "type" "jsr")
+ (set_attr "opx" "1")])
+
+(define_insn "*symbolic_call_value_pop_jsr"
+ [(set (match_operand 0 "" "=rf,rf")
+ (call (mem:QI (match_operand:SI 1 "symbolic_operand" "a,W"))
+ (match_operand:SI 2 "general_operand" "g,g")))
+ (set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG)
+ (match_operand:SI 3 "" "")))]
+ ;; Operand 2 not really used on the m68000.
+ "!SIBLING_CALL_P (insn) && m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_JSR"
+{
+ operands[0] = operands[1];
+ return output_call (operands[0]);
+}
+ [(set_attr "type" "jsr")
+ (set_attr "opx" "1")])
+
+(define_insn "*symbolic_call_value_pop_bsr"
+ [(set (match_operand 0 "" "=rf,rf")
+ (call (mem:QI (match_operand:SI 1 "symbolic_operand" "a,W"))
+ (match_operand:SI 2 "general_operand" "g,g")))
+ (set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG)
+ (match_operand:SI 3 "" "")))]
+ ;; Operand 2 not really used on the m68000.
+ "!SIBLING_CALL_P (insn)
+ && (m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSR_C
+ || m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSR_P
+ || m68k_symbolic_call_var == M68K_SYMBOLIC_CALL_BSRW_C)"
{
operands[0] = operands[1];
- return m68k_symbolic_call;
+ return output_call (operands[0]);
}
[(set_attr "type" "bsr")
(set_attr "opx" "1")])
+
+
;; Call subroutine returning any type.
(define_expand "untyped_call"
@@ -6134,6 +6235,7 @@
[(return)]
""
{
+ extern int retro68_hack_asm_rts_counter;
switch (m68k_get_function_kind (current_function_decl))
{
case m68k_fk_interrupt_handler:
@@ -6143,11 +6245,17 @@
return "sleep";
default:
+ retro68_hack_asm_rts_counter = 2;
if (crtl->args.pops_args)
{
operands[0] = GEN_INT (crtl->args.pops_args);
- return "rtd %0";
- }
+ if (TARGET_68020)
+ return "rtd %0";
+ else
+ return "move.l (%%a7)+, %%a0\n"
+ "\tlea %a0(%%a7), %%a7\n"
+ "\tjmp (%%a0)";
+ }
else
return "rts";
}
diff --git a/gcc/gcc/config/m68k/m68kemb.h b/gcc/gcc/config/m68k/m68kemb.h
index ff63ae056b..e1702df656 100644
--- a/gcc/gcc/config/m68k/m68kemb.h
+++ b/gcc/gcc/config/m68k/m68kemb.h
@@ -17,8 +17,6 @@
and unions in registers, which is slightly more efficient. */
#define DEFAULT_PCC_STRUCT_RETURN 0
-#undef FUNCTION_VALUE
-#define FUNCTION_VALUE(VALTYPE,FUNC) LIBCALL_VALUE (TYPE_MODE (VALTYPE))
#undef LIBCALL_VALUE
#define LIBCALL_VALUE(MODE) \
diff --git a/gcc/gcc/config/m68k/predicates.md b/gcc/gcc/config/m68k/predicates.md
index e6a73d3844..ec9408eb03 100644
--- a/gcc/gcc/config/m68k/predicates.md
+++ b/gcc/gcc/config/m68k/predicates.md
@@ -158,9 +158,18 @@
}
})
+
+(define_predicate "rawinline_operand"
+ (match_code "symbol_ref")
+{
+ return m68k_rawinline_p(op);
+})
+
+
;; A constant that can be used the address in a call insn
(define_predicate "const_call_operand"
(ior (match_operand 0 "const_int_operand")
+ (match_operand 0 "rawinline_operand")
(and (match_test "m68k_symbolic_call != NULL")
(match_operand 0 "symbolic_operand"))))
diff --git a/gcc/gcc/config/m68k/t-m68k b/gcc/gcc/config/m68k/t-m68k
index cbff34d658..cff52fb59f 100644
--- a/gcc/gcc/config/m68k/t-m68k
+++ b/gcc/gcc/config/m68k/t-m68k
@@ -2,3 +2,7 @@
M68K_MLIB_CPU += && (CPU !~ "^mcf")
M68K_ARCH := m68k
+
+M68K_MLIB_CPU += && (CPU !~ "^m68060") && (CPU !~ "^cpu32") && (CPU !~ "^fidoa")
+
+PASSES_EXTRA += $(srcdir)/config/m68k/m68k-passes.def
diff --git a/gcc/gcc/config/m68k/t-macos b/gcc/gcc/config/m68k/t-macos
new file mode 100644
index 0000000000..1ef1c285f3
--- /dev/null
+++ b/gcc/gcc/config/m68k/t-macos
@@ -0,0 +1,5 @@
+m68k-mac-pragmas.o: $(srcdir)/config/m68k/m68k-mac-pragmas.c
+ $(COMPILE) $<
+ $(POSTCOMPILE)
+
+M68K_MLIB_CPU += && (CPU !~ "^m68060") && (CPU !~ "^cpu32") && (CPU !~ "^fidoa")
diff --git a/gcc/gcc/config/rs6000/macos.h b/gcc/gcc/config/rs6000/macos.h
new file mode 100644
index 0000000000..b8af463686
--- /dev/null
+++ b/gcc/gcc/config/rs6000/macos.h
@@ -0,0 +1,320 @@
+/* Definitions of target machine for GNU compiler,
+ for IBM RS/6000 POWER running AIX.
+ Copyright (C) 2000-2015 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+/* Yes! We are AIX! */
+#define DEFAULT_ABI ABI_AIX
+#undef TARGET_AIX
+#define TARGET_AIX 1
+
+/* Linux64.h wants to redefine TARGET_AIX based on -m64, but it can't be used
+ in the #if conditional in options-default.h, so provide another macro. */
+#undef TARGET_AIX_OS
+#define TARGET_AIX_OS 1
+
+/* AIX always has a TOC. */
+#define TARGET_NO_TOC 0
+#define TARGET_HAS_TOC 1
+#define FIXED_R2 1
+
+
+/* AIX allows r13 to be used in 32-bit mode. */
+#define FIXED_R13 0
+
+/* 32-bit and 64-bit AIX stack boundary is 128. */
+#undef STACK_BOUNDARY
+#define STACK_BOUNDARY 128
+
+#undef TARGET_IEEEQUAD
+#define TARGET_IEEEQUAD 0
+
+
+#if HAVE_AS_REF
+/* Issue assembly directives that create a reference to the given DWARF table
+ identifier label from the current function section. This is defined to
+ ensure we drag frame frame tables associated with needed function bodies in
+ a link with garbage collection activated. */
+#define ASM_OUTPUT_DWARF_TABLE_REF rs6000_aix_asm_output_dwarf_table_ref
+#endif
+
+/* This is the only version of nm that collect2 can work with. */
+//#define REAL_NM_FILE_NAME "/usr/ucb/nm"
+
+#define USER_LABEL_PREFIX ""
+
+/* Don't turn -B into -L if the argument specifies a relative file name. */
+#define RELATIVE_PREFIX_NOT_LINKDIR
+
+/* Because of the above, we must have gcc search itself to find libgcc.a. */
+#define LINK_LIBGCC_SPECIAL_1
+
+#undef ASM_DEFAULT_SPEC
+#define ASM_DEFAULT_SPEC ""
+
+
+/* Static linking with shared libstdc++ requires libsupc++ as well. */
+#define LIBSTDCXX_STATIC "supc++"
+
+/* Compute field alignment.
+ This implements the 'power' alignment rule by pegging the alignment of
+ items (beyond the first aggregate field) to 32 bits. The pegging is
+ suppressed for vector and long double items (both 128 in size).
+ There is a dummy use of the FIELD argument to avoid an unused variable
+ warning (see PR59496). */
+#define ADJUST_FIELD_ALIGN(FIELD, TYPE, COMPUTED) \
+ ((void) (FIELD), \
+ (TARGET_ALIGN_NATURAL \
+ ? (COMPUTED) \
+ : (COMPUTED) == 128 \
+ ? 128 \
+ : MIN ((COMPUTED), 32)))
+
+/* AIX increases natural record alignment to doubleword if the first
+ field is an FP double while the FP fields remain word aligned. */
+#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
+ ((TREE_CODE (STRUCT) == RECORD_TYPE \
+ || TREE_CODE (STRUCT) == UNION_TYPE \
+ || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \
+ && TARGET_ALIGN_NATURAL == 0 \
+ ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \
+ : MAX ((COMPUTED), (SPECIFIED)))
+
+/* The AIX ABI isn't explicit on whether aggregates smaller than a
+ word/doubleword should be padded upward or downward. One could
+ reasonably assume that they follow the normal rules for structure
+ layout treating the parameter area as any other block of memory,
+ then map the reg param area to registers, i.e., pad upward, which
+ is the way IBM Compilers for AIX behave.
+ Setting both of the following defines results in this behavior. */
+#define AGGREGATE_PADDING_FIXED 1
+#define AGGREGATES_PAD_UPWARD_ALWAYS 1
+
+/* Specify padding for the last element of a block move between
+ registers and memory. FIRST is nonzero if this is the only
+ element. */
+#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
+ (!(FIRST) ? PAD_UPWARD : targetm.calls.function_arg_padding (MODE, TYPE))
+
+
+/* Indicate that jump tables go in the text section. */
+
+#define JUMP_TABLES_IN_TEXT_SECTION 1
+
+
+#define PROFILE_HOOK(LABEL) output_profile_hook (LABEL)
+
+/* No version of AIX fully supports AltiVec or 64-bit instructions in
+ 32-bit mode. */
+#define OS_MISSING_POWERPC64 1
+#define OS_MISSING_ALTIVEC 1
+
+/* WINT_TYPE */
+#define WINT_TYPE "int"
+
+/* Static stack checking is supported by means of probes. */
+#define STACK_CHECK_STATIC_BUILTIN 1
+
+/* Use standard DWARF numbering for DWARF debugging information. */
+#define RS6000_USE_DWARF_NUMBERING
+
+
+
+/* MacOS does support Altivec. */
+#/*undef TARGET_ALTIVEC
+#define TARGET_ALTIVEC 1
+#undef TARGET_ALTIVEC_ABI
+#define TARGET_ALTIVEC_ABI 1
+#undef TARGET_ALTIVEC_VRSAVE
+#define TARGET_ALTIVEC_VRSAVE 1*/
+
+#undef TARGET_OS_CPP_BUILTINS
+/* __POWERPC__ must be defined for some header files */
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__ppc__"); \
+ builtin_define ("__PPC__"); \
+ builtin_define ("__POWERPC__"); \
+ builtin_define ("__NATURAL_ALIGNMENT__"); \
+ builtin_define ("macintosh"); \
+ builtin_define ("Macintosh"); \
+ builtin_assert ("system=macos"); \
+ builtin_assert ("cpu=powerpc"); \
+ builtin_assert ("machine=powerpc"); \
+ builtin_assert ("cpu=m68k"); \
+ builtin_assert ("machine=m68k"); \
+ builtin_define("pascal=__attribute__((__pascal__))"); \
+ builtin_define("__IEEE_BIG_ENDIAN"); \
+ } \
+ while (0)
+
+/* --no-check-sections : sections overlap on purpose!
+ -undefined=_consolewrite : hack to allow easy configuration of console output
+*/
+
+#define LINK_SPEC "%{!r:-btextro} -bhalt:4 -bnodelcsect \
+--no-check-sections -undefined=_consolewrite \
+%{shared:-bM:SRE}"
+
+#define LIB_SPEC "-lc"
+#define LIBGCC_SPEC "-lgcc %{carbon: -lretrocrt-carbon} %{!carbon: -lretrocrt} -lgcc %{carbon: -lCarbonLib} %{!carbon: -lInterfaceLib}"
+
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group -lgcc -lc %{carbon: -lretrocrt-carbon} %{!carbon: -lretrocrt} %{carbon: -lCarbonLib} %{!carbon: -lInterfaceLib} --end-group"
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC ""
+
+#undef CPP_SPEC
+#define CPP_SPEC "-Wno-trigraphs"
+
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT 0
+// (MASK_POWERPC | MASK_MULTIPLE | MASK_NEW_MNEMONICS)
+
+#undef PROCESSOR_DEFAULT
+#define PROCESSOR_DEFAULT PROCESSOR_PPC601
+
+#undef OS_MISSING_ALTIVEC
+#define OS_MISSING_ALTIVEC 0
+
+#undef VECTOR_SAVE_INLINE
+#define VECTOR_SAVE_INLINE(FIRST_REG) 1
+
+
+#define TARGET_USES_AIX64_OPT
+
+#undef TARGET_POINTERS_TO_NESTED_FUNCTIONS
+#define TARGET_POINTERS_TO_NESTED_FUNCTIONS 0
+
+/* Type used for ptrdiff_t, as a string used in a declaration. */
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "long int"
+
+/* The AIX linker will discard static constructors in object files before
+ collect has a chance to see them, so collect2 contains functionality
+ to scan the object files directly, enabled by:
+ #define COLLECT_EXPORT_LIST
+
+ However, this seems to find all constructors and exception frame tables,
+ and thus leads to huge executables.
+ As we don't need to be compatible with the AIX linker, binutils had been
+ made to not discard these symbols any more *if* the corresponding object
+ file is loaded.
+*/
+
+/* Select a format to encode pointers in exception handling data. CODE
+ is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
+ true if the symbol may be affected by dynamic relocations. */
+#undef ASM_PREFERRED_EH_DATA_FORMAT
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
+ (DW_EH_PE_absptr)
+#undef EH_TABLES_CAN_BE_READ_ONLY
+#define EH_TABLES_CAN_BE_READ_ONLY 0
+
+#if 0
+/* On AIX, initialisers specified with -binitfini are called in breadth-first
+ order.
+ e.g. if a.out depends on lib1.so, the init function for a.out is called before
+ the init function for lib1.so.
+
+ To ensure global C++ constructors in linked libraries are run before global
+ C++ constructors from the current module, there is additional symbol scanning
+ logic in collect2.
+
+ The global initialiser/finaliser functions are named __GLOBAL_AIXI_{libname}
+ and __GLOBAL_AIXD_{libname} and are exported from each shared library.
+
+ collect2 will detect these symbols when they exist in shared libraries that
+ the current program is being linked against. All such initiliser functions
+ will be called prior to the constructors of the current program, and
+ finaliser functions called after destructors.
+
+ Reference counting generated by collect2 will ensure that constructors are
+ only invoked once in the case of multiple dependencies on a library.
+
+ -binitfini is still used in parallel to this solution.
+ This handles the case where a library is loaded through dlopen(), and also
+ handles the option -blazy.
+*/
+#define COLLECT_SHARED_INIT_FUNC(STREAM, FUNC) \
+ fprintf ((STREAM), "void %s() {\n\t%s();\n}\n", aix_shared_initname, (FUNC))
+#define COLLECT_SHARED_FINI_FUNC(STREAM, FUNC) \
+ fprintf ((STREAM), "void %s() {\n\t%s();\n}\n", aix_shared_fininame, (FUNC))
+
+#endif
+
+#if HAVE_AS_REF
+/* Issue assembly directives that create a reference to the given DWARF table
+ identifier label from the current function section. This is defined to
+ ensure we drag frame tables associated with needed function bodies in
+ a link with garbage collection activated. */
+#define ASM_OUTPUT_DWARF_TABLE_REF rs6000_aix_asm_output_dwarf_table_ref
+#endif
+/* Use standard DWARF numbering for DWARF debugging information. */
+#define RS6000_USE_DWARF_NUMBERING
+#define DWARF2_DEBUGGING_INFO 1
+//#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+#define PREFERRED_DEBUGGING_TYPE XCOFF_DEBUG
+#define DEBUG_INFO_SECTION "0x10000"
+#define DEBUG_LINE_SECTION "0x20000"
+#define DEBUG_PUBNAMES_SECTION "0x30000"
+#define DEBUG_PUBTYPES_SECTION "0x40000"
+#define DEBUG_ARANGES_SECTION "0x50000"
+#define DEBUG_ABBREV_SECTION "0x60000"
+#define DEBUG_STR_SECTION "0x70000"
+#define DEBUG_RANGES_SECTION "0x80000"
+#define DEBUG_LOC_SECTION "0x90000"
+#define DEBUG_FRAME_SECTION "0xA0000"
+#define DEBUG_MACINFO_SECTION "0xB0000"
+#define DEBUG_MACRO_SECTION "0xB0000"
+
+
+
+#define SIG_ATOMIC_TYPE "int"
+
+#define INT8_TYPE "signed char"
+#define INT16_TYPE "short int"
+#define INT32_TYPE "long int"
+#define INT64_TYPE "long long int"
+#define UINT8_TYPE "unsigned char"
+#define UINT16_TYPE "short unsigned int"
+#define UINT32_TYPE "long unsigned int"
+#define UINT64_TYPE "long long unsigned int"
+
+#define INT_LEAST8_TYPE "signed char"
+#define INT_LEAST16_TYPE "short int"
+#define INT_LEAST32_TYPE "long int"
+#define INT_LEAST64_TYPE "long long int"
+#define UINT_LEAST8_TYPE "unsigned char"
+#define UINT_LEAST16_TYPE "short unsigned int"
+#define UINT_LEAST32_TYPE "long unsigned int"
+#define UINT_LEAST64_TYPE "long long unsigned int"
+
+#define INT_FAST8_TYPE "signed char"
+#define INT_FAST16_TYPE "short int"
+#define INT_FAST32_TYPE "long int"
+#define INT_FAST64_TYPE "long long int"
+#define UINT_FAST8_TYPE "unsigned char"
+#define UINT_FAST16_TYPE "short unsigned int"
+#define UINT_FAST32_TYPE "long unsigned int"
+#define UINT_FAST64_TYPE "long long unsigned int"
+
+#define INTPTR_TYPE "long int"
+#define UINTPTR_TYPE "long unsigned int"
+
diff --git a/gcc/gcc/config/rs6000/rs6000.cc b/gcc/gcc/config/rs6000/rs6000.cc
index 737c3d6f7c..2cf1c878a2 100644
--- a/gcc/gcc/config/rs6000/rs6000.cc
+++ b/gcc/gcc/config/rs6000/rs6000.cc
@@ -1271,6 +1271,9 @@ static const attribute_spec rs6000_gnu_attributes[] =
rs6000_handle_struct_attribute, NULL },
{ "gcc_struct", 0, 0, false, false, false, false,
rs6000_handle_struct_attribute, NULL },
+ { "pascal", 0, 0, false, true, true, false/*don't be strict about function pointers*/,
+ NULL, NULL },
+
#ifdef SUBTARGET_ATTRIBUTE_TABLE
SUBTARGET_ATTRIBUTE_TABLE,
#endif
@@ -22068,8 +22071,9 @@ rs6000_xcoff_declare_object_name (FILE *file, const char *name, tree decl)
{
struct declare_alias_data data = {file, false};
ASM_OUTPUT_LABEL (file, name);
- symtab_node::get_create (decl)->call_for_symbol_and_aliases (rs6000_declare_alias,
- &data, true);
+ if (symtab_node::get (decl))
+ symtab_node::get (decl)->call_for_symbol_and_aliases (rs6000_declare_alias,
+ &data, true);
}
/* Overide the default 'SYMBOL-.' syntax with AIX compatible 'SYMBOL-$'. */
diff --git a/gcc/gcc/config/rs6000/rs6000.opt b/gcc/gcc/config/rs6000/rs6000.opt
index 88cf16ca58..07ed6365db 100644
--- a/gcc/gcc/config/rs6000/rs6000.opt
+++ b/gcc/gcc/config/rs6000/rs6000.opt
@@ -581,6 +581,9 @@ Use the given offset for addressing the stack-protector guard.
TargetVariable
long rs6000_stack_protector_guard_offset = 0
+carbon
+Target RejectNegative
+
;; -mno-speculate-indirect-jumps adds deliberate misprediction to indirect
;; branches via the CTR.
mspeculate-indirect-jumps
diff --git a/gcc/gcc/config/rs6000/t-macos b/gcc/gcc/config/rs6000/t-macos
new file mode 100644
index 0000000000..534dd94a42
--- /dev/null
+++ b/gcc/gcc/config/rs6000/t-macos
@@ -0,0 +1,35 @@
+# Copyright (C) 1998-2015 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# Build the libraries for pthread and all of the
+# different processor models
+
+#MULTILIB_OPTIONS =
+# mcpu=powerpc
+
+#MULTILIB_DIRNAMES =
+#powerpc
+
+#MULTILIB_MATCHES =
+# mcpu?powerpc=mcpu?powerpc \
+# mcpu?powerpc=mcpu?601 \
+# mcpu?powerpc=mcpu?602 \
+# mcpu?powerpc=mcpu?603 \
+# mcpu?powerpc=mcpu?603e \
+# mcpu?powerpc=mcpu?604 \
+# mcpu?powerpc=mcpu?604e
diff --git a/gcc/gcc/cp/decl.cc b/gcc/gcc/cp/decl.cc
index 4e97093b13..7401549354 100644
--- a/gcc/gcc/cp/decl.cc
+++ b/gcc/gcc/cp/decl.cc
@@ -11269,6 +11269,12 @@ grokfndecl (tree ctype,
(IDENTIFIER_POINTER (declarator))))))
SET_DECL_LANGUAGE (decl, lang_c);
+ if (attrlist && lookup_attribute ("pascal", *attrlist))
+ {
+ // paradoxical, but true: Mac pascal function names aren't mangled.
+ SET_DECL_LANGUAGE (decl, lang_c);
+ }
+
DECL_STATIC_FUNCTION_P (decl)
= !xobj_func_p && ctype && TREE_CODE (type) == FUNCTION_TYPE;
DECL_FUNCTION_XOBJ_FLAG (decl) = xobj_func_p;
diff --git a/gcc/gcc/cp/parser.cc b/gcc/gcc/cp/parser.cc
index 3628cfefa0..139ea6e069 100644
--- a/gcc/gcc/cp/parser.cc
+++ b/gcc/gcc/cp/parser.cc
@@ -3160,6 +3160,8 @@ static size_t cp_parser_skip_balanced_tokens (cp_parser *, size_t);
static bool cp_parser_next_tokens_can_be_canon_loop (cp_parser *,
enum tree_code, bool);
static tree cp_parser_omp_loop_nest (cp_parser *, bool *);
+static tree cp_parser_inline_opcodes
+ (cp_parser *);
// -------------------------------------------------------------------------- //
// Unevaluated Operand Guard
@@ -4753,6 +4755,7 @@ cp_parser_string_literal_common (cp_parser *parser, bool translate,
tree string_tree;
tree suffix_id = NULL_TREE;
bool curr_tok_is_userdef_p = false;
+ bool pascal_string = false;
tok = cp_lexer_peek_token (parser->lexer);
if (!cp_parser_is_string_literal (tok))
@@ -4896,9 +4899,21 @@ cp_parser_string_literal_common (cp_parser *parser, bool translate,
if (uneval)
type = CPP_UNEVAL_STRING;
+ if (!strncmp((const char*)strs[0].text, "\"\\p", 3))
+ {
+ pascal_string = true;
+ /* replace \p by a valid escape sequence */
+ ((unsigned char*)strs[0].text)[2] = 'n';
+ }
+
if ((translate ? cpp_interpret_string : cpp_interpret_string_notranslate)
(parse_in, strs, count, &istr, type))
{
+ if (pascal_string)
+ {
+ /* put the real string length in */
+ ((unsigned char*)istr.text)[0] = (unsigned char) (istr.len - 2);
+ }
value = build_string (istr.len, (const char *)istr.text);
free (CONST_CAST (unsigned char *, istr.text));
if (count > 1)
@@ -4912,7 +4927,10 @@ cp_parser_string_literal_common (cp_parser *parser, bool translate,
{
default:
case CPP_STRING:
- TREE_TYPE (value) = char_array_type_node;
+ if (pascal_string)
+ TREE_TYPE (value) = uchar_array_type_node;
+ else
+ TREE_TYPE (value) = char_array_type_node;
break;
case CPP_UTF8STRING:
if (flag_char8_t)
@@ -24193,20 +24211,42 @@ cp_parser_init_declarator (cp_parser* parser,
{
if (function_declarator_p (declarator))
{
- if (initialization_kind == CPP_EQ)
- initializer = cp_parser_pure_specifier (parser);
- else
- {
- /* If the declaration was erroneous, we don't really
+ if (initialization_kind == CPP_EQ)
+ {
+ if(member_p)
+ initializer = cp_parser_pure_specifier (parser);
+ else
+ {
+ cp_token *token;
+ cp_lexer_consume_token (parser->lexer);
+ token = cp_lexer_peek_token (parser->lexer);
+ if (token->keyword == RID_DEFAULT
+ || token->keyword == RID_DELETE)
+ {
+ cp_lexer_consume_token (parser->lexer);
+ maybe_warn_cpp0x (CPP0X_DEFAULTED_DELETED);
+ initializer = token->u.value;
+ }
+ else
+ {
+ is_initialized = false;
+ tree rawinline_attr = cp_parser_inline_opcodes (parser);
+ decl_attributes (&decl, rawinline_attr, 0);
+ }
+ }
+ }
+ else
+ {
+ /* If the declaration was erroneous, we don't really
know what the user intended, so just silently
consume the initializer. */
- if (decl != error_mark_node)
+ if (decl != error_mark_node)
error_at (tmp_init_loc, "initializer provided for function");
- cp_parser_skip_to_closing_parenthesis (parser,
+ cp_parser_skip_to_closing_parenthesis (parser,
/*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
- }
+ }
}
else
{
@@ -54213,6 +54253,49 @@ finish_fully_implicit_template (cp_parser *parser, tree member_decl_opt)
return member_decl_opt;
}
+
+static tree cp_parser_inline_opcodes(cp_parser * parser)
+{
+ tree attr_args;
+ bool braced = false;
+
+ braced = cp_lexer_next_token_is(parser->lexer, CPP_OPEN_BRACE);
+ if(braced)
+ cp_lexer_consume_token(parser->lexer);
+
+ vec<tree, va_gc> *expr_list = make_tree_vector ();
+
+ if(!braced || !cp_lexer_next_token_is(parser->lexer, CPP_CLOSE_BRACE))
+ {
+ for(;;)
+ {
+ tree val = cp_parser_constant_expression (parser,
+ /*allow_non_constant_p=*/false,
+ NULL);
+ val = cp_fully_fold(val);
+ vec_safe_push (expr_list, val);
+
+ if(cp_lexer_next_token_is(parser->lexer, CPP_COMMA))
+ cp_lexer_consume_token(parser->lexer);
+ else
+ break;
+ }
+ }
+
+ attr_args = build_tree_list_vec (expr_list);
+ release_tree_vector (expr_list);
+
+ if(braced)
+ {
+ if(cp_lexer_next_token_is(parser->lexer, CPP_CLOSE_BRACE))
+ cp_lexer_consume_token(parser->lexer);
+ else
+ cp_parser_error (parser, "expected %<}%>");
+ }
+
+ return build_tree_list (canonicalize_attr_name(get_identifier("__raw_inline__")), attr_args);
+}
+
/* Like finish_fully_implicit_template, but to be used in error
recovery, rearranging scopes so that we restore the state we had
before synthesize_implicit_template_parm inserted the implement
diff --git a/gcc/gcc/expr.cc b/gcc/gcc/expr.cc
index 3815c565e2..25fddc7521 100644
--- a/gcc/gcc/expr.cc
+++ b/gcc/gcc/expr.cc
@@ -5053,12 +5053,14 @@ find_args_size_adjust (rtx_insn *insn)
addr = XEXP (mem, 0);
switch (GET_CODE (addr))
{
+#ifdef PUSH_ROUNDING
case PRE_INC:
case POST_INC:
- return GET_MODE_SIZE (GET_MODE (mem));
+ return PUSH_ROUNDING( GET_MODE_SIZE (GET_MODE (mem)) );
case PRE_DEC:
case POST_DEC:
- return -GET_MODE_SIZE (GET_MODE (mem));
+ return -PUSH_ROUNDING( GET_MODE_SIZE (GET_MODE (mem)) );
+#endif
case PRE_MODIFY:
case POST_MODIFY:
addr = XEXP (addr, 1);
diff --git a/gcc/gcc/final.cc b/gcc/gcc/final.cc
index 12c6eb0ac0..d4ba6cc41c 100644
--- a/gcc/gcc/final.cc
+++ b/gcc/gcc/final.cc
@@ -3410,6 +3410,8 @@ do_assembler_dialects (const char *p, int *dialect)
and print a constant expression for minus the value
of the operand, with no other punctuation. */
+int retro68_hack_asm_rts_counter = 0;
+
void
output_asm_insn (const char *templ, rtx *operands)
{
@@ -3427,6 +3429,13 @@ output_asm_insn (const char *templ, rtx *operands)
if (*templ == 0)
return;
+ /* Hack: in Retro68, we want to know whether the last
+ instruction we output was an rts, so we know
+ whether we have to output an extra one as part
+ of the MacsBug name. */
+ if(retro68_hack_asm_rts_counter)
+ retro68_hack_asm_rts_counter--;
+
memset (opoutput, 0, sizeof opoutput);
p = templ;
putc ('\t', asm_out_file);
diff --git a/gcc/gcc/function.cc b/gcc/gcc/function.cc
index 2ad430a801..a81e0e4fd9 100644
--- a/gcc/gcc/function.cc
+++ b/gcc/gcc/function.cc
@@ -2425,6 +2425,20 @@ assign_parms_augmented_arg_list (struct assign_parm_data_all *all)
all->function_result_decl = decl;
}
+#ifdef IS_PASCAL_FUNC
+ if (IS_PASCAL_FUNC(fntype, fndecl))
+ {
+ // reverse argument order
+ unsigned n = fnargs.length(), n2 = fnargs.length() / 2;
+ for(unsigned i = 0; i < n2; i++)
+ {
+ tree tmp = fnargs[i];
+ fnargs[i] = fnargs[n - 1 - i];
+ fnargs[n - 1 - i] = tmp;
+ }
+ }
+#endif
+
/* If the target wants to split complex arguments into scalars, do so. */
if (targetm.calls.split_complex_arg)
split_complex_args (&fnargs);
@@ -5475,6 +5489,20 @@ expand_function_end (void)
tree decl_result = DECL_RESULT (current_function_decl);
rtx decl_rtl = DECL_RTL (decl_result);
+#ifdef IS_PASCAL_FUNC
+ if (IS_PASCAL_FUNC(TREE_TYPE(current_function_decl), current_function_decl))
+ {
+ enum machine_mode mode = GET_MODE(decl_rtl);;
+
+ rtx return_slot = gen_int_mode(crtl->args.pops_args + 8, Pmode);
+ return_slot = gen_rtx_PLUS(Pmode, arg_pointer_rtx, return_slot);
+ return_slot = gen_rtx_MEM(mode, return_slot);
+ MEM_VOLATILE_P(return_slot) = true;
+ emit_move_insn (return_slot, decl_rtl);
+ crtl->return_rtx = return_slot;
+ }
+ else
+#endif
if ((REG_P (decl_rtl)
? REGNO (decl_rtl) >= FIRST_PSEUDO_REGISTER
: DECL_REGISTER (decl_result))
diff --git a/gcc/gcc/reload1.cc b/gcc/gcc/reload1.cc
index 64ec74e2bf..1c8705feeb 100644
--- a/gcc/gcc/reload1.cc
+++ b/gcc/gcc/reload1.cc
@@ -3036,6 +3036,8 @@ elimination_effects (rtx x, machine_mode mem_mode)
else
ep->can_eliminate = 0;
}
+ if (code == POST_DEC || code == POST_INC)
+ ep->can_eliminate = 0;
}
/* These two aren't unary operators. */
diff --git a/gcc/gcc/rtlanal.cc b/gcc/gcc/rtlanal.cc
index 86a5e47330..048382ec3e 100644
--- a/gcc/gcc/rtlanal.cc
+++ b/gcc/gcc/rtlanal.cc
@@ -1637,9 +1637,26 @@ set_noop_p (const_rtx set)
return true;
if (MEM_P (dst) && MEM_P (src))
- return (rtx_equal_p (dst, src)
- && !side_effects_p (dst)
- && !side_effects_p (src));
+ {
+ if (rtx_equal_p (dst, src) && !side_effects_p (dst))
+ return 1;
+
+ src = XEXP(src, 0);
+ dst = XEXP(dst, 0);
+
+ if( GET_CODE(src) == POST_INC && GET_CODE(dst) == PRE_DEC )
+ {
+ src = XEXP(src, 0);
+ dst = XEXP(dst, 0);
+ if ((rtx_equal_p (dst, src)
+ && !side_effects_p (dst)
+ && !side_effects_p (src)))
+ return 1;
+
+ }
+
+ return 0;
+ }
if (GET_CODE (dst) == ZERO_EXTRACT)
return (rtx_equal_p (XEXP (dst, 0), src)
diff --git a/gcc/gcc/system.h b/gcc/gcc/system.h
index e516b49d04..6764a52982 100644
--- a/gcc/gcc/system.h
+++ b/gcc/gcc/system.h
@@ -145,7 +145,7 @@ extern int fgetc_unlocked (FILE *);
extern char *fgets_unlocked (char *, int, FILE *);
# endif
# endif
-# ifdef HAVE_FPUTS_UNLOCKED
+# if defined (HAVE_FPUTS_UNLOCKED) && !defined (__CYGWIN__)
# undef fputs
# define fputs(String, Stream) fputs_unlocked (String, Stream)
# if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED
diff --git a/gcc/libbacktrace/aclocal.m4 b/gcc/libbacktrace/aclocal.m4
index 528e617393..8cb21fc4f8 100644
--- a/gcc/libbacktrace/aclocal.m4
+++ b/gcc/libbacktrace/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15.1], [],
+m4_if([$1], [1.16.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -143,7 +143,7 @@ fi])])
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -230,8 +230,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
@@ -298,7 +298,7 @@ END
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -340,7 +340,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -364,7 +364,7 @@ AC_SUBST([install_sh])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -399,7 +399,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -420,12 +420,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -438,7 +433,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -467,7 +462,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -514,7 +509,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -533,7 +528,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -614,7 +609,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -674,7 +669,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -702,7 +697,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -721,7 +716,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/gcc/libcc1/aclocal.m4 b/gcc/libcc1/aclocal.m4
index 2348721062..b60c3ce364 100644
--- a/gcc/libcc1/aclocal.m4
+++ b/gcc/libcc1/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15.1], [],
+m4_if([$1], [1.16.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -332,13 +332,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
@@ -346,49 +345,43 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
shift
- for mf
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
do
# Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
@@ -397,18 +390,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -495,8 +487,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
@@ -563,7 +555,7 @@ END
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -605,7 +597,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -629,7 +621,7 @@ AC_SUBST([install_sh])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -664,7 +656,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -672,49 +664,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# AM_MAKE_INCLUDE()
# -----------------
-# Check to see how make treats includes.
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
am__doit:
- @echo this is the am__doit target
+ @echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -735,12 +720,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -753,7 +733,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -782,7 +762,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -829,7 +809,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -848,7 +828,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -929,7 +909,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -989,7 +969,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1017,7 +997,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1036,7 +1016,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/gcc/libcc1/cc1plugin-config.h.in b/gcc/libcc1/cc1plugin-config.h.in
index ac06357bad..e1f32b36a5 100644
--- a/gcc/libcc1/cc1plugin-config.h.in
+++ b/gcc/libcc1/cc1plugin-config.h.in
@@ -34,8 +34,7 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Define to the address where bug reports for this package should be sent. */
diff --git a/gcc/libcc1/libcc1plugin.cc b/gcc/libcc1/libcc1plugin.cc
index 44ef438ba9..9c75a09d2b 100644
--- a/gcc/libcc1/libcc1plugin.cc
+++ b/gcc/libcc1/libcc1plugin.cc
@@ -31,6 +31,7 @@
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+#define INCLUDE_VECTOR
#define INCLUDE_MEMORY
#define INCLUDE_VECTOR
#include "gcc-plugin.h"
diff --git a/gcc/libcpp/charset.cc b/gcc/libcpp/charset.cc
index e3accf8e9a..8b25f5a483 100644
--- a/gcc/libcpp/charset.cc
+++ b/gcc/libcpp/charset.cc
@@ -2837,7 +2837,7 @@ narrow_str_to_charconst (cpp_reader *pfile, cpp_string str,
"character not encodable in a single code unit");
i = max_chars;
}
- else if (i > 1 && CPP_OPTION (pfile, warn_multichar))
+ else if (i > 1 && i != 4 && CPP_OPTION (pfile, warn_multichar))
cpp_warning (pfile, CPP_W_MULTICHAR, "multi-character character constant");
/* Multichar constants are of type int and therefore signed. */
diff --git a/gcc/libgcc/Makefile.in b/gcc/libgcc/Makefile.in
index 0719fd0615..58ba484fca 100644
--- a/gcc/libgcc/Makefile.in
+++ b/gcc/libgcc/Makefile.in
@@ -248,6 +248,7 @@ LIBGCC2_DEBUG_CFLAGS = -g
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
-fbuilding-libgcc -fno-stack-protector \
+ -ffunction-sections \
$(INHIBIT_LIBC_CFLAGS)
# Additional options to use when compiling libgcc2.a.
diff --git a/gcc/libgcc/config.host b/gcc/libgcc/config.host
index 6a88ee5a2d..9910118739 100644
--- a/gcc/libgcc/config.host
+++ b/gcc/libgcc/config.host
@@ -1023,6 +1023,10 @@ m32rle-*-elf*)
m68k-*-elf* | fido-*-elf)
tmake_file="$tmake_file m68k/t-floatlib"
;;
+m68k-*-macos)
+ extra_parts="crtbegin.o crtend.o"
+ tmake_file="$tmake_file m68k/t-floatlib"
+ ;;
m68k*-*-netbsdelf*)
;;
m68k*-*-openbsd*)
@@ -1375,6 +1379,9 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa"
extra_parts="crtcxa.o crtcxa_s.o crtdbase.o crtcxa_64.o crtcxa_64_s.o crtdbase_64.o"
;;
+powerpc-*-macos)
+ tmake_file="t-fdpbit rs6000/t-ibm-ldouble"
+ ;;
rl78-*-elf)
tmake_file="$tm_file t-fdpbit rl78/t-rl78"
;;
diff --git a/gcc/libgcc/config/rs6000/cxa_finalize.c b/gcc/libgcc/config/rs6000/cxa_finalize.c
index 7da55794c8..1f010f771b 100644
--- a/gcc/libgcc/config/rs6000/cxa_finalize.c
+++ b/gcc/libgcc/config/rs6000/cxa_finalize.c
@@ -29,7 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "exit.h"
-static boolean_t
+static int
catomic_compare_and_exchange_bool_acq (long *mem, long newval, long oldval)
{
return ! __atomic_compare_exchange (mem, &oldval, &newval, 0,
diff --git a/gcc/libstdc++-v3/Makefile.in b/gcc/libstdc++-v3/Makefile.in
index 5beb3146ee..96f6b1acb9 100644
--- a/gcc/libstdc++-v3/Makefile.in
+++ b/gcc/libstdc++-v3/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -135,7 +135,7 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
@@ -158,8 +158,8 @@ am__recursive_targets = \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
@@ -231,6 +231,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -269,8 +270,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -314,6 +317,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -523,8 +527,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(top_srcdir)/../multilib.am $(am__empty):
diff --git a/gcc/libstdc++-v3/aclocal.m4 b/gcc/libstdc++-v3/aclocal.m4
index e5af3f62e1..ada42f757f 100644
--- a/gcc/libstdc++-v3/aclocal.m4
+++ b/gcc/libstdc++-v3/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15.1], [],
+m4_if([$1], [1.16.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -143,7 +143,7 @@ fi])])
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -230,8 +230,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
@@ -298,7 +298,7 @@ END
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -340,7 +340,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -364,7 +364,7 @@ AC_SUBST([install_sh])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -399,7 +399,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -420,12 +420,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -438,7 +433,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -467,7 +462,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -514,7 +509,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -533,7 +528,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -614,7 +609,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -674,7 +669,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -702,7 +697,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -721,7 +716,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/gcc/libstdc++-v3/config.h.in b/gcc/libstdc++-v3/config.h.in
index 77bbaf1bea..f365cb8a32 100644
--- a/gcc/libstdc++-v3/config.h.in
+++ b/gcc/libstdc++-v3/config.h.in
@@ -562,8 +562,7 @@
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Name of package */
diff --git a/gcc/libstdc++-v3/doc/Makefile.in b/gcc/libstdc++-v3/doc/Makefile.in
index c19e3e3044..de1220d7a3 100644
--- a/gcc/libstdc++-v3/doc/Makefile.in
+++ b/gcc/libstdc++-v3/doc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -131,7 +131,7 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -190,6 +190,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -228,8 +229,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -275,6 +278,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -687,8 +691,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/include/Makefile.in b/gcc/libstdc++-v3/include/Makefile.in
index 7b96b2207f..25cc28d8ac 100644
--- a/gcc/libstdc++-v3/include/Makefile.in
+++ b/gcc/libstdc++-v3/include/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -131,7 +131,7 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -190,6 +190,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -228,8 +229,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -273,6 +276,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -1488,8 +1492,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/include/std/text_encoding b/gcc/libstdc++-v3/include/std/text_encoding
index 6fcaed1ab6..ac41250f2b 100644
--- a/gcc/libstdc++-v3/include/std/text_encoding
+++ b/gcc/libstdc++-v3/include/std/text_encoding
@@ -240,7 +240,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
Windows31J = 2024,
GB2312 = 2025,
Big5 = 2026,
+#pragma push_macro("Macintosh")
+#undef Macintosh
Macintosh = 2027,
+#pragma pop_macro("Macintosh")
IBM037 = 2028,
IBM038 = 2029,
IBM273 = 2030,
diff --git a/gcc/libstdc++-v3/libsupc++/Makefile.in b/gcc/libstdc++-v3/libsupc++/Makefile.in
index 732ab89c8a..1c94ba0165 100644
--- a/gcc/libstdc++-v3/libsupc++/Makefile.in
+++ b/gcc/libstdc++-v3/libsupc++/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -196,7 +196,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
@@ -299,6 +299,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -337,8 +338,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -382,6 +385,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -686,8 +690,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/po/Makefile.in b/gcc/libstdc++-v3/po/Makefile.in
index 8e93445acd..af66e6051d 100644
--- a/gcc/libstdc++-v3/po/Makefile.in
+++ b/gcc/libstdc++-v3/po/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -131,7 +131,7 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -190,6 +190,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -228,8 +229,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -273,6 +276,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -416,8 +420,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/python/Makefile.in b/gcc/libstdc++-v3/python/Makefile.in
index c527e6cf18..f932537e5e 100644
--- a/gcc/libstdc++-v3/python/Makefile.in
+++ b/gcc/libstdc++-v3/python/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -132,7 +132,7 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -220,6 +220,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -258,8 +259,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -303,6 +306,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -439,8 +443,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/src/Makefile.in b/gcc/libstdc++-v3/src/Makefile.in
index 106b96995a..cfb198f594 100644
--- a/gcc/libstdc++-v3/src/Makefile.in
+++ b/gcc/libstdc++-v3/src/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -185,7 +185,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -294,6 +294,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -332,8 +333,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -377,6 +380,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -711,8 +715,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/src/c++11/Makefile.in b/gcc/libstdc++-v3/src/c++11/Makefile.in
index 770e948a98..b7722b5627 100644
--- a/gcc/libstdc++-v3/src/c++11/Makefile.in
+++ b/gcc/libstdc++-v3/src/c++11/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -175,7 +175,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
@@ -263,6 +263,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -301,8 +302,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -346,6 +349,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -638,8 +642,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/src/c++17/Makefile.in b/gcc/libstdc++-v3/src/c++17/Makefile.in
index fe5c9ffce5..e0e2d761b8 100644
--- a/gcc/libstdc++-v3/src/c++17/Makefile.in
+++ b/gcc/libstdc++-v3/src/c++17/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -149,7 +149,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
@@ -237,6 +237,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -275,8 +276,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -320,6 +323,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -543,8 +547,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/src/c++98/Makefile.in b/gcc/libstdc++-v3/src/c++98/Makefile.in
index 95e909b104..8ac2cce54b 100644
--- a/gcc/libstdc++-v3/src/c++98/Makefile.in
+++ b/gcc/libstdc++-v3/src/c++98/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -164,7 +164,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
@@ -252,6 +252,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -290,8 +291,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -335,6 +338,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -614,8 +618,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/src/filesystem/Makefile.in b/gcc/libstdc++-v3/src/filesystem/Makefile.in
index 76ba905087..783eaa4a71 100644
--- a/gcc/libstdc++-v3/src/filesystem/Makefile.in
+++ b/gcc/libstdc++-v3/src/filesystem/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -176,7 +176,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
@@ -265,6 +265,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -303,8 +304,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -348,6 +351,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -561,8 +565,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/libstdc++-v3/testsuite/Makefile.in b/gcc/libstdc++-v3/testsuite/Makefile.in
index 2e42d47064..f24e5a8e89 100644
--- a/gcc/libstdc++-v3/testsuite/Makefile.in
+++ b/gcc/libstdc++-v3/testsuite/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -131,7 +131,7 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -190,6 +190,7 @@ C_INCLUDE_DIR = @C_INCLUDE_DIR@
DBLATEX = @DBLATEX@
DEBUG_FLAGS = @DEBUG_FLAGS@
DEFS = @DEFS@
+DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
@@ -228,8 +229,10 @@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -273,6 +276,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -454,8 +458,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/fragment.am $(am__empty):
diff --git a/gcc/lto-plugin/Makefile.in b/gcc/lto-plugin/Makefile.in
index f6f5b020ff..5c88b4546e 100644
--- a/gcc/lto-plugin/Makefile.in
+++ b/gcc/lto-plugin/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -157,7 +157,7 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp =
-am__depfiles_maybe =
+am__maybe_remake_depfiles =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -186,8 +186,8 @@ am__can_run_installinfo = \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
@@ -225,6 +225,7 @@ CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
@@ -247,8 +248,10 @@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -274,6 +277,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_lto_plugin_extra_ldflags = @ac_lto_plugin_extra_ldflags@
@@ -406,8 +410,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
diff --git a/gcc/lto-plugin/aclocal.m4 b/gcc/lto-plugin/aclocal.m4
index f1fc28d4f1..8721ab0bfc 100644
--- a/gcc/lto-plugin/aclocal.m4
+++ b/gcc/lto-plugin/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15.1], [],
+m4_if([$1], [1.16.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -332,13 +332,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
@@ -346,49 +345,43 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
shift
- for mf
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
do
# Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
@@ -397,18 +390,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -495,8 +487,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
@@ -563,7 +555,7 @@ END
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -605,7 +597,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -629,7 +621,7 @@ AC_SUBST([install_sh])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -664,7 +656,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -672,49 +664,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# AM_MAKE_INCLUDE()
# -----------------
-# Check to see how make treats includes.
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
am__doit:
- @echo this is the am__doit target
+ @echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -735,12 +720,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -753,7 +733,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -782,7 +762,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -829,7 +809,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -848,7 +828,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -929,7 +909,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -989,7 +969,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1017,7 +997,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1036,7 +1016,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/gcc/lto-plugin/config.h.in b/gcc/lto-plugin/config.h.in
index 8eb9c8aa47..aadb8640e6 100644
--- a/gcc/lto-plugin/config.h.in
+++ b/gcc/lto-plugin/config.h.in
@@ -36,8 +36,7 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Name of package */
diff --git a/gcc/ltoptions.m4 b/gcc/ltoptions.m4
index 5ef12ced2a..94b0829766 100644
--- a/gcc/ltoptions.m4
+++ b/gcc/ltoptions.m4
@@ -1,14 +1,14 @@
# Helper functions for option handling. -*- Autoconf -*-
#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 6 ltoptions.m4
+# serial 8 ltoptions.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -29,7 +29,7 @@ m4_define([_LT_SET_OPTION],
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
_LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
+ [m4_warning([Unknown $1 option '$2'])])[]dnl
])
@@ -75,13 +75,15 @@ m4_if([$1],[LT_INIT],[
dnl
dnl If no reference was made to various pairs of opposing options, then
dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
+ dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
dnl archives by default:
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
+ [_LT_ENABLE_FAST_INSTALL])
+ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+ [_LT_WITH_AIX_SONAME([aix])])
])
])# _LT_SET_OPTIONS
@@ -112,7 +114,7 @@ AU_DEFUN([AC_LIBTOOL_DLOPEN],
[_LT_SET_OPTION([LT_INIT], [dlopen])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
+put the 'dlopen' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
@@ -148,7 +150,7 @@ AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
_LT_SET_OPTION([LT_INIT], [win32-dll])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
+put the 'win32-dll' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
@@ -157,9 +159,9 @@ dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
# _LT_ENABLE_SHARED([DEFAULT])
# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_SHARED],
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([shared],
@@ -172,14 +174,14 @@ AC_ARG_ENABLE([shared],
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
- IFS="$lt_save_ifs"
+ IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
- IFS="$lt_save_ifs"
+ IFS=$lt_save_ifs
;;
esac],
[enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
@@ -211,9 +213,9 @@ dnl AC_DEFUN([AM_DISABLE_SHARED], [])
# _LT_ENABLE_STATIC([DEFAULT])
# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_STATIC],
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([static],
@@ -226,14 +228,14 @@ AC_ARG_ENABLE([static],
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
- IFS="$lt_save_ifs"
+ IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
- IFS="$lt_save_ifs"
+ IFS=$lt_save_ifs
;;
esac],
[enable_static=]_LT_ENABLE_STATIC_DEFAULT)
@@ -265,9 +267,9 @@ dnl AC_DEFUN([AM_DISABLE_STATIC], [])
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_FAST_INSTALL],
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([fast-install],
@@ -280,14 +282,14 @@ AC_ARG_ENABLE([fast-install],
*)
enable_fast_install=no
# Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
- IFS="$lt_save_ifs"
+ IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_fast_install=yes
fi
done
- IFS="$lt_save_ifs"
+ IFS=$lt_save_ifs
;;
esac],
[enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
@@ -304,14 +306,14 @@ AU_DEFUN([AC_ENABLE_FAST_INSTALL],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
+the 'fast-install' option into LT_INIT's first parameter.])
])
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
+the 'disable-fast-install' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
@@ -319,19 +321,85 @@ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+ AC_MSG_CHECKING([which variant of shared library versioning to provide])
+ AC_ARG_WITH([aix-soname],
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+ [case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname],
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+ with_aix_soname=$lt_cv_with_aix_soname])
+ AC_MSG_RESULT([$with_aix_soname])
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+ [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
# _LT_WITH_PIC([MODE])
# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
m4_define([_LT_WITH_PIC],
[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic],
+ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [pic_mode="$withval"],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+ [lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [pic_mode=m4_default([$1], [default])])
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
])# _LT_WITH_PIC
@@ -344,7 +412,7 @@ AU_DEFUN([AC_LIBTOOL_PICMODE],
[_LT_SET_OPTION([LT_INIT], [pic-only])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
+put the 'pic-only' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
diff --git a/gcc/ltversion.m4 b/gcc/ltversion.m4
index bf87f77132..fa04b52a3b 100644
--- a/gcc/ltversion.m4
+++ b/gcc/ltversion.m4
@@ -1,23 +1,23 @@
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# Generated from ltversion.in.
+# @configure_input@
-# serial 3134 ltversion.m4
+# serial 4179 ltversion.m4
# This file is part of GNU Libtool
-m4_define([LT_PACKAGE_VERSION], [2.2.7a])
-m4_define([LT_PACKAGE_REVISION], [1.3134])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.7a'
-macro_revision='1.3134'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])
diff --git a/gcc/lt~obsolete.m4 b/gcc/lt~obsolete.m4
index bf92b5e079..c6b26f88f6 100644
--- a/gcc/lt~obsolete.m4
+++ b/gcc/lt~obsolete.m4
@@ -1,17 +1,18 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 4 lt~obsolete.m4
+# serial 5 lt~obsolete.m4
# These exist entirely to fool aclocal when bootstrapping libtool.
#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
# which have later been changed to m4_define as they aren't part of the
# exported API, or moved to Autoconf or Automake where they belong.
#
@@ -25,7 +26,7 @@
# included after everything else. This provides aclocal with the
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
#
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
# Yes, that means every name once taken will need to remain here until
diff --git a/gcc/missing b/gcc/missing
index f62bbae306..8d0eaad250 100755
--- a/gcc/missing
+++ b/gcc/missing
@@ -1,9 +1,9 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@ scriptversion=2013-10-28.13; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@ else
exit $st
fi
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
program_details ()
{
@@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
exit $st
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff --git a/gcc/newlib/configure.host b/gcc/newlib/configure.host
index c429dde1c3..b2d5090eae 100644
--- a/gcc/newlib/configure.host
+++ b/gcc/newlib/configure.host
@@ -812,6 +812,11 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID
newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES"
syscall_dir=
;;
+ m68k-apple-macos)
+ newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DMALLOC_PROVIDED"
+ newlib_cflags="${newlib_cflags} -ffunction-sections"
+ syscall_dir=syscalls
+ ;;
mcore-*-*)
syscall_dir=syscalls
;;
@@ -883,6 +888,11 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID
riscv*-*-*)
syscall_dir=syscalls
;;
+ powerpc-*-macos)
+ newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DMALLOC_PROVIDED"
+ newlib_cflags="${newlib_cflags} -ffunction-sections"
+ syscall_dir=syscalls
+ ;;
sh*-*-*)
default_newlib_io_long_long="yes"
syscall_dir=syscalls
diff --git a/gcc/newlib/libc/include/math.h b/gcc/newlib/libc/include/math.h
index 799ac494ad..f078a7c611 100644
--- a/gcc/newlib/libc/include/math.h
+++ b/gcc/newlib/libc/include/math.h
@@ -510,6 +510,44 @@ extern long double erfcl (long double);
extern long double hypotl (long double, long double);
extern long double sqrtl (long double);
extern long double frexpl (long double, int *);
+/* Declare the remaining long double functions needed for complex math
+ on platforms where long double != double (e.g. m68k with 80-bit FPU). */
+#ifndef __math_68881
+extern long double atanl (long double);
+extern long double cosl (long double);
+extern long double sinl (long double);
+extern long double tanl (long double);
+extern long double sinhl (long double);
+extern long double coshl (long double);
+extern long double tanhl (long double);
+extern long double acosl (long double);
+extern long double asinl (long double);
+extern long double atan2l (long double, long double);
+extern long double expl (long double);
+extern long double ldexpl (long double, int);
+extern long double logl (long double);
+extern long double log10l (long double);
+extern long double powl (long double, long double);
+extern long double fmodl (long double, long double);
+extern long double fabsl (long double);
+extern long double floorl (long double);
+extern long double ceill (long double);
+extern long double modfl (long double, long double *);
+#endif /* ! defined (__math_68881) */
+extern long double copysignl (long double, long double);
+extern long double asinhl (long double);
+extern long double log2l (long double);
+extern long double rintl (long double);
+extern long double scalbnl (long double, int);
+extern long double exp2l (long double);
+extern long double scalblnl (long double, long);
+extern long double nearbyintl (long double);
+extern long int lrintl (long double);
+extern long long int llrintl (long double);
+extern long double roundl (long double);
+extern long lroundl (long double);
+extern long long int llroundl (long double);
+extern long double truncl (long double);
#ifdef __i386__
/* Other long double precision functions. */
extern _LONG_DOUBLE rintl (_LONG_DOUBLE);
diff --git a/gcc/newlib/libc/include/sys/config.h b/gcc/newlib/libc/include/sys/config.h
new file mode 100644
index 0000000000..2082dfdb18
--- /dev/null
+++ b/gcc/newlib/libc/include/sys/config.h
@@ -0,0 +1,300 @@
+#ifndef __SYS_CONFIG_H__
+#define __SYS_CONFIG_H__
+
+#include <machine/ieeefp.h> /* floating point macros */
+#include <sys/features.h> /* POSIX defs */
+
+#ifdef __aarch64__
+#define MALLOC_ALIGNMENT 16
+#endif
+
+/* exceptions first */
+#if defined(__H8500__) || defined(__W65__)
+#define __SMALL_BITFIELDS
+/* ??? This conditional is true for the h8500 and the w65, defining H8300
+ in those cases probably isn't the right thing to do. */
+#define H8300 1
+#endif
+
+/* 16 bit integer machines */
+#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
+
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX 32767
+#define UINT_MAX 65535
+#endif
+
+#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__)
+#define __SMALL_BITFIELDS
+#define H8300 1
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX __INT_MAX__
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#endif
+
+#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
+#ifndef __INT32__
+#define __SMALL_BITFIELDS
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX 32767
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#else /* INT32 */
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX 2147483647
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#endif /* INT32 */
+
+#endif /* CR16C */
+
+#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__)
+#define __SMALL_BITFIELDS
+#endif
+
+#ifdef __W65__
+#define __SMALL_BITFIELDS
+#endif
+
+#if defined(__D10V__)
+#define __SMALL_BITFIELDS
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX __INT_MAX__
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#define _POINTER_INT short
+#endif
+
+#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX __INT_MAX__
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#define _POINTER_INT short
+#endif
+
+#if defined(__m68k__) || defined(__mc68000__) || defined(__riscv)
+#define _READ_WRITE_RETURN_TYPE _ssize_t
+#endif
+
+#ifdef ___AM29K__
+#define _FLOAT_RET double
+#endif
+
+#ifdef __i386__
+#ifndef __unix__
+/* in other words, go32 */
+#define _FLOAT_RET double
+#endif
+#if defined(__linux__) || defined(__RDOS__)
+/* we want the reentrancy structure to be returned by a function */
+#define __DYNAMIC_REENT__
+#define HAVE_GETDATE
+#define _READ_WRITE_RETURN_TYPE _ssize_t
+#define __LARGE64_FILES 1
+/* we use some glibc header files so turn on glibc large file feature */
+#define _LARGEFILE64_SOURCE 1
+#endif
+#endif
+
+#ifdef __mn10200__
+#define __SMALL_BITFIELDS
+#endif
+
+#ifdef __AVR__
+#define __SMALL_BITFIELDS
+#define _POINTER_INT short
+#endif
+
+#ifdef __v850
+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
+#endif
+
+/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
+#if defined(__PPC__)
+#if defined(_CALL_SYSV)
+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
+#endif
+#ifdef __SPE__
+#define _LONG_DOUBLE double
+#endif
+#endif
+
+/* Configure small REENT structure for Xilinx MicroBlaze platforms */
+#if defined (__MICROBLAZE__)
+#ifndef _REENT_SMALL
+#define _REENT_SMALL
+#endif
+/* Xilinx XMK uses Unix98 mutex */
+#ifdef __XMK__
+#define _UNIX98_THREAD_MUTEX_ATTRIBUTES
+#endif
+#endif
+
+#if defined(__mips__) && !defined(__rtems__)
+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
+#endif
+
+#ifdef __xstormy16__
+#define __SMALL_BITFIELDS
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX __INT_MAX__
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#define MALLOC_ALIGNMENT 8
+#define _POINTER_INT short
+#define __BUFSIZ__ 16
+#define _REENT_SMALL
+#endif
+
+#if defined __MSP430__
+#ifndef _REENT_SMALL
+#define _REENT_SMALL
+#endif
+
+#define __BUFSIZ__ 256
+#define __SMALL_BITFIELDS
+
+#ifdef __MSP430X_LARGE__
+#define _POINTER_INT long
+#else
+#define _POINTER_INT int
+#endif
+#endif
+
+#ifdef __m32c__
+#define __SMALL_BITFIELDS
+#undef INT_MAX
+#undef UINT_MAX
+#define INT_MAX __INT_MAX__
+#define UINT_MAX (__INT_MAX__ * 2U + 1)
+#define MALLOC_ALIGNMENT 8
+#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
+#define _POINTER_INT short
+#else
+#define _POINTER_INT long
+#endif
+#define __BUFSIZ__ 16
+#define _REENT_SMALL
+#endif /* __m32c__ */
+
+#ifdef __SPU__
+#define MALLOC_ALIGNMENT 16
+#define __CUSTOM_FILE_IO__
+#endif
+
+#if defined(__or1k__) || defined(__or1knd__)
+#define __DYNAMIC_REENT__
+#endif
+
+/* This block should be kept in sync with GCC's limits.h. The point
+ of having these definitions here is to not include limits.h, which
+ would pollute the user namespace, while still using types of the
+ the correct widths when deciding how to define __int32_t and
+ __int64_t. */
+#ifndef __INT_MAX__
+# ifdef INT_MAX
+# define __INT_MAX__ INT_MAX
+# else
+# define __INT_MAX__ 2147483647
+# endif
+#endif
+
+#ifndef __LONG_MAX__
+# ifdef LONG_MAX
+# define __LONG_MAX__ LONG_MAX
+# else
+# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
+ || defined (__sparcv9)
+# define __LONG_MAX__ 9223372036854775807L
+# else
+# define __LONG_MAX__ 2147483647L
+# endif /* __alpha__ || sparc64 */
+# endif
+#endif
+/* End of block that should be kept in sync with GCC's limits.h. */
+
+#ifndef _POINTER_INT
+#define _POINTER_INT long
+#endif
+
+#ifdef __frv__
+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
+#endif
+#undef __RAND_MAX
+#if __INT_MAX__ == 32767
+#define __RAND_MAX 32767
+#else
+#define __RAND_MAX 0x7fffffff
+#endif
+
+#if defined(__CYGWIN__)
+#include <cygwin/config.h>
+#endif
+
+#if defined(__rtems__)
+#define __FILENAME_MAX__ 255
+#define _READ_WRITE_RETURN_TYPE _ssize_t
+#define __DYNAMIC_REENT__
+#define _REENT_GLOBAL_ATEXIT
+#define _REENT_GLOBAL_STDIO_STREAMS
+#endif
+
+#ifndef __EXPORT
+#define __EXPORT
+#endif
+
+#ifndef __IMPORT
+#define __IMPORT
+#endif
+
+/* Define return type of read/write routines. In POSIX, the return type
+ for read()/write() is "ssize_t" but legacy newlib code has been using
+ "int" for some time. If not specified, "int" is defaulted. */
+#ifndef _READ_WRITE_RETURN_TYPE
+#define _READ_WRITE_RETURN_TYPE int
+#endif
+/* Define `count' parameter of read/write routines. In POSIX, the `count'
+ parameter is "size_t" but legacy newlib code has been using "int" for some
+ time. If not specified, "int" is defaulted. */
+#ifndef _READ_WRITE_BUFSIZE_TYPE
+#define _READ_WRITE_BUFSIZE_TYPE int
+#endif
+
+#ifndef __WCHAR_MAX__
+#if __INT_MAX__ == 32767 || defined (_WIN32)
+#define __WCHAR_MAX__ 0xffffu
+#endif
+#endif
+
+/* See if small reent asked for at configuration time and
+ is not chosen by the platform by default. */
+#ifdef _WANT_REENT_SMALL
+#ifndef _REENT_SMALL
+#define _REENT_SMALL
+#endif
+#endif
+
+#ifdef _WANT_REENT_GLOBAL_STDIO_STREAMS
+#ifndef _REENT_GLOBAL_STDIO_STREAMS
+#define _REENT_GLOBAL_STDIO_STREAMS
+#endif
+#endif
+
+#ifdef _WANT_USE_LONG_TIME_T
+#ifndef _USE_LONG_TIME_T
+#define _USE_LONG_TIME_T
+#endif
+#endif
+
+/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended
+ charsets. The extended charsets add a few functions and a couple
+ of tables of a few K each. */
+#ifdef _MB_EXTENDED_CHARSETS_ALL
+#define _MB_EXTENDED_CHARSETS_ISO 1
+#define _MB_EXTENDED_CHARSETS_WINDOWS 1
+#endif
+
+#endif /* __SYS_CONFIG_H__ */
diff --git a/gcc/newlib/libc/machine/powerpc/setjmp.S b/gcc/newlib/libc/machine/powerpc/setjmp.S
index f327f31dae..0781cd6288 100644
--- a/gcc/newlib/libc/machine/powerpc/setjmp.S
+++ b/gcc/newlib/libc/machine/powerpc/setjmp.S
@@ -2,9 +2,16 @@
Ian Lance Taylor, Cygnus Support, 9 Feb 1994.
Modified by Jeff Johnston, Red Hat Inc. 2 Oct 2001. */
-#include "ppc-asm.h"
-
-FUNC_START(setjmp)
+ .toc
+ .csect .text[PR]
+ .align 2
+ .globl setjmp
+ .globl .setjmp
+ .csect setjmp[DS]
+setjmp:
+ .long .setjmp, TOC[tc0], 0
+ .csect .text[PR]
+.setjmp:
#ifdef __ALTIVEC__
addi 3,3,15 # align Altivec to 16 byte boundary
rlwinm 3,3,0,0,27
@@ -134,10 +141,16 @@ FUNC_START(setjmp)
#endif
li 3,0
blr
-FUNC_END(setjmp)
-
-FUNC_START(longjmp)
+ .csect .text[PR]
+ .align 2
+ .globl longjmp
+ .globl .longjmp
+ .csect longjmp[DS]
+longjmp:
+ .long .longjmp, TOC[tc0], 0
+ .csect .text[PR]
+.longjmp:
#ifdef __ALTIVEC__
addi 3,3,15 # align Altivec to 16 byte boundary
rlwinm 3,3,0,0,27
@@ -265,4 +278,3 @@ FUNC_START(longjmp)
bclr+ 4,2
li 3,1
blr
-FUNC_END(longjmp)
diff --git a/gcc/newlib/libc/sys/linux/config.h b/gcc/newlib/libc/sys/linux/config.h
new file mode 100644
index 0000000000..76b438c857
--- /dev/null
+++ b/gcc/newlib/libc/sys/linux/config.h
@@ -0,0 +1,16 @@
+#define HAVE_WEAK_SYMBOLS 1
+#define HAVE_GNU_LD 1
+#define HAVE_ELF 1
+#define __ASSUME_REALTIME_SIGNALS 1
+#define ASM_GLOBAL_DIRECTIVE .global
+
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+
+#define UINT32_C(c) c ## U
+
+#include <machine/sysdep.h>
diff --git a/gcc/newlib/libc/sys/linux/intl/config.h b/gcc/newlib/libc/sys/linux/intl/config.h
new file mode 100644
index 0000000000..69de0abcb7
--- /dev/null
+++ b/gcc/newlib/libc/sys/linux/intl/config.h
@@ -0,0 +1,29 @@
+#define HAVE_ICONV 1
+#define HAVE_STRING_H 1
+#define HAVE_MEMPCPY 1
+#define HAVE_STRCHR 1
+#define HAVE_STRDUP 1
+#define HAVE_MMAP 1
+#define HAVE_STRTOUL 1
+#define HAVE_ALLOCA_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_STRCASECMP 1
+#define HAVE_WEAK_SYMBOLS 1
+#define HAVE_GNU_LD 1
+#define HAVE_ELF 1
+#define __ASSUME_REALTIME_SIGNALS 1
+#define ASM_GLOBAL_DIRECTIVE .global
+
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+
+#define UINT32_C(c) c ## U
+
+#include <machine/sysdep.h>
+#include <features.h>
+
+#define _LIBC 1
diff --git a/gcc/newlib/libc/sys/linux/linuxthreads/config.h b/gcc/newlib/libc/sys/linux/linuxthreads/config.h
new file mode 100644
index 0000000000..05fb5ec965
--- /dev/null
+++ b/gcc/newlib/libc/sys/linux/linuxthreads/config.h
@@ -0,0 +1,13 @@
+#define HAVE_WEAK_SYMBOLS 1
+#define HAVE_GNU_LD 1
+#define HAVE_ELF 1
+#define __ASSUME_REALTIME_SIGNALS 1
+#define ASM_GLOBAL_DIRECTIVE .global
+
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+