diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 65af73ff27b9a97fcfac2a46b01e69ee2d94a03b..a706bb2d9491554aa69916786ae9483992a92df5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* collect2.c (dup2): Delete.
+	* configure.ac: Don't check for dup2.
+
+	* config.in, configure: Regenerate.
+
 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
 
 	* sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
diff --git a/gcc/collect2.c b/gcc/collect2.c
index a813e51e019bc99e548b9ec210b852733d9d2b6f..f4cc46aad504958e98365574f1d9b913ee0ff24a 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -271,26 +271,6 @@ static char *resolve_lib_name (const char *);
 #endif
 static char *extract_string (const char **);
 
-#ifndef HAVE_DUP2
-static int
-dup2 (int oldfd, int newfd)
-{
-  int fdtmp[256];
-  int fdx = 0;
-  int fd;
-
-  if (oldfd == newfd)
-    return oldfd;
-  close (newfd);
-  while ((fd = dup (oldfd)) != newfd && fd >= 0) /* good enough for low fd's */
-    fdtmp[fdx++] = fd;
-  while (fdx > 0)
-    close (fdtmp[--fdx]);
-
-  return fd;
-}
-#endif /* ! HAVE_DUP2 */
-
 /* Delete tempfiles and exit function.  */
 
 void
diff --git a/gcc/config.in b/gcc/config.in
index f533c1c205eba6a9e2facef52d18c8e5bdcee786..fa39a356efc60aade46ef490bcf8d169bab031f8 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -611,12 +611,6 @@
 #endif
 
 
-/* Define to 1 if you have the `dup2' function. */
-#ifndef USED_FOR_TARGET
-#undef HAVE_DUP2
-#endif
-
-
 /* Define to 1 if you have the <fcntl.h> header file. */
 #ifndef USED_FOR_TARGET
 #undef HAVE_FCNTL_H
diff --git a/gcc/configure b/gcc/configure
index dd25a7de6edf031086dac1ee44417792fa10c3c8..d9697b0f139a677029c06801f491619b6d2c308b 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -9116,8 +9116,7 @@ fi
 
 
 
-
-for ac_func in times clock dup2 kill getrlimit setrlimit atoll atoq \
+for ac_func in times clock kill getrlimit setrlimit atoll atoq \
 	sysconf strsignal getrusage nl_langinfo scandir alphasort \
 	gettimeofday mbstowcs wcswidth mmap mincore setlocale \
 	clearerr_unlocked feof_unlocked   ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked   fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked   fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked   putchar_unlocked putc_unlocked
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 3cda92ccca68e8cbeee1d27c13322b9aaeb92e27..16268b6e8df825e9bfa74b021206fa6489ddd0bc 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -999,7 +999,7 @@ define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
   fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
   fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
   putchar_unlocked putc_unlocked)
-AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
+AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
 	sysconf strsignal getrusage nl_langinfo scandir alphasort \
 	gettimeofday mbstowcs wcswidth mmap mincore setlocale \
 	gcc_UNLOCKED_FUNCS)