* src/globals.cc: Define globals _GLIBCPP_mutex_init (),
_GLIBCPP_mutex_address_init (), _GLIBCPP_once, _GLIBCPP_mutex
and _GLIBCPP_mutex_address.
* include/bits/stl_threads.h (_STL_mutex_lock): Use above to provide
once-only runtime initialization of _M_lock mutex when
__GTHREAD_MUTEX_INIT_FUNCTION is defined.
(__STL_MUTEX_INITIALIZER): Provide initializer for _STL_mutex_lock
for __GTHREAD_MUTEX_INIT_FUNCTION case.
From-SVN: r43360
* testsuite/26_numerics/slice_array_assignment.cc (main): New test.
* include/bits/slice_array.h (slice_array<>::operator=): Make
public and implement.
(slice_array<>::slice_array): Make copy-constructor public.
* include/bits/valarray_array.h (__valarray_copy): Add another
overload to copy between strided arrays.
From-SVN: r43352
2001-06-13 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.h (OK_FOR_T): Remove.
(EXTRA_CONSTRAINT): Do not use OK_FOR_T.
* config/h8300/h8300.md: Remove alternatives involving inc and dec
in the helper patterns for addhi3 and addsi3.
From-SVN: r43329
* Makefile.in: Move _bb and __gcc_bcmp to LIB2FUNCS_ST.
* libgcc-std.ver: Take out __bb* and __gcc_bcmp.
* config/t-slibgcc-elf-ver, config/t-slibgcc-sld,
config/alpha/t-osf4, config/mips/t-iris6: Extract all
references to @shlib_map_file@, @shlib_objs@, or
@shlib_base_name@ to Makefile variables.
Bump soname version of libgcc to 1.
From-SVN: r43316
* doc/install.texi (ix86-*-solaris*): Removed, outdated.
(*-*-solaris*): Document problem in /bin/sh that affects
configuring libraries.
(sparc-*-solaris*): Recommend GNU binutils 2.11.1 or vendor tools.
(*-sun-solaris2.8): Document linker problem that explains why
libjava is disabled by default.
From-SVN: r43303
Fix for PR 3128, IA-64 linux kernel miscompile
* loop.c (strength_reduce): Move bl->all_reduced set before
check_ext_dependant_givs call.
(check_ext_dependant_givs): Clear bl->all_reduced when ignoring givs.
From-SVN: r43298
* config/i386/i386.c (ix86_expand_prologue): Always use
gen_pro_epilogue_adjust_stack; update arguments.
(ix86_expand_epilogue): Likewise.
(ix86_emit_epilogue_esp_adjustment): Remove.
(ix86_adjust_cost): Remove pro_epilogue_adjust_stack hack.
* config/i386/i386.md (pro_epilogue_adjust_stack): Use a BLKmode
clobber of scratch memory instead of a modification of EBP as the
barrier. Update all peepholes to match.
From-SVN: r43284
libstdc++/2071
* porting.texi: Add documentation about libstdc++-v3-specific
macros that are currently included in os_defines.h files.
* config/basic_file_stdio.h (sys_getc): New method.
(sys_ungetc): New method.
* include/bits/basic_file.h: (sys_getc): New method signature.
(sys_ungetc): New method signature.
* include/bits/fstream.tcc (underflow): Add conditional code
paths which avoid using short seeks on streams (especially
useful when the stream might be interactive or a pipe). At
the moment, this alternate path only avoids seeking when the
``buffer size'' of underflow() is 1 since the C standard only
guarantees buffer space for one ungetc (this technique could
be extended since *-*-solaris* supports buffering for 4 calls
to ungetc and *-*-*bsd* supports buffering limited only by
memory resources). Also, _GLIBCPP_AVOID_FSEEK must be defined
in a port's os_defines.h file for this alternate path to even
be considered. As a bonus, the idiom of using getc/ungetc
requires no system calls whereas fseek maps to one or two
system call(s) on many platforms.
* config/os/bsd/freebsd/bits/os_defines.h (_GLIBCPP_AVOID_FSEEK):
Define it.
* config/os/solaris/solaris2.5/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
* config/os/solaris/solaris2.6/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
* config/os/solaris/solaris2.7/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
From-SVN: r43278
2001-06-12 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3142
* include/bits/std_sstream.h: Add allocator_type, as per DR 251.
libstdc++/3141
* include/bits/istream.tcc (getline, get): Fix as per DR 243.
libstdc++/3140
* include/bits/std_bitset.h (bitset::set): Fix as per DR 186.
libstdc++/3139
* include/bits/limits_generic.h: Fix as per DR 184.
From-SVN: r43276
* doc/gcc.texi: Change the font used for @def... commands to a
fixed width font.
* doc/extend.texi: Use more logical markup. Use "built-in"
instead of "builtin". Use @deftypefn to mark up built-in
functions; specify their types in the @deftypefn and not in the
descriptive text. Use TeX quotes and dashes. Add more index
entries.
From-SVN: r43274
2001-06-12 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3142
* include/bits/std_sstream.h: Add allocator_type, as per DR 251.
libstdc++/3141
* include/bits/istream.tcc (getline, get): Fix as per DR 243.
libstdc++/3140
* include/bits/std_bitset.h (bitset::set): Fix as per DR 186.
libstdc++/3139
* include/bits/limits_generic.h: Fix as per DR 184.
From-SVN: r43273
* doc/install.texi (--exec-prefix, --bindir, --libdir,
--with-slibdir, --infodir, --mandir, --with-cpp-install-dir):
Document.
(--enable-cpp): Change to document --disable-cpp instead; update
to reflect current default.
(--without-fast-fixincludes): Remove documentation.
(Final install): Document installation directories in more
detail. Document use of make dvi.
From-SVN: r43270
cp:
PR c++/3130, c++/3131, c++/3132
* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
* class.c (force_canonical_binfo_r): Move
BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
virtual bases unless they're primary and what they're primary
too has been moved.
(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
derived binfo.
(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
(layout_nonempty_base_or_field): Add most derived type
parameter. Adjust.
(layout_empty_base): Likewise.
(build_base_field): Likewise.
(build_base_fields): Likewise.
(propagate_binfo_offsets): Add most derived type
parameter. Skip non canonical virtual bases too.
(dfs_set_offset_for_unshared_vbases): Don't skip primary
bases. Do skip canonical bases.
(layout_virtual_bases): Adjust.
(layout_class_type): Adjust.
(dfs_get_primary_binfo): Build list of virtual primary base
candidates.
(get_primary_binfo): Check that the shared virtual primary
base candidate was found first.
(accumulate_vtbl_inits): Don't do anything for non-vptr
containing binfos. For case 1 primary virtual bases, keep
checking that we've not emerged from the hierarchy of RTTI_BINFO.
testsuite:
* g++.old-deja/g++.abi/vbase5.C: New test.
* g++.old-deja/g++.abi/vbase6.C: New test.
* g++.old-deja/g++.abi/vbase7.C: New test.
From-SVN: r43266