beos: Drop platform support and cleanup

Message ID 20210904003015.1195801-1-kallisti5@unixzen.com
State New
Headers show
Series
  • beos: Drop platform support and cleanup
Related show

Commit Message

Alexander von Gluck IV Sept. 4, 2021, 12:30 a.m.
There are few to no use-cases for BeOS support
at this point.  Haiku has it's own support paths.
---
 bfd/config.bfd                             |  10 +-
 bfd/configure                              |  34 +-
 bfd/configure.ac                           |   3 +-
 binutils/configure                         |  29 +-
 binutils/testsuite/binutils-all/nm.exp     |   1 -
 binutils/testsuite/lib/binutils-common.exp |   9 +-
 config.guess                               |   9 -
 config.rpath                               |   9 -
 config.sub                                 |  10 +-
 configure                                  |   9 -
 configure.ac                               |   9 -
 gas/configure                              |  31 +-
 gas/configure.tgt                          |   3 -
 gas/testsuite/gas/i386/i386.exp            |   1 -
 gas/testsuite/gas/macros/macros.exp        |   2 +-
 gnulib/configure                           |  14 +-
 gnulib/import/fcntl.in.h                   |   2 +-
 gnulib/import/float.in.h                   |   2 +-
 gnulib/import/localcharset.c               |   4 +-
 gnulib/import/m4/float_h.m4                |   2 +-
 gnulib/import/m4/frexpl.m4                 |   4 +-
 gnulib/import/m4/locale-fr.m4              |   4 +-
 gnulib/import/m4/locale-ja.m4              |   2 +-
 gnulib/import/m4/locale-zh.m4              |   2 +-
 gnulib/import/stdbool.in.h                 |  83 +--
 gnulib/import/sys_select.in.h              |   2 +-
 gprof/configure                            |  29 +-
 include/binary-io.h                        |   5 -
 include/longlong.h                         |   2 +-
 intl/loadmsgcat.c                          |   5 -
 ld/Makefile.am                             |   2 -
 ld/Makefile.in                             |   3 -
 ld/configure                               |  48 +-
 ld/configure.tgt                           |   8 -
 ld/emulparams/i386beos.sh                  |   5 -
 ld/emultempl/beos.em                       | 800 ---------------------
 ld/scripttempl/i386beos.sc                 | 181 -----
 ld/testsuite/ld-bootstrap/bootstrap.exp    |   3 +-
 libctf/configure                           |  29 +-
 libtool.m4                                 |  44 +-
 ltmain.sh                                  |   4 +-
 opcodes/configure                          |  31 +-
 readline/readline/configure                |   3 -
 readline/readline/configure.ac             |   3 -
 readline/readline/input.c                  |   5 -
 readline/readline/support/config.guess     |   9 -
 readline/readline/support/config.rpath     |  10 -
 readline/readline/support/config.sub       |  10 +-
 sim/configure                              |  31 +-
 zlib/README                                |   2 +-
 zlib/configure                             |  29 +-
 zlib/zconf.h                               |  12 -
 zlib/zconf.h.cmakein                       |  12 -
 zlib/zconf.h.in                            |  12 -
 zlib/zutil.h                               |   6 +-
 55 files changed, 84 insertions(+), 1549 deletions(-)
 delete mode 100644 ld/emulparams/i386beos.sh
 delete mode 100644 ld/emultempl/beos.em
 delete mode 100644 ld/scripttempl/i386beos.sc

-- 
2.33.0

Comments

Alexander von Gluck IV Sept. 4, 2021, 12:41 a.m. | #1
September 3, 2021 7:30 PM, "Alexander von Gluck IV" <kallisti5@unixzen.com> wrote:

> There are few to no use-cases for BeOS support

This patchset is pretty optional, but I figured I should give
back a little cleanup since y'all accepted the Haiku work :-)

As a refresher.  BeOS 5 shipped in March 2000 with gcc 2.95.
No later toolchains exist, so the chances that this code has
even been successfully compiled under BeOS in 10+ years is low.

I tested Haiku's build with this BeOS code removed across
several architectures and saw no issues.

I asked around in the community and found one person still
using BeOS, however they still use the compiler which shipped
with BeOS 5.

tldr; RIP BeOS, viva Haiku

 -- Alex

Patch

diff --git a/bfd/config.bfd b/bfd/config.bfd
index 7f7c12d4b2d..abc735cafe5 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -735,14 +735,6 @@  case "${targ}" in
     targ_defvec=i386_elf32_vec
     targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec"
     ;;
-  i[3-7]86-*-beospe*)
-    targ_defvec=i386_pe_vec
-    targ_selvecs="i386_pe_vec i386_pei_vec"
-    ;;
-  i[3-7]86-*-beoself* | i[3-7]86-*-beos*)
-    targ_defvec=i386_elf32_vec
-    targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec"
-    ;;
   i[3-7]86-*-haiku*)
     targ_defvec=i386_elf32_vec
     ;;
@@ -1098,7 +1090,7 @@  case "${targ}" in
     ;;
 #endif
 
-  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
+  powerpc-*-aix* | rs6000-*-*)
     targ_defvec=rs6000_xcoff_vec
     targ64_selvecs=rs6000_xcoff64_vec
     case "${targ}" in
diff --git a/bfd/configure b/bfd/configure
index cae69d413d4..d86c9b645da 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -5924,10 +5924,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -8125,7 +8121,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -8777,17 +8773,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -10100,12 +10085,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -10766,12 +10745,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
@@ -11769,7 +11742,7 @@  $as_echo "$as_me: WARNING: Enabling plugins for AOUT is experimental" >&2;}
 	    fi
 	fi ;;
     hppa*-*-hpux* | *-*-*vms* | \
-    powerpc*-*-aix* | powerpc-*-beos* | powerpc-*-macos* | rs6000-*-*)
+    powerpc*-*-aix* | powerpc-*-macos* | rs6000-*-*)
 	if test "$plugins" = "yes"; then
 	    if test "${enable_plugins+set}" = set; then
 		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling plugins may result in ar creating non-standard archives for ${target}" >&5
@@ -12982,7 +12955,7 @@  $as_echo "$bfd_cv_ld_as_needed" >&6; }
 
 LIBM=
 case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+*-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
@@ -13800,7 +13773,6 @@  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   powerpc64-*-aix*)	COREFILE=rs6000-core.lo ;;
   powerpc-*-aix4*)	COREFILE=rs6000-core.lo ;;
   powerpc-*-aix*)	COREFILE=rs6000-core.lo ;;
-  powerpc-*-beos*)	;;
   powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
 		        COREFILE='' ;;
   powerpc-*-netbsd*)	COREFILE=netbsd-core.lo ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index 9ff303ab6e1..cc05179efbb 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -56,7 +56,7 @@  changequote([,])dnl
 	    fi
 	fi ;;
     hppa*-*-hpux* | *-*-*vms* | \
-    powerpc*-*-aix* | powerpc-*-beos* | powerpc-*-macos* | rs6000-*-*)
+    powerpc*-*-aix* | powerpc-*-macos* | rs6000-*-*)
 	if test "$plugins" = "yes"; then
 	    if test "${enable_plugins+set}" = set; then
 		AC_MSG_WARN(Enabling plugins may result in ar creating non-standard archives for ${target})
@@ -973,7 +973,6 @@  changequote([,])dnl
   powerpc64-*-aix*)	COREFILE=rs6000-core.lo ;;
   powerpc-*-aix4*)	COREFILE=rs6000-core.lo ;;
   powerpc-*-aix*)	COREFILE=rs6000-core.lo ;;
-  powerpc-*-beos*)	;;
   powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
 		        COREFILE='' ;;
   powerpc-*-netbsd*)	COREFILE=netbsd-core.lo ;;
diff --git a/binutils/configure b/binutils/configure
index 29201153aeb..db1ceff9d00 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -5780,10 +5780,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -8012,7 +8008,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -8664,17 +8660,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -9987,12 +9972,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -10653,12 +10632,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
diff --git a/binutils/testsuite/binutils-all/nm.exp b/binutils/testsuite/binutils-all/nm.exp
index b5784eacddc..0c45354ca6d 100644
--- a/binutils/testsuite/binutils-all/nm.exp
+++ b/binutils/testsuite/binutils-all/nm.exp
@@ -151,7 +151,6 @@  if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
 # all the ELF variants, but adding the patterns here to that proc then
 # introduces a whole slew of new regressions in the GAS and LD testsuites.
 if {   [is_elf_format]
-    || [istarget *-*-beos]
     || [istarget *-*-dragonfly*]
     || [istarget *-*-*elf]
     || [istarget *-*-freebsd*]
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index 759f7c798c0..cad790035f4 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -54,15 +54,10 @@  proc is_elf_format {} {
 	 && ![istarget *-*-wasm32*]
 	 && ![istarget avr-*-*]
 	 && ![istarget hppa*64*-*-hpux*]
-	 && ![istarget i?86-*-beos*]
 	 && ![istarget ia64-*-hpux*] } {
 	return 0
     }
 
-    if { [istarget i?86-*-beospe*] } {
-	return 0
-    }
-
     if { [istarget *-*-linux*ecoff*]
 	 || [istarget *-*-rtemscoff*] } {
 	return 0
@@ -102,8 +97,7 @@  proc is_pecoff_format args {
     } else {
 	set m_os *-*
     }
-    if { [istarget $m_os-beospe*]
-	 || [istarget $m_os-cegcc*]
+    if { [istarget $m_os-cegcc*]
 	 || [istarget $m_os-cygwin*]
 	 || [istarget $m_os-interix*]
 	 || [istarget $m_os-mingw*]
@@ -130,7 +124,6 @@  proc is_som_format {} {
 proc is_xcoff_format {} {
     if { [istarget rs6000-*-*]
 	 || [istarget powerpc*-*-aix*]
-	 || [istarget powerpc*-*-beos*]
 	 || [istarget powerpc*-*-macos*] } {
 	return 1;
     }
diff --git a/config.guess b/config.guess
index cc7a8107011..45fca87e624 100755
--- a/config.guess
+++ b/config.guess
@@ -1317,15 +1317,6 @@  EOF
 		echo mips-unknown-sysv"$UNAME_RELEASE"
 	fi
 	exit ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit ;;
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	echo i586-pc-haiku
 	exit ;;
diff --git a/config.rpath b/config.rpath
index 4dea75957c2..105b1e51148 100755
--- a/config.rpath
+++ b/config.rpath
@@ -142,13 +142,6 @@  if test "$with_gnu_ld" = yes; then
       # them.
       ld_shlibs=no
       ;;
-    beos*)
-      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
     cygwin* | mingw* | pw32*)
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
@@ -433,8 +426,6 @@  case "$host_os" in
     ;;
   amigaos*)
     ;;
-  beos*)
-    ;;
   bsdi4*)
     ;;
   cygwin* | mingw* | pw32*)
