annotate src/unexsol2-6.c @ 1015:3d3204656cb4

[xemacs-hg @ 2002-09-24 14:59:22 by michaels] 2002-09-22 Mike Sperber <mike@xemacs.org> * specifier.c (specifier_add_spec): Don't do anything if NILP (inst_list)---otherwise, assertions in the rest of the specifier code get violated. 2002-09-20 Mike Sperber <mike@xemacs.org> (This partially gets back my patch from 2002-07-20 without the bug.) * process-unix.c (child_setup): Remove Ben's comment noting confusion over the file descriptors >= 3: close_process_descs() doesn't close all. Fix fd range to go up to MAXDESC-1 instead of 64. (unix_create_process): Call begin_dont_check_for_quit to inhibit unwanted interaction (and thus breaking of X event synchronicity) in the child.
author michaels
date Tue, 24 Sep 2002 14:59:25 +0000
parents 376386a54a3c
children 04bc9d2f42c7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 /* Unexec function for Solaris 2.x
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 Copyright (C) 1994 Sun Microsystems, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 This file is part of XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 later version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 for more details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 /* Synched up with: Not in FSF. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 #include <stdlib.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 #include <stdio.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 #include <dlfcn.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 int unexec (char *new_name, char *old_name, unsigned int data_start,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 unsigned int bss_start, unsigned int entry_address);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 int
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 unexec (char *new_name, char *old_name, unsigned int data_start,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 unsigned int bss_start, unsigned int entry_address)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 if (dldump (0, new_name, RTLD_MEMORY) != 0)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 fprintf (stderr, "unexec(): dldump(%s): %s \n",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 new_name, dlerror());
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 exit (1);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 return 0;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 }