Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Jul 2016 20:56:55 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 210855] benchmarks/bonnie++ : use of volatile char messes up EOF comparison; more (armv6 with -mcpu=cortex-a7 for/on rpi2)
Message-ID:  <bug-210855-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D210855

            Bug ID: 210855
           Summary: benchmarks/bonnie++ : use of volatile char messes up
                    EOF comparison; more (armv6 with -mcpu=3Dcortex-a7
                    for/on rpi2)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: kuriyama@FreeBSD.org
          Reporter: markmi@dsl-only.net
             Flags: maintainer-feedback?(kuriyama@FreeBSD.org)
          Assignee: kuriyama@FreeBSD.org

The main report is from what the building compiler reported:

getc_putc.cpp:210:47: warning: comparison of constant -1 with expression of
type 'volatile char' is always false
[-Wtautological-constant-out-of-range-compare]
  TEST_FUNC_READ("getc()", if( (c =3D getc(fp)) =3D=3D EOF), res[Getc]);
                               ~~~~~~~~~~~~~~ ^  ~~~
./getc_putc.h:26:31: note: expanded from macro 'TEST_FUNC_READ'
  TEST_FUNC("Reading", XNAME, XCODE, XRES)
                              ^~~~~
./getc_putc.h:13:5: note: expanded from macro 'TEST_FUNC'
    XCODE \
    ^~~~~
getc_putc.cpp:225:65: warning: comparison of constant -1 with expression of
type 'volatile char' is always false
[-Wtautological-constant-out-of-range-compare]
  TEST_FUNC_READ("getc_unlocked()", if( (c =3D getc_unlocked(fp)) =3D=3D EO=
F),
res[GetcUnlocked]);
                                        ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~
./getc_putc.h:26:31: note: expanded from macro 'TEST_FUNC_READ'
  TEST_FUNC("Reading", XNAME, XCODE, XRES)
                              ^~~~~
./getc_putc.h:13:5: note: expanded from macro 'TEST_FUNC'
    XCODE \
    ^~~~~

getc_putc_helper.cpp:48:57: warning: comparison of constant -1 with express=
ion
of type 'volatile char' is always false
[-Wtautological-constant-out-of-range-com
pare]
  TEST_FUNC_READ("getc() no thread", if( (c =3D getc(fp)) =3D=3D EOF), res[=
1]);
                                         ~~~~~~~~~~~~~~ ^  ~~~
./getc_putc.h:26:31: note: expanded from macro 'TEST_FUNC_READ'
  TEST_FUNC("Reading", XNAME, XCODE, XRES)
                              ^~~~~
./getc_putc.h:13:5: note: expanded from macro 'TEST_FUNC'
    XCODE \
    ^~~~~



getc returns a wider type than char variants and signed even if char is not=
: it
returns an int. This is part of enabling the EOF test protocol without
reserving character values.



bon_io.cpp:161:76: warning: format specifies type 'long' but the argument h=
as
type 'off_t' (aka 'long long') [-Wformat]
    sprintf(m_buf, "Error in lseek to chunk %d(" OFF_T_PRINTF ")", offset,
real_offset);
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
^~~~~~~~~~~


The width mismatch leads to big-endian vs. little-endian (vs. pdp-endian)
issues. powerpc, for example, being big-endian but 32 bit could have proble=
ms
with just the "high half" being used here.




Side notes:

bonnie++.cpp:709:57: warning: comparison of integers of different signs:
'unsigned int' and 'int' [-Wsign-compare]
  if(globals.ram && directory_size * MaxDataPerFile * 2 > (globals.ram << 1=
0))
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-210855-13>