diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7dbc46aaef6..b41c6de54f3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2001-10-22  H.J. Lu <hjl@gnu.org>
+
+	* configure.in (WIN32LIBADD): Use -L../libiberty for
+	mips*-*-linux*.
+	* configure: Rebuild.
+
 2001-10-21  H.J. Lu <hjl@gnu.org>
 
 	* configure.in (WIN32LIBADD): Include -L../libiberty/pic -liberty
diff --git a/bfd/configure b/bfd/configure
index 22c0575d0af..2bda57b3e6e 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -5822,11 +5822,21 @@ case "${host}" in
 *-*-linux*)
   # We borrow WIN32LIBADD so that the shared libbfd won't depend on
   # libiberty.a.
-  PICFLAG=
-    eval `grep "^[ 	]*PICFLAG[ 	]*=" ../libiberty/Makefile | sed -e "s/[ 	]*//g"`
-    if test -n "$PICFLAG"; then
-    WIN32LIBADD="-L../libiberty/pic -liberty"
-  fi
+  case "${host}" in
+  mips*-*-linux*)
+    # Linux/MIPS uses PIC by default.
+    if test "$enable_shared" = "yes"; then
+      WIN32LIBADD="-L../libiberty -liberty"
+    fi
+    ;;
+  *)
+    PICFLAG=
+        eval `grep "^[ 	]*PICFLAG[ 	]*=" ../libiberty/Makefile | sed -e "s/[ 	]*//g"`
+        if test -n "$PICFLAG"; then
+      WIN32LIBADD="-L../libiberty/pic -liberty"
+    fi
+  ;;
+  esac
   ;;
 esac
 
@@ -6185,17 +6195,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6189: checking for $ac_hdr" >&5
+echo "configure:6199: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6194 "configure"
+#line 6204 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6224,12 +6234,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6228: checking for $ac_func" >&5
+echo "configure:6238: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6233 "configure"
+#line 6243 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6252,7 +6262,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6277,7 +6287,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6281: checking for working mmap" >&5
+echo "configure:6291: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6285,7 +6295,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6289 "configure"
+#line 6299 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6425,7 +6435,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:6429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -6450,12 +6460,12 @@ fi
 for ac_func in madvise mprotect
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6454: checking for $ac_func" >&5
+echo "configure:6464: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6459 "configure"
+#line 6469 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6478,7 +6488,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
diff --git a/bfd/configure.in b/bfd/configure.in
index 042cf18fb4a..b6602687912 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -413,13 +413,23 @@ case "${host}" in
 *-*-linux*)
   # We borrow WIN32LIBADD so that the shared libbfd won't depend on
   # libiberty.a.
-  PICFLAG=
-  changequote(,)dnl
-  eval `grep "^[ 	]*PICFLAG[ 	]*=" ../libiberty/Makefile | sed -e "s/[ 	]*//g"`
-  changequote([,])dnl
-  if test -n "$PICFLAG"; then
-    WIN32LIBADD="-L../libiberty/pic -liberty"
-  fi
+  case "${host}" in
+  mips*-*-linux*)
+    # Linux/MIPS uses PIC by default.
+    if test "$enable_shared" = "yes"; then
+      WIN32LIBADD="-L../libiberty -liberty"
+    fi
+    ;;
+  *)
+    PICFLAG=
+    changequote(,)dnl
+    eval `grep "^[ 	]*PICFLAG[ 	]*=" ../libiberty/Makefile | sed -e "s/[ 	]*//g"`
+    changequote([,])dnl
+    if test -n "$PICFLAG"; then
+      WIN32LIBADD="-L../libiberty/pic -liberty"
+    fi
+  ;;
+  esac
   ;;
 esac
 AC_SUBST(WIN32LDFLAGS)