diff --git a/config.sub b/config.sub
index 7384e9198b4..f6901e88bac 100755
--- a/config.sub
+++ b/config.sub
@@ -1585,9 +1585,6 @@  case $cpu-$vendor in
 	pru-*)
 		os=elf
 		;;
-	*-be)
-		os=beos
-		;;
 	*-ibm)
 		os=aix
 		;;
@@ -1719,8 +1716,8 @@  case $os in
 	     | chorusrdb* | cegcc* | glidix* | serenity* \
 	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
 	     | midipix* | mingw32* | mingw64* | mint* \
-	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-	     | interix* | uwin* | mks* | rhapsody* | darwin* \
+	     | uxpv* | mpeix* | udk* | moxiebox* | interix* \
+	     | uwin* | mks* | rhapsody* | darwin* \
 	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
 	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
 	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
@@ -1789,9 +1786,6 @@  case $vendor in
 			*-cnk* | *-aix*)
 				vendor=ibm
 				;;
-			*-beos*)
-				vendor=be
-				;;
 			*-hpux*)
 				vendor=hp
 				;;
diff --git a/configure b/configure
index fcec657de7a..2e2a37ebc09 100755
--- a/configure
+++ b/configure
@@ -3594,9 +3594,6 @@  case "${target}" in
   *-*-aix*)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
-  *-*-beos*)
-    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
-    ;;
   *-*-chorusos)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
@@ -3815,9 +3812,6 @@  case "${target}" in
   i[3456789]86-*-sysv4*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
-  i[3456789]86-*-beos*)
-    noconfigdirs="$noconfigdirs gdb"
-    ;;
   i[3456789]86-*-rdos*)
     noconfigdirs="$noconfigdirs gdb"
     ;;
@@ -3848,9 +3842,6 @@  case "${target}" in
   powerpcle-*-solaris*)
     noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
     ;;
-  powerpc-*-beos*)
-    noconfigdirs="$noconfigdirs gdb"
-    ;;
   rs6000-*-lynxos*)
     noconfigdirs="$noconfigdirs gprof"
     ;;
diff --git a/configure.ac b/configure.ac
index 1b1aa80f7c7..f4dca7245e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -877,9 +877,6 @@  case "${target}" in
   *-*-aix*)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
-  *-*-beos*)
-    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
-    ;;
   *-*-chorusos)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
@@ -1098,9 +1095,6 @@  case "${target}" in
   i[[3456789]]86-*-sysv4*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
-  i[[3456789]]86-*-beos*)
-    noconfigdirs="$noconfigdirs gdb"
-    ;;
   i[[3456789]]86-*-rdos*)
     noconfigdirs="$noconfigdirs gdb"
     ;;
@@ -1131,9 +1125,6 @@  case "${target}" in
   powerpcle-*-solaris*)
     noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
     ;;
-  powerpc-*-beos*)
-    noconfigdirs="$noconfigdirs gdb"
-    ;;
   rs6000-*-lynxos*)
     noconfigdirs="$noconfigdirs gprof"
     ;;
diff --git a/gas/configure b/gas/configure
index a63c6ff0e39..c18710c425e 100755
--- a/gas/configure
+++ b/gas/configure
@@ -5505,10 +5505,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -7737,7 +7733,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -8389,17 +8385,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -9712,12 +9697,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -10378,12 +10357,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
@@ -13530,7 +13503,7 @@  case "${need_libm}" in
 yes)
   LIBM=
 case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+*-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 550fa4098f8..4ca59dbee94 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -219,8 +219,6 @@  case ${generic_target} in
   h8300-*-elf)				fmt=elf ;;
   h8300-*-linux*)			fmt=elf em=linux ;;
 
-  i386-*-beospe*)			fmt=coff em=pe ;;
-  i386-*-beos*)				fmt=elf ;;
   i386-*-elfiamcu)			fmt=elf arch=iamcu ;;
   i386-*-elf*)				fmt=elf ;;
   i386-*-fuchsia*)			fmt=elf ;;
@@ -353,7 +351,6 @@  case ${generic_target} in
   ppc-*-aix5.[01])			fmt=coff em=aix5 ;;
   ppc-*-aix[5-9].*)			fmt=coff em=aix5 ;;
   ppc-*-aix*)				fmt=coff em=aix ;;
-  ppc-*-beos*)				fmt=coff ;;
   ppc-*-*n*bsd* | ppc-*-elf*)		fmt=elf ;;
   ppc-*-eabi* | ppc-*-sysv4*)		fmt=elf ;;
   ppc-*-haiku*)				fmt=elf em=haiku ;;
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 80959726d0e..b18c2a12ee9 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -1254,7 +1254,6 @@  if [gas_64_check] then {
     run_dump_test "x86-64-amx-bad"
 
     if { ![istarget "*-*-aix*"]
-      && ![istarget "*-*-beos*"]
       && ![istarget "*-*-*bsd*"]
       && ![istarget "*-*-lynx*"]
       && ![istarget "*-*-moss*"]
diff --git a/gas/testsuite/gas/macros/macros.exp b/gas/testsuite/gas/macros/macros.exp
index 5b4068d5417..ca481eb9e76 100644
--- a/gas/testsuite/gas/macros/macros.exp
+++ b/gas/testsuite/gas/macros/macros.exp
@@ -56,7 +56,7 @@  if { ![istarget hppa*-*-*] || [istarget *-*-linux*] } {
     setup_xfail "avr-*" "cris-*" "crisv32-*" "msp430-*"
 
     # These fail due to NO_STRING_ESCAPES
-    setup_xfail "powerpc*-*-aix*" "powerpc*-*-beos*" "powerpc*-*-macos*"
+    setup_xfail "powerpc*-*-aix*" "powerpc*-*-macos*"
     setup_xfail "rs6000-*-*"
     setup_xfail "z80-*-*"
 
diff --git a/gnulib/configure b/gnulib/configure
index 73a38082960..b97c0de6e7a 100644
--- a/gnulib/configure
+++ b/gnulib/configure
@@ -7557,7 +7557,7 @@  int main () {
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   return 1;
 #else
   /* Check whether the given locale name is recognized by the system.  */
@@ -10309,7 +10309,7 @@  else
       if test "$cross_compiling" = yes; then :
 
          case "$host_os" in
-           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
+           aix | aix[3-6]* | darwin* | irix* | mingw* | pw*)
               gl_cv_func_frexpl_works="guessing no";;
            *) gl_cv_func_frexpl_works="guessing yes";;
          esac
@@ -10321,7 +10321,7 @@  else
 #include <float.h>
 #include <math.h>
 /* Override the values of <float.h>, like done in float.in.h.  */
-#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+#if defined __i386__ && defined __OpenBSD__
 # undef LDBL_MIN_EXP
 # define LDBL_MIN_EXP    (-16381)
 #endif
@@ -15489,7 +15489,7 @@  int main ()
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   return 1;
 #else
   /* Check whether the given locale name is recognized by the system.  */
@@ -15635,7 +15635,7 @@  int main () {
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
+#if !defined __HAIKU__
   /* Check whether the given locale name is recognized by the system.  */
 # if defined _WIN32 && !defined __CYGWIN__
   /* On native Windows, setlocale(category, "") looks at the system settings,
@@ -15766,7 +15766,7 @@  int main ()
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   return 1;
 #else
   /* Check whether the given locale name is recognized by the system.  */
@@ -20370,7 +20370,7 @@  $as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
   FLOAT_H=
   REPLACE_FLOAT_LDBL=0
   case "$host_os" in
-    aix* | beos* | openbsd* | mirbsd* | irix*)
+    aix* | openbsd* | mirbsd* | irix*)
       FLOAT_H=float.h
       ;;
     freebsd* | dragonfly*)
diff --git a/gnulib/import/fcntl.in.h b/gnulib/import/fcntl.in.h
index 0b14467c54d..aa6f376466f 100644
--- a/gnulib/import/fcntl.in.h
+++ b/gnulib/import/fcntl.in.h
@@ -388,7 +388,7 @@  _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_TEXT _O_TEXT
 #endif
 
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect.  */
 # undef O_BINARY
 # undef O_TEXT
diff --git a/gnulib/import/float.in.h b/gnulib/import/float.in.h
index d2ac0cd26f7..b25edf26178 100644
--- a/gnulib/import/float.in.h
+++ b/gnulib/import/float.in.h
@@ -30,7 +30,7 @@ 
 
 /* 'long double' properties.  */
 
