diff --git a/ChangeLog b/ChangeLog
index 421b86b995522e98f5349965c2ef9d94618a07a9..85ed2cae8b060df3c4c9810a9abb80fa8ed71252 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2000-11-22  Loren J. Rittle  <ljrittle@acm.org>
+
+        * ltcf-cxx.sh: Support creation of C++ shared libraries on
+        recent versions of FreeBSD (release 3 or later).
+        * ltconfig: On FreeBSD, -lc must not be provided when building
+        a shared library or else the standard -pthread gcc option is
+        rendered worthless to later users of the built library.
+
 2000-11-16  Fred Fish  <fnf@be.com>
 
 	* configure.in (enable_libstdcxx_v3): Fix typo,
diff --git a/ltcf-cxx.sh b/ltcf-cxx.sh
index cefa0085624a6868760c38c6a04d7032a9e50a2b..fbcf248faa7f5abb0f152d0d81d4d1ba9d031105 100644
--- a/ltcf-cxx.sh
+++ b/ltcf-cxx.sh
@@ -167,11 +167,15 @@ case "$host_os" in
         ;;
     esac
     ;;
-  freebsd*)
-    # FreeBSD uses GNU C++ and GNU ld
-    # FIXME: insert proper C++ library support
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
     ld_shlibs=no
     ;;
+  freebsd*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    ld_shlibs=yes
+    ;;
   hpux*)
     case "$cc_basename" in
       CC)
diff --git a/ltconfig b/ltconfig
index a79434264e437ec94f13544c56488e9c30032f4e..25d1c6479151e617beec2b0811f00816afad4d6b 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1012,6 +1012,7 @@ freebsd*)
     freebsd-elf*)
       library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
       need_version=no
+      need_lc=no
       need_lib_prefix=no
       ;;
     freebsd-*)