This commit was generated by cvs2svn to track changes on a CVS vendor
[external/binutils.git] / gdb / news-xdep.c
1 /* Low level interface to ptrace, for GDB when running under Unix.
2    Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
3
4    This file is part of GDB.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 #ifdef __GNUC__
22 /* Bad implement execle(3). It's depend for "/bin/cc".
23
24    main()
25    {
26    printf("execle:\n");
27    execle(FILE, ARGS, envp);
28    exit(1);
29    }
30
31    GCC:
32    link a6,#0
33    pea LC5      ; call printf
34    jbsr _printf
35    ;            ; (not popd stack)
36    pea _envp    ; call execle
37    clrl sp@-
38    pea LC4
39    pea LC4
40    pea LC4
41    pea LC3
42    pea LC6
43    jbsr _execle
44    addw #32,sp  ; delayed pop !!
45
46    /bin/cc:
47    link.l       fp,#L23
48    movem.l      #L24,(sp)
49    pea  L26             ; call printf
50    jbsr _printf
51    addq.l       #4,sp   ; <--- popd stack !!
52    pea  _envp           ; call execle
53    clr.l        -(sp)
54    pea  L32
55
56  */
57
58 execle (name, args)
59      char *name, *args;
60 {
61   register char **env = &args;
62   while (*env++)
63     ;
64   execve (name, (char **) &args, (char **) *env);
65 }
66 #endif