From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752707AbaFMAxQ (ORCPT ); Thu, 12 Jun 2014 20:53:16 -0400 Received: from mail-pa0-f42.google.com ([209.85.220.42]:45059 "EHLO mail-pa0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750817AbaFMAxP (ORCPT ); Thu, 12 Jun 2014 20:53:15 -0400 From: Andy Lutomirski To: , Kui Zhang Cc: x86@kernel.org, "linux-kernel@vger.kernel.org" , Andy Lutomirski Subject: [PATCH v3 0/4] vDSO reference parser updates and Go workaround Date: Thu, 12 Jun 2014 17:53:08 -0700 Message-Id: X-Mailer: git-send-email 1.9.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Patches 1 and 2 update the vDSO reference parser. Despite the late submission, this might be 3.16 material: it's just documentation. If I'd been more on top of this, I would have done it for 3.15. It's also probably worthwhile given that there is at least one rather buggy vDSO parser in the wild. Patches 3 and 4 make "Hello world" as built by Go stop segfaulting. It's a performance regression for Go programs: it causes them to stop finding any symbols in the vDSO, but that's a lot better than segfaulting. Changes from v1: - Improve portability of the vdso parser. - Add an explicit ELFCLASS check in the vdso parser (why not?). - Fix x32 build. - Add a comment describing what the hack works around, why, and where the Go bug was introduced. Changes from v2: Re-add patch 1. Whoops. Andy Lutomirski (4): doc,vdso: Rename vdso_test.c to vdso_standalone_test_x86.c doc,vdso: Make vDSO examples more portable x86,vdso: Add PUT_LE to store little-endian values x86,vdso: Hack to keep 64-bit Go programs working Documentation/vDSO/parse_vdso.c | 67 ++++++++------ Documentation/vDSO/vdso_standalone_test_x86.c | 128 ++++++++++++++++++++++++++ Documentation/vDSO/vdso_test.c | 107 +++++---------------- arch/x86/vdso/Makefile | 18 ++-- arch/x86/vdso/vdso-fakesections.c | 32 +++++++ arch/x86/vdso/vdso2c.c | 19 +++- arch/x86/vdso/vdso2c.h | 23 ++++- 7 files changed, 268 insertions(+), 126 deletions(-) create mode 100644 Documentation/vDSO/vdso_standalone_test_x86.c create mode 100644 arch/x86/vdso/vdso-fakesections.c -- 1.9.3