Date: Thu, 9 Jan 2020 09:03:45 -0700 From: Warner Losh <imp@bsdimp.com> To: Ed Maste <emaste@freebsd.org> Cc: freebsd-arch <freebsd-arch@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org> Subject: Re: Retiring GNU objdump 2.17.50 Message-ID: <CANCZdfp5LUSkNP6vrftY4ph%2BZxBso1nPQdgLTbV5u2gxem96kQ@mail.gmail.com> In-Reply-To: <CAPyFy2CJYYkcBRkajEf9miGUDBgpJ-DU3kGuJyHf5u%2BhjrF4uw@mail.gmail.com> References: <CAPyFy2CJYYkcBRkajEf9miGUDBgpJ-DU3kGuJyHf5u%2BhjrF4uw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 9, 2020 at 8:32 AM Ed Maste <emaste@freebsd.org> wrote: > We currently install and use at most three tools from GNU binutils > 2.17.50, depending on target architecture: > > 1. as - assembler > 2. ld - linker > 3. objdump - diagnostic / information tool > > I hope to retire all use of these obsolete binutils before FreeBSD 13. > Here I'd like to discuss objdump. It is a diagnostic tool that > provides information about object files, binaries and libraries. It's > not required as a bootstrap tool (i.e., not needed to build FreeBSD > world or kernel). It is required to build a limited number of ports, > and is used by some developers. > > I have a tracking PR for GNU objdump's retirement open in PR 229046. > https://bugs.freebsd.org/229046. > > There are two ways we can proceed with its retirement: > > 1. Remove it without replacement. Ports that need objdump to build > will have to depend on the binutils package/port, and users who wish > to use it will have to install it. > > Related links for this path: > Ports exp-run: https://bugs.freebsd.org/212319 > Patch review: https://reviews.freebsd.org/D7338 > > 2. Install llvm-objdump in its place (perhaps via a symlink). > llvm-objdump is broadly compatible in both command-line argument > parsing and output format, but there are many small differences and > it's not a full drop-in replacement. > > Related links for this path: > Patch review: https://reviews.freebsd.org/D18307 > > I am interested in feedback on the preferred approach. Installing > llvm's objdump has the advantage that for most use cases everything > will "just work", but may also introduce subtle failures. > I'm a bit torn on this one. I like the first approach because it gives me exactly what I'm used to, and the burden to install binutils isn't that high. Though, I don't really need the rest of it and stray binaries like as and ld may have some weird unintended consequences. I like the second one because my muscle memory in my fingers means I won't have to adapt and I won't have to install binutils for my muscle memory to work. The phrase 'broadly compatible' always fills me with the terror of broken scripts. So I have about a 70/30 split between #1 and #2. #1 is likely better, but not no-brainer clearly better. But #2 has issues so unless there's an as-yet unarticulated #3, I think #1 would be better. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfp5LUSkNP6vrftY4ph%2BZxBso1nPQdgLTbV5u2gxem96kQ>