svn commit: r204672 - head/sbin/newfs

Garrett Cooper yanefbsd at gmail.com
Thu Mar 4 00:14:53 UTC 2010


On Mar 3, 2010, at 3:36 PM, Max Laier <max at love2party.net> wrote:

> On Thursday 04 March 2010 00:25:53 Garrett Cooper wrote:
>> On Mar 3, 2010, at 1:53 PM, Warner Losh <imp at FreeBSD.org> wrote:
>>> Author: imp
>>> Date: Wed Mar  3 21:53:25 2010
>>> New Revision: 204672
>>> URL: http://svn.freebsd.org/changeset/base/204672
>>>
>>> Log:
>>> Cast these to intmax_t before printing to fix build bustage.  Better
>>> solutions welcome.
>>>
>>> Modified:
>>> head/sbin/newfs/mkfs.c
>>>
>>> Modified: head/sbin/newfs/mkfs.c
>>> ===
>>> ===
>>> ===
>>> ===
>>> ==================================================================
>>> --- head/sbin/newfs/mkfs.c    Wed Mar  3 21:47:25 2010    (r204671)
>>> +++ head/sbin/newfs/mkfs.c    Wed Mar  3 21:53:25 2010    (r204672)
>>> @@ -191,8 +191,8 @@ restart:
>>>      exit(17);
>>>  }
>>>  if (sblock.fs_fsize < sectorsize) {
>>> -        printf("increasing fragment size from %d to sector size  
>>> (%d)
>>> \n",
>>> -            sblock.fs_fsize, sectorsize);
>>> +        printf("increasing fragment size from %d to sector size
>>> (%jd)\n",
>>> +            sblock.fs_fsize, (intmax_t)sectorsize);
>>>      sblock.fs_fsize = sectorsize;
>>>  }
>>>  if (sblock.fs_bsize > MAXBSIZE) {
>>> @@ -337,8 +337,8 @@ restart:
>>>  } else if (density < minfragsperinode * fsize) {
>>>      origdensity = density;
>>>      density = minfragsperinode * fsize;
>>> -        fprintf(stderr, "density increased from %d to %d\n",
>>> -            origdensity, density);
>>> +        fprintf(stderr, "density increased from %d to %jd\n",
>>> +            origdensity, (intmax_t)density);
>>>  }
>>>  origdensity = density;
>>>  for (;;) {
>>> @@ -346,8 +346,9 @@ restart:
>>>      if (fragsperinode < minfragsperinode) {
>>>          bsize <<= 1;
>>>          fsize <<= 1;
>>> -            printf("Block size too small for a file system %s %d 
>>> \n",
>>> -                 "of this size. Increasing blocksize to", bsize);
>>> +            printf("Block size too small for a file system %s %jd 
>>> \n",
>>> +                "of this size. Increasing blocksize to",
>>> +                (intmax_t)bsize);
>>>          goto restart;
>>>      }
>>>      minfpg = fragsperinode * INOPB(&sblock);
>>> @@ -371,7 +372,8 @@ restart:
>>>      density -= sblock.fs_fsize;
>>>  }
>>>  if (density != origdensity)
>>> -        printf("density reduced from %d to %d\n", origdensity,
>>> density);
>>> +        printf("density reduced from %d to %jd\n", origdensity,
>>> +            (intmax_t)density);
>>>  /*
>>>   * Start packing more blocks into the cylinder group until
>>>   * it cannot grow any larger, the number of cylinder groups
>>
>> Use PRId64 from inttypes.h ?
>
> you just forgot to type ";)" there, didn't you?

Eh, not really my intent TBH (although I guess my answer was pretty  
cheeky looking back).

> How are the PRI* macros
> better than an intmax_t cast?  In my opinion, the intmax_t cast and  
> %j is the
> best, realistic solution for this.  I have partitioned in the past  
> that we
> change int64 types to "long long" on platforms with 64bit "long".   
> That way
> you can print int64 types with "%ll" on all platforms.  But casting  
> to intmax
> is just as good and the compiler should be able to figure out what  
> goes on and
> make it a no-op.

Course it helps to read more dilligently too. It's fine today I  
suppose, but pardoning my ignorance, are there any archs where in  
practice today, intmax_t isn't synonymous with int64_t, like maybe  
some ARM variants?

TIA!
-Garrett


More information about the svn-src-head mailing list