Red Hat ENTERPRISE LINUX 3 - DEVELOPER TOOLS GUIDE Guide de l'utilisateur Page 32

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 100
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 31
Chapter 3. Libraries and Runtime Support
22
This type of compatibility is defined by conformance with specified Application Binary Interfaces
(ABIs).
3.2.1. API Compatibility
Source compatibility enables a body of application source code to be compiled and operate correctly
on multiple instances of an operating environment, across one or more hardware architectures, as
long as the source code is compiled individually for each specific hardware architecture.
Source compatibility is defined by an Application Programming Interface (API), which is a set of
programming interfaces and data structures provided to application developers. The programming
syntax of APIs in the C programming language are defined in header files. These header files
specify data types and programmatic functions. They are available to programmers for use in their
applications, and are implemented by the operating system or libraries. The syntax of APIs are
enforced at compile time, or when the application source code is compiled to produce executable
binary objectcode.
APIs are classified as:
De facto standards not formally specified but implied by a particular implementation.
De jure standards formally specified in standards documentation.
In all cases, application developers should seek to ensure that any behavior they depend on is
described in formal API documentation, so as to avoid introducing dependencies on unspecified
implementation specific semantics or even introducing dependencies on bugs in a particular
implementation of an API. For example, new releases of the GNU C library are not guaranteed to be
compatible with older releases if the old behavior violated a specification.
Red Hat Enterprise Linux by and large seeks to implement source compatibility with a variety of
de jure industry standards developed for Unix operating environments. While Red Hat Enterprise
Linux does not fully conform to all aspects of these standards, the standards documents do provide
a defined set of interfaces, and many components of Red Hat Enterprise Linux track compliance with
them (particularly glibc, the GNU C Library, and gcc, the GNU C/C++/Java/Fortran Compiler). There
are and will be certain aspects of the standards which are not implemented as required on Linux.
3.2.2. ABI Compatibility
Binary compatibility enables a single compiled binary to operate correctly on multiple instances of
an operating environment that share a common hardware architecture (whether that architecture
support is implemented in native hardware or a virtualization layer), but a different underlying software
architecture.
Binary compatibility is defined by an Application Binary Interface (ABI). The ABI is a set of runtime
conventions adhered to by all tools which deal with a compiled binary representation of a program.
Examples of such tools include compilers, linkers, runtime libraries, and the operating system itself.
The ABI includes not only the binary file formats, but also the semantics of library functions which are
used by applications.
3.2.3. Policy
Ideally you should rebuild and repackage your applications for each major release. This will allow you
take advantage of new optimizations in the compiler, as well as new features available in the latest
tools.
However, we understand there are times when it is useful to build one set of binaries that can be
deployed on multiple major releases at once. This is especially useful with old code bases that are not
Vue de la page 31
1 2 ... 27 28 29 30 31 32 33 34 35 36 37 ... 99 100

Commentaires sur ces manuels

Pas de commentaire