Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Sep 2021 23:05:46 -0700
From:      Mark Millard via freebsd-ports <freebsd-ports@freebsd.org>
To:        Ian Lepore <ian@freebsd.org>, Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        freebsd-ports@freebsd.org, freebsd-current <freebsd-current@freebsd.org>, Free BSD <freebsd-arm@freebsd.org>
Subject:   Re: I get odd time reports from poudriere on armv7 system, under a (non-debug) main [so: 14] FreeBSD.
Message-ID:  <0FE65CAD-EDFF-4CE8-8750-BD4F6971CAA0@yahoo.com>
In-Reply-To: <e20c23c3b540203680ce79d8756aa21aaeb96612.camel@freebsd.org>
References:  <C6D3F55B-C567-4EED-AC88-B6C18F6C6154@yahoo.com> <187B69AF-9465-41DE-BFD0-A4AA0F7F9068@yahoo.com> <e20c23c3b540203680ce79d8756aa21aaeb96612.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Sep-26, at 10:02, Ian Lepore <ian at freebsd.org> wrote:

> On Sun, 2021-09-26 at 02:27 -0700, Mark Millard via freebsd-current
> wrote:
>> On 2021-Sep-25, at 23:25, Mark Millard <marklmi at yahoo.com> wrote:
>>=20
>>=20
>> [...]
>>         if (argc =3D=3D 3 && strcmp(argv[2], "-nsec") =3D=3D 0)
>>                 printf("%ld.%ld\n", ts.tv_sec, ts.tv_nsec);
>=20
> There are two problems with this, both the seconds and nanos are
> printed incorrectly.  The correct incantation would be
>=20
>  printf("%jd.%09ld\n", (intmax_t)ts.tv_sec, ts.tv_nsec);
>=20

Thanks Ian for looking into more than I did last night.

Based on the following (up to possible e-mail white space issues),
poudriere-devel seems t be working for reporting times:

# more /usr/ports/ports-mgmt/poudriere-devel/files/patch-clock=20
--- src/libexec/poudriere/clock/clock.c.orig    2021-09-26 =
22:24:54.735485000 -0700
+++ src/libexec/poudriere/clock/clock.c 2021-09-26 11:46:12.076362000 =
-0700
@@ -24,6 +24,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
=20
+#include <stdint.h>
 #include <err.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -71,8 +72,8 @@
        } else
                usage();
        if (argc =3D=3D 3 && strcmp(argv[2], "-nsec") =3D=3D 0)
-               printf("%ld.%ld\n", ts.tv_sec, ts.tv_nsec);
+               printf("%jd.%09ld\n", (intmax_t)ts.tv_sec, ts.tv_nsec);
        else
-               printf("%ld\n", ts.tv_sec);
+               printf("%jd\n", (intmax_t)ts.tv_sec);
        return (EXIT_SUCCESS);
 }



=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0FE65CAD-EDFF-4CE8-8750-BD4F6971CAA0>