This is the mail archive of the libc-alpha@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]

[PATCH 0/9][BZ 16892] Generic lowlevellock.h


This patch series introduces a linux implementation of lowlevellock.h
and removes several arch-specific lowlevellock.h instances. This gets
rid of arch-specific lowlevellock.h for aarch64, arm, hppa, m68k,
microblaze, mips, tile and (mostly) alpha.

i386, x86_64, ia64, powerpc, sh/sh4, sparc and s390 remain. These
either make a lot of use of assembly, or differ enough from the
generic implementation that I left them alone.

Patches tested (prior to rebasing for recent file moves) on arm and
aarch64. Please could platform maintainers review/test the other
platforms?

Changes are mostly fairly straightforward. A few points worth noting:

1) Fixes BZ16892 for most cases, as affected platforms now have
uniform & correct lll_timedlock. sh is still affected as it implements
lowlevellock.h in assembler.

2) A few platforms (eg aarch64) used to cast futexp to long in a few
functions and no longer do so. I couldn't see why they were doing
that, but maybe I'm being dumb. I've flagged up affected files in the
relevant mails.

3) Implements common syscall error handling by using
INTERNAL_SYSCALL_ERRNO to guarantee that the code is positive, then
negate it before returning. I only did this for functions where
callers do more than compare the return code to 0 - as far as I could
infer, this is the intended interface.

Does this look OK?

Thanks,

Bernie


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