SCCS-vsn: lib/csu/i386/Makefile 5.2
SCCS-vsn: lib/csu/i386/crt0.c 5.2
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-# @(#)Makefile 5.1 (Berkeley) %G%
-CC=gcc
-AS=a386
+# @(#)Makefile 5.2 (Berkeley) %G%
+AS=as
#
# crt0 Normal C run time startoff
# mcrt0 C run time start off for profiling, ``prof'' conventions
#
# crt0 Normal C run time startoff
# mcrt0 C run time start off for profiling, ``prof'' conventions
crt0.o: crt0.c
${CC} -S ${DFLAGS} -DCRT0 crt0.c
grep -v "^#[ _]" <crt0.s >x.s
crt0.o: crt0.c
${CC} -S ${DFLAGS} -DCRT0 crt0.c
grep -v "^#[ _]" <crt0.s >x.s
+ /lib/cpp -traditional crt0.s > x.s
${AS} -o x.o x.s
ld -x -r -o crt0.o x.o
rm -f x.s x.o crt0.s
${AS} -o x.o x.s
ld -x -r -o crt0.o x.o
rm -f x.s x.o crt0.s
${CC} -S ${DFLAGS} -DMCRT0 crt0.c
grep -v "^#[ _]" <crt0.s >x.s
mv x.s crt0.s
${CC} -S ${DFLAGS} -DMCRT0 crt0.c
grep -v "^#[ _]" <crt0.s >x.s
mv x.s crt0.s
+ /lib/cpp -traditional crt0.s > x.s
${AS} -o x.o x.s
ld -x -r -o moncrt0.o x.o
rm -f x.s x.o crt0.s
${AS} -o x.o x.s
ld -x -r -o moncrt0.o x.o
rm -f x.s x.o crt0.s
-static char sccsid[] = "@(#)crt0.c 5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)crt0.c 5.2 (Berkeley) %G%";
/*
* C start up routine.
* Robert Henry, UCB, 20 Oct 81
*
/*
* C start up routine.
* Robert Henry, UCB, 20 Oct 81
*
- * We make the following (true) assumptions:
- * 1) The only register variable that we can trust is bp,
+ * We make the following (true) assumption:
+ * 1) The only register variable that we can trust is ebp,
* which points to the base of the kernel calling frame.
* which points to the base of the kernel calling frame.
- * 2) We can allocate as many register variables as we want,
- * and don't have to save them for anybody.
*/
char **environ = (char **)0;
static int fd;
*/
char **environ = (char **)0;
static int fd;
asm("#define _start start");
asm("#define _eprol eprol");
asm(" .text");
asm("#define _start start");
asm("#define _eprol eprol");
asm(" .text");
-asm(" .long 0"); /* first instruction should always be 0 (indir thru 0) */
-asm(" .long 0"); /*this means all null pointers return value 0 regardless */
- /* of type */
-#endif
+asm(" .long 0xc000c000");
extern unsigned char etext;
extern unsigned char eprol;
start()
extern unsigned char etext;
extern unsigned char eprol;
start()