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" |
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; |
67const char *__progname = ""; |
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; |
85 86 environ = envp; 87 88 if (argc > 0 && argv[0] != NULL) { |
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 |
118__asm__(".ident\t\"$FreeBSD: head/lib/csu/powerpc/crt1.c 93399 2002-03-29 22:43:43Z markm $\""); |