Adam Wolk <adam.w...@koparo.com> wrote: > 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
The tools work as you found, but there's nothing in the binaries to find anymore. They went through and removed the RCS/SCCS strings. See the commit message here http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/bin/cat/cat.c?rev=1.20&content-type=text/x-cvsweb-markup Though CVS does still update the RCS string in the comment at the top of the file. I don't know what use what(1)/ident(1) still have in base other than historically being there. -- Martin