Re: [BUG 4.4.178] x86_64 compat mode futexes broken
From: Joe Korty
Date: Thu Jun 06 2019 - 21:06:34 EST
On Thu, Jun 06, 2019 at 04:11:30PM -0700, Nathan Chancellor wrote:
> On Thu, Jun 06, 2019 at 09:11:43PM +0000, Joe Korty wrote:
> > Starting with 4.4.178, the LTP test
> > pthread_cond_wait/2-3
> > when compiled on x86_64 with 'gcc -m32', started failing. It generates this log output:
> > [16:18:38]Implementation supports the MONOTONIC CLOCK but option is disabled in test.
> > [16:18:38]Test starting
> > [16:18:38] Process-shared primitive will be tested
> > [16:18:38] Alternative clock for cond will be tested
> > [16:18:38]Test 2-3.c FAILED: The child did not own the mutex inside the cleanup handler
> What is the exact build command + test case command? I'd like to
> reproduce this myself.
> > A git bisection between 4.4.177..178 shows that this commit is the culprit:
> > Git-Commit: 79739ad2d0ac5787a15a1acf7caaf34cd95bbf3c
> > Author: Alistair Strachan <astrachan@xxxxxxxxxx>
> > Subject: [PATCH] x86: vdso: Use $LD instead of $CC to link
> Have you tested 4.4.180? There were two subsequent fixes to this patch
> in 4.4:
I started with 4.4.179-rt181 and worked backwards from there. Per your
suggestion, I tried 4.4.180 and it does work properly.
> 485d15db01ca ("kbuild: simplify ld-option implementation")
> 07d35512e494 ("x86/vdso: Pass --eh-frame-hdr to the linker")
> > And, indeed, when I back this patch out of 4.4.178 proper, the above test
> > passes again.
> > Please consider backing this patch out of linux-4.4.y, and from master, and from
> > any other linux branch it has been backported to.
> So this is broken in mainline too?
> > PS: In backing it out of 4.4.178, I first backed out
> > 7c45b45fd6e928c9ce275c32f6fa98d317e6f5ee
> > This is a follow-on vdso patch which collides with the
> > patch we are interested in removing. As it claims to be
> > only removing redundant code, it probably should never
> > have been backported in the first place.
> While it is redundant for ld.bfd, it causes a build failure with the
> release version of ld.lld: