Remove dead code relating to CMK_{LINUX,MACOSX}_PTHREAD_HACK
authorPhil Miller <mille121@illinois.edu>
Tue, 19 Jan 2010 22:41:49 +0000 (16:41 -0600)
committerPhil Miller <mille121@illinois.edu>
Tue, 19 Jan 2010 22:41:49 +0000 (16:41 -0600)
Before glibc version 2.3, Charm required a customized version of
libpthread to properly support multithreaded builds (SMP and VMI). The
configure script used to check for this, and downloaded the modified
library from charm.cs.uiuc.edu when appropriate. That hasn't worked
(because of a change in charm's IP address) for at least 3 years (per
Filippo) and no one has complained. Thus, remove references to it.

- Cut out the configure code that made this check and tried all sorts
  of ways to download the library.
- Remove the one snippet of core code that depended on the modified
  library.
- Delete the macro definitions that (de)activated the hack from the
  various conv-mach headers.

Note that CMK_MACOSX_PTHREAD_HACK seems to have always been dead code,
as it only ever appeared (probably from copy-paste) in conv-mach, and
never in actual code.

14 files changed:
src/arch/mpi-crayxt/conv-mach-smp.h
src/arch/mpi-crayxt3/conv-mach-smp.h
src/arch/mpi-darwin-ppc/conv-mach-smp.h
src/arch/mpi-linux-mips64/conv-mach-smp.h
src/arch/mpi-linux-x86_64/conv-mach-smp.h
src/arch/mpi-linux/conv-mach-smp.h
src/arch/mpi-linux/conv-mach-vmi.h
src/arch/multicore-darwin-x86/conv-mach.h
src/arch/multicore-darwin-x86_64/conv-mach.h
src/arch/net-darwin-x86/conv-mach-smp.h
src/arch/net-linux/conv-mach-smp.h
src/conv-core/threads.c
src/scripts/configure
src/scripts/configure.in

index 03de8fac024fd5e37a430c33c61fecc694d1f028..c561708cd719b98e5d6cd4e7b9cb01b577979e65 100644 (file)
@@ -7,5 +7,3 @@
 #undef CMK_SHARED_VARS_POSIX_THREADS_SMP
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
-
-#define CMK_LINUX_PTHREAD_HACK                             0
index 13a1e6c98b57d955c0b909c32547aba691bba9ee..397c743dd43c99b60f0026020753b142b578e567 100644 (file)
@@ -8,5 +8,3 @@
 #undef CMK_SHARED_VARS_POSIX_THREADS_SMP
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
-
-#define CMK_LINUX_PTHREAD_HACK                             1
index 767aa5652dff89359618e2cf2a092b1a4a25d848..3074457f7068b3b368defb332a6fb81a2fb0a89a 100644 (file)
@@ -23,8 +23,6 @@
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
 
-#define CMK_LINUX_PTHREAD_HACK                             1
-
 #undef CMK_SYNCHRONIZE_ON_TCP_CLOSE
 #define CMK_SYNCHRONIZE_ON_TCP_CLOSE                       1
 
index 767aa5652dff89359618e2cf2a092b1a4a25d848..3074457f7068b3b368defb332a6fb81a2fb0a89a 100644 (file)
@@ -23,8 +23,6 @@
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
 
-#define CMK_LINUX_PTHREAD_HACK                             1
-
 #undef CMK_SYNCHRONIZE_ON_TCP_CLOSE
 #define CMK_SYNCHRONIZE_ON_TCP_CLOSE                       1
 
index e7cf1e84bae47831d008fdd09754517d7f8cee35..503baba2ab9f3158c95f8929359c7c2fcd462df6 100644 (file)
@@ -15,8 +15,6 @@
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
 
-#define CMK_LINUX_PTHREAD_HACK                             0
-
 #undef CMK_TIMER_USE_GETRUSAGE
 #undef CMK_TIMER_USE_SPECIAL
 #define CMK_TIMER_USE_GETRUSAGE                            1
index 767aa5652dff89359618e2cf2a092b1a4a25d848..3074457f7068b3b368defb332a6fb81a2fb0a89a 100644 (file)
@@ -23,8 +23,6 @@
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
 
-#define CMK_LINUX_PTHREAD_HACK                             1
-
 #undef CMK_SYNCHRONIZE_ON_TCP_CLOSE
 #define CMK_SYNCHRONIZE_ON_TCP_CLOSE                       1
 
index f88be75e5e2857a7b1141db5fbff721e1e8bd2e2..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1 +0,0 @@
-#define CMK_LINUX_PTHREAD_HACK                             1
index 88e217b2e555932d690794682334c1ca3fa85c6b..44dd23800c57ee22a40a0bf2ab7751ca54423ae9 100644 (file)
@@ -76,8 +76,6 @@
 */
 #define CMK_USE_KQUEUE                                     1
 
-#define CMK_MACOSX_PTHREAD_HACK                            1
-
 #if !CMK_GCC_X86_ASM || !CMK_GCC_X86_ASM_ATOMICINCREMENT
 #define CMK_PCQUEUE_LOCK                                   1
 #endif
index 43bd6fe473141f3272a43e6e9492356cbf8f31bd..8a98234dcc6584f0db2e0e708cc233f87d64f70e 100644 (file)
@@ -77,8 +77,6 @@
 */
 #define CMK_USE_KQUEUE                                     1
 
-#define CMK_MACOSX_PTHREAD_HACK                            1
-
 #if !CMK_GCC_X86_ASM || !CMK_GCC_X86_ASM_ATOMICINCREMENT
 #define CMK_PCQUEUE_LOCK                                   1
 #endif
index c02f35b821e757bbe333cd9f097786e026b2a12f..024c04001a7ec9cb00638efd3e39ab124224d534 100644 (file)
@@ -9,8 +9,6 @@
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
 
-#define CMK_MACOSX_PTHREAD_HACK                            1
-
 #if !CMK_GCC_X86_ASM || !CMK_GCC_X86_ASM_ATOMICINCREMENT
 #define CMK_PCQUEUE_LOCK                                   1
 #endif
index 13a1e6c98b57d955c0b909c32547aba691bba9ee..397c743dd43c99b60f0026020753b142b578e567 100644 (file)
@@ -8,5 +8,3 @@
 #undef CMK_SHARED_VARS_POSIX_THREADS_SMP
 #define CMK_SHARED_VARS_UNAVAILABLE                        0
 #define CMK_SHARED_VARS_POSIX_THREADS_SMP                  1
-
-#define CMK_LINUX_PTHREAD_HACK                             1
index 6325ee31b00b0bc3c6124a31d25bae09f91b84cf..23b023ff1445f70d7659228d2218d842eacbead8 100644 (file)
@@ -381,16 +381,6 @@ CthCpvStatic(int, _defaultStackSize);
 static void CthThreadBaseInit(CthThreadBase *th)
 {
   static int serialno = 1;
-#if CMK_LINUX_PTHREAD_HACK
-  /*HACK for LinuxThreads: to support our user-level threads
-    library, we use a slightly modified version of libpthread.a
-    with user-level threads support enabled via these flags.
-  */
-  extern int __pthread_find_self_with_pid;
-  extern int __pthread_nonstandard_stacks;
-  __pthread_find_self_with_pid=1;
-  __pthread_nonstandard_stacks=1;
-#endif
   th->token = (CthThreadToken *)malloc(sizeof(CthThreadToken));
   th->token->thread = S(th);
   th->scheduled = 0;
index ceb0f9dda17ca789a2f617dbb851b5b9eb064b50..9978dff4f886b9197c01b89d49d4b687b0e5d39d 100755 (executable)
@@ -616,10 +616,6 @@ host_alias
 target_alias
 base_version
 SYNC
-WGET
-LYNX
-TELNET
-UUDECODE
 LIBOBJS
 LTLIBOBJS'
 ac_subst_files=''
@@ -3392,232 +3388,21 @@ echo "${ECHO_T}\"$ext\"" >&6; }
   /bin/rm -f conftest.f90
 fi
 
-### go get libpthread.a from charm website ###
+### Check that Linux's C library is recent enough to provide working pthreads
 if test "$base_version" = "net-linux" || test "$base_version" = "mpi-linux"
 then
