A C standard library for sh3eb-elf.
Go to file
Christopher Faylor 2d1d1eb1e4 * cygtls.h (_threadinfo::call): Remove regparm declaration to work around
compiler bug.
* autoload.cc (TryEnterCriticalSection): Remove.
* dcrt0.cc (dll_crt0_0): Delete inappropriate setting of _my_tls.stackptr to
NULL since it has really bad consequences.  Make 'si' an automatic variable.
* cygtls.cc (_threadinfo::init_thread): Correct thinko which caused thread list
to be allocated every time.
* cygtls.h (CYGTLS_PADSIZE): Define as const int.
* sync.h: Make multiple inclusion safe.
(muto::next): Eliminate.
(muto::exiting_thread): New variable.
(muto::set_exiting_thread): New function.
(new_muto): Change to use different section for mutos since c++ give
inexplicable warning in some cases otherwise.
(new_muto1): Ditto.
* dcrt0.cc (do_exit): Call muto::set_exiting_thread here.
* sync.cc (muto_start): Eliminate.
(muto::acquire): Always give exiting thread a lock.  Never give thread a lock
if exiting.
(muto::release): Ditto for releasing.
* dtable.cc (dtable::init_lock): Unline function and define here.
* dtable.h (lock_cs): Define as a muto since critical sections seem to work
oddly on Windows Me.
(lock): Accommodate switch to muto.
(unlock): Ditto.
* exceptions.cc (setup_handler): Don't worry about acquiring mutos since that
hasn't mattered for a long time.
(signal_exit): Ditto: muto stuff will be handled automatically on exit now.
* Makefile.in (DLL_IMPORTS): Link advapi32 to ensure proper DLL initialization.
* autoload.cc (RegCloseKey): Arbitrarily choose this function as a "seed" to
pull the advapi32 link library in.  So, comment out the autoloading.
* cygtls.cc (_threadinfo::init_thread): Just clear CYGTLS_PADSIZE.
(_threadinfo::remove): Add debugging.
(_threadinfo::find_tls): Ditto.
* cygtls.h (_threadinfo::padding): Make zero length (for now?).
* dcrt0.cc (dll_crt0_0): Move more initialization here from dll_crt0_1.
(dll_crt0_1): See above.
* dtable.h (dtable::lock): Remove commented out critical section locking.
* dtable.h (dtable::init_lock): Remove commented out critical section locking.
* dtable.h (dtable::unlock): Remove commented out critical section locking.
* exceptions.cc (interruptible): bool'ize.
* init.cc (threadfunc_fe): Revert to storing threadfunc at stack bottom.
(munge_threadfunc): Ditto.  Avoid adding overhead to calibration_thread.
(prime_threads): Don't initialize tls stuff.
(dll_entry): Make minor change to initialization order.
* tlsoffsets.h: Regenerate.
* sigproc.cc (wait_sig): Add sanity check for end of process thread exit.
* select.h: Make minor formatting change.
* Makefile.in: Add still more -fomit-frame-pointer functions.
* dtable.h (dtable::lock): New function.
(dtable::unlock): New function.
(dtable::init_lock): New function.
* cygheap.h (HEAP_TLS): Declare new enum value.
(init_cygheap::threadlist): Declare new array.
(init_cygheap::sthreads): Declare new variable.
(cygheap_fdmanip::~cygheap_fdmanip): Use new dtable lock/unlock functions.
(cygheap_fdnew::cygheap_fdnew): Ditto.
(cygheap_fdget::cygheap_fdget): Ditto.
* dtable.cc (dtable_init): Initialize fdtab critical section.
(dtable::fixup_after_fork): Ditto.
(dtable::fixup_after_exec): Ditto.
(dtable::dup2): Use lock/unlock calls to protect access to fdtab.
(dtable::find_fifo): Ditto.
(dtable::fixup_before_fork): Ditto.
(dtable::fixup_before_exec): Ditto.
(dtable::set_file_pointers_for_exec): Ditto.
(dtable::vfork_child_dup): Ditto.
(dtable::vfork_parent_restore): Ditto.
* syscalls.cc (close_all_files): Ditto.
* sync.h (muto::acquired): Declare new function.
(new_muto1): Declare new macro used to specify name of muto storage.
* sync.cc (muto::acquired): Define new function.
* cygthread.cc (cygthread::stub): Remove signal chain removal call since it is
handled during initialization now.
* cygthread.cc (cygthread::simplestub): Remove signal chain removal call since
it is handled during initialization now.
* cygtls.cc (sentry): New class used for locking.  Use throughout.
(_threadinfo::reset_exception): Don't pop stack.
(_threadinfo::find_tls): Move from exceptions.cc.
(_threadinfo::init_thread): Initialize array of threads rather than linked
list.  Take second argument indicating thread function for this thread.
(_threadinfo::remove): Search thread array rather than linked list.  Use sentry
to lock.  Only unlock if we got the lock.
(_threadinfo::find_tls): Ditto for first two.
(handle_threadlist_exception): Handle exceptions when manipulating the thread
list in case of premature thread termination.
(_threadinfo::init_threadlist_exceptions): Ditto.
* cygtls.h (TLS_STACK_SIZE): Decrease size.
(_threadinfo::padding): Add element to avoid overwriting lower part of stack.
(_threadinfo::remove): Add a "wait" argument to control how long we wait for a
lock before removing.
* exceptions.cc (init_exception_handler): Make global.  Take argument to
control exception handler being set.
(ctrl_c_handler): Wait forever when removing self from signal chain.
(_threadinfo::find_tls): Move to cygtls.cc.
(sig_handle): Reorganize detection for thread-specific signals.
* heap.cc (heap_init): Rework slightly.  Make fatal error more verbose.  Remove
malloc initialization since it can't happen during dll attach.
* init.cc (search_for): Move address to search for on stack here.
(threadfunc_ix): Ditto for stack offset.  Make shared so that stack walk
potentially only has to be done once when cygwin processes are running.
(threadfunc_fe): Use standard tls to store thread function (may change back
later).
(calibration_thread): New function.  Potentially called to find threadfunc_ix.
(munge_threadfunc): Search for "search_for" value on stack.  Output warning
when thread func not found on stack.  Use standard tls to store thread
function.
(prime_threads): New function.  Called to prime thread front end.
(dll_entry): Call dll_crt0_0 here when DLL_PROCESS_ATTACH.  Call prime_threads
here.  Try to remove thread from signal list here.
* sigproc.cc (wait_sig): Initialize threadlist exception stuff here.
* thread.cc (pthread::exit): Pass argument to signal list remove function.
* thread.h: Remove obsolete *ResourceLock defines.
* tlsoffsets.h: Regenerate.
* winsup.h (spf): Define temporary debug macro to be deleted later.
* dcrt0.cc (dll_crt0_0): New function, called during DLL initialization.
Mainly consists of code pulled from dll_crt0_1.
(dll_crt0_1): See above.
(_dll_crt0): Wait for initial calibration thread to complete, if appropriate.
Move some stuff to dll_crt0_0.
(initialize_main_tls): Accommodate argument change to
_thread_info::init_thread.
* fork.cc (fork_child): Ditto.
(sync_with_child): Fix debug message.
* external.cc (cygwin_internal): Remove special considerations for
uninitialized dll since initialization happens during dll attach now.
* dlfcn.cc (dlopen): Remove obsolete *ResourceLock calls.
(dlclose): Ditto.
* cygheap.h (init_cygheap::close_ctty): Declare new function.
* cygheap.cc (init_cygheap::close_ctty): Define new function.
* syscalls.cc (close_all_files): Use close_ctty.
(setsid): Ditto.
* cygthread.cc (cygthread::stub): Remove exception initialization.
* cygthread.cc (cygthread::stub): Remove exception initialization.
(cygthread::simplestub): Ditto.
* thread.cc (pthread::thread_init_wrapper): Ditto.
* cygtls.cc (_last_thread): Make static.
(_threadinfo::call2): Initialize exception handler here.
(_threadinfo::find_tls): Move here.
* exceptions.cc (_threadinfo::find_tls): Move.
* dcrt0.cc (__api_fatal): Add prefix info to message here rather than including
it in every call to function.
* winsup.h (api_fatal): Accommodate above change.
* debug.cc (add_handle): Don't do anything if cygheap not around.
(mark_closed): Ditto.
* dll_init.cc (dll_list::detach): Fix debug output.
* fork.cc (sync_with_child): Ditto.
(vfork): Improve debug output.
* heap.cc (heap_init): Ditto.
* exceptions.cc (try_to_debug): Clarify message when debugger attaches.
2004-01-14 15:45:37 +00:00
config * gettext.m4: Quote names of macros to be defined by AC_DEFUN 2004-01-14 13:41:37 +00:00
etc Replace i[3456]86 with i[3-7]86 2003-05-16 16:30:26 +00:00
include * demangle.h: Instead of checking ANSI_PROTOTYPES, just include 2004-01-13 03:07:16 +00:00
libgloss 2003-12-02 Richard Sandiford <rsandifo@redhat.com> 2004-01-06 19:21:35 +00:00
newlib 2004-01-08 Joel Sherrill <joel@oarcorp.com> 2004-01-08 19:33:13 +00:00
texinfo 2003-03-06 Andrew Cagney <cagney@redhat.com> 2003-03-06 20:50:01 +00:00
winsup * cygtls.h (_threadinfo::call): Remove regparm declaration to work around 2004-01-14 15:45:37 +00:00
COPYING 19990502 sourceware import 1999-05-03 07:29:06 +00:00
COPYING.LIB 19990502 sourceware import 1999-05-03 07:29:06 +00:00
COPYING.LIBGLOSS 2002-12-20 Jeff Johnston <jjohnstn@redhat.com> 2002-12-20 21:36:01 +00:00
COPYING.NEWLIB 2003-11-27 Jeff Johnston <jjohnstn@redhat.com> 2003-11-27 19:18:38 +00:00
ChangeLog * gettext.m4: Quote names of macros to be defined by AC_DEFUN 2004-01-14 13:41:37 +00:00
MAINTAINERS Revise DejaGnu patch submission guidelines. 2003-08-23 08:51:04 +00:00
Makefile.def * Makefile.def: Introduce flags_to_pass. 2003-06-23 20:36:40 +00:00
Makefile.in * configure.in: Use ./config.cache, not config.cache. 2004-01-05 04:38:54 +00:00
Makefile.tpl * configure.in: Use ./config.cache, not config.cache. 2004-01-05 04:38:54 +00:00
README 19990502 sourceware import 1999-05-03 07:29:06 +00:00
README-maintainer-mode Update URL 2003-05-30 07:30:26 +00:00
config-ml.in * config-ml.in: Don't mess with the cache file. 2004-01-05 00:42:16 +00:00
config.guess 2003-06-14 H.J. Lu <hongjiu.lu@intel.com> 2003-06-14 14:07:21 +00:00
config.if * config.if: Remove unused libc_interface determination. 2003-07-16 06:35:35 +00:00
config.sub Add MSP430 variants 2003-08-08 10:14:51 +00:00
configure * configure.in: Use ./config.cache, not config.cache. 2004-01-05 04:38:54 +00:00
configure.in * configure.in: Use ./config.cache, not config.cache. 2004-01-05 04:38:54 +00:00
djunpack.bat * djunpack.bat: Change the Sed script to replace @V@ in fnchange.lst 2000-05-08 15:13:30 +00:00
gettext.m4 * gettext.m4: Quote names of macros to be defined by AC_DEFUN 2004-01-14 13:41:37 +00:00
install-sh * install-sh: Update to newer upstream versions (associated with 2003-08-29 00:13:09 +00:00
libtool.m4 * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*. 2003-04-11 03:58:39 +00:00
ltcf-c.sh 2002-12-01 Nathanael Nerode <neroden@gcc.gnu.org> 2002-12-01 12:01:26 +00:00
ltcf-cxx.sh * libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld. 2003-02-20 01:12:28 +00:00
ltcf-gcj.sh * ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever 2003-02-19 23:51:28 +00:00
ltconfig 2003-10-03 H.J. Lu <hongjiu.lu@intel.com> 2003-10-04 04:54:47 +00:00
ltmain.sh * ltmain.sh (relink_command): Fix typo in previous change. 2002-03-16 14:43:09 +00:00
makefile.vms 19990502 sourceware import 1999-05-03 07:29:06 +00:00
missing * install-sh: Update to newer upstream versions (associated with 2003-08-29 00:13:09 +00:00
mkdep * mkdep: New file. 1999-08-08 17:46:02 +00:00
mkinstalldirs * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version. 2003-07-30 01:35:07 +00:00
move-if-change 19990502 sourceware import 1999-05-03 07:29:06 +00:00
mpw-README 19990502 sourceware import 1999-05-03 07:29:06 +00:00
mpw-build.in 19990502 sourceware import 1999-05-03 07:29:06 +00:00
mpw-config.in 19990502 sourceware import 1999-05-03 07:29:06 +00:00
mpw-configure 19990502 sourceware import 1999-05-03 07:29:06 +00:00
mpw-install 19990502 sourceware import 1999-05-03 07:29:06 +00:00
setup.com 19990502 sourceware import 1999-05-03 07:29:06 +00:00
src-release 2003-09-12 Michael Chastain <mec@shout.net> 2003-09-14 23:16:45 +00:00
symlink-tree * config-ml.in, symlink-tree: Add license. 2003-08-14 20:44:13 +00:00
ylwrap 19990502 sourceware import 1999-05-03 07:29:06 +00:00

README

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.