https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292008

--- Comment #6 from Mark Millard <[email protected]> ---
I've found a problem: use of %ld notation which is not an
invariant match to off_t and the like across FreeBSD
platforms: off_t is 64 bits across FreeBSD platforms
but long is not (and so %ld is not):

+ xo_emit("=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme}
({h:size/%ld}){t:state}\n",
. . .
+ xo_emit(" {t:start/%*jd} {t:sectors/%*jd} {P:/%*s} {ne:free}- free -
({h:size/%ld})\n",
. . . 
+ xo_emit(" ({h:size/%ld})\n", pp->lg_mediasize);
. . .
+ xo_emit(" {t:start/%*jd} {t:sectors/%*jd} {P:/%*s} {ne:free}- free -
({h:size/%ld})\n",

%ld is for long but:

. . .
           Architecture   long   void *   long double   time_t
           aarch64        8      8        16            8
           aarch64c       8      16       16            8
           amd64          8      8        16            8
           armv7          4      4        8             8
           i386           4      4        12            4
. . .

The code would be broken in this way for i386 as well.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to