Subject: 23.1.95; [PATCH] Build failure on FreeBSD

From: Naohiro Aota <[email-masked]>
Date: Fri, 16 Apr 2010 15:46:21 +0900 (JST)

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug.  If you can, give
a recipe starting from `emacs -Q':

Emacs trunk cannot to be build on FreeBSD with the follwing error. 

/usr/lib/gcc/i686-gentoo-freebsd7.2/4.4.3/../../../../i686-gentoo-freebsd7.2/bin/ld: cannot find -ltermcap
collect2: ld returned 1 exit status
gmake[1]: *** [temacs] Error 1
gmake[1]: Leaving directory `/usr/local/src/bzr-src/emacs-trunk/src'
gmake: *** [src] Error 2

Rev 99699 removed "#include <osreldate.h>", but this line is necessary
to define __FreeBSD_version. Without the line, "#if __FreeBSD_version
< 400000" always succeeds and cause "#define LIBS_TERMCAP -ltermcap"
which is not adequate library.

With the attached patch, I was able to build emacs on FreeBSD again.

In GNU Emacs 23.1.95.1 (i686-gentoo-freebsd7.2, GTK+ Version 2.18.9)
 of 2010-04-13 on sana
configured using `configure  '--prefix=/usr' '--build=i686-gentoo-freebsd7.2' '--host=i686-gentoo-freebsd7.2' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '-\
-localstatedir=/var/lib' '--program-suffix=-emacs-23-vcs' '--infodir=/usr/share/info/emacs-23-vcs' '--with-sound' '--with-x' '--without-gconf' '--with-toolkit-scroll-bars' '--with-gif' '--with-jpeg' '--with-pn\
g' '--with-rsvg' '--without-tiff' '--with-xpm' '--with-xft' '--without-libotf' '--without-m17n-flt' '--with-x-toolkit=gtk' '--without-hesiod' '--without-kerberos' '--without-kerberos5' '--without-gpm' '--with-\
dbus' 'build_alias=i686-gentoo-freebsd7.2' 'host_alias=i686-gentoo-freebsd7.2' 'CFLAGS=-O2 -march=native -pipe' 'LDFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ja_JP.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

=== modified file 'src/s/freebsd.h'
--- src/s/freebsd.h	2010-03-20 07:57:11 +0000
+++ src/s/freebsd.h	2010-04-16 06:43:51 +0000
@@ -23,6 +23,7 @@
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#include <osreldate.h>
 /* Get most of the stuff from bsd-common */
 #include "bsd-common.h"