4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-21 16:26:12 +08:00

2002-10-25 Bernd Schmidt <bernds@redhat.com>

* i386/cygmon.ld: Add entry for .gcc_except_table.

2000-10-25  Mark Salter  <msalter@redhat.com>

        * i386/cygmon-crt0.S: Use __USER_LABEL_PREFIX__ for symbols. Always
        use __start for start symbol.
        * i386/cygmon-salib.c: Don't build __do_global_[cd]tors for AOUT.
        Disable file I/O extensions to make Plum Hall happy.
        * i386/cygmon.ld: Set __start as entry point.
        * i386/Makefile.in: Support IS_AOUT.
        * i386/configure.in: Support IS_AOUT.
        * i386/configure: Regenerated.
        * i386/cygmon-salib.c:
        * i386/cygmon-gmon.c (_mcount): It's _etext.
This commit is contained in:
Jeff Johnston 2002-10-25 19:18:46 +00:00
parent 8dec3c152c
commit 664252b754
8 changed files with 124 additions and 78 deletions

View File

@ -1,3 +1,20 @@
2002-10-25 Bernd Schmidt <bernds@redhat.com>
* i386/cygmon.ld: Add entry for .gcc_except_table.
2000-10-25 Mark Salter <msalter@redhat.com>
* i386/cygmon-crt0.S: Use __USER_LABEL_PREFIX__ for symbols. Always
use __start for start symbol.
* i386/cygmon-salib.c: Don't build __do_global_[cd]tors for AOUT.
Disable file I/O extensions to make Plum Hall happy.
* i386/cygmon.ld: Set __start as entry point.
* i386/Makefile.in: Support IS_AOUT.
* i386/configure.in: Support IS_AOUT.
* i386/configure: Regenerated.
* i386/cygmon-salib.c:
* i386/cygmon-gmon.c (_mcount): It's _etext.
2002-10-25 Jeff Johnston <jjohnstn@redhat.com> 2002-10-25 Jeff Johnston <jjohnstn@redhat.com>
* configure.in: Clarify some of the triplets so unsupported * configure.in: Clarify some of the triplets so unsupported

View File

@ -1,4 +1,4 @@
# Copyright (c) 1997 Cygnus Support # Copyright (c) 1997, 2000 Cygnus Support
# #
# The authors hereby grant permission to use, copy, modify, distribute, # The authors hereby grant permission to use, copy, modify, distribute,
# and license this software and its documentation for any purpose, provided # and license this software and its documentation for any purpose, provided
@ -87,10 +87,10 @@ libcygmon.a: $(CYGMON_OBJS)
${RANLIB} $@ ${RANLIB} $@
cygmon-salib.o: ${srcdir}/cygmon-salib.c cygmon-salib.o: ${srcdir}/cygmon-salib.c
$(CC) -c $(CFLAGS) @NEED_UNDERSCORE@ @IS_COFF@ $(<) -o $@ $(CC) -c $(CFLAGS) @NEED_UNDERSCORE@ @IS_COFF@ @IS_AOUT@ $(<) -o $@
cygmon-crt0.o: ${srcdir}/cygmon-crt0.S cygmon-crt0.o: ${srcdir}/cygmon-crt0.S
$(CC) -c $(CFLAGS) @NEED_UNDERSCORE@ @IS_COFF@ $(<) -o $@ $(CC) -c $(CFLAGS) @NEED_UNDERSCORE@ @IS_COFF@ @IS_AOUT@ $(<) -o $@
doc: doc:

View File

