linux emulation: Preliminary support for more auxvec's [patch]

Kostik Belousov kostikbel at
Fri Jul 11 20:14:55 UTC 2008

On Fri, Jul 11, 2008 at 09:55:36PM +0200, Marcin Cieslak wrote:
> Kostik Belousov wrote:
> >On Fri, Jul 11, 2008 at 01:43:55PM +0200, Marcin Cieslak wrote:
> >>Hello,
> >>
> >>Attached please find a simple diff to implement additional loader 
> >>information (for background please see: 
> >>
> >Namely, AT_EXECPATH (somewhat similar to the Solaris auxvec of the same
> >name) provides (might be relative) path for the binary being executed.
> Thank you very much.
> I have implemented the AT_PLATFORM, therefore all 2.6.16 (and later) 
> i386/amd64 auxvecs are implemented, except for AT_SYSINFO and 
> AT_SYSINFO_EHDR that are i386-specific and provide optional way of 
> invoking linux syscalls (using so-called virtual dynamic shared object).
> I think we don't need those.

Do you know of any situation where we _must_ have those new auxvec you
implemented ?

> The code is completely untested on i386. My first attempts show that 
> skype and acroread8 launch faster (probably due to the "hz" effect).
> The patch is here:
I only briefly looked over it.

I suggest that the new AT_COUNT requires more thinking. Look at the
src/libexec/rtld-elf/rtld.c, _rtld(), at line 338, where the auxvec is
digested by FreeBSD dynamic linker. It seems to be harmless, but at
least this is inconsistent. May be, AT_LINUX_PLATFORM etc defines
would make more sense.

Do you actually need imgp->machine member ? It seems that it is used
only inside linux_copyout_strings ?

> This was made against 7-STABLE, but there no major differences in 
> -current. It is also trivial to port to 64-bit amd64 emulation.
Hmm, what are you referencing there ? I know only about one mostly
stalled effort.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url :

More information about the freebsd-emulation mailing list