* solib.c (solib_add): New argument is the target_ops whose

section list is to be added to, if any.  Reallocate the
        sections in that target to add any that come from shared libs.
        (throughout) so_sections renamed to sections.
        (solib_xfer_memory):  Deleted.
        * tm-sunos.h (SOLIB_ADD):  Add target argument.
        (SOLIB_XFER_MEMORY):  Delete.

        * xm-sun3os4.h, xm-sun4os4.h:  Define BROKEN_LARGE_ALLOCA,
        and add comment explaining shared library screw.
This commit is contained in:
John Gilmore
1991-08-14 00:02:26 +00:00
parent c561ca5dfb
commit 5ac449d90c
3 changed files with 13 additions and 9 deletions

View File

@ -19,13 +19,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* This is for SunOS version 4, not for earlier versions. */ /* This is for SunOS version 4, not for earlier versions. */
#define CLEAR_SOLIB clear_solib #define CLEAR_SOLIB clear_solib
#define SOLIB_ADD(filename, from_tty) solib_add (filename, from_tty) #define SOLIB_ADD(filename, from_tty, targ) solib_add (filename, from_tty, targ)
#define SOLIB_XFER_MEMORY(memaddr, myaddr, len, write) solib_xfer_memory (memaddr, myaddr, len, write)
/* If we can't set a breakpoint, and it's in a shared library, just /* If we can't set a breakpoint, and it's in a shared library, just
disable it. */ disable it. */
#define DISABLE_UNSETTABLE_BREAK(addr) solib_address(addr) #define DISABLE_UNSETTABLE_BREAK(addr) solib_address(addr)
extern int solib_address (); /* solib.c */ extern int solib_address (); /* solib.c */
extern int solib_xfer_memory ();
extern void solib_add (); extern void solib_add ();
extern void clear_solib (); extern void clear_solib ();

View File

@ -20,9 +20,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "xm-sun3.h" #include "xm-sun3.h"
#define FPU #define FPU
/* There is a bug which can cause alloca to fail to allocate large /* Large alloca's fail because the attempt to increase the stack limit in
areas of memory one time in every 4096 (we think). */ main() fails because shared libraries are allocated just below the initial
/* chase@orc.olivetti.com says that 4 megabyte alloca's consistently fail, stack limit. The SunOS kernel will not allow the stack to grow into
even though the stack limit (SET_STACK_LIMIT_HUGE) has been set the area occupied by the shared libraries. Sun knows about this bug
to 250 megabytes. */ but has no obvious fix for it. */
#define BROKEN_LARGE_ALLOCA #define BROKEN_LARGE_ALLOCA

View File

@ -18,5 +18,11 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "xm-sparc.h" #include "xm-sparc.h"
#define FPU #define FPU
/* Large alloca's fail because the attempt to increase the stack limit in
main() fails because shared libraries are allocated just below the initial
stack limit. The SunOS kernel will not allow the stack to grow into
the area occupied by the shared libraries. Sun knows about this bug
but has no obvious fix for it. */
#define BROKEN_LARGE_ALLOCA