@ -1,7 +1,7 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.12.1 # Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
# #
# This configure script is free software; the Free Software Foundation # This configure script is free software; the Free Software Foundation
@ -333,7 +333,7 @@ EOF
verbose=yes ;; verbose=yes ;;
-version | --version | --versio | --versi | --vers) -version | --version | --versio | --versi | --vers)
echo "configure generated by autoconf version 2.12.1" echo "configure generated by autoconf version 2.13"
exit 0 ;; exit 0 ;;
-with-* | --with-*) -with-* | --with-*)
@ -503,9 +503,11 @@ ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS' ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross cross_compiling=$ac_cv_prog_cc_cross
ac_exeext=
ac_objext=o
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@ -581,7 +583,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi fi
echo $ac_n "checking host system type""... $ac_c" 1>&6 echo $ac_n "checking host system type""... $ac_c" 1>&6
echo "configure:585: checking host system type" >&5 echo "configure:587: checking host system type" >&5
host_alias=$host host_alias=$host
case "$host_alias" in case "$host_alias" in
@ -602,7 +604,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6 echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6
echo "configure:606: checking target system type" >&5 echo "configure:608: checking target system type" >&5
target_alias=$target target_alias=$target
case "$target_alias" in case "$target_alias" in
@ -620,7 +622,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6 echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6
echo "configure:624: checking build system type" >&5 echo "configure:626: checking build system type" >&5
build_alias=$build build_alias=$build
case "$build_alias" in case "$build_alias" in
@ -674,12 +676,12 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh. # ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:678: checking for a BSD compatible install" >&5 echo "configure:680: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
for ac_dir in $PATH; do for ac_dir in $PATH; do
# Account for people who put trailing slashes in PATH elements. # Account for people who put trailing slashes in PATH elements.
case "$ac_dir/" in case "$ac_dir/" in
@ -722,6 +724,8 @@ echo "$ac_t""$INSTALL" 1>&6
# It thinks the first close brace ends the variable substitution. # It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
@ -732,24 +736,29 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# autoconf should provide a way to do this. # autoconf should provide a way to do this.
case "$target" in case "$target" in
*coff) *coff)
IS_COFF="-DCOFF" IS_COFF="-DCOFF"
;; ;;
*aout)
IS_AOUT="-DAOUT"
;;
esac esac
# Extract the first word of "gcc", so it can be a program name with args. # Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2 set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:746: checking for $ac_word" >&5 echo "configure:753: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
if test -n "$CC"; then if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test. ac_cv_prog_CC="$CC" # Let the user override the test.
else else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
for ac_dir in $PATH; do ac_dummy="$PATH"
for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=. test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then if test -f $ac_dir/$ac_word; then
ac_cv_prog_CC="gcc" ac_cv_prog_CC="gcc"
@ -770,16 +779,17 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args. # Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2 set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:775: checking for $ac_word" >&5 echo "configure:783: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
if test -n "$CC"; then if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test. ac_cv_prog_CC="$CC" # Let the user override the test.
else else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
ac_prog_rejected=no ac_prog_rejected=no
for ac_dir in $PATH; do ac_dummy="$PATH"
for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=. test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then if test -f $ac_dir/$ac_word; then
if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@ -818,7 +828,7 @@ fi
fi fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
echo "configure:823: checking whether we are using GNU C" >&5 echo "configure:832: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -827,7 +837,7 @@ else
yes; yes;
#endif #endif
EOF EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:832: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:841: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes ac_cv_prog_gcc=yes
else else
ac_cv_prog_gcc=no ac_cv_prog_gcc=no
@ -842,7 +852,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS" ac_save_CFLAGS="$CFLAGS"
CFLAGS= CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
echo "configure:847: checking whether ${CC-cc} accepts -g" >&5 echo "configure:856: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -877,18 +887,20 @@ LD=${LD-ld}
# Extract the first word of "ranlib", so it can be a program name with args. # Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2 set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:885: checking for $ac_word" >&5 echo "configure:895: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
if test -n "$RANLIB"; then if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
for ac_dir in $PATH; do ac_dummy="$PATH"
for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=. test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then if test -f $ac_dir/$ac_word; then
ac_cv_prog_RANLIB="ranlib" ac_cv_prog_RANLIB="ranlib"
@ -936,7 +948,7 @@ EOF
# Ultrix sh set writes to stderr and can't be redirected directly, # Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars. # and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 | (set) 2>&1 |
case `(ac_space=' '; set) 2>&1` in case `(ac_space=' '; set | grep ac_space) 2>&1` in
*ac_space=\ *) *ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution # `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \). # turns \\\\ into \\, and sed turns \\ into \).
@ -1015,7 +1027,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v) -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "$CONFIG_STATUS generated by autoconf version 2.12.1" echo "$CONFIG_STATUS generated by autoconf version 2.13"
exit 0 ;; exit 0 ;;
-help | --help | --hel | --he | --h) -help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;; echo "\$ac_cs_usage"; exit 0 ;;
@ -1039,6 +1051,7 @@ s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g
s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g s%@LIBS@%$LIBS%g
@ -1073,12 +1086,14 @@ s%@build_cpu@%$build_cpu%g
s%@build_vendor@%$build_vendor%g s%@build_vendor@%$build_vendor%g
s%@build_os@%$build_os%g s%@build_os@%$build_os%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
s%@INSTALL_DATA@%$INSTALL_DATA%g s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@CC@%$CC%g s%@CC@%$CC%g
s%@AS@%$AS%g s%@AS@%$AS%g
s%@AR@%$AR%g s%@AR@%$AR%g
s%@LD@%$LD%g s%@LD@%$LD%g
s%@IS_COFF@%$IS_COFF%g s%@IS_COFF@%$IS_COFF%g
s%@IS_AOUT@%$IS_AOUT%g
s%@NEED_UNDERSCORE@%$NEED_UNDERSCORE%g s%@NEED_UNDERSCORE@%$NEED_UNDERSCORE%g
s%@RANLIB@%$RANLIB%g s%@RANLIB@%$RANLIB%g
s%@host_makefile_frag_path@%$host_makefile_frag_path%g s%@host_makefile_frag_path@%$host_makefile_frag_path%g

