Home

Notes on x86_64 Processor Architectures


First published: 6 January 2005


Background

Reciprocal Net site software is designed to run under GNU/Linux operating systems on processors compatible with Intel’s i386 instruction set.  This includes 32-bit processors like the Pentium 4 series from Intel and the Athlon XP series from Advanced Micro Devices. 

New products like the Opteron from AMD and the Xeon (with so-called “EM64T” extensions) from Intel support a limited number of 64-bit instructions while remaining backwards-compatible with the instruction sets of their 32-bit predecessors.  Such processors have come to be known in the GNU/Linux world as x86_64 architectures and are supported by a number of contemporary GNU/Linux distributions.

Some 64-bit processors, such as the Itanium from Intel, use an instruction set that is not backwards-compatible with the Pentium processor family.  Such processors are beyond the scope of this document.

This article discusses the use of Reciprocal Net site software on an x86_64 platform.  This is not a recommended configuration.  However, some users have reported success.


i386 editions of GNU/Linux

Because the new “64-bit capable” processors like Opteron and Xeon are backwards-compatible with 32-bit instruction sets, they run 32-bit editions of GNU/Linux distributions just as well as their 32-bit counterparts.  Such editions of GNU/Linux distributions may be termed i386, i486, i586, or i686.  There is no compatibility issue with Reciprocal Net site software in such a configuration because the novel 64-bit capabilities of the processor are not utilized.


x86_64 editions of GNU/Linux

Some GNU/Linux distributions, such as Red Hat Enterprise Linux 3, also are available in x86_64 editions.  The individual packages of such a distribution are compiled for the x86_64 processor architecture, which generally means that the binary executables contain at least a few EM64T- or Opteron-specific instructions and logic for detecting the appropriate instruction set to use at runtime.  Such packages generally utilize /usr/lib64 as their principal library directory rather than the more familiar /usr/lib .  On RHEL3, these RPM packages are readily identifiable by the x86_64 marker in the package’s file name, as in httpd-2.0.46-44.ent.x86_64.rpm. 

It is important to note that x86_64 editions of the Red Hat Enterprise Linux 3 operating system support packages built for any of the i386, i486, i586, i686, and x86_64 architectures.  It is generally possible for a single system to have a mix of i386 and x86_64 packages installed.

Reciprocal Net site software is distributed in i386 packages only; there are no x86_64 editions available at this time.  Because it is not possible for code compiled for the i386 processor architecture to be linked (nor dynamic-linked) with code compiled for the x86_64 processor architecture, it is important that any system that is to run Reciprocal Net site software be equipped with i386 editions of specific supporting software packages.  These are: httpd, bzip2-libs, and libf2c.

The bzip2-libs package supports side-by-side installation of its i386 and x86_64 editions, provided the two packages have identical version numbers.  (For instance, both bzip2-libs-1.0.2-11.i386.rpm and bzip2-libs-1.0.2-11.x86_64.rpm can be installed on the same system simultaneously without ill effects.)  In this way, both 32-bit programs and 64-bit programs can utilize the services of the bzip2 library on your system.  Reciprocal Net site software depends upon the i386 edition, but other software present on your system may depend upon the x86_64 edition.

The libf2c package supports side-by-side installation of its i386 and x86_64 editions also (provided the version numbers are identical).  Reciprocal Net site software depends upon the i386 edition, but other software present on your system may depend upon the x86_64 edition.

The httpd package is perhaps most problematic of the three.  An RHEL3 system may have only one edition of httpd installed at a time; the httpd package does not support side-by-side installation.  Any Apache modules that other content on your web site might rely upon (such as php, mod_perl, mod_python, etc.) would need to be compiled for i386 also, for compatibility with httpd.  Apache modules do not support side-by-side installation.  Additionally, the httpd package depends on libraries from three other supporting packages: openssl, krb5-libs, and pcre.  The i386 editions of these three packages must be available on your system; however, they may be installed alongside x86_64 editions of the same three supporting packages (provided the version numbers are identical).

A table of these dependencies appears in the next section.


Summary of dependencies

The following table summarizes the dependencies between i386 and x86_64 editions of various packages on Red Hat Enterprise Linux 3, from the perspective of Reciprocal Net site software.

RPM Package name

i386 edition

x86_64 edition

bzip2-libs

(required by recipnet-webapp package)

required

optional

httpd

(required by recipnet-webapp package)

required

cannot be present

krb5-libs

(required by httpd package)

required

optional

libf2c

(required by recipnet-webapp package)

required

optional

modules that attach to httpd, for example: mod_perl

mod_python

php

(may be necessary to support other web content hosted on your server)

optional

cannot be present

openssl

(required by httpd package)

required

optional

pcre

(required by httpd package)

required

optional

recipnet-site-server

recipnet-site-webapp

recipnet-site-utils

(present on every Reciprocal Net site)

required

not available


Technical support

The operation of Reciprocal Net site software under an x86_64 edition of the GNU/Linux operating system is not a recommended configuration but is possible in some cases.  The Reciprocal Net project offers only limited support for such systems. 

Additions, corrections, and comments about the content of this document are always welcome; please e-mail these to help@reciprocalnet.org


Home