Hi misc@

I have a question regarding the what(1) command. In one interview I saw
Theo mentioning the what(1) utility:

> Two numbers exist for every component of OpenBSD. One number is the release 
> that the piece came in, ie. 2.8.
>
> The other number exists in each source file that was built. And that number 
> is also in each binary that was built 
> from those files. You can use the what(1) command to determine the revisions 
> of source files which make up 
> each binary.

The way I understood this I could use the what utility on a binary file
in the base OpenBSD system to see exactly which CVS revisions of
specific files composed into the resulting binary.

I tried using the tool on several base utilities like ssh, adventure, ls
etc. None of them produced any output except the executable name itself.

I took a look at the source and the manpage and saw that what this
utility really does is stepping through the binary in search of the
revision markup then printing out the stuff it found.

I tried the utility on all the files in /usr/bin/*, /bin/* and
/usr/lib/* and found that the only ones producing output (actual
revision markers and source files) are plain text shell scripts.
Additionally output is also produced for the kernel files (/bsd,
/bsd.sp, /bsd.rd).

>From the manpage

> The what utility is compliant with the X/Open System Interfaces option of the 
> IEEE Std 1003.1-2008 (“POSIX.1”) specification.

I understand that this is part of POSIX but my question is: Is standard
compliance the sole purpose of the existence of this tool or was it
actually able to produce output for regular system binaries back in the
old days? In case of the latter - is there some kind of additional
stripping or a build step change that causes the information no longer
being embedded in the executables?

I'm not saying that something is broken, but really interested to know
what changed. Especially after seeing this URL
http://prefetch.net/blog/index.php/2005/05/17/fix-for-solaris-ssh-client-hangs/
showing the output of what(1) ran against OpenSSH on Solaris.

In case this matters. I'm running a i386 snapshot from 27-Dec-2014.

Regards,
-- 
  Adam Wolk
  adam.w...@koparo.com

Reply via email to