From owner-freebsd-dtrace@freebsd.org Mon Apr 17 21:26:42 2017 Return-Path: Delivered-To: freebsd-dtrace@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D69FD42D9E; Mon, 17 Apr 2017 21:26:42 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qk0-x231.google.com (mail-qk0-x231.google.com [IPv6:2607:f8b0:400d:c09::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 250E51619; Mon, 17 Apr 2017 21:26:42 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-qk0-x231.google.com with SMTP id d131so115387705qkc.3; Mon, 17 Apr 2017 14:26:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=8iIN28Pkb19ZI/54YS/2K4XXkvy7U7R8Jz1xDt2Yerk=; b=KHYnyyfAuvYnNW3AtIGDa4qP1mrGEPVJPi+NTwzNExFMbBXAw2ortKPUQdvLql90uF eaDjIXfPFKG9w5zpdH6rJrxuoxs/66Nk55CtXp5TywhrSCbA9TR0w04m/Ux/SVy1R51E Qg5mf2pliXBYmKcRxqRZKpb9mTnj4fAjwOywCtAMLCx8y6koEMFAxQM88Cn6RLY/0piw pBxcmUpftzmLxOShgsuNcL0zUBq7WKMamTltyiTduGkUvI2clFREI44etyGZvr8CAGKK FB75Hd8fNqR1DuVcqiejTWJmZnjeGD/FArfWcX5w2EYKi9M67I5W9UaXYdh+31GFQbjC 31Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=8iIN28Pkb19ZI/54YS/2K4XXkvy7U7R8Jz1xDt2Yerk=; b=KtDyIExqGOYnpyCkKZKr1kG7+f+uHFXvJe6AT611LhMq2ouyfSAyeEEmdGRUhcOE8o ftRGkh0dOfMzdtwr3QKsTFSL632fv2lp53jrA6IQ9ZlyNdhlRSemDa/TQSL6ee4oZokn oPY5K6hdIIu43D5n3wYIcEyabRB/MJklhf0GQHFyHF0LR/x4MIurI2AYAhqW1td4H+hu bUylH9srKaOHryJ0dIO9zfSYksiqV9eeg/pW3kmzSPBHbk/UiyJis8zz3heEsYQlzQdz eGLyBn09JzcW+F5cI4fLtI9royq7x0v4MIjoVK+uT/6jLJCl01LmCVwznt6t/DhP+Fl/ +JUA== X-Gm-Message-State: AN3rC/4zEHylotg1j15kgJRDyw+lcbaMYHooCdbqXCOagvB5gMK5DcGg 8/kNzdaPCBOJhw== X-Received: by 10.55.200.28 with SMTP id c28mr10154718qkj.294.1492464401255; Mon, 17 Apr 2017 14:26:41 -0700 (PDT) Received: from wkstn-mjohnston.west.isilon.com (c-76-104-201-218.hsd1.wa.comcast.net. [76.104.201.218]) by smtp.gmail.com with ESMTPSA id w55sm8166339qtw.9.2017.04.17.14.26.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Apr 2017 14:26:40 -0700 (PDT) Sender: Mark Johnston Date: Mon, 17 Apr 2017 14:26:10 -0700 From: Mark Johnston To: Sevan / Venture37 Cc: Ryan Stone , George Neville-Neil , freebsd-gecko@freebsd.org, Jan Beich , "freebsd-dtrace@freebsd.org" Subject: Re: DTrace issues? Message-ID: <20170417212610.GE18960@wkstn-mjohnston.west.isilon.com> References: <3CEE1970-719B-42D1-A95A-FEAD3F375A30@neville-neil.com> <20170212191826.5599A45EA@freefall.freebsd.org> <77416dea-1e9d-4911-b5d0-2ebac227af7e@Spark> <76897620-E958-4AE2-9B6C-062C59526614@neville-neil.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.0 (2017-02-23) X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "A discussion list for developers working on DTrace in FreeBSD." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 21:26:42 -0000 On Mon, Apr 17, 2017 at 09:28:07PM +0100, Sevan / Venture37 wrote: > On 17 April 2017 at 20:54, Ryan Stone wrote: > > On Sat, Apr 15, 2017 at 10:50 AM, George Neville-Neil > > wrote: > > > >> > >> Can you explain this grief? What is the problem? > >> > >> Best, > >> George > >> > > > > dtrace -G requires the ability to modify the object files in-place before > > linking. This causes havoc if the objects are in .a archives (dtrace can't > > read those) or if the objects need to be linked into multiple binaries. It > > also destroys the ability to do an incremental build, as dtrace -G can't be > > run on the same object twice. > > > > The whole process is really a hack. The build actions done by dtrace > > should be done by the compiler and linker instead. Getting the linker to > > support the process would go a long way, as then dtrace -G could be run on > > individual objects and most of my complaints go away. > > Not to detract from the issue with the -G flag, I just wanted to > highlight that it's used for ELF binaries, until Apple switches away > from Mach-o, this wont be an issue there (dtrace on OS X does not > feature the -G flag). I think the more significant difference is that Apple has more control over their toolchain and have modified it to directly implement the functionality that's overwise implemented by dtrace -G. As Ryan pointed out, this functionality really belongs in the static linker; one more piece of evidence for this is the number of non-trivial modifications we've needed to make to dtrace -G to avoid relying on undocumented behaviour in the Sun link editor, and later, GNU ld 2.17. Now that FreeBSD is transitioning to lld, we have some opportunity to implement USDT support in the static linker, and at least one of the lld developers seems amenable to proposals along those lines. However, I don't know of any concrete plans or designs.