https://bugs.kde.org/show_bug.cgi?id=464000

            Bug ID: 464000
           Summary: Test timerfd-syscall stops/fails when compiled with
                    _TIME_BITS=64 on 32bit
    Classification: Developer tools
           Product: valgrind
           Version: 3.19.0
          Platform: RedHat Enterprise Linux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: jsew...@acm.org
          Reporter: dk...@vega.pgw.jp
  Target Milestone: ---

Created attachment 155104
  --> https://bugs.kde.org/attachment.cgi?id=155104&action=edit
patch for timerfd-syscall test failure with _TIME_BITS=64

SUMMARY
Test timerfd-syscall stops/fails when compiled with _TIME_BITS=64 on 32bit

STEPS TO REPRODUCE
1.  On LInux, prepare a 32bit compile environment.  Installing 32bit
development env and "setarch i686" is often enough.
2.  CPPFLAGS="-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64" ./configure
3.  make
4.  make check

OBSERVED RESULT
Test halts at:
timerfd-syscall: valgrind   ./timerfd-syscall

EXPECTED RESULT
All tests pass.

SOFTWARE/OS VERSIONS

Linux:  5.14.0-162.6.1.el9_1.0.1.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 28
18:44:09 UTC 2022 i686 i686 i386 GNU/Linux
glibc: glibc-2.34-28.el9_0.v1.i586

ADDITIONAL INFORMATION
timerfd-syscall.c overrides system function timerfd_settime() and
timerfd_gettime(), 
but when _TIME_BITS=64 is enabled on GLIBC system, these function calls become
alias to  __timerfd_settime64(), __timerfd_gettime64().  timerfd-syscall.c
should call the correct underlining system call under _TIME_BITS=64.

The attached patch seems to fix this.
Note that #include <sys/timerfd.h> is not surrounded by #if
defined(HAVE_SYS_TIMERFD_H), since configure does not yet detect this.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to