From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 94A081384B4 for ; Mon, 30 Nov 2015 10:17:18 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2BD7C21C080; Mon, 30 Nov 2015 10:17:10 +0000 (UTC) Received: from mail-ig0-f182.google.com (mail-ig0-f182.google.com [209.85.213.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 45DA821C00A for ; Mon, 30 Nov 2015 10:17:09 +0000 (UTC) Received: by igvg19 with SMTP id g19so66809003igv.1 for ; Mon, 30 Nov 2015 02:17:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=be-evil-net.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=DF3Du2ch5BlK3naNcQv8KBxsD5hDDPHx3blpVkG977c=; b=vVs2WgI1j1cTUtgWcvZr4V6JYyp5o/Uw7iUT/Lx4HOyU1PGqxEV/9b6iBDtSuTqWvG NLx53ZFmttXRPuORYYUafoJh+Vn9gkQDCPpY9RSIXtBuPcP9ExbSzXyarUFA1q5V84MX ZQQLlTp4vzL0Z/PYUQvy6X/AC4bje4JddbjOORVJl8vDajG6BtsfVbfoi3RQbfmlh3FA GGX+OIV1yoRtFnDSp87Bvq4crBbVxfCkWdJFGzkkI4fT+6f6x2nyYgogWBvKbTstXYno r9ZQFULRdFmK64KV7Ul2MWGE7zliuB7JyFjtoVKyZ9cqZ21y0SOfs2ImC90CjbagKama PSCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=DF3Du2ch5BlK3naNcQv8KBxsD5hDDPHx3blpVkG977c=; b=KwlfDdbS4f+A0QEuGOgC0pULfsKCAtQzgxbt5ehzJYfiiWGMOTM89B5T4R8uhzosPD Za22sbk5B8+d4jiDZgrveFM6EtSHVYXwxnRRj3fA1Kao8KFzkBDiv128CnhoxkYXx1CE moibaK1Dv+N1O/c2R/iD5svhgwizdsueGlyZs1YRszWjAOqTubKBsGlLwNe550LthXiK QzNQtfrZjllaFeijBro7TZ31Wj6XuT/F4oR0vf/SwxkpMyAAya2Tc4HOYqSK7M/KsRTQ fBdcSeLgmJ68tag7cDopLXmISYzkVzeLYxDDtTCRKubz7VVZxA5C09zZO8rjWz5DcVqI dnqQ== X-Gm-Message-State: ALoCoQnyxMwPGKn8VYRPbbDPZSPu64JAbnC+vofwn1BZWy94/rWwi2qshAR60fjMItmjNGqgXcv3 X-Received: by 10.50.4.71 with SMTP id i7mr15193561igi.60.1448878628328; Mon, 30 Nov 2015 02:17:08 -0800 (PST) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Received: by 10.79.114.21 with HTTP; Mon, 30 Nov 2015 02:16:48 -0800 (PST) X-Originating-IP: [2601:645:4000:4100:b561:42df:75d1:5275] In-Reply-To: <565C03C2.6020209@gentoo.org> References: <4065232.vgWU8t9PnH@moneypit> <20151130074235.5a0fec7b.mgorny@gentoo.org> <565C03C2.6020209@gentoo.org> From: Greg Turner Date: Mon, 30 Nov 2015 02:16:48 -0800 Message-ID: Subject: Re: [gentoo-dev] impending c++11 clusterfuck? To: gentoo-dev@lists.gentoo.org Content-Type: text/plain; charset=UTF-8 X-Archives-Salt: 0498bb3b-f957-4b37-81ae-7f797622c2f4 X-Archives-Hash: caa6381e904fbf5da78f502c7ca34760 On Mon, Nov 30, 2015 at 12:07 AM, Anthony G. Basile wrote: > If we record enough information at build time (eg. gcc version or > libcxx/clang) then we can build tools that intelligently predict if > there's an abi incompatibility. Yes, exactly the type of thing I'm thinking of. As you go on to note, > Unfortunately gcc doesn't bump soname > and/or version-info when it changes c++11 abi. So, maybe kludge #1 we require is some kind of made-up section header injected into object files... let's say, hypothetically, a tuple from the cartesian cross-product of something vaguely like: < compiler={gcc34,gcc47,gcc49,gcc52,clang} arch={$(< profiles/arch.list)} or maybe {(gnu target triplets)} abi={c++03,c++11,gnu++11,plain-ol'-c} > i.e.: gcc52-amd64-gnu++11. Probably the arch is redundant -- hell, maybe the compiler too -- and could be dropped... but you get the idea. So then, some agent digs this out from executables, and, like you say, caches it in the vdb somewhere. Meanwhile, suppose there's a global eselect c++abi setting. Once it's changed, we could just zip through the vdb and, say, "maybe some of these are false positives, but, to be safe, here's a nag to rebuild these so-and-so packages, which seem to have been built against some c++ abi other than the current one." No depgraph required, easy to implement magically-fix-it.sh. Might spin its wheels a bit but how often would you change this setting? Almost never... Well just thinking out loud, I probably have horrible thinkos above, but ya gotta start somewhere... -gmt Greg Turner gmt@be-evil.net