-#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+#if defined __i386__ && defined __OpenBSD__
 /* Number of mantissa units, in base FLT_RADIX.  */
 # undef LDBL_MANT_DIG
 # define LDBL_MANT_DIG   64
diff --git a/gnulib/import/localcharset.c b/gnulib/import/localcharset.c
index cba0e2b2078..d757b8f122a 100644
--- a/gnulib/import/localcharset.c
+++ b/gnulib/import/localcharset.c
@@ -1061,7 +1061,7 @@  locale_charset (void)
         /* Did not find it in the table.  */
         /* On Mac OS X, all modern locales use the UTF-8 encoding.
            BeOS and Haiku have a single locale, and it has UTF-8 encoding.  */
-# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__
+# if (defined __APPLE__ && defined __MACH__) || defined __HAIKU__
         codeset = "UTF-8";
 # else
         /* Don't return an empty string.  GNU libc and GNU libiconv interpret
@@ -1134,7 +1134,7 @@  locale_charset (void)
         /* Did not find it in the table.  */
         /* On Mac OS X, all modern locales use the UTF-8 encoding.
            BeOS and Haiku have a single locale, and it has UTF-8 encoding.  */
-# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__
+# if (defined __APPLE__ && defined __MACH__) || defined __HAIKU__
         codeset = "UTF-8";
 # else
         /* The canonical name cannot be determined.  */
diff --git a/gnulib/import/m4/float_h.m4 b/gnulib/import/m4/float_h.m4
index ba38a28901b..be1e237682c 100644
--- a/gnulib/import/m4/float_h.m4
+++ b/gnulib/import/m4/float_h.m4
@@ -11,7 +11,7 @@  AC_DEFUN([gl_FLOAT_H],
   FLOAT_H=
   REPLACE_FLOAT_LDBL=0
   case "$host_os" in
-    aix* | beos* | openbsd* | mirbsd* | irix*)
+    aix* | openbsd* | mirbsd* | irix*)
       FLOAT_H=float.h
       ;;
     freebsd* | dragonfly*)
diff --git a/gnulib/import/m4/frexpl.m4 b/gnulib/import/m4/frexpl.m4
index 32f1eac99c3..cfda8d456ec 100644
--- a/gnulib/import/m4/frexpl.m4
+++ b/gnulib/import/m4/frexpl.m4
@@ -127,7 +127,7 @@  AC_DEFUN([gl_FUNC_FREXPL_WORKS],
 #include <float.h>
 #include <math.h>
 /* Override the values of <float.h>, like done in float.in.h.  */
-#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+#if defined __i386__ && defined __OpenBSD__
 # undef LDBL_MIN_EXP
 # define LDBL_MIN_EXP    (-16381)
 #endif
@@ -223,7 +223,7 @@  int main()
         [
 changequote(,)dnl
          case "$host_os" in
-           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
+           aix | aix[3-6]* | darwin* | irix* | mingw* | pw*)
               gl_cv_func_frexpl_works="guessing no";;
            *) gl_cv_func_frexpl_works="guessing yes";;
          esac
diff --git a/gnulib/import/m4/locale-fr.m4 b/gnulib/import/m4/locale-fr.m4
index b61df7ec90a..2972e464950 100644
--- a/gnulib/import/m4/locale-fr.m4
+++ b/gnulib/import/m4/locale-fr.m4
@@ -26,7 +26,7 @@  int main () {
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   return 1;
 #else
   /* Check whether the given locale name is recognized by the system.  */
@@ -155,7 +155,7 @@  int main () {
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
+#if !defined __HAIKU__
   /* Check whether the given locale name is recognized by the system.  */
 # if defined _WIN32 && !defined __CYGWIN__
   /* On native Windows, setlocale(category, "") looks at the system settings,
diff --git a/gnulib/import/m4/locale-ja.m4 b/gnulib/import/m4/locale-ja.m4
index cd94288cc47..98ac7af4453 100644
--- a/gnulib/import/m4/locale-ja.m4
+++ b/gnulib/import/m4/locale-ja.m4
@@ -27,7 +27,7 @@  int main ()
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   return 1;
 #else
   /* Check whether the given locale name is recognized by the system.  */
diff --git a/gnulib/import/m4/locale-zh.m4 b/gnulib/import/m4/locale-zh.m4
index 1228be82850..b637fcaa2ed 100644
--- a/gnulib/import/m4/locale-zh.m4
+++ b/gnulib/import/m4/locale-zh.m4
@@ -28,7 +28,7 @@  int main ()
   /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
      imitates locale dependent behaviour by looking at the environment
      variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
+#if defined __HAIKU__
   return 1;
 #else
   /* Check whether the given locale name is recognized by the system.  */
diff --git a/gnulib/import/stdbool.in.h b/gnulib/import/stdbool.in.h
index 28e0a535514..9aa58238f71 100644
--- a/gnulib/import/stdbool.in.h
+++ b/gnulib/import/stdbool.in.h
@@ -58,64 +58,47 @@ 
 
 /* 7.16. Boolean type and values */
 
-/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
-   definitions below, but temporarily we have to #undef them.  */
-#if defined __BEOS__ && !defined __HAIKU__
-# include <OS.h> /* defines bool but not _Bool */
-# undef false
-# undef true
-#endif
-
 #ifdef __cplusplus
 # define _Bool bool
 # define bool bool
 #else
-# if defined __BEOS__ && !defined __HAIKU__
-  /* A compiler known to have 'bool'.  */
-  /* If the compiler already has both 'bool' and '_Bool', we can assume they
-     are the same types.  */
-#  if !@HAVE__BOOL@
-typedef bool _Bool;
-#  endif
+# if !defined __GNUC__
+  /* If @HAVE__BOOL@:
+       Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+       the built-in _Bool type is used.  See
+         https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+         https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
+         https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html
+       Similar bugs are likely with other compilers as well; this file
+       wouldn't be used if <stdbool.h> was working.
+       So we override the _Bool type.
+     If !@HAVE__BOOL@:
+       Need to define _Bool ourselves. As 'signed char' or as an enum type?
+       Use of a typedef, with SunPRO C, leads to a stupid
+         "warning: _Bool is a keyword in ISO C99".
+       Use of an enum type, with IRIX cc, leads to a stupid
+         "warning(1185): enumerated type mixed with another type".
+       Even the existence of an enum type, without a typedef,
+         "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
+       The only benefit of the enum, debuggability, is not important
+       with these compilers.  So use 'signed char' and no enum.  */
+#  define _Bool signed char
 # else
-#  if !defined __GNUC__
-   /* If @HAVE__BOOL@:
-        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
-        the built-in _Bool type is used.  See
-          https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-          https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
-          https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html
-        Similar bugs are likely with other compilers as well; this file
-        wouldn't be used if <stdbool.h> was working.
-        So we override the _Bool type.
-      If !@HAVE__BOOL@:
-        Need to define _Bool ourselves. As 'signed char' or as an enum type?
-        Use of a typedef, with SunPRO C, leads to a stupid
-          "warning: _Bool is a keyword in ISO C99".
-        Use of an enum type, with IRIX cc, leads to a stupid
-          "warning(1185): enumerated type mixed with another type".
-        Even the existence of an enum type, without a typedef,
-          "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
-        The only benefit of the enum, debuggability, is not important
-        with these compilers.  So use 'signed char' and no enum.  */
-#   define _Bool signed char
-#  else
-   /* With this compiler, trust the _Bool type if the compiler has it.  */
-#   if !@HAVE__BOOL@
-   /* For the sake of symbolic names in gdb, define true and false as
-      enum constants, not only as macros.
-      It is tempting to write
-         typedef enum { false = 0, true = 1 } _Bool;
-      so that gdb prints values of type 'bool' symbolically.  But then
-      values of type '_Bool' might promote to 'int' or 'unsigned int'
-      (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-      (see ISO C 99 6.3.1.1.(2)).  So add a negative value to the
-      enum; this ensures that '_Bool' promotes to 'int'.  */
+  /* With this compiler, trust the _Bool type if the compiler has it.  */
+#  if !@HAVE__BOOL@
+  /* For the sake of symbolic names in gdb, define true and false as
+     enum constants, not only as macros.
+     It is tempting to write
+        typedef enum { false = 0, true = 1 } _Bool;
+     so that gdb prints values of type 'bool' symbolically.  But then
+     values of type '_Bool' might promote to 'int' or 'unsigned int'
+     (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+     (see ISO C 99 6.3.1.1.(2)).  So add a negative value to the
+     enum; this ensures that '_Bool' promotes to 'int'.  */
 typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
-#   endif
 #  endif
 # endif
-# define bool _Bool
+#define bool _Bool
 #endif
 
 /* The other macros must be usable in preprocessor directives.  */
diff --git a/gnulib/import/sys_select.in.h b/gnulib/import/sys_select.in.h
index 1dacb21087d..9563444bd78 100644
--- a/gnulib/import/sys_select.in.h
+++ b/gnulib/import/sys_select.in.h
@@ -90,7 +90,7 @@ 
 /* On AIX 7 and Solaris 10, <sys/select.h> provides an FD_ZERO implementation
    that relies on memset(), but without including <string.h>.
    But in any case avoid namespace pollution on glibc systems.  */
-# if (defined __OpenBSD__ || defined _AIX || defined __sun || defined __osf__ || defined __BEOS__) \
+# if (defined __OpenBSD__ || defined _AIX || defined __sun || defined __osf__) \
      && ! defined __GLIBC__
 #  include <string.h>
 # endif
diff --git a/gprof/configure b/gprof/configure
index f88c0ea48c3..f6b73a908ce 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -5407,10 +5407,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -7639,7 +7635,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -8291,17 +8287,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -9614,12 +9599,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -10280,12 +10259,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
diff --git a/include/binary-io.h b/include/binary-io.h
index 6f19645d5b8..13e09776e7d 100644
--- a/include/binary-io.h
+++ b/include/binary-io.h
@@ -30,11 +30,6 @@ 
 # define O_BINARY _O_BINARY
 # define O_TEXT _O_TEXT
 #endif
-#ifdef __BEOS__
-  /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect.  */
-# undef O_BINARY
-# undef O_TEXT
-#endif
 #if O_BINARY
 # if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__
 #  include <io.h> /* declares setmode() */
diff --git a/include/longlong.h b/include/longlong.h
index c3e92e54ecc..f9ea119e55f 100644
--- a/include/longlong.h
+++ b/include/longlong.h
@@ -866,7 +866,7 @@  extern UDItype __umulsidi3 (USItype, USItype);
    enough, since that hits ARM and m68k too.  */
 #if (defined (_ARCH_PPC)	/* AIX */				\
      || defined (__powerpc__)	/* gcc */				\
-     || defined (__POWERPC__)	/* BEOS */				\
+     || defined (__POWERPC__)	/* Haiku */				\
      || defined (__ppc__)	/* Darwin */				\
      || (defined (PPC) && ! defined (CPU_FAMILY)) /* gcc 2.7.x GNU&SysV */    \
      || (defined (PPC) && defined (CPU_FAMILY)    /* VxWorks */               \
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index 536ee12621d..aa17e09f35e 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -480,11 +480,6 @@  char *alloca ();
 # define O_BINARY _O_BINARY
 # define O_TEXT _O_TEXT
 #endif
-#ifdef __BEOS__
-  /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect.  */
-# undef O_BINARY
-# undef O_TEXT
-#endif
 /* On reasonable systems, binary I/O is the default.  */
 #ifndef O_BINARY
 # define O_BINARY 0
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 6cfdfddc5d1..f8e972d4503 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -304,7 +304,6 @@  ALL_EMULATION_SOURCES = \
 	ehppanbsd.c \
 	ehppaobsd.c \
 	ei386aout.c \
-	ei386beos.c \
 	ei386bsd.c \
 	ei386go32.c \
 	ei386lynx.c \
@@ -802,7 +801,6 @@  $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppanbsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppaobsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386aout.Pc@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386beos.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386bsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386go32.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386lynx.Pc@am__quote@
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 30fa918dfc8..3c10b18005b 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -794,7 +794,6 @@  ALL_EMULATION_SOURCES = \
 	ehppanbsd.c \
 	ehppaobsd.c \
 	ei386aout.c \
-	ei386beos.c \
 	ei386bsd.c \
 	ei386go32.c \
 	ei386lynx.c \
@@ -1475,7 +1474,6 @@  distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppanbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppaobsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386aout.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386beos.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386bsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386go32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386lynx.Po@am__quote@
@@ -2466,7 +2464,6 @@  $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppanbsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppaobsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386aout.Pc@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386beos.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386bsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386go32.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386lynx.Pc@am__quote@
diff --git a/ld/configure b/ld/configure
index 6ea123b2a9e..89500f990f8 100755
--- a/ld/configure
+++ b/ld/configure
@@ -6260,10 +6260,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -8493,7 +8489,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -9145,17 +9141,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -10468,12 +10453,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -11134,12 +11113,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
@@ -12347,17 +12320,6 @@  if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         fi
         ;;
 
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
       chorus*)
         case $cc_basename in
           *)
@@ -13333,7 +13295,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
     mingw* | cygwin* | os2* | pw32* | cegcc*)
