Intel 80386, version 1 (SYSV) vs Intel 80386, version 1 (GNU/Linux)

James Cloos cloos@jhcloos.com
Fri Oct 1 07:38:00 GMT 2010


I searched through the manuals and googled to no avail.

I tried compiling some stuff on my amd64 box for an ia32 box, using -m32
and and appropriate -march.  The resulting libraries worked fine when
compiled static, but failed when compiled dynamic.

The destination box's executables and libraryies report:

foo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
     dynamically linked (uses shared libs), for GNU/Linux 2.6.9,
     not stripped

whereas the files generated by my amd64 box report:

bar: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux),
     dynamically linked (uses shared libs), for GNU/Linux 2.6.9,
     not stripped

In readelf format, that is:

  OS/ABI:                            UNIX - System V
vs:
  OS/ABI:                            UNIX - Linux

I tried using -Wl,--hash-style=sysv, but the libraries and executables
still say Linux rather than SYSV.  (The .o files say SYSV.)

How do I force the former os/abi?

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6



More information about the Gcc-help mailing list