Re: ldd runs linux programs

From: Mateusz Guzik <mjguzik_at_gmail.com>
Date: Mon, 29 Jul 2013 22:54:49 +0200
On Mon, Jul 29, 2013 at 11:56:25AM -0400, Mark Johnston wrote:
> > 127276 suggests running the binary as is (which I don't like) and
> > achieves this with a hacky way. So if we really want to do this, the
> > patch should be reworked to detect Linux binaries properly.
> > 
> > In general we should gain linux_ldd (like linux_kdump) and our ldd
> > should work only on FreeBSD binaries. The last part is achieved with my
> > patch.
> > 
> > markj, are you working on this?
> 
> Not really; my original fix for this problem was essentially the same as
> yours. That is, just change ldd(1) to bail if the OS ABI byte isn't
> equal to ELFOSABI_FREEBSD. That's the change I have committed in my
> local tree right now.
> 
> Then I thought I'd try to get ldd to work properly with Linux binaries
> as well, but wasn't sure what the right approach should be. As the above
> PR suggests, the easy thing to do is to just pass
> LD_TRACE_LOADED_OBJECTS and not LD_32_TRACE_LOADED_OBJECTS for 32-bit
> ELF objects if the OS isn't FreeBSD. This feels somewhat hacky to me,
> but I didn't really see another approach.
> 
> That said, I think your patch should be committed since it's clearly an
> improvement over the current behaviour. I'm willing to test and commit
> it, and clean up the open PRs. If you could expand on the right way to
> handle Linux binaries, I'd be willing to implement and commit that too.
> I don't quite understand your reference to linux_kdump though - I have
> no such program on my laptop running CURRENT, and ktrace+kdump seem to
> work fine with the Linux binaries under /compat/linux.
> 

Well, there was linux_kdump in ports but it apparently got obsolete as
necessary support for included in our regular kdump.

So it may make sense to teach our ldd how to deal with Linux binaries
for consistency, but its unclear for me if this is better than providing
linux_ldd. Also there is the problem of (not) appending /compat/linux to
printed paths (for Linux binaries the kernel performs file lookups against
/compat/linux first). I'm not that interested in this problem though. :P

That being said, if you want to do something with this, I suggest
cleaning up PRs and reviving discussion in
http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/127276

-- 
Mateusz Guzik <mjguzik gmail.com>
Received on Mon Jul 29 2013 - 18:54:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:39 UTC