View File

@ -77,6 +77,9 @@ case "$target" in
*coff) *coff)
IS_COFF="-DCOFF" IS_COFF="-DCOFF"
;; ;;
*aout)
IS_AOUT="-DAOUT"
;;
esac esac
LIB_AC_PROG_CC LIB_AC_PROG_CC
@ -87,6 +90,7 @@ AC_SUBST(AR)
LD=${LD-ld} LD=${LD-ld}
AC_SUBST(LD) AC_SUBST(LD)
AC_SUBST(IS_COFF) AC_SUBST(IS_COFF)
AC_SUBST(IS_AOUT)
AC_SUBST(NEED_UNDERSCORE) AC_SUBST(NEED_UNDERSCORE)
AC_PROG_RANLIB AC_PROG_RANLIB

View File

@ -1,7 +1,7 @@
/* /*
* crt0 startup code for user programs running under Cygmon * crt0 startup code for user programs running under Cygmon
* *
* Copyright (c) 1998 Cygnus Support * Copyright (c) 1998, 2000 Cygnus Support
* *
* The authors hereby grant permission to use, copy, modify, distribute, * The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided * and license this software and its documentation for any purpose, provided
@ -14,11 +14,9 @@
* they apply. * they apply.
*/ */
#ifndef NEED_UNDERSCORE #define _S2(P,X) P ## X
#define SYM(X) X #define _S1(P,X) _S2(P,X)
#else #define SYM(X) _S1(__USER_LABEL_PREFIX__,X)
#define SYM(X) _ ## X
#endif
.data .data
.align 8 .align 8
@ -31,52 +29,51 @@ SYM(argc):
.text .text
.align 4 .align 4
.globl SYM(_start) .globl __start
SYM(_start): __start:
/* see if the stack is already setup. if not, then default /* see if the stack is already setup. if not, then default
* to using the value of %sp as set by the ROM monitor * to using the value of %sp as set by the ROM monitor
*/ */
lea __stack,%eax movl $__stack, %eax
cmpl $0,%eax testl %eax, %eax
jz 1f jz 1f
mov %eax, %esp movl %eax, %esp
1: 1:
mov $0, %ebp mov $0, %ebp
lea __bss_start, %eax movl $__bss_start, %edi
2: movl $__bss_end, %ecx
movb $0,(%eax) subl %edi, %ecx
inc %eax xorl %eax, %eax
cmp $__bss_end,%eax rep; stosb
jl 2b
2:
pushl $SYM(__sigtramp)
pushl $0
call SYM(__install_signal_handler)
add $4, %esp
pushl $SYM(__do_global_dtors) pushl $SYM(__sigtramp)
call SYM(atexit) pushl $0
add $4, %esp call SYM(__install_signal_handler)
popl %eax
call SYM(__do_global_ctors) pushl $SYM(__do_global_dtors)
call SYM(atexit)
popl %eax
pushl $SYM(argc) call SYM(__do_global_ctors)
call SYM(__get_program_arguments)
add $4, %esp
pushl %eax pushl $SYM(argc)
lea SYM(argc), %ebx call SYM(__get_program_arguments)
pushl (%ebx) popl %ecx
call SYM(main)
add $8, %esp movl SYM(argc), %ecx
pushl %eax
pushl %ecx
call SYM(main)
popl %ecx
popl %edx
/* call exit from the C library so atexit gets called, and the /* call exit from the C library so atexit gets called, and the
* C++ destructors get run. This calls our exit routine below * C++ destructors get run. This calls our exit routine below
* when it's done. * when it's done.
*/ */
pushl %eax pushl %eax
call SYM(exit) call SYM(exit)
3: 3:
jmp 3b jmp 3b