@@ -14120,12 +14082,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 5411104ec36..3ea104387f1 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -396,11 +396,6 @@  i[3-7]86-*-mingw32*)	targ_emul=i386pe ;
 i[3-7]86-*-interix*)	targ_emul=i386pe_posix;
 			targ_extra_ofiles="deffilep.o pe-dll.o"
 			;;
-i[3-7]86-*-beospe*)	targ_emul=i386beos
-			targ_extra_ofiles=
-			;;
-i[3-7]86-*-beos*)	targ_emul=elf_i386_be
-			;;
 i[3-7]86-*-haiku*)	targ_emul=elf_i386_haiku
 			;;
 i[3-7]86-*-vxworks*)	targ_emul=elf_i386_vxworks
@@ -743,9 +738,6 @@  powerpc-*-aix[5-9]*)	targ_emul=aix5ppc
 powerpc-*-aix*)		targ_emul=aixppc
 			targ_extra_ofiles=
 			;;
-powerpc-*-beos*)	targ_emul=aixppc
-			targ_extra_ofiles=
-			;;
 powerpc-*-haiku*)	targ_emul=elf32ppchaiku
 			;;
 powerpc-*-windiss*)	targ_emul=elf32ppcwindiss
diff --git a/ld/emulparams/i386beos.sh b/ld/emulparams/i386beos.sh
deleted file mode 100644
index 869da5f41ba..00000000000
--- a/ld/emulparams/i386beos.sh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-ARCH=i386
-SCRIPT_NAME=i386beos
-OUTPUT_FORMAT="pei-i386"
-RELOCATEABLE_OUTPUT_FORMAT="pe-i386"
-TEMPLATE_NAME=beos
diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em
deleted file mode 100644
index 2de34482e91..00000000000
--- a/ld/emultempl/beos.em
+++ /dev/null
@@ -1,800 +0,0 @@ 
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
-  OUTPUT_ARCH=${ARCH}
-else
-  OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is part of GLD, the Gnu Linker.
-   Copyright (C) 1995-2021 Free Software Foundation, Inc.
-
-   This file is part of the GNU Binutils.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
-   MA 02110-1301, USA.  */
-
-
-/* For WINDOWS_NT */
-/* The original file generated returned different default scripts depending
-   on whether certain switches were set, but these switches pertain to the
-   Linux system and that particular version of coff.  In the NT case, we
-   only determine if the subsystem is console or windows in order to select
-   the correct entry point by default. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "ctf-api.h"
-#include "getopt.h"
-#include "libiberty.h"
-#include "filenames.h"
-#include "ld.h"
-#include "ldmain.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include <ldgram.h>
-#include "ldlex.h"
-#include "ldmisc.h"
-#include "ldctor.h"
-#include "coff/internal.h"
-#include "../bfd/libcoff.h"
-
-#define TARGET_IS_${EMULATION_NAME}
-
-static struct internal_extra_pe_aouthdr pe;
-static int dll;
-
-extern const char *output_filename;
-
-static void
-gld_${EMULATION_NAME}_before_parse (void)
-{
-  ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
-  output_filename = "a.exe";
-}
-
-/* PE format extra command line options.  */
-
-/* Used for setting flags in the PE header. */
-#define OPTION_BASE_FILE		(300  + 1)
-#define OPTION_DLL			(OPTION_BASE_FILE + 1)
-#define OPTION_FILE_ALIGNMENT		(OPTION_DLL + 1)
-#define OPTION_IMAGE_BASE		(OPTION_FILE_ALIGNMENT + 1)
-#define OPTION_MAJOR_IMAGE_VERSION	(OPTION_IMAGE_BASE + 1)
-#define OPTION_MAJOR_OS_VERSION		(OPTION_MAJOR_IMAGE_VERSION + 1)
-#define OPTION_MAJOR_SUBSYSTEM_VERSION	(OPTION_MAJOR_OS_VERSION + 1)
-#define OPTION_MINOR_IMAGE_VERSION	(OPTION_MAJOR_SUBSYSTEM_VERSION + 1)
-#define OPTION_MINOR_OS_VERSION		(OPTION_MINOR_IMAGE_VERSION + 1)
-#define OPTION_MINOR_SUBSYSTEM_VERSION	(OPTION_MINOR_OS_VERSION + 1)
-#define OPTION_SECTION_ALIGNMENT	(OPTION_MINOR_SUBSYSTEM_VERSION + 1)
-#define OPTION_STACK			(OPTION_SECTION_ALIGNMENT + 1)
-#define OPTION_SUBSYSTEM		(OPTION_STACK + 1)
-#define OPTION_HEAP			(OPTION_SUBSYSTEM + 1)
-
-static void
-gld${EMULATION_NAME}_add_options
-  (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
-   struct option **longopts, int nrl ATTRIBUTE_UNUSED,
-   struct option **really_longopts ATTRIBUTE_UNUSED)
-{
-  static const struct option xtra_long[] = {
-    /* PE options */
-    {"base-file", required_argument, NULL, OPTION_BASE_FILE},
-    {"dll", no_argument, NULL, OPTION_DLL},
-    {"file-alignment", required_argument, NULL, OPTION_FILE_ALIGNMENT},
-    {"heap", required_argument, NULL, OPTION_HEAP},
-    {"image-base", required_argument, NULL, OPTION_IMAGE_BASE},
-    {"major-image-version", required_argument, NULL, OPTION_MAJOR_IMAGE_VERSION},
-    {"major-os-version", required_argument, NULL, OPTION_MAJOR_OS_VERSION},
-    {"major-subsystem-version", required_argument, NULL, OPTION_MAJOR_SUBSYSTEM_VERSION},
-    {"minor-image-version", required_argument, NULL, OPTION_MINOR_IMAGE_VERSION},
-    {"minor-os-version", required_argument, NULL, OPTION_MINOR_OS_VERSION},
-    {"minor-subsystem-version", required_argument, NULL, OPTION_MINOR_SUBSYSTEM_VERSION},
-    {"section-alignment", required_argument, NULL, OPTION_SECTION_ALIGNMENT},
-    {"stack", required_argument, NULL, OPTION_STACK},
-    {"subsystem", required_argument, NULL, OPTION_SUBSYSTEM},
-    {NULL, no_argument, NULL, 0}
-  };
-
-  *longopts = (struct option *)
-    xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
-  memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-
-/* PE/WIN32; added routines to get the subsystem type, heap and/or stack
-   parameters which may be input from the command line */
-
-typedef struct {
-  void *ptr;
-  int size;
-  int value;
-  char *symbol;
-  int inited;
-} definfo;
-
-#define D(field,symbol,def)  {&pe.field,sizeof(pe.field), def, symbol,0}
-
-static definfo init[] =
-{
-  /* imagebase must be first */
-#define IMAGEBASEOFF 0
-  D(ImageBase,"__image_base__", BEOS_EXE_IMAGE_BASE),
-#define DLLOFF 1
-  {&dll, sizeof(dll), 0, "__dll__", 0},
-  D(SectionAlignment,"__section_alignment__", PE_DEF_SECTION_ALIGNMENT),
-  D(FileAlignment,"__file_alignment__", PE_DEF_FILE_ALIGNMENT),
-  D(MajorOperatingSystemVersion,"__major_os_version__", 4),
-  D(MinorOperatingSystemVersion,"__minor_os_version__", 0),
-  D(MajorImageVersion,"__major_image_version__", 1),
-  D(MinorImageVersion,"__minor_image_version__", 0),
-  D(MajorSubsystemVersion,"__major_subsystem_version__", 4),
-  D(MinorSubsystemVersion,"__minor_subsystem_version__", 0),
-  D(Subsystem,"__subsystem__", 3),
-  D(SizeOfStackReserve,"__size_of_stack_reserve__", 0x2000000),
-  D(SizeOfStackCommit,"__size_of_stack_commit__", 0x1000),
-  D(SizeOfHeapReserve,"__size_of_heap_reserve__", 0x100000),
-  D(SizeOfHeapCommit,"__size_of_heap_commit__", 0x1000),
-  D(LoaderFlags,"__loader_flags__", 0x0),
-  { NULL, 0, 0, NULL, 0 }
-};
-
-
-static void
-set_pe_name (char *name, long val)
-{
-  int i;
-  /* Find the name and set it. */
-  for (i = 0; init[i].ptr; i++)
-    {
-      if (strcmp (name, init[i].symbol) == 0)
-	{
-	  init[i].value = val;
-	  init[i].inited = 1;
-	  return;
-	}
-    }
-  abort();
-}
-
-
-static void
-set_pe_subsystem (void)
-{
-  const char *sver;
-  int len;
-  int i;
-  static const struct
-    {
-      const char *name;
-      const int value;
-      const char *entry;
-    }
-  v[] =
-    {
-      { "native", 1, "_NtProcessStartup" },
-      { "windows", 2, "_WinMainCRTStartup" },
-      { "wwindows", 2, "_wWinMainCRTStartup" },
-      { "console", 3, "_mainCRTStartup" },
-      { "wconsole", 3, "_wmainCRTStartup" },
-      { "posix", 7, "___PosixProcessStartup"},
-      { 0, 0, 0 }
-    };
-
-  sver = strchr (optarg, ':');
-  if (sver == NULL)
-    len = strlen (optarg);
-  else
-    {
-      char *end;
-
-      len = sver - optarg;
-      set_pe_name ("__major_subsystem_version__",
-		   strtoul (sver + 1, &end, 0));
-      if (*end == '.')
-	set_pe_name ("__minor_subsystem_version__",
-		     strtoul (end + 1, &end, 0));
-      if (*end != '\0')
-	einfo (_("%P: warning: bad version number in -subsystem option\n"));
-    }
-
-  for (i = 0; v[i].name; i++)
-    {
-      if (strncmp (optarg, v[i].name, len) == 0
-	  && v[i].name[len] == '\0')
-	{
-	  set_pe_name ("__subsystem__", v[i].value);
-
-	  /* If the subsystem is windows, we use a different entry
-	     point.  */
-	  lang_default_entry (v[i].entry);
-
-	  return;
-	}
-    }
-  einfo (_("%F%P: invalid subsystem type %s\n"), optarg);
-}
-
-
-static void
-set_pe_value (char *name)
-{
-  char *end;
-  set_pe_name (name,  strtoul (optarg, &end, 0));
-  if (end == optarg)
-    {
-      einfo (_("%F%P: invalid hex number for PE parameter '%s'\n"), optarg);
-    }
-
-  optarg = end;
-}
-
-static void
-set_pe_stack_heap (char *resname, char *comname)
-{
-  set_pe_value (resname);
-  if (*optarg == ',')
-    {
-      optarg++;
-      set_pe_value (comname);
-    }
-  else if (*optarg)
-    {
-      einfo (_("%F%P: strange hex info for PE parameter '%s'\n"), optarg);
-    }
-}
-
-
-static bool
-gld${EMULATION_NAME}_handle_option (int optc)
-{
-  switch (optc)
-    {
-    default:
-      return false;
-
-    case OPTION_BASE_FILE:
-      link_info.base_file = fopen (optarg, FOPEN_WB);
-      if (link_info.base_file == NULL)
-	einfo (_("%F%P: cannot open base file %s\n"), optarg);
-      break;
-
-      /* PE options */
-    case OPTION_HEAP:
-      set_pe_stack_heap ("__size_of_heap_reserve__", "__size_of_heap_commit__");
-      break;
-    case OPTION_STACK:
-      set_pe_stack_heap ("__size_of_stack_reserve__", "__size_of_stack_commit__");
-      break;
-    case OPTION_SUBSYSTEM:
-      set_pe_subsystem ();
-      break;
-    case OPTION_MAJOR_OS_VERSION:
-      set_pe_value ("__major_os_version__");
-      break;
-    case OPTION_MINOR_OS_VERSION:
-      set_pe_value ("__minor_os_version__");
-      break;
-    case OPTION_MAJOR_SUBSYSTEM_VERSION:
-      set_pe_value ("__major_subsystem_version__");
-      break;
-    case OPTION_MINOR_SUBSYSTEM_VERSION:
-      set_pe_value ("__minor_subsystem_version__");
-      break;
-    case OPTION_MAJOR_IMAGE_VERSION:
-      set_pe_value ("__major_image_version__");
-      break;
-    case OPTION_MINOR_IMAGE_VERSION:
-      set_pe_value ("__minor_image_version__");
-      break;
-    case OPTION_FILE_ALIGNMENT:
-      set_pe_value ("__file_alignment__");
-      break;
-    case OPTION_SECTION_ALIGNMENT:
-      set_pe_value ("__section_alignment__");
-      break;
-    case OPTION_DLL:
-      set_pe_name ("__dll__", 1);
-      break;
-    case OPTION_IMAGE_BASE:
-      set_pe_value ("__image_base__");
-      break;
-    }
-  return true;
-}
-
-/* Assign values to the special symbols before the linker script is
-   read.  */
-
-static void
-gld_${EMULATION_NAME}_set_symbols (void)
-{
-  /* Run through and invent symbols for all the
-     names and insert the defaults. */
-  int j;
-
-  if (!init[IMAGEBASEOFF].inited)
-    {
-      if (bfd_link_relocatable (&link_info))
-	init[IMAGEBASEOFF].value = 0;
-      else if (init[DLLOFF].value)
-	init[IMAGEBASEOFF].value = BEOS_DLL_IMAGE_BASE;
-      else
-	init[IMAGEBASEOFF].value = BEOS_EXE_IMAGE_BASE;
-    }
-
-  /* Don't do any symbol assignments if this is a relocatable link.  */
-  if (bfd_link_relocatable (&link_info))
-    return;
-
-  /* Glue the assignments into the abs section */
-  push_stat_ptr (&abs_output_section->children);
-
-  for (j = 0; init[j].ptr; j++)
-    {
-      long val = init[j].value;
-      lang_add_assignment (exp_assign (init[j].symbol, exp_intop (val),
-				       false));
-      if (init[j].size == sizeof(short))
-	*(short *)init[j].ptr = val;
-      else if (init[j].size == sizeof(int))
-	*(int *)init[j].ptr = val;
-      else if (init[j].size == sizeof(long))
-	*(long *)init[j].ptr = val;
-      /* This might be a long long or other special type.  */
-      else if (init[j].size == sizeof(bfd_vma))
-	*(bfd_vma *)init[j].ptr = val;
-      else	abort();
-    }
-  /* Restore the pointer. */
-  pop_stat_ptr ();
-
-  if (pe.FileAlignment >
-      pe.SectionAlignment)
-    {
-      einfo (_("%P: warning, file alignment > section alignment\n"));
-    }
-}
-
-static void
-gld_${EMULATION_NAME}_after_open (void)
-{
-  after_open_default ();
-
-  /* Pass the wacky PE command line options into the output bfd.
-     FIXME: This should be done via a function, rather than by
-     including an internal BFD header.  */
-  if (!coff_data(link_info.output_bfd)->pe)
-    {
-      einfo (_("%F%P: PE operations on non PE file\n"));
-    }
-
-  pe_data(link_info.output_bfd)->pe_opthdr = pe;
-  pe_data(link_info.output_bfd)->dll = init[DLLOFF].value;
-
-}
-
-/* Callback functions for qsort in sort_sections. */
-
-static int
-sort_by_file_name (const void *a, const void *b)
-{
-  const lang_input_section_type *const *ra = a;
-  const lang_input_section_type *const *rb = b;
-  asection *sa = (*ra)->section;
-  asection *sb = (*rb)->section;
-  int i, a_sec, b_sec;
-
-  i = filename_cmp (bfd_get_filename (sa->owner->my_archive),
-		    bfd_get_filename (sb->owner->my_archive));
-  if (i != 0)
-    return i;
-
-  i = filename_cmp (bfd_get_filename (sa->owner),
-		    bfd_get_filename (sb->owner));
-  if (i != 0)
-    return i;
-  /* the tail idata4/5 are the only ones without relocs to an
-     idata$6 section unless we are importing by ordinal,
-     so sort them to last to terminate the IAT
-     and HNT properly. if no reloc this one is import by ordinal
-     so we have to sort by section contents */
-
-  if (sa->reloc_count + sb->reloc_count != 0)
-    {
-      i = sa->reloc_count > sb->reloc_count ? -1 : 0;
-      if (i != 0)
-	return i;
-
-      return sa->reloc_count > sb->reloc_count ? 0 : 1;
-    }
-  else
-    {
-      /* don't sort .idata$6 or .idata$7 FIXME dlltool eliminate .idata$7 */
-      if ((strcmp (sa->name, ".idata$6") == 0))
-	return 0;
-
-      if (!bfd_get_section_contents (sa->owner, sa, &a_sec, (file_ptr) 0,
-				     (bfd_size_type) sizeof (a_sec)))
-	einfo (_("%F%P: %pB: can't read contents of section .idata: %E\n"),
-	       sa->owner);
-
-      if (!bfd_get_section_contents (sb->owner, sb, &b_sec, (file_ptr) 0,
-				     (bfd_size_type) sizeof (b_sec)))
-	einfo (_("%F%P: %pB: can't read contents of section .idata: %E\n"),
-	       sb->owner);
-
-      i = a_sec < b_sec ? -1 : 0;
-      if (i != 0)
-	return i;
-      return a_sec < b_sec ? 0 : 1;
-    }
-  return 0;
-}
-
-static int
-sort_by_section_name (const void *a, const void *b)
-{
-  const lang_input_section_type *const *ra = a;
-  const lang_input_section_type *const *rb = b;
-  const char *sna = (*ra)->section->name;
-  const char *snb = (*rb)->section->name;
-  int i;
-  i = strcmp (sna, snb);
-  /* This is a hack to make .stab and .stabstr last, so we don't have
-     to fix strip/objcopy for .reloc sections.
-     FIXME stripping images with a .rsrc section still needs to be fixed.  */
-  if (i != 0)
-    {
-      if ((startswith (sna, ".stab"))
-	  && (!startswith (snb, ".stab")))
-	return 1;
-    }
-  return i;
-}
-
-/* Subroutine of sort_sections to a contiguous subset of a list of sections.
-   NEXT_AFTER is the element after the last one to sort.
-   The result is a pointer to the last element's "next" pointer.  */
-
-static lang_statement_union_type **
-sort_sections_1 (lang_statement_union_type **startptr,
-		 lang_statement_union_type *next_after,
-		 int count,
-		 int (*sort_func) (const void *, const void *))
-{
-  lang_statement_union_type **vec;
-  lang_statement_union_type *p;
-  int i;
-  lang_statement_union_type **ret;
-
-  if (count == 0)
-    return startptr;
-
-  vec = ((lang_statement_union_type **)
-	 xmalloc (count * sizeof (lang_statement_union_type *)));
-
-  for (p = *startptr, i = 0; i < count; i++, p = p->header.next)
-    vec[i] = p;
-
-  qsort (vec, count, sizeof (vec[0]), sort_func);
-
-  /* Fill in the next pointers again. */
-  *startptr = vec[0];
-  for (i = 0; i < count - 1; i++)
-    vec[i]->header.next = vec[i + 1];
-  vec[i]->header.next = next_after;
-  ret = &vec[i]->header.next;
-  free (vec);
-  return ret;
-}
-
-/* Sort the .idata\$foo input sections of archives into filename order.
-   The reason is so dlltool can arrange to have the pe dll import information
-   generated correctly - the head of the list goes into dh.o, the tail into
-   dt.o, and the guts into ds[nnnn].o.  Note that this is only needed for the
-   .idata section.
-   FIXME: This may no longer be necessary with grouped sections.  Instead of
-   sorting on dh.o, ds[nnnn].o, dt.o, one could, for example, have dh.o use
-   .idata\$4h, have ds[nnnn].o use .idata\$4s[nnnn], and have dt.o use .idata\$4t.
-   This would have to be elaborated upon to handle multiple dll's
-   [assuming such an eloboration is possible of course].
-
-   We also sort sections in '\$' wild statements.  These are created by the
-   place_orphans routine to implement grouped sections.  */
-
-static void
-sort_sections (lang_statement_union_type *s)
-{
-  for (; s ; s = s->header.next)
-    switch (s->header.type)
-      {
-      case lang_output_section_statement_enum:
-	sort_sections (s->output_section_statement.children.head);
-	break;
-      case lang_wild_statement_enum:
-	{
-	  lang_statement_union_type **p = &s->wild_statement.children.head;
-	  struct wildcard_list *sec;
-
-	  for (sec = s->wild_statement.section_list; sec; sec = sec->next)
-	    {
-	      /* Is this the .idata section?  */
-	      if (sec->spec.name != NULL
-		  && startswith (sec->spec.name, ".idata"))
-		{
-		  /* Sort the children.  We want to sort any objects in
-		     the same archive.  In order to handle the case of
-		     including a single archive multiple times, we sort
-		     all the children by archive name and then by object
-		     name.  After sorting them, we re-thread the pointer
-		     chain.  */
-
-		  while (*p)
-		    {
-		      lang_statement_union_type *start = *p;
-		      if (start->header.type != lang_input_section_enum
-			  || !start->input_section.section->owner->my_archive)
-			p = &(start->header.next);
-		      else
-			{
-			  lang_statement_union_type *end;
-			  int count;
-
-			  for (end = start, count = 0;
-			       end && (end->header.type
-				       == lang_input_section_enum);
-			       end = end->header.next)
-			    count++;
-
-			  p = sort_sections_1 (p, end, count,
-					       sort_by_file_name);
-			}
-		    }
-		  break;
-		}
-
-	      /* If this is a collection of grouped sections, sort them.
-		 The linker script must explicitly mention "*(.foo\$)" or
-		 "*(.foo\$*)".  Don't sort them if \$ is not the last
-		 character (not sure if this is really useful, but it
-		 allows explicitly mentioning some \$ sections and letting
-		 the linker handle the rest).  */
-	      if (sec->spec.name != NULL)
-		{
-		  char *q = strchr (sec->spec.name, '\$');
-
-		  if (q != NULL
-		      && (q[1] == '\0'
-			  || (q[1] == '*' && q[2] == '\0')))
-		    {
-		      lang_statement_union_type *end;
-		      int count;
-
-		      for (end = *p, count = 0; end; end = end->header.next)
-			{
-			  if (end->header.type != lang_input_section_enum)
-			    abort ();
-			  count++;
-			}
-		      (void) sort_sections_1 (p, end, count,
-					      sort_by_section_name);
-		    }
-		  break;
-		}
-	    }
-	}
-	break;
-      default:
-	break;
-      }
-}
-
-static void
-gld_${EMULATION_NAME}_before_allocation (void)
-{
-#ifdef TARGET_IS_armpe
-  /* FIXME: we should be able to set the size of the interworking stub
-     section.
-
-     Here we rummage through the found bfds to collect glue
-     information.  FIXME: should this be based on a command line
-     option?  krk@cygnus.com */
-  {
-    LANG_FOR_EACH_INPUT_STATEMENT (is)
-    {
-      if (!arm_process_before_allocation (is->the_bfd, & link_info))
-	{
-	  einfo (_("%P: errors encountered processing file %s\n"),
-		 is->filename);
-	}
-    }
-  }
-
-  /* We have seen it all. Allocate it, and carry on */
-  arm_allocate_interworking_sections (& link_info);
-#endif /* TARGET_IS_armpe */
-
-  sort_sections (stat_ptr->head);
-
-  before_allocation_default ();
-}
-
-/* Place an orphan section.  We use this to put sections with a '\$' in them
-   into the right place.  Any section with a '\$' in them (e.g. .text\$foo)
-   gets mapped to the output section with everything from the '\$' on stripped
-   (e.g. .text).
-   See the Microsoft Portable Executable and Common Object File Format
-   Specification 4.1, section 4.2, Grouped Sections.
-
-   FIXME: This is now handled by the linker script using wildcards,
-   but I'm leaving this here in case we want to enable it for sections
-   which are not mentioned in the linker script.  */
-
-static lang_output_section_statement_type *
-gld${EMULATION_NAME}_place_orphan (asection *s,
-				   const char *secname,
-				   int constraint)
-{
-  char *output_secname, *ps;
-  lang_output_section_statement_type *os;
-  lang_statement_union_type *l;
-
-  if ((s->flags & SEC_ALLOC) == 0)
-    return NULL;
-
-  /* Don't process grouped sections unless doing a final link.
-     If they're marked as COMDAT sections, we don't want .text\$foo to
-     end up in .text and then have .text disappear because it's marked
-     link-once-discard.  */
-  if (bfd_link_relocatable (&link_info))
-    return NULL;
-
-  /* Everything from the '\$' on gets deleted so don't allow '\$' as the
-     first character.  */
-  if (*secname == '\$')
-    einfo (_("%F%P: section %s has '\$' as first character\n"), secname);
-  if (strchr (secname + 1, '\$') == NULL)
-    return NULL;
-
-  /* Look up the output section.  The Microsoft specs say sections names in
-     image files never contain a '\$'.  Fortunately, lang_..._lookup creates
-     the section if it doesn't exist.  */
-  output_secname = xstrdup (secname);
-  ps = strchr (output_secname + 1, '\$');
-  *ps = 0;
-  os = lang_output_section_statement_lookup (output_secname, constraint, true);
-
-  /* Find the '\$' wild statement for this section.  We currently require the
-     linker script to explicitly mention "*(.foo\$)".  */
-
-  ps[0] = '\$';
-  ps[1] = 0;
-  for (l = os->children.head; l; l = l->header.next)
-    if (l->header.type == lang_wild_statement_enum)
-      {
-	struct wildcard_list *sec;
-
-	for (sec = l->wild_statement.section_list; sec; sec = sec->next)
-	  if (sec->spec.name && strcmp (sec->spec.name, output_secname) == 0)
-	    break;
-	if (sec)
-	  break;
-      }
-  ps[0] = 0;
-  if (l == NULL)
-    einfo (_("%F%P: *(%s\$) missing from linker script\n"), output_secname);
-
-  /* Link the input section in and we're done for now.
-     The sections still have to be sorted, but that has to wait until
-     all such sections have been processed by us.  The sorting is done by
-     sort_sections.  */
-  lang_add_section (&l->wild_statement.children, s, NULL, NULL, os);
-
-  return os;
-}
-
-static char *
-gld_${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test x"$COMPILE_IN" = xyes
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
-  *isfile = 0;
-
-  if (bfd_link_relocatable (&link_info) && config.build_constructors)
-    return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu                 >> e${EMULATION_NAME}.c
-echo '  ; else if (bfd_link_relocatable (&link_info)) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr                 >> e${EMULATION_NAME}.c
-echo '  ; else if (!config.text_read_only) return'     >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn                >> e${EMULATION_NAME}.c
-echo '  ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn                 >> e${EMULATION_NAME}.c
-echo '  ; else return'                                 >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x                  >> e${EMULATION_NAME}.c
-echo '; }'                                             >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
-  *isfile = 1;
-
-  if (bfd_link_relocatable (&link_info) && config.build_constructors)
-    return "ldscripts/${EMULATION_NAME}.xu";
-  else if (bfd_link_relocatable (&link_info))
-    return "ldscripts/${EMULATION_NAME}.xr";
-  else if (!config.text_read_only)
-    return "ldscripts/${EMULATION_NAME}.xbn";
-  else if (!config.magic_demand_paged)
-    return "ldscripts/${EMULATION_NAME}.xn";
-  else
-    return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-fi
-
-fragment <<EOF
-
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
-  gld_${EMULATION_NAME}_before_parse,
-  syslib_default,
-  hll_default,
-  after_parse_default,
-  gld_${EMULATION_NAME}_after_open,
-  after_check_relocs_default,
-  before_place_orphans_default,
-  after_allocation_default,
-  set_output_arch_default,
-  ldemul_default_target,
-  gld_${EMULATION_NAME}_before_allocation,
-  gld_${EMULATION_NAME}_get_script,
-  "${EMULATION_NAME}",
-  "${OUTPUT_FORMAT}",
-  finish_default,
-  NULL, /* create output section statements */
-  NULL, /* open dynamic archive */
-  gld${EMULATION_NAME}_place_orphan,
-  gld_${EMULATION_NAME}_set_symbols,
-  NULL, /* parse_args */
-  gld${EMULATION_NAME}_add_options,
-  gld${EMULATION_NAME}_handle_option,
-  NULL,	/* unrecognized file */
-  NULL,	/* list options */
-  NULL,	/* recognized file */
-  NULL,	/* find_potential_libraries */
-  NULL,	/* new_vers_pattern */
-  NULL,	/* extra_map_file_text */
-  ${LDEMUL_EMIT_CTF_EARLY-NULL},
-  ${LDEMUL_ACQUIRE_STRINGS_FOR_CTF-NULL},
-  ${LDEMUL_NEW_DYNSYM_FOR_CTF-NULL},
-  ${LDEMUL_PRINT_SYMBOL-NULL}
-};
-EOF
diff --git a/ld/scripttempl/i386beos.sc b/ld/scripttempl/i386beos.sc
deleted file mode 100644
index b056d1963f4..00000000000
--- a/ld/scripttempl/i386beos.sc
+++ /dev/null
@@ -1,181 +0,0 @@ 
-# Linker script for PE.
-#
-# Copyright (C) 2014-2021 Free Software Foundation, Inc.
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-
-if test -z "${RELOCATEABLE_OUTPUT_FORMAT}"; then
-  RELOCATEABLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-fi
-
-# We can't easily and portably get an unquoted $ in a shell
-# substitution, so we do this instead.
-if test "${RELOCATING}"; then
-  R_TEXT='*(.text$*)'
-  R_DATA='*(.data$*)'
-  R_RDATA='*(.rdata$*)'
-  R_IDATA='
-    *(.idata$2)
-    *(.idata$3)
-    /* These zeroes mark the end of the import list.  */
-    LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    *(.idata$4)
-    *(.idata$5)
-    *(.idata$6)
-    *(.idata$7)'
-  R_CRT='*(.CRT$*)'
-  R_RSRC='*(.rsrc$*)'
-  R_EXC='*(.exc$*)'
-else
-  R_TEXT=
-  R_DATA=
-  R_RDATA=
-  R_IDATA=
-  R_CRT=
-  R_RSRC=
-  R_EXC=
-fi
-
-cat <<EOF
-/* Copyright (C) 2014-2021 Free Software Foundation, Inc.
-
-   Copying and distribution of this script, with or without modification,
-   are permitted in any medium without royalty provided the copyright
-   notice and this notice are preserved.  */
-
-${RELOCATING+OUTPUT_FORMAT(${OUTPUT_FORMAT})}
-${RELOCATING-OUTPUT_FORMAT(${RELOCATEABLE_OUTPUT_FORMAT})}
-
-${LIB_SEARCH_DIRS}
-
-${RELOCATING+ENTRY (__start)}
-${RELOCATING+header = .;}
-${RELOCATING+__fltused = .; /* set up floating pt for MS .obj\'s */}
-${RELOCATING+__ldused = .;}
-SECTIONS
-{
-  .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
-  {
-    ${RELOCATING+ __text_start__ = . ;}
-    ${RELOCATING+ KEEP (*(SORT_NONE(.init)))}
-    *(.text)
-    ${R_TEXT}
-    *(.glue_7t)
-    *(.glue_7)
-    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
-			LONG (-1); *(.ctors); *(.ctor); LONG (0); }
-    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
-			LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
-    ${RELOCATING+ KEEP (*(SORT_NONE(.fini)))}
-    ${RELOCATING+/* ??? Why is .gcc_exc here?  */}
-    ${RELOCATING+ *(.gcc_exc)}
-    ${RELOCATING+ etext = .;}
-    ${RELOCATING+ __text_end__ = .;}
-    *(.gcc_except_table)
-  }
-
-  /* The Cygwin32 library uses a section to avoid copying certain data
-     on fork.  This used to be named ".data$nocopy".  The linker used
-     to include this between __data_start__ and __data_end__, but that
-     breaks building the cygwin32 dll.  Instead, we name the section
-     ".data_cygwin_nocopy" and explicitly include it after __data_end__. */
-
-  .data ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    ${RELOCATING+__data_start__ = . ;}
-    *(.data)
-    *(.data2)
-    ${R_DATA}
-    ${RELOCATING+__data_end__ = . ;}
-    ${RELOCATING+*(.data_cygwin_nocopy)}
-  }
-
-  .bss ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    ${RELOCATING+__bss_start__ = . ;}
-    *(.bss)
-    *(COMMON)
-    /* link.exe apparently pulls in .obj's because of UNDEF common
-	symbols, which is not the coff way, but that's MS for you. */
-    *(.CRT\$XCA)
-    *(.CRT\$XCZ)
-    *(.CRT\$XIA)
-    *(.CRT\$XIZ)
-    ${RELOCATING+__bss_end__ = . ;}
-  }
-
-  .rdata ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    *(.rdata)
-    ${R_RDATA}
-    *(.eh_frame)
-  }
-
-  .edata ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    *(.edata)
-  }
-
-  /DISCARD/ :
-  {
-    *(.debug\$S)
-    *(.debug\$T)
-    *(.debug\$F)
-    *(.drectve)
-    *(.debug*)
-  }
-
-  .idata ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    /* This cannot currently be handled with grouped sections.
-	See pe.em:sort_sections.  */
-    ${R_IDATA}
-  }
-  .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    ${R_CRT}
-  }
-
-  .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    /* end is deprecated, don't use it */
-    ${RELOCATING+ end = .;}
-    ${RELOCATING+ _end = .;}
-    ${RELOCATING+ __end__ = .;}
-  }
-
-  .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    *(.reloc)
-  }
-
-  .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    *(.rsrc)
-    ${R_RSRC}
-  }
-
-  .exc ${RELOCATING+BLOCK(__section_alignment__)} :
-  {
-    *(.exc)
-    ${R_EXC}
-  }
-
-  .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
-  {
-    [ .stab ]
-  }
-
-  .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
-  {
-    [ .stabstr ]
-  }
-EOF
-
-. $srcdir/scripttempl/DWARF.sc
-
-cat <<EOF
-}
-EOF
diff --git a/ld/testsuite/ld-bootstrap/bootstrap.exp b/ld/testsuite/ld-bootstrap/bootstrap.exp
index e323b428688..053e6395557 100644
--- a/ld/testsuite/ld-bootstrap/bootstrap.exp
+++ b/ld/testsuite/ld-bootstrap/bootstrap.exp
@@ -215,8 +215,7 @@  foreach flags $test_flags {
 	|| [istarget "*-*-cygwin*"]
 	|| [istarget "*-*-winnt*"]
 	|| [istarget "*-*-mingw*"]
-	|| [istarget "*-*-interix*"]
-	|| [istarget "*-*-beospe*"]} {
+	|| [istarget "*-*-interix*"]} {
 	# Trim off the date present in PE binaries by only looking
 	#   at the ends of the files
 	# Although this works, a way to set the date would be better.
diff --git a/libctf/configure b/libctf/configure
index 38855e1172c..4b07d1ac205 100755
--- a/libctf/configure
+++ b/libctf/configure
@@ -6465,10 +6465,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -8667,7 +8663,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -9319,17 +9315,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -10642,12 +10627,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -11308,12 +11287,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
diff --git a/libtool.m4 b/libtool.m4
index f69fc99f691..07e0e881eeb 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -1752,12 +1752,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
@@ -2214,12 +2208,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[[45]]*)
   version_type=linux
   need_version=no
