Jump to content
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
HP.com home

Transition Impacts

Tru64 UNIX Software Transition Kit


» HP STK home
» Home
» Overview
» Tools
» Documentation
» Transition impacts
» Identifier types
» Impact list
» Porting to HP-UX
» Glossary
» Help
» Send us feedback
Site maps
» Tru64 UNIX STK
Content starts here

critical impact:

libmach - not supported (CrUn366)

LIB Impacts

Problem description

The libmach library exists on Tru64 UNIX but not on HP-UX.

The libmach library provides interfaces to the Mach services in the Tru64 UNIX kernel, which is based on Carnegie-Mellon University's Mach V2.5 kernel design. The HP-UX kernel is not based on Mach.

The Mach interfaces are typically only called by system utilities and libraries. When an application links with the libmach library, it is usually for one of the following reasons:

  1. The application uses POSIX threads and has an out of date makefile. The libpthread library depended on libmach in early versions of Tru64 UNIX, but that dependency ended with Tru64 UNIX Version 4.0D.
  2. The application uses processor sets. The libpset library has always depended on libmach.
  3. The application uses one of the two documented functions in libmach: bind_to_cpu or bind_to_cpu_id. The functions bind all the threads in a process to the specified CPU.


Programming Libraries-lmach C/C++ Functionsbind_to_cpu_id  
C/C++ Functionsbind_to_cpu Programming Librarieslibmach.so  

See also

Solution description

Here are solutions for each case:

  1. Remove -lmach and -lexc from your makefile on HP-UX. If you are linking an executable, then instead of explicitly specifying the thread libraries and their dependencies in your makefiles, consider linking with the compiler's -pthread option on Tru64 UNIX and -mt option on HP-UX. Those options will add the appropriate thread libraries to the link command line.
  2. Migrate to HP-UX processor sets.
  3. Migrate to one of the following HP-UX functions:
    • pset_bind binds a process to a processor set
    • pthread_pset_bind_np binds a thread to a processor set
    • pthread_processor_bind_np binds a thread to a processor
    • pthread_ldom_bind_np binds a thread to a locality domain.

See also

Problem summary

classifications source types OS release severity type
LIB Make, Script any HP-UX 11i version critical unavailable
Printable version
Privacy statement Using this site means you accept its terms Feedback to DSPP
© 2007 Hewlett-Packard Development Company, L.P.