-case $version in
-*linux*smp*|*linux*vmi*)
-  if test ! -r ../lib/libpthread.a
-  then
-    # Extract the first word of "wget", so it can be a program name with args.
-set dummy wget; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_WGET+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$WGET"; then
-  ac_cv_prog_WGET="$WGET" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WGET="wget "
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-WGET=$ac_cv_prog_WGET
-if test -n "$WGET"; then
-  { echo "$as_me:$LINENO: result: $WGET" >&5
-echo "${ECHO_T}$WGET" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    # Extract the first word of "lynx", so it can be a program name with args.
-set dummy lynx; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_LYNX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$LYNX"; then
-  ac_cv_prog_LYNX="$LYNX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LYNX="lynx "
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-LYNX=$ac_cv_prog_LYNX
-if test -n "$LYNX"; then
-  { echo "$as_me:$LINENO: result: $LYNX" >&5
-echo "${ECHO_T}$LYNX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    # Extract the first word of "telnet", so it can be a program name with args.
-set dummy telnet; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_TELNET+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$TELNET"; then
-  ac_cv_prog_TELNET="$TELNET" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_TELNET="telnet "
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-TELNET=$ac_cv_prog_TELNET
-if test -n "$TELNET"; then
-  { echo "$as_me:$LINENO: result: $TELNET" >&5
-echo "${ECHO_T}$TELNET" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    # Extract the first word of "uudecode", so it can be a program name with args.
-set dummy uudecode; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_UUDECODE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$UUDECODE"; then
-  ac_cv_prog_UUDECODE="$UUDECODE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_UUDECODE="uudecode "
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-UUDECODE=$ac_cv_prog_UUDECODE
-if test -n "$UUDECODE"; then
-  { echo "$as_me:$LINENO: result: $UUDECODE" >&5
-echo "${ECHO_T}$UUDECODE" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-
-    CHARMIP='128.174.241.81'
-#    CHARMIP='charm.cs.uiuc.edu'
-#    VERSION=`nm /lib/libc.so.6 | grep "A GLIBC_" | tail -1 | sed -e "s/00000000 A GLIBC_//g"`
+case $version in *linux*smp*|*linux*vmi*)
     { echo "$as_me:$LINENO: checking glibc version" >&5
 echo $ECHO_N "checking glibc version... $ECHO_C" >&6; }
     get_glibc_version
     { echo "$as_me:$LINENO: result: $GLIBCVERSION" >&5
 echo "${ECHO_T}$GLIBCVERSION" >&6; }
-    if test 1 = `expr $GLIBCVERSION \> 2.2.92`
+    if test 0 = `expr $GLIBCVERSION \> 2.2.92`
     then
-      cat >> ./conv-mach-opt.h << EOT
-#undef CMK_LINUX_PTHREAD_HACK
-EOT
-    else
-      L="libpthread-$GLIBCVERSION.a"
-      LSO="libpthread-$GLIBCVERSION.so"
-      URL="http://${CHARMIP}/distrib/$L"
-      URLSO="http://${CHARMIP}/distrib/$LSO"
-      finish=0
-      printf "getting $L from $URL ..."
-      if test -n "$WGET"
-      then
-        printf "(wget) ..."
-        $WGET $URL > /dev/null 2>&1  && mv $L ../lib && finish=1
-        $WGET $URLSO > /dev/null 2>&1  && mv $LSO ../lib_so
-      fi
-      if test $finish = 0 && test -n "$LYNX"
-      then
-        printf "(lynx) ..."
-        $LYNX -source $URL > $L 2>/dev/null
-        if file -L $L | grep 'archive' > /dev/null
-        then
-          mv $L ../lib && finish=1
-        fi
-        $LYNX -source $URLSO > $L 2>/dev/null
-      fi
-      if test $finish = 0 && test -n "$TELNET" && test -n "$UUDECODE"
-      then
-        printf "(telnet) ..."
-        cat > get_libpthread <<EOT
-#! /bin/sh
-echo "GET /distrib/libpthread-$GLIBCVERSION.uu 1.0"
-echo
-# exit normally when the telnet session closes.
-trap "exit 0" 13
-while : ; do
- echo
- sleep 1
-done
-EOT
-        /bin/sh ./get_libpthread | ($TELNET $CHARMIP 80 > .uulib 2>/dev/null); $UUDECODE .uulib 2>/dev/null && rm -f .uulib && mv $L ../lib && finish=1
-      fi
-      ln -s $L ../lib/libpthread.a
-      ln -s $LSO ../lib_so/libpthread.so
-      if test $finish = 0 || test ! -r ../lib/libpthread.a
-      then
-        /bin/rm -f ../lib/libpthread.a
-        echo "failed"
-        echo "#####################################################################"
-        echo "wget, lynx or telnet must be installed to get libpthread.a from charm website."
-        echo "Alternately, your version of GLIBC ($GLIBCVERSION) is not yet supported--"
-        echo " contact ppl@cs.uiuc.edu for assistance."
-        echo "#####################################################################"
-        exit 1
-      else
-        echo "done"
-      fi
+       echo "Your version of GLIBC is ancient, and does not have sufficient "
+       echo "support for pthreads."
+       exit 1
     fi
-  fi
-  ;;
 esac
 fi
 
@@ -4286,15 +4071,11 @@ host_alias!$host_alias$ac_delim
 target_alias!$target_alias$ac_delim
 base_version!$base_version$ac_delim
 SYNC!$SYNC$ac_delim
-WGET!$WGET$ac_delim
-LYNX!$LYNX$ac_delim
-TELNET!$TELNET$ac_delim
-UUDECODE!$UUDECODE$ac_delim
 LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 45; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 41; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
index 518e3e5d25f41402db1c692a6ad4d849ac7dc42d..01703067e7f84ea40f7cb61e3ab7787456b4fb49 100644 (file)
@@ -1395,86 +1395,19 @@ EOF
   /bin/rm -f conftest.f90
 fi
 
-### go get libpthread.a from charm website ###
+### Check that Linux's C library is recent enough to provide working pthreads
 if test "$base_version" = "net-linux" || test "$base_version" = "mpi-linux"
 then
-case $version in
-*linux*smp*|*linux*vmi*)
-  if test ! -r ../lib/libpthread.a
-  then
-    AC_CHECK_PROG(WGET, wget, wget )
-    AC_CHECK_PROG(LYNX, lynx, lynx )
-    AC_CHECK_PROG(TELNET, telnet, telnet )
-    AC_CHECK_PROG(UUDECODE, uudecode, uudecode )
-    
-    CHARMIP='128.174.241.81'
-#    CHARMIP='charm.cs.uiuc.edu'
-#    VERSION=`nm /lib/libc.so.6 | grep "A GLIBC_" | tail -1 | sed -e "s/00000000 A GLIBC_//g"`
+case $version in *linux*smp*|*linux*vmi*)
     AC_MSG_CHECKING(glibc version)
     get_glibc_version
     AC_MSG_RESULT($GLIBCVERSION)
-    if test 1 = `expr $GLIBCVERSION \> 2.2.92` 
+    if test 0 = `expr $GLIBCVERSION \> 2.2.92`
     then
-      cat >> ./conv-mach-opt.h << EOT
-#undef CMK_LINUX_PTHREAD_HACK
-EOT
-    else
-      L="libpthread-$GLIBCVERSION.a"
-      LSO="libpthread-$GLIBCVERSION.so"
-      URL="http://${CHARMIP}/distrib/$L"
-      URLSO="http://${CHARMIP}/distrib/$LSO"
-      finish=0
-      printf "getting $L from $URL ..."
-      if test -n "$WGET"
-      then
-        printf "(wget) ..."
-        $WGET $URL > /dev/null 2>&1  && mv $L ../lib && finish=1
-        $WGET $URLSO > /dev/null 2>&1  && mv $LSO ../lib_so
-      fi
-      if test $finish = 0 && test -n "$LYNX"
-      then
-        printf "(lynx) ..."
-        $LYNX -source $URL > $L 2>/dev/null 
-        if file -L $L | grep 'archive' > /dev/null
-        then
-          mv $L ../lib && finish=1
-        fi
-        $LYNX -source $URLSO > $L 2>/dev/null 
-      fi
-      if test $finish = 0 && test -n "$TELNET" && test -n "$UUDECODE"
-      then
-        printf "(telnet) ..."
-        cat > get_libpthread <<EOT
-#! /bin/sh
-echo "GET /distrib/libpthread-$GLIBCVERSION.uu 1.0"
-echo
-# exit normally when the telnet session closes.
-trap "exit 0" 13
-while : ; do
- echo
- sleep 1
-done
-EOT
-        /bin/sh ./get_libpthread | ($TELNET $CHARMIP 80 > .uulib 2>/dev/null); $UUDECODE .uulib 2>/dev/null && rm -f .uulib && mv $L ../lib && finish=1
-      fi
-      ln -s $L ../lib/libpthread.a
-      ln -s $LSO ../lib_so/libpthread.so
-      if test $finish = 0 || test ! -r ../lib/libpthread.a
-      then
-        /bin/rm -f ../lib/libpthread.a
-        echo "failed"
-        echo "#####################################################################"
-        echo "wget, lynx or telnet must be installed to get libpthread.a from charm website."
-        echo "Alternately, your version of GLIBC ($GLIBCVERSION) is not yet supported--"
-        echo " contact ppl@cs.uiuc.edu for assistance."
-        echo "#####################################################################"
-        exit 1
-      else
-        echo "done"
-      fi
+       echo "Your version of GLIBC is ancient, and does not have sufficient "
+       echo "support for pthreads."
+       exit 1
     fi
-  fi
-  ;;
 esac
 fi