@@ -3011,10 +2999,6 @@  aix[[4-9]]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[[45]]*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -3305,7 +3289,7 @@  AC_DEFUN([LT_LIB_M],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+*-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
@@ -3624,7 +3608,7 @@  m4_if([$1], [CXX], [
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
     mingw* | cygwin* | os2* | pw32* | cegcc*)
@@ -3936,7 +3920,7 @@  m4_if([$1], [CXX], [
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -4412,17 +4396,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
@@ -5720,17 +5693,6 @@  if test "$_lt_caught_CXX_error" != yes; then
         fi
         ;;
 
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
       chorus*)
         case $cc_basename in
           *)
diff --git a/ltmain.sh b/ltmain.sh
index 9503ec85d70..c2e95feb124 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -4733,7 +4733,7 @@  func_mode_link ()
       -l*)
 	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc* | *-*-haiku*)
 	    # These systems don't actually have a C or math library (as such)
 	    continue
 	    ;;
@@ -6693,7 +6693,7 @@  func_mode_link ()
       if test "$build_libtool_libs" = yes; then
 	if test -n "$rpath"; then
 	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc* | *-*-haiku*)
 	    # these systems don't actually have a c library (as such)!
 	    ;;
 	  *-*-rhapsody* | *-*-darwin1.[012])
