From owner-soc-status@FreeBSD.ORG Tue May 31 16:03:26 2011 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51C13106564A for ; Tue, 31 May 2011 16:03:26 +0000 (UTC) (envelope-from gleb.kurtsou@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id D1DC48FC14 for ; Tue, 31 May 2011 16:03:25 +0000 (UTC) Received: by bwz12 with SMTP id 12so5592650bwz.13 for ; Tue, 31 May 2011 09:03:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:date:from:to:subject:message-id:mime-version :content-type:content-disposition:user-agent; bh=07QaG6JaEbEnEADLwmhNJymqHyXkDQdkjxx8E9gFkPE=; b=pJuiZ0sY1auWWWBdp4rTdq+BJ+K/KkIZPD5fImLEEvY1mABLOItrNwkbwn2XI8POB6 xKu/Kn0g7sr0jwq7VQpzd94n7EANzrhqthFcz6aTS1Zvf7ucgpqoHF46Hkn1EVP0njta ARGIMnQLlqeuxRMm222pppkMx4QznPPNc8ndI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=iNxpwd+otLptDc4i6risrLCaiUvv4sgmTM0At7oXFhvSf9LS+PzthZetzGNriPhHuy 0gGKwWAZGsWcMydQdTHCUxRDhjGJAbeRDxJFRzDlqiyjcDhzSmdKIMaZ7KI3tlh2rQyM Av0ZzoYLydE9q+iIJLWCvYN6sKn5fCyZnmiMU= Received: by 10.204.151.204 with SMTP id d12mr852624bkw.127.1306856292066; Tue, 31 May 2011 08:38:12 -0700 (PDT) Received: from localhost (lan-78-157-92-5.vln.skynet.lt [78.157.92.5]) by mx.google.com with ESMTPS id g2sm143477bkz.11.2011.05.31.08.38.09 (version=SSLv3 cipher=OTHER); Tue, 31 May 2011 08:38:11 -0700 (PDT) Date: Tue, 31 May 2011 18:36:45 +0300 From: Gleb Kurtsou To: soc-status@freebsd.org Message-ID: <20110531153644.GA5461@tops> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Subject: ino64 status report 1 X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 May 2011 16:03:26 -0000 I've spent last week adding C-like pretty printing to shlib-compat and making DIR opaque struct pointer to prevent misuse and ensure ABI compatibility. shlib-compat is a python script to verify ABI compatibility between shared libraries with symbol versioning. It can parse and compare compiled libc.so.7, although dwarfdump has to be patched first. Comparison results diff looks like this: --- o1.c 2011-05-31 18:24:34.613950446 +0300 +++ o2.c 2011-05-31 18:24:34.617961849 +0300 @@ -1,49 +1,49 @@ -// Symbol dump: version TEST_1.0, library libtest1/libtest1.so +// Symbol dump: version TEST_1.0, library libtest3/libtest3.so struct s1 { int32_t f1_int; char *f2_str; int16_t f3_short; uint64_t f4_uint64; int64_t f5_intmax; void *f6_ptr; }; struct s2 { - char[30] f1_buf; + char[20] f1_buf; struct s1 *f2_s1; }; struct s3 { struct s1 f1_s1; uint32_t f2_int32; }; /* func1@TEST_1.0 */ int32_t func1(int32_t a, int32_t b); /* func2@TEST_1.0 */ int32_t func2(int64_t a, uint64_t b); /* func3@TEST_1.0 */ void func3(struct s1 *s); /* func4@TEST_1.0 */ void func4(struct s1 s); /* func5@TEST_1.0 */ int32_t func5(int32_t a, void *b, struct s2 *s); -/* func6@TEST_1.0 */ int32_t func6(char a, struct s3 *s); +/* func6@TEST_1.0 */ int32_t func6__compat(char a, struct s3 *s); -// Definitions mismatch: func5@TEST_1.0 libtest1/libtest1.so +// Definitions mismatch: func5@TEST_1.0 libtest3/libtest3.so struct s1 { int32_t f1_int; char *f2_str; int16_t f3_short; uint64_t f4_uint64; int64_t f5_intmax; void *f6_ptr; }; struct s2 { - char[30] f1_buf; + char[20] f1_buf; struct s1 *f2_s1; }; int32_t func5(int32_t a, void *b, struct s2 *s);