Which version of FreeBSD a binary was compiled for?

Micah micahjon at ywave.com
Thu Oct 27 20:11:26 PDT 2005


David Kirchner wrote:
> On 10/27/05, Will Maier <willmaier at ml1.net> wrote:
> 
>>Must be -- some flag produces unique bits in the executables. I'm a
>>little surprised there isn't (AFAICT) anything descriptive in
>>file(1)'s manpage or /u/s/mi/magic that would explain the
>>discrepancy. Didn't see anything in quick looks through gcc(1) or
>>make(1), either.
>>
>>Weird.
> 
> 
> It doesn't look like it's done in the magic file. Rather, it's
> something built in to file itself. Check out around line 400 of
> 'readelf.c'.
> 
> This doesn't explain how it gets in to the binaries built, though.

Here's some more to think about.  I have a simple cpp program I used to 
test something a while back.  Running file on that executable returns:

trisha% file floatpoint
floatpoint: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), 
for FreeBSD 5.3.0, dynamically linked (uses shared libs), not stripped

I just now recompiled with "c++ floatpoint.cpp" and now:
trisha% file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), 
dynamically linked (uses shared libs), not stripped

And compiled with same commandline on the "working" machine:
alexis% file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for 
FreeBSD 5.4, dynamically linked (uses shared libs), not stripped

I looked at my "env", but I do not see /any/ compiler related variables 
set.  Is there something up with the compiler itself?  My processor? 
(Athlon64 in i386 mode)

Later,
Micah


More information about the freebsd-questions mailing list