Skip site navigation (1)Skip section navigation (2)
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>