Skip to content
Snippets Groups Projects
  1. Dec 16, 2021
    • Patrick Palka's avatar
      c++: two-stage name lookup for overloaded operators [PR51577] · bb2a7f80
      Patrick Palka authored
      In order to properly implement two-stage name lookup for dependent
      operator expressions, we need to remember the result of unqualified
      lookup of the operator at template definition time, and reuse that
      result rather than performing another unqualified lookup at
      instantiation time.
      
      Ideally we could just store the lookup in the expression directly, but
      as pointed out in r9-6405 this isn't really possible since we use the
      standard tree codes to represent most dependent operator expressions.
      
      We could perhaps create a new tree code to represent dependent operator
      expressions, with enough operands to store the lookup along with
      everything else, but that'd require a lot of careful work to make sure
      we handle this new tree code properly across the frontend.
      
      But currently type-dependent operator (and call) expressions are given
      an empty TREE_TYPE, which dependent_type_p treats as dependent, so this
      field is effectively unused except to signal that the expression is
      type-dependent.  It'd be convenient if we could store the lookup there
      while preserving the dependent-ness of the expression.
      
      To that end, this patch creates a new kind of type, called
      DEPENDENT_OPERATOR_TYPE, which we give to dependent operator expressions
      and into which we can store the result of operator lookup at template
      definition time (DEPENDENT_OPERATOR_TYPE_SAVED_LOOKUPS).  Since this
      type is always dependent (by definition), and since the frontend doesn't
      seem to care much about the exact type of a type-dependent expression,
      using this type in place of a NULL_TREE type seems to "just work"; only
      dependent_type_p and WILDCARD_TYPE_P need to be adjusted to return true
      for this new type.
      
      The rest of the patch mostly consists of adding the necessary plumbing
      to pass DEPENDENT_OPERATOR_TYPE_SAVED_LOOKUPS to add_operator_candidates,
      adjusting all callers of build_x_* appropriately, and removing the now
      unnecessary push_operator_bindings mechanism.
      
      In passing, this patch simplifies finish_constraint_binary_op to avoid
      using build_x_binary_op for building a binary constraint-expr; we don't
      need to consider operator overloads here, as the &&/|| inside a
      constraint effectively always has the built-in meaning (since atomic
      constraints must have bool type).
      
      This patch also makes FOLD_EXPR_OP yield a tree_code instead of a raw
      INTEGER_CST.
      
      Finally, this patch adds the XFAILed test operator-8.C which is about
      broken two-stage name lookup for rewritten non-dependent operator
      expressions, an existing bug that's otherwise only documented in
      build_new_op.
      
      	PR c++/51577
      	PR c++/83035
      	PR c++/100465
      
      gcc/cp/ChangeLog:
      
      	* call.c (add_operator_candidates): Add lookups parameter.
      	Use it to avoid performing a second unqualified lookup when
      	instantiating a dependent operator expression.
      	(build_new_op): Add lookups parameter and pass it appropriately.
      	* constraint.cc (finish_constraint_binary_op): Use
      	build_min_nt_loc instead of build_x_binary_op.
      	* coroutines.cc (build_co_await): Adjust call to build_new_op.
      	* cp-objcp-common.c (cp_common_init_ts): Mark
      	DEPENDENT_OPERATOR_TYPE appropriately.
      	* cp-tree.def (DEPENDENT_OPERATOR_TYPE): Define.
      	* cp-tree.h (WILDCARD_TYPE_P): Accept DEPENDENT_OPERATOR_TYPE.
      	(FOLD_EXPR_OP_RAW): New, renamed from ...
      	(FOLD_EXPR_OP): ... this.  Change this to return the tree_code directly.
      	(DEPENDENT_OPERATOR_TYPE_SAVED_LOOKUPS): Define.
      	(templated_operator_saved_lookups): Define.
      	(build_new_op): Add lookups parameter.
      	(build_dependent_operator_type): Declare.
      	(build_x_indirect_ref): Add lookups parameter.
      	(build_x_binary_op): Likewise.
      	(build_x_unary_op): Likewise.
      	(build_x_compound_expr): Likewise.
      	(build_x_modify_expr): Likewise.
      	* cxx-pretty-print.c (get_fold_operator): Adjust after
      	FOLD_EXPR_OP change.
      	* decl.c (start_preparsed_function): Don't call
      	push_operator_bindings.
      	* decl2.c (grok_array_decl): Adjust calls to build_new_op.
      	* method.c (do_one_comp): Likewise.
      	(build_comparison_op): Likewise.
      	* module.cc (trees_out::type_node): Handle DEPENDENT_OPERATOR_TYPE.
      	(trees_in::tree_node): Likewise.
      	* name-lookup.c (lookup_name): Revert r11-2876 change.
      	(op_unqualified_lookup): Remove.
      	(maybe_save_operator_binding): Remove.
      	(discard_operator_bindings): Remove.
      	(push_operator_bindings): Remove.
      	* name-lookup.h (maybe_save_operator_binding): Remove.
      	(push_operator_bindings): Remove.
      	(discard_operator_bindings): Remove.
      	* parser.c (cp_parser_unary_expression): Adjust calls to build_x_*.
      	(cp_parser_binary_expression): Likewise.
      	(cp_parser_assignment_expression): Likewise.
      	(cp_parser_expression): Likewise.
      	(do_range_for_auto_deduction): Likewise.
      	(cp_convert_range_for): Likewise.
      	(cp_parser_perform_range_for_lookup): Likewise.
      	(cp_parser_template_argument): Likewise.
      	(cp_parser_omp_for_cond): Likewise.
      	(cp_parser_omp_for_incr): Likewise.
      	(cp_parser_omp_for_loop_init): Likewise.
      	(cp_convert_omp_range_for): Likewise.
      	(cp_finish_omp_range_for): Likewise.
      	* pt.c (fold_expression): Adjust after FOLD_EXPR_OP change. Pass
      	templated_operator_saved_lookups to build_x_*.
      	(tsubst_omp_for_iterator): Adjust call to build_x_modify_expr.
      	(tsubst_expr) <case COMPOUND_EXPR>: Pass
      	templated_operator_saved_lookups to build_x_*.
      	(tsubst_copy_and_build) <case INDIRECT_REF>: Likewise.
      	<case tcc_unary>: Likewise.
      	<case tcc_binary>: Likewise.
      	<case MODOP_EXPR>: Likewise.
      	<case COMPOUND_EXPR>: Likewise.
      	(dependent_type_p_r): Return true for DEPENDENT_OPERATOR_TYPE.
      	* ptree.c (cxx_print_type): Handle DEPENDENT_OPERATOR_TYPE.
      	* semantics.c (finish_increment_expr): Adjust call to
      	build_x_unary_op.
      	(finish_unary_op_expr): Likewise.
      	(handle_omp_for_class_iterator): Adjust calls to build_x_*.
      	(finish_omp_cancel): Likewise.
      	(finish_unary_fold_expr): Use build_dependent_operator_type.
      	(finish_binary_fold_expr): Likewise.
      	* tree.c (cp_free_lang_data): Don't call discard_operator_bindings.
      	* typeck.c (rationalize_conditional_expr): Adjust call to
      	build_x_binary_op.
      	(op_unqualified_lookup): Define.
      	(build_dependent_operator_type): Define.
      	(build_x_indirect_ref): Add lookups parameter and use
      	build_dependent_operator_type.
      	(build_x_binary_op): Likewise.
      	(build_x_array_ref): Likewise.
      	(build_x_unary_op): Likewise.
      	(build_x_compound_expr_from_list): Adjust call to
      	build_x_compound_expr.
      	(build_x_compound_expr_from_vec): Likewise.
      	(build_x_compound_expr): Add lookups parameter and use
      	build_dependent_operator_type.
      	(cp_build_modify_expr): Adjust call to build_new_op.
      	(build_x_modify_expr): Add lookups parameter and use
      	build_dependent_operator_type.
      	* typeck2.c (build_x_arrow): Adjust call to build_new_op.
      
      libcc1/ChangeLog:
      
      	* libcp1plugin.cc (plugin_build_unary_expr): Adjust call to
      	build_x_unary_op.
      	(plugin_build_binary_expr): Adjust call to build_x_binary_op.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/lookup/operator-3.C: Split out operator overload
      	declarations into ...
      	* g++.dg/lookup/operator-3-ops.h: ... here.
      	* g++.dg/lookup/operator-3a.C: New test.
      	* g++.dg/lookup/operator-4.C: New test.
      	* g++.dg/lookup/operator-4a.C: New test.
      	* g++.dg/lookup/operator-5.C: New test.
      	* g++.dg/lookup/operator-5a.C: New test.
      	* g++.dg/lookup/operator-6.C: New test.
      	* g++.dg/lookup/operator-7.C: New test.
      	* g++.dg/lookup/operator-8.C: New test.
      bb2a7f80
    • GCC Administrator's avatar
      Daily bump. · 8a89c39b
      GCC Administrator authored
      8a89c39b
  2. Dec 15, 2021
  3. Aug 18, 2021
  4. Aug 17, 2021
  5. Jun 29, 2021
  6. Jun 28, 2021
  7. May 06, 2021
  8. May 05, 2021
    • Tom Tromey's avatar
      libcc1: avoid a call to c_str · 61d48b1e
      Tom Tromey authored
      This is a trivial change to libcc1 to avoid an explicit call to c_str.
      Passing by const reference is slightly less wordy.
      
      libcc1
      
      	* compiler.cc (make_regexp): Take const std::string.
      	(cc1_plugin::compiler_triplet_regexp::find): Update.
      
      
      61d48b1e
    • Tom Tromey's avatar
      libcc1: avoid extra string copies · 96deddca
      Tom Tromey authored
      PR c/94669 points out that a couple of spots in libcc1 take a
      std::string where a reference would do.  This changes these spots to
      take a const char *, to reduce the number of copies.
      
      libcc1
      
      	PR c/94669
      	* compiler.hh (compiler_driver_filename): Take const char *.
      	(compiler_triplet_regexp): Likewise.
      96deddca
    • Tom Tromey's avatar
      libcc1: use variadic templates for callbacks · 8fdffa48
      Tom Tromey authored
      This patch completes the transition of libcc1 from the use of separate
      template functions for different arities to the use of variadic
      functions.  This is how I had wanted it to work from the very
      beginning, and is possible now with C++11.
      
      I had thought that variadic callbacks required C++17, but it turns out
      that the approach taken here is basically equivalent to std::apply --
      just a bit wordier.
      
      libcc1
      
      	* rpc.hh (argument_wrapper) <get>: Replace cast operator.
      	(argument_wrapper<T *>) <get>: Likewise.
      	(unmarshall): Add std::tuple overloads.
      	(callback): Remove.
      	(class invoker): New.
      	* libcp1plugin.cc (plugin_init): Update.
      	* libcp1.cc (libcp1::add_callbacks): Update.
      	* libcc1plugin.cc (plugin_init): Update.
      	* libcc1.cc (libcc1::add_callbacks): Update.
      	* connection.cc (cc1_plugin::connection::do_wait): Update.
      
      
      8fdffa48
    • Tom Tromey's avatar
      libcc1: fix a memory leak · ee75ca6b
      Tom Tromey authored
      libcc1 has a memory leak when calling fork_exec -- it allocates a new
      vector of arguments, but then does not free it anywhere.  This patch
      changes this code to use std::vector instead.
      
      Note that the previous code tried to avoid bad_alloc.  I don't believe
      this is very important.  For one thing, plenty of other allocations do
      not bother with this.
      
      libcc1
      
      	* gdbctx.hh (do_compile): Use std::vector.
      
      
      ee75ca6b
    • Tom Tromey's avatar
      libcc1: share the GCC interface code · a8deb832
      Tom Tromey authored
      Both the C and C++ side of the GDB plugin in libcc1 share a lot of
      code relating to the base GCC interface.  It was all copy-and-pasted,
      but is essentially identical between the two.  This is by design, as
      the base GCC API is intended to be shared.
      
      This patch merges the implementations into base_gdb_plugin, which was
      introduced earlier for this purpose.
      
      libcc1
      
      	* libcp1.cc (libcp1): Change parameters.  Update.
      	(libcp1_set_verbose, libcp1_set_arguments)
      	(libcp1_set_triplet_regexp, libcp1_set_driver_filename)
      	(libcp1_set_source_file, libcp1_set_print_callback, fork_exec)
      	(libcp1_compile, libcp1_destroy, vtable): Remove.
      	(libcp1::add_callbacks): New method, extracted from
      	libcp1_compile.
      	(gcc_c_fe_context): Update.
      	* libcc1.cc (libcc1): Change parameters.  Update.
      	(libcc1_set_verbose, libcc1_set_arguments)
      	(libcc1_set_triplet_regexp, libcc1_set_driver_filename)
      	(libcc1_set_source_file, libcc1_set_print_callback, fork_exec)
      	(libcc1_compile, libcc1_destroy, vtable): Remove.
      	(libcc1::add_callbacks): New method, extracted from
      	libcc1_compile.
      	(gcc_c_fe_context): Update.
      	* gdbctx.hh (base_gdb_plugin): Change parameters.
      	(~base_gdb_plugin): New.
      	<add_callbacks>: New virtual method.
      	<plugin_name, fe_version, compiler_name, vtable>: New members.
      	(get_self, do_set_verbose, do_set_arguments)
      	(do_set_triplet_regexp, do_set_driver_filename)
      	(do_set_arguments_v0, do_set_source_file, do_set_print_callback)
      	(fork_exec, do_compile, do_compile_v0, do_destroy): New methods.
      
      
      a8deb832
    • Tom Tromey's avatar
      libcc1: use GCC_FE_VERSION_1 in C++ plugin · b65c0bcb
      Tom Tromey authored
      The C++ plugin defaults to version 0 of the base compiler API.
      However, this is a mistake -- version 1 was introduced before the C++
      API was even implemented.  This switches the default to version 1.
      Note that the compiler-side plugin will accept this version, so it
      should remain compatible.
      
      libcc1
      
      	* libcp1.cc (vtable): Use GCC_FE_VERSION_1.
      
      
      b65c0bcb
    • Tom Tromey's avatar
      libcc1: share GDB plugin code · 1a51cb29
      Tom Tromey authored
      The two GDB plugins in libcc1 share a fair amount of code.  This was
      done by copy-and-paste, though in reality the underlying code is
      nearly identical.
      
      libcc1
      
      	* libcp1.cc (struct libcp1): Derive from base_gdb_plugin.  Remove
      	shared code.
      	(class libcp1_connection): Remove.
      	(rpc): Remove.
      	(libcp1_set_verbose, libcp1_compile): Update.
      	(cp_call_binding_oracle, cp_call_symbol_address)
      	(cp_call_enter_scope, cp_call_leave_scope): Update.
      	* libcc1.cc (struct libcc1): Derive from base_gdb_plugin.  Remove
      	shared code.
      	(class libcc1_connection): Remove.
      	(c_call_binding_oracle, c_call_symbol_address): Update.
      	(rpc): Remove.
      	(libcc1_set_verbose, libcc1_compile): Update.
      	* gdbctx.hh: New file.
      
      
      1a51cb29
    • Tom Tromey's avatar
      libcc1: share basic context code · 06248232
      Tom Tromey authored
      Both plugins in libcc1 share a fair amount of boilerplate.  They both
      share error-emission code, context management code, and tree GC code.
      This patch unifies these two bodies of code, avoiding needless
      duplication.
      
      libcc1
      
      	* libcc1plugin.cc: Move code to context.cc.
      	* libcp1plugin.cc: Move code to context.cc.
      	* context.hh: New file.
      	* context.cc: New file.
      	* Makefile.in: Rebuild.
      	* Makefile.am (AM_CPPFLAGS): Add more gcc flags.
      	(CPPFLAGS_FOR_C, CPPFLAGS_FOR_CXX): Update.
      	(libcc1plugin_la_SOURCES): Add context.hh, context.cc.
      	(libcp1plugin_la_SOURCES): Likewise.
      
      
      06248232
    • Tom Tromey's avatar
      libcc1: use static_assert · 0ed83e1d
      Tom Tromey authored
      This changes one spot in libcc1 to use static_assert rather than the
      old-style array declaration.
      
      libcc1
      
      	* libcp1plugin.cc: Use static assert.
      
      
      0ed83e1d
    • Tom Tromey's avatar
      libcc1: use foreach · 7c4e5d5e
      Tom Tromey authored
      This changes libcc1 to ues foreach in a couple of spots.
      
      libcc1
      
      	* libcp1plugin.cc (plugin_context::mark): Use foreach.
      	* libcc1plugin.cc (plugin_context::mark): Use foreach.
      
      
      7c4e5d5e
    • Tom Tromey's avatar
      libcc1: unify compiler handling · 1d9c9726
      Tom Tromey authored
      Both libcc1 plugins have nearly identical copies of code to find the
      underlying compiler.  This seemed wasteful to me, so this patch
      unifies the copies.
      
      Two minor API changes were needed.
      
      First, the old code used a back-link from the compiler object to the
      plugin object to check the 'verbose' setting.  This patch adds a
      'verbose' setting directly to the compiler object instead.
      
      Second, the 'find' method implicitly knew which compiler base name
      ("gcc" or "g++") to use.  This patch makes this a parameter that is
      passed in by the plugin.
      
      libcc1
      
      	* libcp1.cc (compiler, compiler_triplet_regexp)
      	(compiler_driver_filename): Remove.
      	(libcp1::libcp1): Update.
      	(make_regexp, libcp1::compiler::find)
      	(libcp1::compiler_triplet_regexp::find)
      	(libcp1::compiler_driver_filename::find): Remove.
      	(libcp1_set_verbose, libcp1_set_arguments)
      	(libcp1_set_triplet_regexp, libcp1_set_driver_filename): Update.
      	* libcc1.cc (compiler, compiler_triplet_regexp)
      	(compiler_driver_filename): Remove.
      	(libcc1::libcc1): Update.
      	(make_regexp, libcc1::compiler::find)
      	(libcc1::compiler_triplet_regexp::find)
      	(libcc1::compiler_driver_filename::find): Remove.
      	(libcc1_set_verbose, libcc1_set_arguments)
      	(libcc1_set_triplet_regexp, libcc1_set_driver_filename): Update.
      	* compiler.cc: New file.
      	* compiler.hh: New file.
      	* Makefile.in: Rebuild.
      	* Makefile.am (libcc1_la_SOURCES): Add compiler.hh, compiler.cc.
      
      1d9c9726
    • Tom Tromey's avatar
      libcc1: use unique_ptr more · 30c9604c
      Tom Tromey authored
      This changes libcc1 to use unique_ptr in a few more places, removing
      some manual memory management.
      
      libcc1
      
      	* libcp1.cc (struct libcp1) <connection, compilerp>: Use
      	unique_ptr.
      	(~libcp1): Remove.
      	(libcp1_compile, libcp1_set_triplet_regexp)
      	(libcp1_set_driver_filename): Update.
      	* libcc1.cc (struct libcc1) <connection, compilerp>: Use
      	unique_ptr.
      	(~libcc1): Remove.
      	(libcc1_set_triplet_regexp, libcc1_set_driver_filename)
      	(libcc1_compile): Update.
      
      
      30c9604c
    • Tom Tromey's avatar
      libcc1: add more uses of 'deleter' · 0f237df2
      Tom Tromey authored
      This changes libcc1 to use the 'deleter' template in a few more
      places.  The template and basic specializations are moved to a new
      header, then some unmarshall functions are changed to use this code.
      This change avoids the need to repeat cleanup code in the
      unmarshallers.
      
      libcc1
      
      	* rpc.hh (deleter): Move template and some specializations to
      	deleter.hh.
      	(argument_wrapper<const T *>): Use cc1_plugin::unique_ptr.
      	* marshall.cc (cc1_plugin::unmarshall): Use
      	cc1_plugin::unique_ptr.
      	* marshall-cp.hh (deleter): New specializations.
      	(unmarshall): Use cc1_plugin::unique_ptr.
      	* deleter.hh: New file.
      
      
      0f237df2
    • Tom Tromey's avatar
      libcc1: add deleter objects · 0d5a0b9a
      Tom Tromey authored
      This adds deleter objects for various kinds of protocol pointers to
      libcc1.  Existing specializations of argument_wrapper are then
      replaced with a single specialization that handles all pointer types
      via the appropriate deleter.  The result here is a bit nicer because
      the argument_wrapper boilerplate code is completely shared, leaving
      just the memory-management detail to the particular specializations.
      
      libcc1
      
      	* rpc.hh (struct deleter): New template class and
      	specializations.
      	(argument_wrapper): Remove specializations.  Add specialization
      	for any pointer type.
      
      
      0d5a0b9a
    • Tom Tromey's avatar
      libcc1: use std::vector when building function types · e702c60e
      Tom Tromey authored
      This changes libcc1 to use std::vector in the code that builds
      function types.  This avoids some explicit memory management.
      
      libcc1
      
      	* libcp1plugin.cc (plugin_build_function_type): Use std::vector.
      	* libcc1plugin.cc (plugin_build_function_type): Use std::vector.
      
      
      e702c60e
    • Tom Tromey's avatar
      libcc1: use variadic templates for "rpc" · 410d5719
      Tom Tromey authored
      This changes libcc1 to use variadic templates for the "rpc" functions.
      This simplifies the code and removes some possibility for mistakes.
      
      libcc1
      
      	* libcp1.cc (rpc): Use variadic template.  Remove overloads.
      	* libcc1.cc (rpc): Use variadic template.  Remove overloads.
      
      
      410d5719
    • Tom Tromey's avatar
      libcc1: use variadic templates for "call" · dc6be7c0
      Tom Tromey authored
      This changes libcc1 to use variadic templates for the "call"
      functions.  The primary benefit is that this simplifies the code.
      
      libcc1
      
      	* rpc.hh (call): Use variadic template.  Remove overloads.
      	* marshall.hh (marshall): Add base overload.  Use variadic
      	template.
      
      
      dc6be7c0
    • Tom Tromey's avatar
      libcc1: delete copy constructor and assignment operators · c10a3b13
      Tom Tromey authored
      Change libcc1 to use "= delete" for the copy constructor and
      assignment operator, rather than the old approach of private methods
      that are nowhere defined.
      
      libcc1
      
      	* rpc.hh (argument_wrapper): Use delete for copy constructor.
      	* connection.hh (class connection): Use delete for copy
      	constructor.
      	* callbacks.hh (class callbacks): Use delete for copy constructor.
      
      
      c10a3b13
    • Tom Tromey's avatar
      libcc1: inline some simple methods · 41f43816
      Tom Tromey authored
      This changes libcc1 to inline a trivial method and to use the default
      constructor.
      
      libcc1
      
      	* connection.hh (~connection): Use default.
      	(print): Inline.
      	* connection.cc (cc1_plugin::connection::~connection)
      	(cc1_plugin::connection::print): Remove definitions.
      
      
      41f43816
    • Tom Tromey's avatar
      libcc1: use "override" · e1f5252e
      Tom Tromey authored
      This changes libcc1 to use "override" where appropriate.
      
      libcc1
      
      	* libcp1.cc (class compiler_triplet_regexp)
      	(class compiler_driver_filename, class libcp1_connection): Use
      	"override".
      	* libcc1.cc (class compiler_triplet_regexp)
      	(class compiler_driver_filename, class libcc1_connection): Use
      	"override".
      
      
      e1f5252e
    • Tom Tromey's avatar
      libcc1: use templates to unmarshall enums · 25d1a6ec
      Tom Tromey authored
      Now that C++11 can be used in GCC, libcc1 can be changed to use
      templates and type traits to handle unmarshalling all kinds of enums.
      
      libcc1
      
      	* marshall.hh (cc1_plugin::unmarshall): Use type traits.
      	* marshall-cp.hh (cc1_plugin::unmarshall): Remove overloads.
      	* marshall-c.hh: Remove.
      	* libcc1plugin.cc: Update includes.
      	* libcc1.cc: Update includes.
      
      
      25d1a6ec
  9. May 04, 2021
  10. May 03, 2021
    • H.J. Lu's avatar
      GCC_CET_HOST_FLAGS: Check if host supports multi-byte NOPs · 3f570621
      H.J. Lu authored
      Check if host supports multi-byte NOPs before enabling CET on host.
      
      gcc/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      
      libbacktrace/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      
      libcc1/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      
      libcpp/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      
      libdecnumber/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      3f570621
  11. Jan 06, 2021
  12. Jan 05, 2021
    • Samuel Thibault's avatar
      Update GNU/Hurd configure support · f56de355
      Samuel Thibault authored
      ChangeLog:
      
      	* libtool.m4: Match gnu* along other GNU systems.
      	* libgo/config/libtool.m4: Match gnu* along other GNU systems.
      	* libgo/configure: Re-generate.
      
      libffi/
      	* configure: Re-generate.
      
      libgomp/
      	* configure: Re-generate.
      
      gcc/
      
      	* configure: Re-generate.
      
      libatomic/
      
      	* configure: Re-generate.
      
      libbacktrace/
      
      	* configure: Re-generate.
      
      libcc1/
      
      	* configure: Re-generate.
      
      libgfortran/
      
      	* configure: Re-generate.
      
      libgomp/
      
      	* configure: Re-generate.
      
      libhsail-rt/
      
      	* configure: Re-generate.
      
      libitm/
      
      	* configure: Re-generate.
      
      libobjc/
      
      	* configure: Re-generate.
      
      liboffloadmic/
      
      	* configure: Re-generate.
      	* plugin/configure: Re-generate.
      
      libphobos/
      
      	* configure: Re-generate.
      
      libquadmath/
      
      	* configure: Re-generate.
      
      libsanitizer/
      
      	* configure: Re-generate.
      
      libssp/
      
      	* configure: Re-generate.
      
      libstdc++-v3/
      
      	* configure: Re-generate.
      
      libvtv/
      
      	* configure: Re-generate.
      
      lto-plugin/
      
      	* configure: Re-generate.
      
      zlib/
      
      	* configure: Re-generate.
      f56de355
  13. Jan 04, 2021
  14. Dec 19, 2020
  15. Dec 18, 2020
    • Jakub Jelinek's avatar
      libcc1: Fix up libcc1 configure [PR98330] · 5dc99893
      Jakub Jelinek authored
      Either we should write test x$darwin_dynamic_lookup = xyes
      or we should make sure the variable is always defined to non-empty string.
      
      2020-12-18  Jakub Jelinek  <jakub@redhat.com>
      
      	PR bootstrap/98380
      	* configure.ac: Set darwin_dynamic_lookup=no instead to empty
      	string.
      	* configure: Regenerated.
      5dc99893
  16. Dec 06, 2020
  17. Dec 05, 2020
    • Iain Sandoe's avatar
      Darwin : Update libtool and dependencies for Darwin20 [PR97865] · 1352bc88
      Iain Sandoe authored
      The change in major version (and the increment from Darwin19 to 20)
      caused libtool tests to fail which resulted in incorrect build settings
      for shared libraries.
      
      We take this opportunity to sort out the shared undefined symbols state
      rather than propagating the current unsound behaviour into a new rev.
      
      This change means that we default to the case that missing symbols are
      considered an error, and if one wants to allow this intentionally, the
      confiuration for that case should be set appropriately.
      
      Three existing cases need undefined dynamic lookup:
       libitm, where there is already a configuration mechanism to add the
               flags.
       libcc1, where we add simple configuration to add the flags for Darwin.
       libsanitizer, where we can add to the existing extra flags.
      
      libcc1/ChangeLog:
      
      	PR target/97865
      	* Makefile.am: Add dynamic_lookup to LD flags for Darwin.
      	* configure.ac: Test for Darwin host and set a flag.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      
      libitm/ChangeLog:
      
      	PR target/97865
      	* configure.tgt: Add dynamic_lookup to XLDFLAGS for Darwin.
      	* configure: Regenerate.
      
      libsanitizer/ChangeLog:
      
      	PR target/97865
      	* configure.tgt: Add dynamic_lookup to EXTRA_CXXFLAGS for
      	Darwin.
      	* configure: Regenerate.
      
      ChangeLog:
      
      	PR target/97865
      	* libtool.m4: Update handling of Darwin platform link flags
      	for Darwin20.
      
      gcc/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libatomic/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libbacktrace/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libffi/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libgfortran/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libhsail-rt/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libobjc/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libphobos/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libquadmath/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libssp/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      libvtv/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      
      zlib/ChangeLog:
      
      	PR target/97865
      	* configure: Regenerate.
      1352bc88
  18. Nov 30, 2020
  19. Nov 29, 2020
    • John David Anglin's avatar
      Fix hppa64-hpux11 build to remove source paths from embedded path. · 4e4ba647
      John David Anglin authored
      This change adds the +nodefaultrpath ld option to remove all library
      paths that were specified with the -L option from the embedded path.
      
      2020-11-29  John David Anglin  <danglin@gcc.gnu.org>
      
      ChangeLog:
      	* libtool.m4 (archive_cmds): Add +nodefaultrpath ld option on
      	hppa64-*-hpux11*.
      
      libatomic/ChangeLog:
      	* configure: Regenerate.
      
      libbacktrace/ChangeLog:
      	* configure: Regenerate.
      
      libcc1/ChangeLog:
      	* configure: Regenerate.
      
      libffi/ChangeLog:
      	* configure: Regenerate.
      
      libgfortran/ChangeLog:
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      	* configure: Regenerate.
      
      libhsail-rt/ChangeLog:
      	* configure: Regenerate.
      
      libitm/ChangeLog:
      	* configure: Regenerate.
      
      libobjc/ChangeLog:
      	* configure: Regenerate.
      
      liboffloadmic/ChangeLog:
      	* configure: Regenerate.
      	* plugin/configure: Regenerate.
      
      libquadmath/ChangeLog:
      	* configure: Regenerate.
      
      libsanitizer/ChangeLog:
      	* configure: Regenerate.
      
      libssp/ChangeLog:
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      	* configure: Regenerate.
      
      libvtv/ChangeLog:
      	* configure: Regenerate.
      
      lto-plugin/ChangeLog:
      	* configure: Regenerate.
      
      zlib/ChangeLog:
      	* configure: Regenerate.
      4e4ba647
Loading