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>