diff --git a/opcodes/configure b/opcodes/configure
index 9687cef4670..9c27fcdd149 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -5687,10 +5687,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -7889,7 +7885,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -8541,17 +8537,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -9864,12 +9849,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -10530,12 +10509,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
@@ -11956,7 +11929,7 @@  $as_echo "$bfd_cv_ld_as_needed" >&6; }
 
 LIBM=
 case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+*-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
diff --git a/readline/readline/configure b/readline/readline/configure
index 6ea4545e26f..1af3b0e537a 100755
--- a/readline/readline/configure
+++ b/readline/readline/configure
@@ -2621,9 +2621,6 @@  if test "x$cross_compiling" = "xyes"; then
     *-mingw*)
         cross_cache=${srcdir}/cross-build/mingw.cache
         ;;
-    i[3456]86-*-beos*)
-        cross_cache=${srcdir}/cross-build/x86-beos.cache
-        ;;
     *)  echo "configure: cross-compiling for $host is not supported" >&2
         ;;
     esac
diff --git a/readline/readline/configure.ac b/readline/readline/configure.ac
index 912c99b6575..6a6b1098843 100644
--- a/readline/readline/configure.ac
+++ b/readline/readline/configure.ac
@@ -91,9 +91,6 @@  if test "x$cross_compiling" = "xyes"; then
     *-mingw*)
         cross_cache=${srcdir}/cross-build/mingw.cache
         ;;
