e7c26e04b2
The motivation behind this change is to make it easier for a user to link against static libraries on a target where dynamic libraries are the default library type (for example GNU/Linux). Further, my motivation is really for linking libraries into GDB, however, the binutils-gdb/config/ directory is a copy of gcc/config/ so changes for GDB need to be approved by the GCC project first. After making this change in the gcc/config/ directory I've run autoreconf on all of the configure scripts in the GCC tree and a couple have been updated, so I'll use one of these to describe what my change does. Consider libcpp, this library links against libiconv. Currently if the user builds on a system with both static and dynamic libiconv installed then autotools will pick up the dynamic libiconv by default. This is almost certainly the right thing to do. However, if the user wants to link against static libiconv then things are a little harder, they could remove the dynamic libiconv from their system, but this is probably a bad idea (other things might depend on that library), or the user can build their own version of libiconv, install it into a unique prefix, and then configure gcc using the --with-libiconv-prefix=DIR flag. This works fine, but is somewhat annoying, the static library available, I just can't get autotools to use it. My change then adds a new flag --with-libiconv-type=TYPE, where type is either auto, static, or shared. The default auto, ensures we keep the existing behaviour unchanged. If the user configures with --with-libiconv-type=static then the configure script will ignore any dynamic libiconv it finds, and will only look for a static libiconv, if no static libiconv is found then the configure will continue as though there is no libiconv at all available. Similarly a user can specify --with-libiconv-type=shared and force the use of shared libiconv, any static libiconv will be ignored. As I've implemented this change within the AC_LIB_LINKFLAGS_BODY macro then only libraries configured using the AC_LIB_LINKFLAGS or AC_LIB_HAVE_LINKFLAGS macros will gain the new configure flag. If this is accepted into GCC then there will be follow on patches for binutils and GDB to regenerate some configure scripts in those projects. For GCC only two configure scripts needed updated after this commit, libcpp and libstdc++-v3, both of which link against libiconv. config/ChangeLog: * lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Add new --with-libXXX-type=... option. Use this to guide the selection of either a shared library or a static library. libcpp/ChangeLog: * configure: Regenerate. libstdc++-v3/ChangeLog: * configure: Regenerate.
324 lines
12 KiB
Plaintext
324 lines
12 KiB
Plaintext
2020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
* configure: Regenerate.
|
|
|
|
2020-01-27 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/93426
|
|
* include/std/span (span): Fix deduction guide.
|
|
* testsuite/23_containers/span/deduction.cc: New test.
|
|
|
|
2020-01-24 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
* libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
|
|
(__cmp_cat::_Ord::equivalent): Add enumerator.
|
|
(__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
|
|
and greater.
|
|
(partial_ordering, weak_ordering, strong_ordering): Remove
|
|
constructors taking __cmp_cat::_Eq parameters. Use renamed
|
|
enumerators.
|
|
|
|
2020-01-24 Maciej W. Rozycki <macro@wdc.com>
|
|
|
|
* acinclude.m4: Handle `--with-toolexeclibdir='.
|
|
* Makefile.in: Regenerate.
|
|
* aclocal.m4: Regenerate.
|
|
* configure: Regenerate.
|
|
* doc/Makefile.in: Regenerate.
|
|
* include/Makefile.in: Regenerate.
|
|
* libsupc++/Makefile.in: Regenerate.
|
|
* po/Makefile.in: Regenerate.
|
|
* python/Makefile.in: Regenerate.
|
|
* src/Makefile.in: Regenerate.
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
* src/c++17/Makefile.in: Regenerate.
|
|
* src/c++98/Makefile.in: Regenerate.
|
|
* src/filesystem/Makefile.in: Regenerate.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
2020-01-23 Alexandre Oliva <oliva@adacore.com>
|
|
|
|
* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
|
|
* configure: Rebuild.
|
|
|
|
* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
|
|
|
|
2020-01-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/91947
|
|
* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
|
|
rule.
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
2020-01-20 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
* doc/xml/faq.xml: Fix grammar.
|
|
* doc/xml/manual/appendix_contributing.xml: Improve instructions.
|
|
* doc/xml/manual/spine.xml: Update copyright years.
|
|
* doc/html/*: Regenerate.
|
|
|
|
2020-01-19 Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
* doc/xml/faq.xml: Update for SVN -> Git transition.
|
|
* doc/xml/manual/appendix_contributing.xml: Likewise.
|
|
* doc/xml/manual/status_cxx1998.xml: Likewise.
|
|
* doc/xml/manual/status_cxx2011.xml: Likewise.
|
|
* doc/xml/manual/status_cxx2014.xml: Likewise.
|
|
* doc/xml/manual/status_cxx2017.xml: Likewise.
|
|
* doc/xml/manual/status_cxx2020.xml: Likewise.
|
|
* doc/xml/manual/status_cxxtr1.xml: Likewise.
|
|
* doc/xml/manual/status_cxxtr24733.xml: Likewise.
|
|
|
|
2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
* include/Makefile.am: Add coroutine to the std set.
|
|
* include/Makefile.in: Regenerated.
|
|
* include/std/coroutine: New file.
|
|
|
|
2020-01-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/92376
|
|
* include/bits/c++config: Only do PSTL config when the header is
|
|
present, to fix freestanding.
|
|
* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
|
|
functions if they were detected by configure.
|
|
|
|
2020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
|
|
Matthew Bauer <mjbauer95@gmail.com>
|
|
Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR bootstrap/64271 (partial)
|
|
* config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
|
|
to unsigned short.
|
|
(ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
|
|
(ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
|
|
definitions with NetBSD upstream.
|
|
(ctype_base::blank): Use _CTYPE_BL.
|
|
* config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
|
|
Declaration.
|
|
(ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
|
|
(ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
|
|
parameters to unsigned char.
|
|
* config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
|
|
|
|
2020-01-16 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
PR libstdc++/91263
|
|
* include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
|
|
* include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
|
|
(_Equality_base): Remove.
|
|
(_Equality<>::_M_equal): Review implementation. Use
|
|
std::is_permutation.
|
|
* testsuite/23_containers/unordered_multiset/operators/1.cc
|
|
(Hash, Equal, test02, test03): New.
|
|
* testsuite/23_containers/unordered_set/operators/1.cc
|
|
(Hash, Equal, test02, test03): New.
|
|
|
|
2020-01-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/93267
|
|
* include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
|
|
Move here from <bits/range_access.h> and define using __int128 when
|
|
available.
|
|
(__is_integer_like, __is_signed_integer_like): Move here from
|
|
<bits/range_access.h>.
|
|
(weakly_incrementable): Use __is_signed_integer_like.
|
|
* include/bits/range_access.h (__max_diff_type, __max_size_type)
|
|
(__is_integer_like, __is_signed_integer_like): Move to
|
|
<bits/iterator_concepts.h>.
|
|
(__make_unsigned_like_t): Move here from <ranges>.
|
|
* include/std/ranges (__make_unsigned_like_t): Move to
|
|
<bits/range_access.h>.
|
|
(iota_view): Replace using-directive with using-declarations.
|
|
* testsuite/std/ranges/iota/93267.cc: New test.
|
|
* testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
|
|
|
|
2020-01-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/93244
|
|
* include/bits/fs_path.h (path::generic_string<C,A>)
|
|
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
|
|
* testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
|
|
root-dir is converted to forward slash in generic pathname.
|
|
* testsuite/27_io/filesystem/path/generic/utf.cc: New test.
|
|
* testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
|
|
|
|
PR libstdc++/58605
|
|
* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
|
|
Define.
|
|
(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
|
|
(__atomic_float): Add default member initializer for C++20.
|
|
* include/std/atomic (atomic): Likewise.
|
|
(atomic::atomic()): Remove noexcept-specifier on default constructor.
|
|
* include/std/version (__cpp_lib_atomic_value_initialization): Define.
|
|
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
|
|
number.
|
|
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
|
|
* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
|
|
* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
|
|
* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
|
|
expected result for is_trivially_default_constructible.
|
|
* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
|
|
* testsuite/29_atomics/atomic_float/value_init.cc: New test.
|
|
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
|
|
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
|
|
* testsuite/29_atomics/atomic_integral/cons/value_init.cc
|
|
* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
|
|
expected results for is_trivially_default_constructible.
|
|
* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
|
|
new test generator.
|
|
|
|
2020-01-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
* testsuite/util/testsuite_iterators.h: Improve comment.
|
|
|
|
* testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
|
|
initialization syntax.
|
|
|
|
PR libstdc++/92285
|
|
* include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
|
|
of base class independent of __cplusplus value.
|
|
[__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
|
|
type defined in the base class
|
|
* testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
|
|
* testsuite/24_iterators/istreambuf_iterator/requirements/
|
|
base_classes.cc: Adjust expected base class for C++98.
|
|
|
|
2020-01-09 Olivier Hainque <hainque@adacore.com>
|
|
|
|
* doc/xml/manual/appendix_contributing.xml: Document _C2
|
|
as a reserved identifier, by VxWorks.
|
|
* include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
|
|
* include/bits/stl_multimap.h: Likewise.
|
|
|
|
2020-01-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
* include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
|
|
(_ExtPtr_allocator::operator!=): Add missing const qualifiers.
|
|
* include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
|
|
partial specialization to disambiguate the two constrained
|
|
specializations.
|
|
|
|
* include/experimental/type_traits (experimental::is_pod_v): Disable
|
|
-Wdeprecated-declarations warnings around reference to std::is_pod.
|
|
* include/std/type_traits (is_pod_v): Likewise.
|
|
* testsuite/18_support/max_align_t/requirements/2.cc: Also check
|
|
is_standard_layout and is_trivial. Do not check is_pod for C++20.
|
|
* testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
|
|
Add -Wno-deprecated for C++20.
|
|
* testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
|
|
* testsuite/20_util/is_pod/value.cc: Likewise.
|
|
* testsuite/experimental/type_traits/value.cc: Likewise.
|
|
|
|
2020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
|
|
|
|
* include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
|
|
* include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
|
|
* testuite/20_util/is_pod/deprecated-2a.cc: New test.
|
|
|
|
2020-01-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/93205
|
|
* include/bits/random.h (operator>>): Check stream operation succeeds.
|
|
* include/bits/random.tcc (operator<<): Remove redundant __ostream_type
|
|
typedefs.
|
|
(operator>>): Remove redundant __istream_type typedefs. Check stream
|
|
operations succeed.
|
|
(__extract_params): New function to fill a vector from a stream.
|
|
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
|
|
|
|
PR libstdc++/93208
|
|
* config/abi/pre/gnu.ver: Add new exports.
|
|
* include/std/memory_resource (memory_resource::~memory_resource()):
|
|
Do not define inline.
|
|
(monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
|
|
* src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
|
|
Define.
|
|
(monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
|
|
* testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
|
|
|
|
2020-01-09 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
PR libstdc++/92124
|
|
* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
|
|
template alias.
|
|
(_Hashtable<>::__fwd_value_for): New.
|
|
(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
|
|
parameter.
|
|
(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
|
|
(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
|
|
(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
|
|
with std::move.
|
|
(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
|
|
(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
|
|
Adapt.
|
|
(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
|
|
Adapt.
|
|
* testsuite/23_containers/unordered_set/92124.cc: New.
|
|
|
|
2020-01-08 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
PR libstdc++/93201
|
|
* src/c++17/fs_ops.cc (do_remove_all): New function implementing more
|
|
detailed error reporting for remove_all. Check result of recursive
|
|
call before incrementing iterator.
|
|
(remove_all(const path&), remove_all(const path&, error_code&)): Use
|
|
do_remove_all.
|
|
* src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
|
|
result of recursive call before incrementing iterator.
|
|
* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
|
|
are reported correctly.
|
|
* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
|
|
|
|
2020-01-07 Thomas Rodgers <trodgers@redhat.com>
|
|
|
|
* include/std/condition_variable
|
|
(condition_variable_any::wait_on): Rename to match current draft
|
|
standard.
|
|
(condition_variable_any::wait_on_until): Likewise.
|
|
(condition_variable_any::wait_on_for): Likewise.
|
|
* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
|
|
Adjust tests to account for renamed methods.
|
|
|
|
2020-01-07 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
PR libstdc++/92124
|
|
* include/bits/stl_tree.h
|
|
(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
|
|
std::move_if_noexcept by std::move.
|
|
* testsuite/23_containers/map/92124.cc: New.
|
|
* testsuite/23_containers/set/92124.cc: New.
|
|
|
|
2020-01-06 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
|
|
(stop_source): Likewise (LWG 3362).
|
|
* testsuite/30_threads/stop_token/stop_source.cc: Test equality
|
|
comparisons.
|
|
|
|
* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
|
|
(lexicographical_compare_three_way): Do not depend on
|
|
__cpp_lib_concepts.
|
|
* include/std/version (__cpp_lib_three_way_comparison): Only define
|
|
when __cpp_lib_concepts is defined.
|
|
* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
|
|
|
|
2020-01-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
* include/bits/stl_algobase.h (lexicographical_compare_three_way):
|
|
Only define four-argument overload when __cpp_lib_concepts is defined.
|
|
|
|
2020-01-01 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
|
|
|
|
2020-01-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Update copyright years.
|
|
|
|
Copyright (C) 2020 Free Software Foundation, Inc.
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
are permitted in any medium without royalty provided the copyright
|
|
notice and this notice are preserved.
|