This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/19006] New: Why are i386 and i686 dl-sysdep different?


https://sourceware.org/bugzilla/show_bug.cgi?id=19006

            Bug ID: 19006
           Summary: Why are i386 and i686 dl-sysdep different?
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: luto at mit dot edu
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

This may be going *way* back, but:

i386 builds of glibc don't use AT_SYSINFO.  See:

https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/i386/dl-sysdep.h

The comment is nonsense -- the code simply calls int $0x80, which skips the
vDSO entry and does the syscall directly.  On a genuine Pentium or earlier, on
certain Pentium Pro chips, or on any AMD chip with a native 32-bit kernel, this
is fine, and it even saves a couple cycles.  On any modern system, though, it
adds hundreds of cycles.

Please consider using AT_SYSINFO on all glibc builds if the kernel advertises
support.  That should work even on very old CPUs and kernels, it will speed up
i386 builds on glibc running on newer CPUs, and it will even reduce code size,
since you can combine the i386 and i686 dl-sysdep.h files into one.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]