Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX 11i Release Notes: HP 9000 Computers > Chapter 12 Compatibility

Obsolescence and Deprecation of APIs

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

This section defines the obsolescence of core system libraries and relocatable objects. Obsolescence of other products are covered in separate sections.

Rationale and Objectives

The HP rational and objectives of obsolesence and deprecation of APIs are:

  • provide common, standard APIs across UNIX vendors

  • facilitate portability for our ISVs

  • reduce confusion for the selection of similar APIs

  • reduce the size of libc, thus increasing performance of shared libc

  • reduce the continued application turbulence for future architecture changes

  • remove the compatibility problems for applications which link with shared libraries that have dependencies on archive system libraries

  • reduce satisfaction issues with APIs that have specification defects, for example, compatibility issues

  • reduce support costs for APIs that are not in the strategic direction of standards, the industry, and our customers

  • minimize adoption issues for new releases on PA or IA-64

The intent is that there will be NO gratuitous changes, and obsolescence of APIs and libraries is acceptable when initiated to avoid application breakage or duplicate functionality.

Terms and Definitions

Deprecated: A "deprecated" interface can have the following characteristics:

  • functionality is available on the system

  • deprecation is a step towards obsolescence

  • the specification is in flux

  • less value to users

  • functionality no longer makes sense

  • functionality has been replaced

  • support/enhancement expectations have been lowered

  • usage is discouraged

  • warnings against usage/alternatives are provided

  • the provider continues to test functionality

  • migration plan/tools are provided

The reasons for marking an interface as "deprecated" may include:

  • marked "to be withdrawn" by standards

  • support is available via more standard means

  • equivalent, enhanced, more reliable counterparts exist

  • also all reasons listed in the "Obsolete" section below

Obsolete: An "obsolete" interface may have the following characteristics:

  • functionality is no longer available on the system

  • runtime support is undefined

  • cannot develop or build with this interface

  • documentation is not provided or recommends against usage

  • the final stage of the product life cycle has been reached

The reasons for marking an interface as "obsolete" may include:

  • underlying infrastructure in either the software or hardware is obsolete or not available

  • changes to the system have decreased reliability

  • miscellaneous business decisions such as:

    • third parties solution exists

    • not strategic

    • support costs are too high

    • not enough ROI

Archive/Static Libraries

Most archive system libraries, such as libc.a with the exception of libc.a, libcres.a, and libsbin.a, will be obsolete and not shipped on follow-on releases of HP-UX, including those supporting IA-64. For the benefits to you and HP, refer to “Rationale and Objectives”.

NOTE: In most cases, your makefiles will continue to work without the need for modifications.

CMA Threads Obsolescence

Background

CMA threads (libcma) is a userspace implementation of POSIX P1003.1a (Draft 4), which was based on Concert Multi-Thread Architecture (CMA).

Starting at HP-UX 11.0, multi-threading was also supported in the HP-UX kernel and was known as kernel or POSIX threads (libpthread). The POSIX threads implementation supports the approved POSIX 1003.1c (POSIX.1-1996 Draft 10) standard, which facilitates application portability onto POSIX-compliant vendor platforms. POSIX threads also enable the application to parallelize the execution of threads on multiple processors in a multi-processor system.

CMA threads (libcma) will be deprecated (advertised for future obsolescence) at 11i and the development environment will no longer be shipped on follow-on releases of HP-UX, including those supporting IA-64. There is no plan to release native IA-64 CMA threads on follow-on releases of HP-UX, including those supporting IA-64. Also see “Kernel Threads vs. CMA Threads (new)” in Chapter 8.

Options

Applications using CMA threads have the following options:

  • libcma PA applications will continue to run on follow-on releases of HP-UX, including those supporting IA-64 via compatibility mode.

  • Applications using libcma should start migrating to POSIX threads (libpthread).

  • libcma applications can maintain their existing development environment on 11.0 to 11i in order to continue to make application defect repairs where the libcma development environment is still available and then deploy the application on follow-on releases of HP-UX, including those supporting IA-64.

Customer Transition Aids

Transitioning from CMA threads to POSIX threads is a non-trivial effort.

The 11.x/IA-64 Software Transition Kit (STK) provides tools and documentation transition aids to help with the transition at:

http://devresource.hp.com/STK

Additonal transition aids include:

List of APIs to be Deprecated/Obsoleted

A summary of information about the APIs to be deprecated and obsoleted is provided in Table 12-1 “APIs to be Deprecated/Obsoleted”

Table 12-1 APIs to be Deprecated/Obsoleted

Library/API

Description

Release

Deprecated

Native on IA-64

Comments

Entire Libraries

libc.a

pa20_64/libc.a

Archive/static libc

11i

11i

No

No

 

libp/libc.a

pa20_64/libp/ libc.a

Archive profile libc

11i

11i

No

libpicc.a

Build custom libc

11i

No

libPW.a

ATT Programmer's Workbench

10.30

No

Comparable APIs are in libc.

libBSD.a

BSD 4.2 library

10.30

No

Comparable APIs are in libc.

/usr/old/ libmalloc3x.a

/usr/old/ malloc3c.o

Old malloc() relocatable objects for compatibility with pre-9.x

10.01

11i

No

Use libc malloc().

libcma.a

libcma.1

libcma.2

CMA threads

11.0 & 11i

No

No

No

Use libpthread().

libc APIs

memorymap()

Display the contents of the memory allocator.

32-bit only (no 64-bit available)

11i

No

Use mallinfo() instead.

blockmode() family

blclose(), blget(), blopen(), blread(), blset(), <blmodeio.h>

HP proprietary terminal interfaces

10.30

No

Use libxcurses() instead.

File system descriptor file entry 4.2 BSD:

endfsent(), getfsfile(), getfstype(), getfsent(), getfsspec(), setfsent()

File system APIs for compatibility with 4.2 BSD.

10.30

No

Use getmntent() APIs instead.

gettxt(), setcat()

SVID message catalog facility

11i

Yes

Use catopen(), catgets() instead.

sys_errlist(), sys_nerr()

Array of message strings and largest message number in the array.

11i

Yes

Use strerror() instead.

ptrace(), ptrace64()

Process trace

11i

No

nl_tools_16() APIs and Macros:

byte_status(), firstof2(), secoof2(), c_colwidth()

Tools to process 16-bit characters.

10.0

No

Derived Definitions for Header files

_INCLUDE_AES_SOURCE

_XPG4_EXTENDED

Replaced by _INCLUDE_XOPEN_SOURCE_EXTENDED

11i

No

_SVID2

No longer supported.

11i

No

_XPG2

No longer supported.

11i

No

_XPG3

No longer supported.

11i

No

_XPG4

Replaced by _XOPEN_SOURCE

11i

No

_POSIX1_1988

Replaced by _INCLUDE_POSIX_SOURCE.

11i

No

_CLASSIC_ANSI_TYPES

_CLASSIC_POSIX_TYPES

_CLASSIC_XOPEN_TYPES

_CLASSIC_ID_TYPES

Supported in HP-UX 7.x, 8.x for HP-UX 6.x compatibility.

HP-UX compatibility is not required for 10.x.

11i

No

 

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2000 Hewlett-Packard Development Company, L.P.