-    i[[3456]]86-*-beos*)
-        cross_cache=${srcdir}/cross-build/x86-beos.cache
-        ;;
     *)  echo "configure: cross-compiling for $host is not supported" >&2
         ;;
     esac
diff --git a/readline/readline/input.c b/readline/readline/input.c
index 61b0fde3c87..f5731d345ef 100644
--- a/readline/readline/input.c
+++ b/readline/readline/input.c
@@ -563,11 +563,6 @@  rl_getc (FILE *stream)
       if (result == 0)
 	return (EOF);
 
-#if defined (__BEOS__)
-      if (errno == EINTR)
-	continue;
-#endif
-
 #if defined (EWOULDBLOCK)
 #  define X_EWOULDBLOCK EWOULDBLOCK
 #else
diff --git a/readline/readline/support/config.guess b/readline/readline/support/config.guess
index cc7a8107011..45fca87e624 100755
--- a/readline/readline/support/config.guess
+++ b/readline/readline/support/config.guess
@@ -1317,15 +1317,6 @@  EOF
 		echo mips-unknown-sysv"$UNAME_RELEASE"
 	fi
 	exit ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit ;;
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	echo i586-pc-haiku
 	exit ;;
diff --git a/readline/readline/support/config.rpath b/readline/readline/support/config.rpath
index fc5913d7878..3dca7a234dc 100755
--- a/readline/readline/support/config.rpath
+++ b/readline/readline/support/config.rpath
@@ -191,13 +191,6 @@  if test "$with_gnu_ld" = yes; then
           ;;
       esac
       ;;
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
     cygwin* | mingw* | pw32* | cegcc*)
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
@@ -527,9 +520,6 @@  case "$host_os" in
         library_names_spec='$libname.a' ;;
     esac
     ;;
