compiling FreeBSD date on Linux

Roland Smith rsmith at xs4all.nl
Wed May 20 19:20:15 UTC 2009


On Wed, May 20, 2009 at 02:45:59PM -0300, francis keyes wrote:
> Hmm... the date program looks pretty simple but I don't understand the
> Makfile:
> 
> #    @(#)Makefile    8.1 (Berkeley) 5/31/93
> # $FreeBSD: src/bin/date/Makefile,v 1.11.30.1 2009/04/15 03:14:26 kensmith
> Exp $
> 
> PROG=    date
> SRCS=    date.c netdate.c vary.c
> DPADD=    ${LIBUTIL}
> LDADD=    -lutil
> 
> .include <bsd.prog.mk>
> 
> 
> Would it be possible to compile this without a makefile?

Sure. A command like "gcc -o date date.c netdate.c vary.c" works,
provided you patch date.c to remove the dependency on libutil (logwtmp
function). This will stop date from logging to wtmp(5).

----- patch for date.c -----
--- date.c.orig	2009-05-04 22:09:01.000000000 +0200
+++ date.c	2009-05-20 21:05:32.000000000 +0200
@@ -48,7 +48,7 @@
 #include <ctype.h>
 #include <err.h>
 #include <locale.h>
-#include <libutil.h>
+/*#include <libutil.h>*/
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -274,12 +274,12 @@
 	if (!jflag) {
 		/* set the time */
 		if (nflag || netsettime(tval)) {
-			logwtmp("|", "date", "");
+			/*logwtmp("|", "date", "");*/
 			tv.tv_sec = tval;
 			tv.tv_usec = 0;
 			if (settimeofday(&tv, (struct timezone *)NULL))
 				err(1, "settimeofday (timeval)");
-			logwtmp("{", "date", "");
+			/*logwtmp("{", "date", "");*/
 		}
 
 		if ((p = getlogin()) == NULL)
----- patch for date.c -----

With this patch, the executable only depends on libc.

Note that I have only confirmed that it compiles _on FreeBSD_. There
might be additional differences between FreeBSD libc and the GNU libc
that is used on Linux that make further tinkering with the source necessary.

Roland
-- 
R.F.Smith                                   http://www.xs4all.nl/~rsmith/
[plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated]
pgp: 1A2B 477F 9970 BA3C 2914  B7CE 1277 EFB0 C321 A725 (KeyID: C321A725)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20090520/2e8e0aa5/attachment.pgp


More information about the freebsd-questions mailing list