[lsb-discuss] x86_64 binary RPMs for both AMD and Intel 64-bit distos?

Nick Stoughton nick at usenix.org
Wed Nov 29 12:56:47 PST 2006


On Wed, 2006-11-29 at 13:10 -0600, Kirk Wolf wrote:
> We have decided to ship LSB binary RPM packages for a new commercial 
> application.
> 
> Following instructions on the LSB web site, we've had good success in 
> building ia32 and x86_64 architecture binaries that work across redhat, 
> suse, debian/ubuntu, etc.
> 
> Apparently, most Intel 64 bit chips also support "EMT64T", which is 
> nearly the same as x86_64 (amd64), or at least compatible as far as gcc 
> is concerned.
> 
> Is it possible to ship only x86_64 LSB RPMs -- say compiled on x86_64 
> Debian -- so that these would run on *most* 64-bit (AMD or Intel) Linux 
> LSB distros ???

It is the intent of the AMD64 spec to support all EMT64T code, and ALL
compliant apps should run on both AMD and Intel 64 bit processors.
The 3DNow! instructions (which are the principle difference between the
two) are explicitly excluded.
Here is the relevant quote:

Applications conforming to this specification must provide feedback to
the user if a feature that is required for correct execution of the
application is not present. Applications conforming to this
specification should attempt to execute in a diminished capacity if a
required instruction set feature is not present. In particular,
applications should not rely on the availability of the 3DNow!™
technology. In addition, a conforming application shall not use any
instruction from Table 8-1.

        Note: Although this specification carries the attribution
        "AMD64", it is intended to apply to the entire x86_64 set of
        processors, including those based on Intel ® Extended Memory 64
        Technology (EM64T). However, this specification defers to the
        AMD architecture specified above.
        
Table 8-1. Non Conforming Instructions

LAHF
SAHF
SYSCALL
SYSRET
SYSENTER
SYSEXIT
CMPXCHG16B
FFXSR



> 
> - Its not critical that we have 100% coverage, since we will also 
> distribute a source RPM that the outliers can use.
> 
> - The application is not particularly performance critical, so we 
> probably don't care about tiny optimization differences in the binaries, 
> so long as the code runs correctly.
> 
> 
> ? If it is possible to ship x86_64 binaries for both, are special GCC 
> options required when building?  Are there (LSB) RPM spec / packaging 
> issues?
> 
Yes, it is possible, though you may need to say "-march=x86-64" to
ensure you don't pick up the wrong instructions. No, there are no
packaging issues.

> ? If it is not possible, is it feasible to GCC cross-compile on x86_64 
> to target IA64 using lsbc++ ?
This *should* be the default ... but I didn't write lsbcc, so I'm not
100% certain. If it isn't, then its a bug!

> 
> 
> Thanks for any advice,
> Kirk Wolf
> Dovetailed Technologies
> 
> _______________________________________________
> lsb-discuss mailing list
> lsb-discuss at lists.freestandards.org
> http://lists.freestandards.org/mailman/listinfo/lsb-discuss
-- 
Nick Stoughton                          Cell: 510 388 1413
USENIX Standards Liaison                Fax:  510 548 5738




More information about the lsb-discuss mailing list