-  beos*)
-    library_names_spec='$libname$shrext'
-    ;;
   bsdi[45]*)
     library_names_spec='$libname$shrext'
     ;;
diff --git a/readline/readline/support/config.sub b/readline/readline/support/config.sub
index 7384e9198b4..f6901e88bac 100755
--- a/readline/readline/support/config.sub
+++ b/readline/readline/support/config.sub
@@ -1585,9 +1585,6 @@  case $cpu-$vendor in
 	pru-*)
 		os=elf
 		;;
-	*-be)
-		os=beos
-		;;
 	*-ibm)
 		os=aix
 		;;
@@ -1719,8 +1716,8 @@  case $os in
 	     | chorusrdb* | cegcc* | glidix* | serenity* \
 	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
 	     | midipix* | mingw32* | mingw64* | mint* \
-	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-	     | interix* | uwin* | mks* | rhapsody* | darwin* \
+	     | uxpv* | mpeix* | udk* | moxiebox* | interix* \
+	     | uwin* | mks* | rhapsody* | darwin* \
 	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
 	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
 	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
@@ -1789,9 +1786,6 @@  case $vendor in
 			*-cnk* | *-aix*)
 				vendor=ibm
 				;;
-			*-beos*)
-				vendor=be
-				;;
 			*-hpux*)
 				vendor=hp
 				;;
diff --git a/sim/configure b/sim/configure
index 8dec72cf3b4..5b5d8527ef0 100755
--- a/sim/configure
+++ b/sim/configure
@@ -6118,10 +6118,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -9263,7 +9259,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -9915,17 +9911,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -11238,12 +11223,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -11386,7 +11365,7 @@  haiku*)
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -11904,12 +11883,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
diff --git a/zlib/README b/zlib/README
index 92e9d5c64a7..7e21b29c622 100644
--- a/zlib/README
+++ b/zlib/README
@@ -73,7 +73,7 @@  Notes for some targets:
 - zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
   other compilers. Use "make test" to check your compiler.
 
-- gzdopen is not supported on RISCOS or BEOS.
+- gzdopen is not supported on RISCOS.
 
 - For PalmOs, see http://palmzlib.sourceforge.net/
 
diff --git a/zlib/configure b/zlib/configure
index fb392d52365..2bccb850261 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -5213,10 +5213,6 @@  aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 bsdi[45]*)
   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
   lt_cv_file_magic_cmd='/usr/bin/file -L'
@@ -7719,7 +7715,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       esac
       ;;
 
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
@@ -8371,17 +8367,6 @@  _LT_EOF
       esac
       ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
@@ -9703,12 +9688,6 @@  amigaos*)
   esac
   ;;
 
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
 bsdi[45]*)
   version_type=linux
   need_version=no
@@ -10372,12 +10351,6 @@  else
   lt_cv_dlopen_libs=
 
   case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
   mingw* | pw32* | cegcc*)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
diff --git a/zlib/zconf.h b/zlib/zconf.h
index b399839aa95..c39ced9449f 100644
--- a/zlib/zconf.h
+++ b/zlib/zconf.h
@@ -361,18 +361,6 @@ 
 #  endif
 #endif
 
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
 #ifndef ZEXTERN
 #  define ZEXTERN extern
 #endif
diff --git a/zlib/zconf.h.cmakein b/zlib/zconf.h.cmakein
index a7f24cce60f..4207c7da3a3 100644
--- a/zlib/zconf.h.cmakein
+++ b/zlib/zconf.h.cmakein
@@ -363,18 +363,6 @@ 
 #  endif
 #endif
 
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
 #ifndef ZEXTERN
 #  define ZEXTERN extern
 #endif
diff --git a/zlib/zconf.h.in b/zlib/zconf.h.in
index 5e1d68a004e..fd9b538a020 100644
--- a/zlib/zconf.h.in
+++ b/zlib/zconf.h.in
@@ -361,18 +361,6 @@ 
 #  endif
 #endif
 
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
 #ifndef ZEXTERN
 #  define ZEXTERN extern
 #endif
diff --git a/zlib/zutil.h b/zlib/zutil.h
index 4b596adf629..10b889c4296 100644
--- a/zlib/zutil.h
+++ b/zlib/zutil.h
@@ -151,10 +151,6 @@  extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
 #  define OS_CODE  10
 #endif
 
-#ifdef _BEOS_
-#  define OS_CODE  16
-#endif
-
 #ifdef __TOS_OS400__
 #  define OS_CODE 18
 #endif
@@ -163,7 +159,7 @@  extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
 #  define OS_CODE 19
 #endif
 
-#if defined(_BEOS_) || defined(RISCOS)
+#if defined(RISCOS)
 #  define fdopen(fd,mode) NULL /* No fdopen() */
 #endif