crt1.c (93036) | crt1.c (93399) |
---|---|
1/*- 2 * Copyright 2001 David E. O'Brien. 3 * All rights reserved. 4 * Copyright 1996-1998 John D. Polstra. 5 * All rights reserved. 6 * Copyright (c) 1997 Jason R. Thorpe. 7 * Copyright (c) 1995 Christopher G. Demetriou 8 * All rights reserved. --- 29 unchanged lines hidden (view full) --- 38 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 */ 40 41#ifndef __GNUC__ 42#error "GCC is needed to compile this file" 43#endif 44 45#include <stdlib.h> | 1/*- 2 * Copyright 2001 David E. O'Brien. 3 * All rights reserved. 4 * Copyright 1996-1998 John D. Polstra. 5 * All rights reserved. 6 * Copyright (c) 1997 Jason R. Thorpe. 7 * Copyright (c) 1995 Christopher G. Demetriou 8 * All rights reserved. --- 29 unchanged lines hidden (view full) --- 38 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 */ 40 41#ifndef __GNUC__ 42#error "GCC is needed to compile this file" 43#endif 44 45#include <stdlib.h> |
46#include "libc_private.h" |
|
46#include "crtbrand.c" 47 48struct Struct_Obj_Entry; 49struct ps_strings; 50 51#pragma weak _DYNAMIC 52extern int _DYNAMIC; 53 --- 4 unchanged lines hidden (view full) --- 58#ifdef GCRT 59extern void _mcleanup(void); 60extern void monstartup(void *, void *); 61extern int eprol; 62extern int etext; 63#endif 64 65char **environ; | 47#include "crtbrand.c" 48 49struct Struct_Obj_Entry; 50struct ps_strings; 51 52#pragma weak _DYNAMIC 53extern int _DYNAMIC; 54 --- 4 unchanged lines hidden (view full) --- 59#ifdef GCRT 60extern void _mcleanup(void); 61extern void monstartup(void *, void *); 62extern int eprol; 63extern int etext; 64#endif 65 66char **environ; |
66char *__progname = ""; | 67const char *__progname = ""; |
67struct ps_strings *__ps_strings; 68 69/* The entry function. 70 * 71 * First 5 arguments are specified by the PowerPC SVR4 ABI. 72 * The last argument, ps_strings, is a BSD extension. 73 */ 74void 75_start(argc, argv, envp, obj, cleanup, ps_strings) 76 int argc; 77 char **argv, **envp; 78 const struct Struct_Obj_Entry *obj; /* from shared loader */ 79 void (*cleanup)(void); /* from shared loader */ 80 struct ps_strings *ps_strings; /* BSD extension */ 81{ 82 char *namep; | 68struct ps_strings *__ps_strings; 69 70/* The entry function. 71 * 72 * First 5 arguments are specified by the PowerPC SVR4 ABI. 73 * The last argument, ps_strings, is a BSD extension. 74 */ 75void 76_start(argc, argv, envp, obj, cleanup, ps_strings) 77 int argc; 78 char **argv, **envp; 79 const struct Struct_Obj_Entry *obj; /* from shared loader */ 80 void (*cleanup)(void); /* from shared loader */ 81 struct ps_strings *ps_strings; /* BSD extension */ 82{ 83 char *namep; |
84 const char *s; |
|
83 84 environ = envp; 85 86 if (argc > 0 && argv[0] != NULL) { | 85 86 environ = envp; 87 88 if (argc > 0 && argv[0] != NULL) { |
87 char *s; | |
88 __progname = argv[0]; 89 for (s = __progname; *s != '\0'; s++) 90 if (*s == '/') 91 __progname = s + 1; 92 } 93 94 if (ps_strings != (struct ps_strings *)0) 95 __ps_strings = ps_strings; --- 13 unchanged lines hidden (view full) --- 109} 110 111#ifdef GCRT 112__asm__(".text"); 113__asm__("eprol:"); 114__asm__(".previous"); 115#endif 116 | 89 __progname = argv[0]; 90 for (s = __progname; *s != '\0'; s++) 91 if (*s == '/') 92 __progname = s + 1; 93 } 94 95 if (ps_strings != (struct ps_strings *)0) 96 __ps_strings = ps_strings; --- 13 unchanged lines hidden (view full) --- 110} 111 112#ifdef GCRT 113__asm__(".text"); 114__asm__("eprol:"); 115__asm__(".previous"); 116#endif 117 |
117__asm__(".ident\t\"$FreeBSD: head/lib/csu/powerpc/crt1.c 93036 2002-03-23 18:14:04Z obrien $\""); | 118__asm__(".ident\t\"$FreeBSD: head/lib/csu/powerpc/crt1.c 93399 2002-03-29 22:43:43Z markm $\""); |