View File

@ -1,5 +1,5 @@
/*- /*-
* Copyright (c) 1991 The Regents of the University of California. * Copyright (c) 1991, 2000 The Regents of the University of California.
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -221,10 +221,10 @@ _mcount()
if (! already_setup) if (! already_setup)
{ {
extern etext(); extern _etext();
extern _ftext(); extern _ftext();
already_setup = 1; already_setup = 1;
monstartup(_ftext, etext); monstartup(_ftext, _etext);
atexit(_mcleanup); atexit(_mcleanup);
} }
/* /*

View File

@ -1,7 +1,7 @@
/* /*
* Standard x86 syscalls for user programs running under Cygmon * Standard x86 syscalls for user programs running under Cygmon
* *
* Copyright (c) 1998 Cygnus Support * Copyright (c) 1998, 2000 Cygnus Support
* *
* The authors hereby grant permission to use, copy, modify, distribute, * The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided * and license this software and its documentation for any purpose, provided
@ -22,8 +22,15 @@
extern int errno; extern int errno;
_syscall3(int,write,int,i,char *,c,int,len); _syscall3(int,write,int,i,char *,c,int,len);
#if 0
_syscall3(int,read,int,i,char *,c,int,len); _syscall3(int,read,int,i,char *,c,int,len);
#else
int
read (int des, char *dest, int len)
{
return -1;
}
#endif
_syscall2(int,kill,int,pid,int,signal); _syscall2(int,kill,int,pid,int,signal);
@ -43,7 +50,11 @@ _syscall1(int, close, int, fd);
int int
open (const char *filename, int mode, ...) open (const char *filename, int mode, ...)
{ {
#if 0
return __open (filename, mode, 0644); return __open (filename, mode, 0644);
#else
return -1;
#endif
} }
/* Ultra-super cheezy. */ /* Ultra-super cheezy. */
@ -108,7 +119,7 @@ clock ()
return t.tv_sec * 1000 + (t.tv_usec / 1000); return t.tv_sec * 1000 + (t.tv_usec / 1000);
} }
#ifndef COFF #if ! defined(COFF) && ! defined(AOUT)
typedef void (*ctp)(); typedef void (*ctp)();
void void
__do_global_ctors () __do_global_ctors ()

View File

@ -1,5 +1,5 @@
STARTUP(cygmon-crt0.o) STARTUP(cygmon-crt0.o)
ENTRY(_start) ENTRY(__start)
GROUP(-lcygmon -lc -lcygmon -lgcc) GROUP(-lcygmon -lc -lcygmon -lgcc)
SEARCH_DIR(.) SEARCH_DIR(.)
__DYNAMIC = 0; __DYNAMIC = 0;
@ -45,8 +45,8 @@ SECTIONS
*(.dtors) *(.dtors)
LONG(0) LONG(0)
__DTOR_END__ = .; __DTOR_END__ = .;
etext = .; PROVIDE(_etext = .);
_etext = .; PROVIDE(__etext = .);
} }
. = .; . = .;
.rdata : { .rdata : {
@ -55,6 +55,8 @@ SECTIONS
_fdata = ALIGN(16); _fdata = ALIGN(16);
.data : { .data : {
*(.data) *(.data)
*(.gcc_except_table)
*(.gcc_exc)
} }
. = ALIGN(8); . = ALIGN(8);
_gp = . + 0x8000; _gp = . + 0x8000;
@ -69,20 +71,20 @@ SECTIONS
*(.sdata) *(.sdata)
} }
. = ALIGN(4); . = ALIGN(4);
edata = .; PROVIDE(_edata = .);
_edata = .; PROVIDE(__edata = .);
fbss = .; fbss = .;
_fbss = .; _fbss = .;
.sbss : { .sbss : {
PROVIDE(__bss_start = .);
*(.sbss) *(.sbss)
*(.scommon) *(.scommon)
} }
.bss : { .bss : {
__bss_start = . ;
*(.bss) *(.bss)
*(COMMON) *(COMMON)
__bss_end = . ; PROVIDE(__bss_end = .);
} }
end = .; PROVIDE(_end = .);
_end = .; PROVIDE(__end = .);
} }