diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | FAQ | 54 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure | 62 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure.in | 11 | ||||
-rwxr-xr-x | sysdeps/unix/sysv/linux/mips/configure | 59 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/configure.in | 10 |
6 files changed, 101 insertions, 100 deletions
diff --git a/ChangeLog b/ChangeLog index deb157bcd4..70af55c325 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2001-05-11 Andreas Jaeger <aj@suse.de> + * sysdeps/unix/sysv/linux/configure.in: Move binutils check to... + * sysdeps/unix/sysv/linux/mips/configure.in: ...here. New file. + +2001-05-11 Andreas Jaeger <aj@suse.de> + * sysdeps/unix/sysv/linux/configure.in: Check binutils version on MIPS. diff --git a/FAQ b/FAQ index 1a21ffdaf4..4198a87966 100644 --- a/FAQ +++ b/FAQ @@ -560,11 +560,11 @@ newer. 1.20. Which tools should I use for MIPS? -{AJ} You should use the current development version of gcc 2.97 from CVS. -gcc 2.95.x does not work correctly on mips-linux. +{AJ} You should use the current development version of gcc 3.0 or newer from +CVS. gcc 2.95.x does not work correctly on mips-linux. -You need also recent binutils, anything before and including 2.10 will not -work correctly. Either try the Linux binutils 2.10.0.33 from HJ Lu or the +You need also recent binutils, anything before and including 2.11 will not +work correctly. Either try the Linux binutils 2.11.90.0.5 from HJ Lu or the current development version of binutils from CVS. Please note that `make check' might fail for a number of the math tests @@ -1862,29 +1862,29 @@ this should be necessary. supports synchronous context switches only. There are several reasons for this: - o UNIX provides no other (portable) way of effecting a synchronous - context switch (also known as co-routine switch). Some versions - support this via setjmp()/longjmp() but this does not work - universally. - - o As defined by the UNIX '98 standard, the only way setcontext() - could trigger an asychronous context switch is if this function - were invoked on the ucontext_t pointer passed as the third argument - to a signal handler. But according to draft 5, XPG6, XBD 2.4.3, - setcontext() is not among the set of routines that may be called - from a signal handler. - - o If setcontext() were to be used for asynchronous context switches, - all kinds of synchronization and re-entrancy issues could arise and - these problems have already been solved by real multi-threading - libraries (e.g., POSIX threads or Linux threads). - - o Synchronous context switching can be implemented entirely in - user-level and less state needs to be saved/restored than for an - asynchronous context switch. It is therefore useful to distinguish - between the two types of context switches. Indeed, some - application vendors are known to use setcontext() to implement - co-routines on top of normal (heavier-weight) pre-emptable threads. +- UNIX provides no other (portable) way of effecting a synchronous + context switch (also known as co-routine switch). Some versions + support this via setjmp()/longjmp() but this does not work + universally. + +- As defined by the UNIX '98 standard, the only way setcontext() + could trigger an asychronous context switch is if this function + were invoked on the ucontext_t pointer passed as the third argument + to a signal handler. But according to draft 5, XPG6, XBD 2.4.3, + setcontext() is not among the set of routines that may be called + from a signal handler. + +- If setcontext() were to be used for asynchronous context switches, + all kinds of synchronization and re-entrancy issues could arise and + these problems have already been solved by real multi-threading + libraries (e.g., POSIX threads or Linux threads). + +- Synchronous context switching can be implemented entirely in + user-level and less state needs to be saved/restored than for an + asynchronous context switch. It is therefore useful to distinguish + between the two types of context switches. Indeed, some + application vendors are known to use setcontext() to implement + co-routines on top of normal (heavier-weight) pre-emptable threads. It should be noted that if someone was dead-bent on using setcontext() on the third arg of a signal handler, then IA-64 Linux could support diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index 04a2d1a37b..f852718906 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -224,65 +224,3 @@ ${ac_prefix}/include directory out of the way." 1>&2; exit 1; } echo "$ac_t""ok" 1>&6 fi fi - -case "$machine" in - mips*) - for ac_prog in $AS -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:236: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AS="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AS="$ac_cv_prog_AS" -if test -n "$AS"; then - echo "$ac_t""$AS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$AS" && break -done - -if test -z "$AS"; then - ac_verc_fail=yes -else - # Found it, now check the version. - echo $ac_n "checking version of $AS""... $ac_c" 1>&6 -echo "configure:270: checking version of $AS" >&5 - ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 2.11.90.0.[5-9]* | 2.11.90.[1-9]* | 2.11.9[1-9]* | 2.11.[1-9]* | 2.1[2-9]*| 2.[2-9]*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - - esac - echo "$ac_t""$ac_prog_version" 1>&6 -fi -if test $ac_verc_fail = yes; then - echo "configure: warning: *** Your binutils versions are too old. -*** We strongly advise to update binutils. For details check -*** the FAQ and INSTALL documents." 1>&2 -fi - - ;; -esac -s%@AS@%$AS%g diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in index 7337b9d603..afe798218a 100644 --- a/sysdeps/unix/sysv/linux/configure.in +++ b/sysdeps/unix/sysv/linux/configure.in @@ -191,14 +191,3 @@ ${ac_prefix}/include directory out of the way.]) AC_MSG_RESULT(ok) fi fi - -case "$machine" in - mips*) - AC_CHECK_PROG_VER(AS, $AS, --version, - [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)], - [2.11.90.0.[5-9]* | 2.11.90.[1-9]* | 2.11.9[1-9]* | 2.11.[1-9]* | 2.1[2-9]*| 2.[2-9]*], - AC_MSG_WARN([*** Your binutils versions are too old. -*** We strongly advise to update binutils. For details check -*** the FAQ and INSTALL documents.])) - ;; -esac diff --git a/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure new file mode 100755 index 0000000000..38a9374875 --- /dev/null +++ b/sysdeps/unix/sysv/linux/mips/configure @@ -0,0 +1,59 @@ + # Local configure fragment for sysdeps/unix/sysv/linux/mips. + +for ac_prog in $AS +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:9: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AS" && break +done + +if test -z "$AS"; then + ac_verc_fail=yes +else + # Found it, now check the version. + echo $ac_n "checking version of $AS""... $ac_c" 1>&6 +echo "configure:43: checking version of $AS" >&5 + ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 2.11.90.0.[5-9]* | 2.11.90.[1-9]* | 2.11.9[1-9]* | 2.11.[1-9]* | 2.1[2-9]*| 2.[2-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + + esac + echo "$ac_t""$ac_prog_version" 1>&6 +fi +if test $ac_verc_fail = yes; then + echo "configure: warning: *** Your binutils versions are too old. +*** We strongly advise to update binutils. For details check +*** the FAQ and INSTALL documents." 1>&2 +fi + +s%@AS@%$AS%g diff --git a/sysdeps/unix/sysv/linux/mips/configure.in b/sysdeps/unix/sysv/linux/mips/configure.in new file mode 100644 index 0000000000..e5c301db48 --- /dev/null +++ b/sysdeps/unix/sysv/linux/mips/configure.in @@ -0,0 +1,10 @@ +sinclude(./aclocal.m4)dnl Autoconf lossage +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/mips. + +AC_CHECK_PROG_VER(AS, $AS, --version, + [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)], + [2.11.90.0.[5-9]* | 2.11.90.[1-9]* | 2.11.9[1-9]* | 2.11.[1-9]* | 2.1[2-9]*| 2.[2-9]*], +AC_MSG_WARN([*** Your binutils versions are too old. +*** We strongly advise to update binutils. For details check +*** the FAQ and INSTALL documents.])) |