http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55292



             Bug #: 55292

           Summary: libsanitizer doesn't support x32

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: other

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: hjl.to...@gmail.com





sanitizer_common/sanitizer_linux.cc has



void *internal_mmap(void *addr, uptr length, int prot, int flags,

                    int fd, u64 offset) {

#if __WORDSIZE == 64

  return (void *)syscall(__NR_mmap, addr, length, prot, flags, fd, offset);

#else

  return (void *)syscall(__NR_mmap2, addr, length, prot, flags, fd, offset);

#endif

}



uptr internal_filesize(fd_t fd) {

#if __WORDSIZE == 64

  struct stat st;

  if (syscall(__NR_fstat, fd, &st))

    return -1;

#else

  struct stat64 st;

  if (syscall(__NR_fstat64, fd, &st))

    return -1;

#endif

  return (uptr)st.st_size;

}



They are incorrect for x32.

Reply via email to