Date: Wed, 20 May 2009 21:20:12 +0200 From: Roland Smith <rsmith@xs4all.nl> To: francis keyes <fkeymo@gmail.com> Cc: Polytropon <freebsd@edvax.de>, Chuck Robey <chuckr@telenix.org>, freebsd-questions@freebsd.org Subject: Re: compiling FreeBSD date on Linux Message-ID: <20090520192011.GA97805@slackbox.xs4all.nl> In-Reply-To: <d64607cc0905201045i36084a34g2a6c0d4e9d5f750d@mail.gmail.com> References: <d64607cc0905191419p621f7e65tf5515d1d3696bfa0@mail.gmail.com> <20090520000137.3d46fcb2.freebsd@edvax.de> <4A135119.8010007@telenix.org> <d64607cc0905201045i36084a34g2a6c0d4e9d5f750d@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--PEIAKu/WMn1b1Hv9
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
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:
>=20
> # @(#)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 $
>=20
> PROG=3D date
> SRCS=3D date.c netdate.c vary.c
> DPADD=3D ${LIBUTIL}
> LDADD=3D -lutil
>=20
> .include <bsd.prog.mk>
>=20
>=20
> 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 =3D tval;
tv.tv_usec =3D 0;
if (settimeofday(&tv, (struct timezone *)NULL))
err(1, "settimeofday (timeval)");
- logwtmp("{", "date", "");
+ /*logwtmp("{", "date", "");*/
}
=20
if ((p =3D getlogin()) =3D=3D 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
--=20
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)
--PEIAKu/WMn1b1Hv9
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (FreeBSD)
iEYEARECAAYFAkoUV+sACgkQEnfvsMMhpyW/AQCgmKP0kIapr+Tw2jaZ70pGnA7K
pjkAoKNQX+jsAso+wS8OT2BNbO23+yxH
=Mwzx
-----END PGP SIGNATURE-----
--PEIAKu/WMn1b1Hv9--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090520192011.GA97805>
