1 Linux Standard Base Specification for the ItaniumTM Architecture 1.3 2 3 Copyright © 2002 Free Standards Group 4 5 Permission is granted to copy, distribute and/or modify this document under the 6 terms of the GNU Free Documentation License, Version 1.1; with no Invariant 7 Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of 8 the license is included in the section entitled "GNU Free Documentation 9 License". 10 11 Portions of the text were taken from other copyrighted documents in accordance 12 with the respective licenses of those documents. 13 14 Linux is a trademark of Linus Torvalds. 15 16 UNIX a registered trademark of the Open Group in the United States and other 17 countries. 18 19 LSB is a trademark of the Free Standards Group in the USA and other countries. 20 21 Intel386 and Itanium are trademarks of Intel Corporation. 22 23 OpenGL is a registered trademark of Silicon Graphics, Inc. 24 25 ------------------------------------------------------------------------------- 26 27 Table of Contents 28 I. Introduction 29 30 1. Introduction 31 32 Introduction 33 Purpose 34 Related Standards 35 Relevant Libraries 36 How to Use this Standard 37 Definitions 38 Terminology 39 40 II. Low Level System Information 41 42 2. Machine Interface 43 44 Processor Architecture 45 Data Representation 46 47 3. Function Calling Sequence 48 49 CPU Registers 50 Floating Point Registers 51 Stack Frame 52 Arguments 53 Return Values 54 55 4. Operating System Interface 56 57 Processor Execution Mode 58 Exception Interface 59 Signal Delivery 60 61 5. Process Initialization 62 63 Special Registers 64 Process Stack (on entry) 65 Auxiliary Vector 66 Environment 67 68 6. Coding Examples 69 70 Code Model Overview/Architecture Constraints 71 Position-Independent Function Prologue 72 Data Objects 73 Function Calls 74 Branching 75 76 7. C Stack Frame 77 78 Variable Argument List 79 Dynamic Allocation of Stack Space 80 81 8. Debug Information 82 83 III. Object Format 84 85 9. ELF Header 86 87 Machine Information 88 89 10. Sections 90 91 Special Sections 92 Linux Special Sections 93 Section Types 94 Section Attribute Flags 95 Special Section Types 96 97 11. Symbol Table 98 12. Relocation 99 100 Relocation Types 101 102 IV. Program Loading and Dynamic Linking 103 104 13. Program Header 105 106 Types 107 Flags 108 109 14. Program Loading 110 15. Dynamic Linking 111 112 Program Interpreter/Dynamic Linker 113 Dynamic Section 114 Global Offset Table 115 Shared Object Dependencies 116 Function Addresses 117 Procedure Linkage Table 118 Initialization and Termination Functions 119 120 V. Base Libraries 121 122 16. Libraries 123 124 Interfaces for libc 125 Data Definitions for libc 126 Interfaces for libm 127 Data Definitions for libm 128 Interfaces for libpthread 129 Data Definitions for libpthread 130 Interfaces for libdl 131 Data Definitions for libdl 132 Interfaces for libcrypt 133 Data Definitions for libcrypt 134 135 VI. Package Format and Installation 136 137 17. Software Installation 138 139 Package Architecture Considerations 140 141 A. Alphabetical Listing of Interfaces 142 B. GNU Free Documentation License 143 144 PREAMBLE 145 APPLICABILITY AND DEFINITIONS 146 VERBATIM COPYING 147 COPYING IN QUANTITY 148 MODIFICATIONS 149 COMBINING DOCUMENTS 150 COLLECTIONS OF DOCUMENTS 151 AGGREGATION WITH INDEPENDENT WORKS 152 TRANSLATION 153 TERMINATION 154 FUTURE REVISIONS OF THIS LICENSE 155 How to use this License for your documents 156 157 C. Build Environment 158 159 Introduction 160 Build Environment 161 162 Pre-Defined Preprocessor Symbols 163 Pre-Defined Preprocessor Assertions 164 Compiler Pragmas 165 166 ILP32 ABI 167 Synchronization Primitives 168 Thread-Local Storage 169 170 List of Tables 171 1-1. Related Standards 172 1-2. Standard Library Names 173 2-1. Scalar Types 174 9-1. Additional Processor-Specific Flags 175 10-1. ELF Special Sections 176 10-2. Additional Special Sections 177 16-1. libc Definition 178 16-2. libc - RPC Function Interfaces 179 16-3. libc - System Calls Function Interfaces 180 16-4. libc - System Calls Deprecated Function Interfaces 181 16-5. libc - Standard I/O Function Interfaces 182 16-6. libc - Standard I/O Deprecated Function Interfaces 183 16-7. libc - Standard I/O Data Interfaces 184 16-8. libc - Signal Handling Function Interfaces 185 16-9. libc - Signal Handling Data Interfaces 186 16-10. libc - Localization Functions Function Interfaces 187 16-11. libc - Localization Functions Deprecated Function Interfaces 188 16-12. libc - Localization Functions Data Interfaces 189 16-13. libc - Socket Interface Function Interfaces 190 16-14. libc - Wide Characters Function Interfaces 191 16-15. libc - String Functions Function Interfaces 192 16-16. libc - IPC Functions Function Interfaces 193 16-17. libc - Regular Expressions Function Interfaces 194 16-18. libc - Regular Expressions Data Interfaces 195 16-19. libc - Character Type Functions Function Interfaces 196 16-20. libc - Character Type Functions Data Interfaces 197 16-21. libc - Time Manipulation Function Interfaces 198 16-22. libc - Time Manipulation Data Interfaces 199 16-23. libc - Terminal Interface Functions Function Interfaces 200 16-24. libc - System Database Interface Function Interfaces 201 16-25. libc - System Database Interface Deprecated Function Interfaces 202 16-26. libc - Language Support Function Interfaces 203 16-27. libc - Large File Support Function Interfaces 204 16-28. libc - Large File Support Deprecated Function Interfaces 205 16-29. libc - Standard Library Function Interfaces 206 16-30. libc - Standard Library Data Interfaces 207 16-31. libm Definition 208 16-32. libm - Math Function Interfaces 209 16-33. libm - Math Data Interfaces 210 16-34. libpthread Definition 211 16-35. libpthread - Posix Threads Function Interfaces 212 16-36. libdl Definition 213 16-37. libcrypt Definition 214 C-1. Pre-Defined Preprocessor Symbols 215 C-2. Intrinsic Functions 216 217 List of Figures 218 2-1. Structure Smaller Than A Word 219 2-2. No Padding 220 2-3. Internal and Tail Padding 221 2-4. Bit-Field Ranges 222 223 I. Introduction 224 225 Table of Contents 226 1. Introduction 227 228 ------------------------------------------------------------------------------- 229 230 Chapter 1. Introduction 231 232 Introduction 233 234 This is version 1.3 of the Linux Standard Base Specification for the ItaniumTM 235 Architecture. An implementation of this version of the specification may not 236 claim to be an implementation of the Linux Standard Base unless it has 237 successfully completed the compliance process as defined by the Free Standards 238 Group. 239 240 ------------------------------------------------------------------------------- 241 242 Purpose 243 244 The Linux Standard Base (LSB) defines a system interface for compiled 245 applications and a minimal environment for support of installation scripts. Its 246 purpose is to enable a uniform industry standard environment for high-volume 247 applications conforming to the LSB. 248 249 The LSB defines a binary interface for application programs that are compiled 250 and packaged for LSB-conforming implementations on many different hardware 251 architectures. Since a binary specification must include information specific 252 to the computer processor architecture for which it is intended, it is not 253 possible for a single document to specify the interface for all possible 254 LSB-conforming implementations. Therefore, the LSB is a family of 255 specifications, rather than a single one. 256 257 The LSB is composed of two basic parts: A common part of the specification 258 describes those parts of the interface that remain constant across all hardware 259 implementations of the LSB, and an architecture-specific part of the 260 specification describes the parts of the specification that are specific to a 261 particular processor architecture. Together, the generic LSB and the 262 architecture-specific supplement for a single hardware architecture provide a 263 complete interface specification for compiled application programs on systems 264 that share a common hardware architecture. 265 266 This document is the architecture-specific supplement. It must be used in 267 conjunction with the generic LSB. This document provides architecture-specific 268 information that supplements the generic LSB as well as additional information 269 that is not found in the generic LSB. 270 271 This document should be used in conjunction with the documents it references. 272 This document enumerates the system components it includes, but descriptions of 273 those components may be included entirely or partly in this document, partly in 274 other documents, or entirely in other reference documents. For example, the 275 section that describes system service routines includes a list of the system 276 routines supported in this interface, formal declarations of the data 277 structures they use that are visible to applications, and a pointer to the 278 underlying referenced specification for information about the syntax and 279 semantics of each call. Only those routines not described in standards 280 referenced by this document, or extensions to those standards, are described in 281 the detail. Information referenced in this way is as much a part of this 282 document as is the information explicitly included here. 283 284 ------------------------------------------------------------------------------- 285 286 Related Standards 287 288 The specifications listed below are referenced in whole or in part by the Linux 289 Standard Base. Such references may be normative or non-normative; a reference 290 to specification shall only be considered normative if it is explicitly cited 291 as such. The LSB may make normative references to a portion of these 292 specifications (that is, to define a specific function or group of functions); 293 in such cases, only the explicitly referenced portion of the specification is 294 to be considered normative. 295 296 Table 1-1. Related Standards 297 298 +-----------------------------------------------------------------------------+ 299 |System V Application Binary Interface - DRAFT -|http://www.caldera.com/ | 300 |22 June 2000 |developers/gabi/2000-07-17/ | 301 | |contents.html | 302 |-----------------------------------------------+-----------------------------| 303 |DWARF Debugging Information Format, Revision | | 304 |2.0.0 (July 27, 1993) | | 305 |-----------------------------------------------+-----------------------------| 306 |Filesystem Hierarchy Standard (FHS) 2.2 |http://www.pathname.com/fhs/ | 307 |-----------------------------------------------+-----------------------------| 308 |IEEE Standard for Binary Floating-Point |http://www.ieee.org/ | 309 |Arithmetic | | 310 |-----------------------------------------------+-----------------------------| 311 |System V Application Binary Interface, Edition |http://www.caldera.com/ | 312 |4.1 |developers/devspecs/ | 313 | |gabi41.pdf | 314 |-----------------------------------------------+-----------------------------| 315 |Intel® Itanium TM Processor-specific |http://developer.intel.com/ | 316 |Application Binary Interface |design/itanium/downloads/ | 317 | |245370.htm | 318 |-----------------------------------------------+-----------------------------| 319 |Itanium TM Software Conventions & Runtime |http://developer.intel.com/ | 320 |Architecture Guide |design/itanium/downloads/ | 321 | |24535803s.htm | 322 |-----------------------------------------------+-----------------------------| 323 |Itanium TM Architecture Software Developer's |http://developer.intel.com/ | 324 |Manual Volume 1: Application Architecture |design/itanium/downloads/ | 325 | |24531703s.htm | 326 |-----------------------------------------------+-----------------------------| 327 |Itanium TM Architecture Software Developer's |http://developer.intel.com/ | 328 |Manual Volume 2: System Architecture |design/itanium/downloads/ | 329 | |24531803s.htm | 330 |-----------------------------------------------+-----------------------------| 331 |Itanium TM Architecture Software Developer's |http://developer.intel.com/ | 332 |Manual Volume 3: Instruction Set Reference |design/itanium/downloads/ | 333 | |24531903s.htm | 334 |-----------------------------------------------+-----------------------------| 335 |IA-64 Processor Reference: Intel® Itanium TM |http://developer.intel.com/ | 336 |Processor Reference Manual for Software |design/itanium/downloads/ | 337 |Development |24532003s.htm | 338 |-----------------------------------------------+-----------------------------| 339 |ISO/IEC 9899: 1990, Programming Languages --C | | 340 |-----------------------------------------------+-----------------------------| 341 |ISO/IEC 9899: 1999, Programming Languages --C | | 342 |-----------------------------------------------+-----------------------------| 343 |ISO/IEC 14882: 1998(E) Programming languages | | 344 |--C++ | | 345 |-----------------------------------------------+-----------------------------| 346 |Linux Assigned Names And Numbers Authority |http://www.lanana.org/ | 347 |-----------------------------------------------+-----------------------------| 348 |Large File Support |http://www.UNIX-systems.org/ | 349 | |version2/whatsnew/ | 350 | |lfs20mar.html | 351 |-----------------------------------------------+-----------------------------| 352 |LI18NUX 2000 Globalization Specification, |http://www.li18nux.org/docs/ | 353 |Version 1.0 with Amendment 4 |html/LI18NUX-2000-amd4.htm | 354 |-----------------------------------------------+-----------------------------| 355 |Linux Standard Base |http://www.linuxbase.org/spec| 356 | |/ | 357 |-----------------------------------------------+-----------------------------| 358 |OpenGL® Application Binary Interface for Linux |http://oss.sgi.com/projects/ | 359 | |ogl-sample/ABI/ | 360 |-----------------------------------------------+-----------------------------| 361 |OSF-RFC 86.0 |http://www.opengroup.org/tech| 362 | |/rfc/mirror-rfc/rfc86.0.txt | 363 |-----------------------------------------------+-----------------------------| 364 |IEEE Std POSIX 1003.2-1992 (ISO/IEC |http://www.ieee.org/ | 365 |9945-2:1993) | | 366 |-----------------------------------------------+-----------------------------| 367 |POSIX 1003.1c |http://www.ieee.org/ | 368 |-----------------------------------------------+-----------------------------| 369 |RFC 1952: GZIP file format specification |http://www.ietf.org/rfc/ | 370 |version 4.3 |rfc1952.txt | 371 |-----------------------------------------------+-----------------------------| 372 |RFC 2440: OpenPGP Message Format | | 373 |-----------------------------------------------+-----------------------------| 374 |CAE Specification, May 1996, X/Open Curses, |http://www.opengroup.org/ | 375 |Issue 4, Version 2 (ISBN: 1-85912-171-3, C610),|publications/catalog/un.htm | 376 |plus Corrigendum U018 | | 377 |-----------------------------------------------+-----------------------------| 378 |CAE Specification, January 1997, System |http://www.opengroup.org/ | 379 |Interface Definitions (XBD),Issue 5 (ISBN: |publications/catalog/un.htm | 380 |1-85912-186-1, C605) | | 381 |-----------------------------------------------+-----------------------------| 382 |CAE Specification, January 1997, Commands and |http://www.opengroup.org/ | 383 |Utilities (XCU), Issue 5 (ISBN: 1-85912-191-8, |publications/catalog/un.htm | 384 |C604) | | 385 |-----------------------------------------------+-----------------------------| 386 |CAE Specification, February 1997, Networking |http://www.opengroup.org/ | 387 |Services (XNS), Issue 5(ISBN: 1-85912-165-9, | | 388 |C523) | | 389 |-----------------------------------------------+-----------------------------| 390 |CAE Specification, January 1997, System |http://www.opengroup.org/ | 391 |Interfaces and Headers (XSH),Issue 5 (ISBN: |publications/catalog/un.htm | 392 |1-85912-181-0, C606) | | 393 |-----------------------------------------------+-----------------------------| 394 |The Single UNIX® Specification(SUS) Version 1 |http://www.opengroup.org/ | 395 |(UNIX 95) System Interfaces & Headers |publications/catalog/un.htm | 396 |-----------------------------------------------+-----------------------------| 397 |The Single UNIX® Specification(SUS) Version 3 |http://www.unix.org/version3/| 398 |-----------------------------------------------+-----------------------------| 399 |System V Interface Definition, Issue 3 (ISBN | | 400 |0201566524) | | 401 |-----------------------------------------------+-----------------------------| 402 |System V Interface Definition,Fourth Edition | | 403 |-----------------------------------------------+-----------------------------| 404 |Double Buffer Extension Library |http://www.x.org/ | 405 |-----------------------------------------------+-----------------------------| 406 |X Display Power Management Signaling (DPMS) |http://www.x.org/ | 407 |Extension, Library Specification | | 408 |-----------------------------------------------+-----------------------------| 409 |X Record Extension Library |http://www.x.org/ | 410 |-----------------------------------------------+-----------------------------| 411 |Security Extension Specification, Version 7.1 |http://www.x.org/ | 412 |-----------------------------------------------+-----------------------------| 413 |X Nonrectangular Window Shape Extension Library|http://www.x.org/ | 414 |Version 1.0 | | 415 |-----------------------------------------------+-----------------------------| 416 |MIT-SHM--The MIT Shared Memory Extension |http://www.x.org/ | 417 |-----------------------------------------------+-----------------------------| 418 |X Synchronization Extension Library |http://www.x.org/ | 419 |-----------------------------------------------+-----------------------------| 420 |XTEST Extension Library |http://www.x.org/ | 421 |-----------------------------------------------+-----------------------------| 422 |X11R6.4 X Inter-Client Exchange (ICE) Protocol |http://www.x.org/ | 423 |-----------------------------------------------+-----------------------------| 424 |X11R6.4 X11 Input Extension Library |http://www.x.org/ | 425 |-----------------------------------------------+-----------------------------| 426 |X11R6.4 Xlib - C library |http://www.x.org/ | 427 |-----------------------------------------------+-----------------------------| 428 |X/Open Portability Guide, Issue 4 |http://www.opengroup.org/ | 429 |-----------------------------------------------+-----------------------------| 430 |X11R6.4 X Session Management Library |http://www.x.org/ | 431 |-----------------------------------------------+-----------------------------| 432 |X11R6.4 X Toolkit Intrinsics |http://www.x.org/ | 433 |-----------------------------------------------+-----------------------------| 434 |zlib 1.1.3 Manual |http://www.gzip.org/zlib/ | 435 +-----------------------------------------------------------------------------+ 436 ------------------------------------------------------------------------------- 437 438 Relevant Libraries 439 440 The libraries listed here shall be available on a Linux Standard Base system. 441 This list is an addition to the list in the general specification. 442 443 Table 1-2. Standard Library Names 444 445 +--------------------------------+ 446 |Library |Runtime Name | 447 |----------+---------------------| 448 |libm |libm.so.6.1 | 449 |----------+---------------------| 450 |libdl |libdl.so.2 | 451 |----------+---------------------| 452 |libcrypt |libcrypt.so.1 | 453 |----------+---------------------| 454 |libc |libc.so.6.1 | 455 |----------+---------------------| 456 |libpthread|libpthread.so.0 | 457 |----------+---------------------| 458 |proginterp|/lib/ld-lsb-ia64.so.1| 459 +--------------------------------+ 460 461 These libraries will be in an implementation-dependent directory which the 462 dynamic linker will search by default. 463 464 ------------------------------------------------------------------------------- 465 466 How to Use this Standard 467 468 The complete LSB specification is composed of a generic LSB specification and 469 this supplemental processor-specific specification. These two documents 470 constitute a specification that should be used in conjunction with the 471 publicly-available standards documents it references. The LSB enumerates the 472 system components it includes, but descriptions of those components may be 473 included entirely in the LSB, partly in the LSB and partly in other documents, 474 or entirely in other reference documents. 475 476 ------------------------------------------------------------------------------- 477 478 Definitions 479 480 gLSB 481 482 The common part of the LSB Specification that describes those parts of the 483 interface that remain constant across all hardware implementations of the 484 LSB. 485 486 archLSB 487 488 The architectural part of the LSB Specification which describes the 489 specific parts of the interface that are platform specific. The archLSB is 490 complementary to the gLSB. 491 492 LSB Implementation Conformance 493 494 An implementation satisfying the following requirements: 495 496 1. The implementation shall implement fully the architecture described in 497 the hardware manual for the target processor architecture. 498 499 2. The implementation shall be capable of executing compiled applications 500 having the format and using the system interfaces described in this 501 document. 502 503 3. The implementation shall provide libraries containing the interfaces 504 specified by this document, and shall provide a dynamic linking 505 mechanism that allows these interfaces to be attached to applications 506 at runtime. All the interfaces shall behave as specified in this 507 document. 508 509 4. The map of virtual memory provided by the implementation shall conform 510 to the requirements of this document. 511 512 5. The implementation's low-level behavior with respect to function call 513 linkage, system traps, signals, and other such activities shall conform 514 to the formats described in this document. 515 516 6. The implementation shall provide all of the mandatory interfaces in 517 their entirety. 518 519 7. The implementation may provide one or more of the optional interfaces. 520 Each optional interface that is provided shall be provided in its 521 entirety. The product documentation shall state which optional 522 interfaces are provided. 523 524 8. The implementation shall provide all files and utilities specified as 525 part of this document in the format defined here and in other 526 referenced documents. All commands and utilities shall behave as 527 required by this document. The implementation shall also provide all 528 mandatory components of an application's runtime environment that are 529 included or referenced in this document. 530 531 9. The implementation, when provided with standard data formats and values 532 at a named interface, shall provide the behavior defined for those 533 values and data formats at that interface. However, a conforming 534 implementation may consist of components which are separately packaged 535 and/or sold. For example, a vendor of a conforming implementation might 536 sell the hardware, operating system, and windowing system as separately 537 packaged items. 538 539 10. The implementation may provide additional interfaces with different 540 names. It may also provide additional behavior corresponding to data 541 values outside the standard ranges, for standard named interfaces. 542 543 LSB Application Conformance 544 545 An application with the following characteristics: 546 547 1. Its executable files are either shell scripts or object files in the 548 format defined for the Object File Format system interface. 549 550 2. Its object files participate in dynamic linking as defined in the 551 Program Loading and Linking System interface. 552 553 3. It employs only the instructions, traps, and other low-level facilities 554 defined in the Low-Level System interface as being for use by 555 applications. 556 557 4. If it requires any optional interface defined in this document in order 558 to be installed or to execute successfully, the requirement for that 559 optional interface is stated in the application's documentation. 560 561 5. It does not use any interface or data format that is not required to be 562 provided by a conforming implementation, unless: 563 564 o If such an interface or data format is supplied by another 565 application through direct invocation of that application during 566 execution, that application is in turn an LSB conforming 567 application. 568 569 o The use of that interface or data format, as well as its source, is 570 identified in the documentation of the application. 571 572 6. It must not use any values for a named interface that are reserved for 573 vendor extensions. 574 575 A strictly conforming application does not require or use any interface, 576 facility, or implementation-defined extension that is not defined in this 577 document in order to be installed or to execute successfully. 578 579 Rationale 580 581 An LSB conforming application is expected to have no dependencies on any 582 vendor extensions to this document. The most common such extensions are 583 additional function entry points and additional libraries other than the 584 ones defined in this document. If an application requires such extensions, 585 it is not portable, since other LSB conforming implementations may not 586 provide those extensions. 587 588 An LSB conforming application is required to use system services on the 589 implementation on which it is running, rather than importing system 590 routines from some other implementation. Thus, it must link dynamically to 591 any routines in the implementation that perform system traps to kernel 592 services. 593 594 It is to be expected that some applications may be companion applications 595 to other applications. For example, a query application may be a companion 596 to a database application; a preprocessor may be an adjunct to one or more 597 compilers; a data reformatter may convert data from one document manager to 598 another. In such cases, the application may or may not be LSB conforming, 599 regardless of whether the other application on which it is dependent is LSB 600 conforming. If such an application merely uses data produced by another 601 application, the application's compliance is independent of the other 602 application's compliance. If such an application actually invokes another 603 application during execution (as, for example, a third-party math library), 604 the invoking application is LSB conforming only if it also constitutes a 605 LSB conforming application in combination with the invoked application. 606 607 Shell Script 608 609 A file that is read by an interpreter (e.g., awk). The first line of the 610 shell script includes a reference to its interpreter binary. 611 612 ------------------------------------------------------------------------------- 613 614 Terminology 615 616 can 617 618 Describes a permissible optional feature or behavior available to the user 619 or application. The feature or behavior is mandatory for an implementation 620 that conforms to this document. An application can rely on the existence of 621 the feature or behavior. 622 623 implementation-defined 624 625 Describes a value or behavior that is not defined by this document but is 626 selected by an implementor. The value or behavior may vary among 627 implementations that conform to this document. An application should not 628 rely on the existence of the value or behavior. An application that relies 629 on such a value or behavior cannot be assured to be portable across 630 conforming implementations. The implementor shall document such a value or 631 behavior so that it can be used correctly by an application. 632 633 may 634 635 Describes a feature or behavior that is optional for an implementation that 636 conforms to this document. An application should not rely on the existence 637 of the feature or behavior. An application that relies on such a feature or 638 behavior cannot be assured to be portable across conforming 639 implementations. 640 641 To avoid ambiguity, the opposite of may is expressed as need not, instead 642 of may not. 643 644 must 645 646 Describes a feature or behavior that is mandatory for an application or 647 user. An implementation that conforms to this document shall support this 648 feature or behavior. 649 650 shall 651 652 Describes a feature or behavior that is mandatory for an implementation 653 that conforms to this document. An application can rely on the existence of 654 the feature or behavior. 655 656 should 657 658 For an implementation that conforms to this document, describes a feature 659 or behavior that is recommended but not mandatory. An application should 660 not rely on the existence of the feature or behavior. An application that 661 relies on such a feature or behavior cannot be assured to be portable 662 across conforming implementations. 663 664 For an application, describes a feature or behavior that is recommended 665 programming practice for optimum portability. 666 667 undefined 668 669 Describes the nature of a value or behavior not defined by this document 670 which results from use of an invalid program construct or invalid data 671 input. The value or behavior may vary among implementations that conform to 672 this document. An application should not rely on the existence or validity 673 of the value or behavior. An application that relies on any particular 674 value or behavior cannot be assured to be portable across conforming 675 implementations. 676 677 unspecified 678 679 Describes the nature of a value or behavior not specified by this document 680 which results from use of a valid program construct or valid data input. 681 The value or behavior may vary among implementations that conform to this 682 document. An application should not rely on the existence or validity of 683 the value or behavior. An application that relies on any particular value 684 or behavior cannot be assured to be portable across conforming 685 implementations. 686 687 will 688 689 Same meaning as shall; shall is the preferred term. 690 691 II. Low Level System Information 692 693 Table of Contents 694 2. Machine Interface 695 3. Function Calling Sequence 696 4. Operating System Interface 697 5. Process Initialization 698 6. Coding Examples 699 7. C Stack Frame 700 8. Debug Information 701 702 ------------------------------------------------------------------------------- 703 704 Chapter 2. Machine Interface 705 706 Processor Architecture 707 708 The ItaniumTM Architecture is specified by the following documents 709 710 * Itanium TM Architecture Software Developer's Manual Volume 1: Application 711 Architecture 712 713 * Itanium TM Architecture Software Developer's Manual Volume 2: System 714 Architecture 715 716 * Itanium TM Architecture Software Developer's Manual Volume 3: Instruction 717 Set Reference 718 719 * IA-64 Processor Reference: Intel® Itanium TM Processor Reference Manual for 720 Software Development 721 722 * Itanium TM Software Conventions & Runtime Architecture Guide 723 724 * Intel® Itanium TM Processor-specific Application Binary Interface 725 726 Only the features of the ItaniumTM processor instruction set may be assumed to 727 be present. An application is responsible for determining if any additional 728 instruction set features are available before using those additional features. 729 If a feature is not present, then the application may not use it. 730 731 There are some features of the ItaniumTM processor architecture that need not 732 be supported by a conforming implementation. These are described in this 733 chapter. A conforming application shall not rely on these features. 734 735 Applications conforming to this specification must provide feedback to the user 736 if a feature that is required for correct execution of the application is not 737 present. Applications conforming to this specification should attempt to 738 execute in a diminished capacity if a required feature is not present. 739 740 This specfication does not provide any performance guarantees of a conforming 741 system. A system conforming to this specification may be implemented in either 742 hardware or software. 743 744 This specification describes only LP64 (i.e. 32-bit integers, 64-bit longs and 745 pointers) based implementations. Implementations may also provide ILP32 (32-bit 746 integers, longs, and pointers), but conforming applications shall not rely on 747 support for ILP32. See section 1.2 of the Intel® Itanium TM Processor-specific 748 Application Binary Interface for further information. 749 750 ------------------------------------------------------------------------------- 751 752 Data Representation 753 754 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 4. 755 756 Within this specification, the term byte refers to an 8-bit object, the term 757 halfword refers to a 16-bit object, the term word refers to a 32-bit object, 758 the term doubleword refers to a 64-bit object, and the term quadword refers to 759 a 128-bit object. Although the ItaniumTM architecture also supports 120-bit 760 addressable objects, this specification does not require LSB-conforming 761 implementations to provide support for these objects. 762 763 ------------------------------------------------------------------------------- 764 765 Byte Ordering 766 767 LSB-conforming applications shall use little-endian byte ordering. 768 LSB-conforming implementations may support big-endian applications. 769 770 ------------------------------------------------------------------------------- 771 772 Fundamental Types 773 774 Table 2-1 describes how fundemental C language data types shall be represented: 775 776 Table 2-1. Scalar Types 777 778 +--------------------------------------------------------------------------+ 779 |Type |C |sizeof|Alignment (bytes)|Notes | 780 |--------------+-------------------+------+-----------------+--------------| 781 | |char | | | | 782 | |-------------------| | | | 783 | |signed char |1 |1 | | 784 | |-------------------| | | | 785 | |unsigned char | | | | 786 | |-------------------+------+-----------------+--------------| 787 | |short | | | | 788 | |-------------------| | | | 789 | |signed short |2 |2 | | 790 | |-------------------| | | | 791 | |unsigned short | | | | 792 | |-------------------+------+-----------------+--------------| 793 | |int | | | | 794 | |-------------------| | | | 795 |Integral |signed int |4 |4 | | 796 | |-------------------| | | | 797 | |unsigned int | | | | 798 | |-------------------+------+-----------------+--------------| 799 | |long | | | | 800 | |-------------------| | | | 801 | |signed long |8 |8 | | 802 | |-------------------| | | | 803 | |unsigned long | | | | 804 | |-------------------+------+-----------------+--------------| 805 | |long long | | | | 806 | |-------------------| | | | 807 | |signed long long |8 |8 |See Note Below| 808 | |-------------------| | | | 809 | |unsigned long long | | | | 810 |--------------+-------------------+------+-----------------+--------------| 811 |Pointer |any-type * | | | | 812 | |-------------------|8 |8 | | 813 | |any-type (*)() | | | | 814 |--------------+-------------------+------+-----------------+--------------| 815 | |float |4 |4 | | 816 | |-------------------+------+-----------------+--------------| 817 |Floating-Point|double |8 |8 | | 818 | |-------------------+------+-----------------+--------------| 819 | |long double |16 |16 | | 820 +--------------------------------------------------------------------------+ 821 822 Note: Support for the long long data type is dependent on support for 823 ISO9899:1999 C language. This standard is not required for LSB-conformance, 824 but this data type is important when developing applications for the 825 ItaniumTM architecture. The GNU Compiler Collection (gcc) includes support 826 for long long of ISO9899:1999. 827 828 A null pointer (for all types) shall have the value zero. 829 830 ------------------------------------------------------------------------------- 831 832 Aggregates and Unions 833 834 Aggregates (structures and arrays) and unions assume the alignment of their 835 most strictly aligned component. The size of any object, including aggregates 836 and unions, shall always be a multiple of the object's alignment. An array uses 837 the same alignment as its elements. Structure and union objects may require 838 padding to meet size and element constraints. The contents of such padding is 839 undefined. 840 841 * An entire structure or union object shall be aligned on the same boundary 842 as its most strictly aligned member. 843 844 * Each member shall be assigned to the lowest available offset with the 845 appropriate alignment. This may require internal padding, depending on the 846 previous member. 847 848 * A structure's size shall be increased, if necessary, to make it a multiple 849 of the alignment. This may require tail padding, depending on the last 850 member. 851 852 A conforming application shall not read padding. 853 854 Figure 2-1. Structure Smaller Than A Word 855 856 +--------------------------------------------------------------------+ 857 | struct { | 858 | char c; | 859 | } | 860 | | 861 |--------------------------------------------------------------------| 862 | Byte aligned, sizeof is 1 | 863 +--------------------------------------------------------------------+ 864 +----------------------------+ 865 | Offset| Byte 0 | 866 |-------------+--------------| 867 | 0| c^0 | 868 +----------------------------+ 869 870 Figure 2-2. No Padding 871 872 +--------------------------------------------------------------------+ 873 | struct { | 874 | char c; | 875 | char d; | 876 | short s; | 877 | int i; | 878 | long l; | 879 | } | 880 | | 881 |--------------------------------------------------------------------| 882 | Doubleword Aligned, sizeof is 16 | 883 +--------------------------------------------------------------------+ 884 +-----------------------------------------------------------------------------+ 885 | Offset| Byte 3 | Byte 2 | Byte 1 | Byte 0 | | | | | 886 |-------------+---------------------------+-------------+-------------+-+-+-+-| 887 | 0| s^2 | d^1 | c^0 | | | | | 888 |-------------+-------------------------------------------------------+-+-+-+-| 889 | 4| i^0 | | | | | 890 |-------------+-------------------------------------------------------+-+-+-+-| 891 | 8| | | | | | 892 |-------------| l^0 |-------| 893 | 12| | | 894 +-----------------------------------------------------------------------------+ 895 896 Figure 2-3. Internal and Tail Padding 897 898 +--------------------------------------------------------------------+ 899 | struct { | 900 | char c; | 901 | long l; | 902 | int i; | 903 | short s; | 904 | } | 905 | | 906 |--------------------------------------------------------------------| 907 | Doubleword Aligned, sizeof is 24 | 908 +--------------------------------------------------------------------+ 909 +-----------------------------------------------------------------------------+ 910 | Offset| Byte 3 | Byte 2 | Byte 1 | Byte 0 | | | | | 911 |-------------+-----------------------------------------+-------------+-+-+-+-| 912 | 0| pad^1 | c^0 | | | | | 913 |-------------+-------------------------------------------------------+-+-+-+-| 914 | 4| pad^1 | | | | | 915 |-------------+-------------------------------------------------------+-+-+-+-| 916 | 8| | | | | | 917 |-------------| l^0 |-------| 918 | 12| | | 919 |-------------+-------------------------------------------------------+-------| 920 | 16| i^0 | | | | | 921 |-------------+-------------------------------------------------------+-+-+-+-| 922 | 20| pad^2 | s^0 | | | | | 923 +-----------------------------------------------------------------------------+ 924 925 ------------------------------------------------------------------------------- 926 927 Bit Fields 928 929 C struct and union definitions may have bit-fields, which define integral 930 objects with a specified number of bits. 931 932 Bit fields that are declared with neither signed nor unsigned specifier shall 933 always be treated as unsigned. Bit fields obey the same size and alignment 934 rules as other structure and union members, with the following additional 935 properties: 936 937 * Bit-fields are allocated from right to left (least to most significant). 938 939 * A bit-field must entirely reside in a storage unit for its appropriate 940 type. A bit field shall never cross its unit boundary. 941 942 * Bit-fields may share a storage unit with other struct/union members, 943 including members that are not bit fields. Such other struct/union members 944 shall occupy different parts of the storage unit. 945 946 * The type of unnamed bit-fields shall not affect the alignment of a 947 structure or union, although individual bit-field member offsets shall obey 948 the alignment constraints. 949 950 Figure 2-4. Bit-Field Ranges 951 952 +------------------------------------------------------------------------------+ 953 | Bit-field Type | Width w | Range | 954 |--------------------+--------------------+------------------------------------| 955 |signed char | |-2^w-1 to 2^w-1-1 | 956 |char |1 to 8 |0 to 2^w-1 | 957 |unsigned char | |0 to 2^w-1 | 958 | | | | 959 |--------------------+--------------------+------------------------------------| 960 |signed short | |-2^w-1 to 2^w-1-1 | 961 |short |1 to 16 |0 to 2^w-1 | 962 |unsigned short | |0 to 2^w-1 | 963 | | | | 964 |--------------------+--------------------+------------------------------------| 965 |signed int | |-2^w-1 to 2^w-1-1 | 966 |int |1 to 32 |0 to 2^w-1 | 967 |unsigned int | |0 to 2^w-1 | 968 | | | | 969 |--------------------+--------------------+------------------------------------| 970 |signed long | |-2^w-1 to 2^w-1-1 | 971 |long |1 to 64 |0 to 2^w-1 | 972 |unsigned long | |0 to 2^w-1 | 973 | | | | 974 +------------------------------------------------------------------------------+ 975 976 ------------------------------------------------------------------------------- 977 978 Chapter 3. Function Calling Sequence 979 980 LSB-conforming applications shall use the procedure linkage and function 981 calling sequence as defined in Chapter 8.4 of the Itanium TM Software 982 Conventions & Runtime Architecture Guide. 983 984 ------------------------------------------------------------------------------- 985 986 CPU Registers 987 988 The CPU general and other registers are as defined in the Itanium TM 989 Architecture Software Developer's Manual Volume 1: Application Architecture 990 Section 3.1. 991 992 ------------------------------------------------------------------------------- 993 994 Floating Point Registers 995 996 The floating point registers are as defined in the Itanium TM Architecture 997 Software Developer's Manual Volume 1: Application Architecture Section 3.1. 998 999 ------------------------------------------------------------------------------- 1000 1001 Stack Frame 1002 1003 The stackframe layout is as described in the Itanium TM Software Conventions & 1004 Runtime Architecture Guide Chapter 8.4. 1005 1006 ------------------------------------------------------------------------------- 1007 1008 Arguments 1009 1010 The procedure argument passing mechanism is as described in the Itanium TM 1011 Software Conventions & Runtime Architecture Guide Chapter 8.5. 1012 1013 ------------------------------------------------------------------------------- 1014 1015 Integral/Pointer 1016 1017 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.5. 1018 1019 ------------------------------------------------------------------------------- 1020 1021 Floating Point 1022 1023 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.5. 1024 1025 ------------------------------------------------------------------------------- 1026 1027 Struct and Union Point 1028 1029 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.5. 1030 1031 ------------------------------------------------------------------------------- 1032 1033 Variable Arguments 1034 1035 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.5.4. 1036 1037 ------------------------------------------------------------------------------- 1038 1039 Return Values 1040 1041 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.6. 1042 1043 ------------------------------------------------------------------------------- 1044 1045 Void 1046 1047 Functions that return no value (void functions) are not required to put any 1048 particular value in any general register. 1049 1050 ------------------------------------------------------------------------------- 1051 1052 Integral/Pointer 1053 1054 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.6. 1055 1056 ------------------------------------------------------------------------------- 1057 1058 Floating Point 1059 1060 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.6. 1061 1062 ------------------------------------------------------------------------------- 1063 1064 Struct and Union 1065 1066 See Itanium TM Software Conventions & Runtime Architecture Guide Chapter 8.6 1067 (aggregate return values). Depending on the size (including any padding), 1068 aggregate data types may be passed in one or more general registers, or in 1069 memory. 1070 1071 ------------------------------------------------------------------------------- 1072 1073 Chapter 4. Operating System Interface 1074 1075 LSB-conforming applications shall use the Operating System Interfaces as 1076 defined in Chapter 3 of the Intel® Itanium TM Processor-specific Application 1077 Binary Interface. 1078 1079 ------------------------------------------------------------------------------- 1080 1081 Processor Execution Mode 1082 1083 Applications must assume that they will execute in the least privileged user 1084 mode (i.e. level 3). Other privilege levels are reserved for the Operating 1085 System. 1086 1087 ------------------------------------------------------------------------------- 1088 1089 Exception Interface 1090 1091 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1092 3.3.1. 1093 1094 ------------------------------------------------------------------------------- 1095 1096 Hardware Exception Types 1097 1098 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1099 3.3.1. 1100 1101 ------------------------------------------------------------------------------- 1102 1103 Software Trap Types 1104 1105 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1106 3.3.1. 1107 1108 ------------------------------------------------------------------------------- 1109 1110 Debugging Support 1111 1112 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1113 3.3.4. 1114 1115 ------------------------------------------------------------------------------- 1116 1117 Process Startup 1118 1119 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1120 3.3.5. 1121 1122 ------------------------------------------------------------------------------- 1123 1124 Signal Delivery 1125 1126 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1127 3.3.2. 1128 1129 ------------------------------------------------------------------------------- 1130 1131 Signal Handler Interface 1132 1133 See Intel® Itanium TM Processor-specific Application Binary Interface, section 1134 3.3.3. 1135 1136 ------------------------------------------------------------------------------- 1137 1138 Chapter 5. Process Initialization 1139 1140 LSB-conforming applications shall use the Process Startup as defined in Section 1141 3.3.5 of the Intel® Itanium TM Processor-specific Application Binary Interface. 1142 1143 ------------------------------------------------------------------------------- 1144 1145 Special Registers 1146 1147 Intel® Itanium TM Processor-specific Application Binary Interface, section 1148 3.3.5, defines required register initializations for process startup. 1149 1150 ------------------------------------------------------------------------------- 1151 1152 Process Stack (on entry) 1153 1154 As defined in Intel® Itanium TM Processor-specific Application Binary Interface 1155 , section 3.3.5, the return pointer register (rp) shall contain a valid return 1156 address, such that if the application program returns from the main entry 1157 routine, the implementation shall cause the application to exit normally, using 1158 the returned value as the exit status. Further, the unwind information for this 1159 "bottom of stack" routine in the implementation shall provide a mechanism for 1160 recognizing the bottom of the stack during a stack unwind. 1161 1162 ------------------------------------------------------------------------------- 1163 1164 Auxiliary Vector 1165 1166 The auxiliary vector conveys information from the operating system to the 1167 application. Only the terminating null auxiliary vector entry is required, but 1168 if any other entries are present, they shall be interpreted as follows. This 1169 vector is an array of the following structures. 1170 1171 typedef struct 1172 { 1173 long int a_type; /* Entry type */ 1174 union 1175 { 1176 long int a_val; /* Integer value */ 1177 void *a_ptr; /* Pointer value */ 1178 void (*a_fcn) (void); /* Function pointer value */ 1179 } a_un; 1180 } auxv_t; 1181 1182 The application shall interpret the a_un value according to the a_type. Other 1183 auxiliary vector types are reserved. 1184 1185 The a_type field shall contain one of the following values: 1186 1187 AT_NULL 1188 1189 The last entry in the array has type AT_NULL. The value in a_un is 1190 undefined. 1191 1192 AT_IGNORE 1193 1194 The value in a_un is undefined, and should be ignored. 1195 1196 AT_EXECFD 1197 1198 File descriptor of program 1199 1200 AT_PHDR 1201 1202 Program headers for program 1203 1204 AT_PHENT 1205 1206 Size of program header entry 1207 1208 AT_PHNUM 1209 1210 Number of program headers 1211 1212 AT_PAGESZ 1213 1214 System page size 1215 1216 AT_BASE 1217 1218 Base address of interpreter 1219 1220 AT_FLAGS 1221 1222 Flags 1223 1224 AT_ENTRY 1225 1226 Entry point of program 1227 1228 AT_NOTELF 1229 1230 Program is not ELF 1231 1232 AT_UID 1233 1234 Real uid 1235 1236 AT_EUID 1237 1238 Effective uid 1239 1240 AT_GID 1241 1242 Real gid 1243 1244 AT_EGID 1245 1246 Effective gid 1247 1248 AT_CLKTCK 1249 1250 Frequency of times() 1251 1252 AT_PLATFORM 1253 1254 String identifying platform. 1255 1256 AT_HWCAP 1257 1258 Machine dependent hints about processor capabilities. 1259 1260 AT_FPUCW 1261 1262 Used FPU control word 1263 1264 AT_DCACHEBSIZE 1265 1266 Data cache block size 1267 1268 AT_ICACHEBSIZE 1269 1270 Instruction cache block size 1271 1272 AT_UCACHEBSIZE 1273 1274 Unified cache block size 1275 1276 Note: The auxiliary vector is intended for passing information from the 1277 operating system to a program interpreter, such as /lib/ld-lsb-ia64.so.1. 1278 1279 ------------------------------------------------------------------------------- 1280 1281 Environment 1282 1283 Although a pointer to the environment vector should be available as a third 1284 argument to the main entry point, conforming applications should use getenv to 1285 access the environment. (See The Single UNIX® Specification(SUS) Version 1 1286 (UNIX 95) System Interfaces & Headers, Section exec). 1287 1288 ------------------------------------------------------------------------------- 1289 1290 Chapter 6. Coding Examples 1291 1292 LSB-conforming applications may implement fundamental operations using the 1293 Coding Examples as shown below. 1294 1295 Sample code sequences and coding conventions can be found in Itanium TM 1296 Software Conventions & Runtime Architecture Guide, Chapter 9. 1297 1298 ------------------------------------------------------------------------------- 1299 1300 Code Model Overview/Architecture Constraints 1301 1302 As defined in Intel® Itanium TM Processor-specific Application Binary Interface 1303 , relocatable files, executable files, and shared object files that are 1304 supplied as part of an application must use Position Independent Code, as 1305 described in Itanium TM Software Conventions & Runtime Architecture Guide, 1306 Chapter 12. 1307 1308 ------------------------------------------------------------------------------- 1309 1310 Position-Independent Function Prologue 1311 1312 See Itanium TM Software Conventions & Runtime Architecture Guide, Chapter 8.4. 1313 1314 ------------------------------------------------------------------------------- 1315 1316 Data Objects 1317 1318 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1319 5.3.4, and Itanium TM Software Conventions & Runtime Architecture Guide, 1320 Chapter 12.3. 1321 1322 ------------------------------------------------------------------------------- 1323 1324 Absolute Load & Store 1325 1326 Conforming applications shall not use absolute addressing. 1327 1328 ------------------------------------------------------------------------------- 1329 1330 Position Relative Load & Store 1331 1332 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1333 5.3.4. 1334 1335 ------------------------------------------------------------------------------- 1336 1337 Function Calls 1338 1339 See Itanium TM Software Conventions & Runtime Architecture Guide, Chapter 8.4. 1340 1341 Four types of procedure call are defined in Itanium TM Software Conventions & 1342 Runtime Architecture Guide, Chapter 8.3. Although special calling conventions 1343 are permitted, provided that the compiler and runtime library agree on these 1344 conventions, none are defined for this standard. Consequently, no application 1345 shall depend on a type of procedure call other than Direct Calls, Direct 1346 Dynamically Linked Calls, or Indirect Calls, as defined in Itanium TM Software 1347 Conventions & Runtime Architecture Guide, Chapter 8.3. 1348 1349 ------------------------------------------------------------------------------- 1350 1351 Absolute Direct Function Call 1352 1353 Conforming applications shall not use absolute addressing. 1354 1355 ------------------------------------------------------------------------------- 1356 1357 Absolute Indirect Function Call 1358 1359 Conforming applications shall not use absolute addressing. 1360 1361 ------------------------------------------------------------------------------- 1362 1363 Position-Independent Direct Function Call 1364 1365 See Itanium TM Software Conventions & Runtime Architecture Guide, Chapter 1366 8.4.1. 1367 1368 ------------------------------------------------------------------------------- 1369 1370 Position-Independent Indirect Function Call 1371 1372 See Itanium TM Software Conventions & Runtime Architecture Guide, Chapter 1373 8.4.2. 1374 1375 ------------------------------------------------------------------------------- 1376 1377 Branching 1378 1379 Branching is described in IA-64 Processor Reference: Intel® Itanium TM 1380 Processor Reference Manual for Software Development, Chapter 4.5. 1381 1382 ------------------------------------------------------------------------------- 1383 1384 Branch Instruction 1385 1386 See IA-64 Processor Reference: Intel® Itanium TM Processor Reference Manual for 1387 Software Development, Chapter 4.5. 1388 1389 ------------------------------------------------------------------------------- 1390 1391 Absolute switch() code 1392 1393 Conforming applications shall not use absolute addressing. 1394 1395 ------------------------------------------------------------------------------- 1396 1397 Position-Independent switch() code 1398 1399 Where there are several possible targets for a branch, the compiler may use a 1400 number of different code generation strategies. See Itanium TM Software 1401 Conventions & Runtime Architecture Guide, Chapter 9.1.7. 1402 1403 ------------------------------------------------------------------------------- 1404 1405 Chapter 7. C Stack Frame 1406 1407 Variable Argument List 1408 1409 See Itanium TM Software Conventions & Runtime Architecture Guide, Chapter 1410 8.5.2, and 8.5.4. 1411 1412 ------------------------------------------------------------------------------- 1413 1414 Dynamic Allocation of Stack Space 1415 1416 The C library alloca function should be used to dynamically allocate stack 1417 space. 1418 1419 ------------------------------------------------------------------------------- 1420 1421 Chapter 8. Debug Information 1422 1423 The LSB does not currently specify the format of Debug information. 1424 1425 III. Object Format 1426 1427 LSB-conforming implementations shall support an object file , called Executable 1428 and Linking Format (ELF) as defined by the System V Application Binary 1429 Interface, Edition 4.1, Intel® Itanium TM Processor-specific Application Binary 1430 Interface and as supplemented by the Linux Standard Base Specification and this 1431 document. 1432 1433 Table of Contents 1434 9. ELF Header 1435 10. Sections 1436 11. Symbol Table 1437 12. Relocation 1438 1439 ------------------------------------------------------------------------------- 1440 1441 Chapter 9. ELF Header 1442 1443 Machine Information 1444 1445 LSB-conforming applications shall use the Machine Information as defined in 1446 Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 4. 1447 Implementations shall support the LP64 model. It is unspecified whether or not 1448 the ILP32 model shall also be supported. 1449 1450 ------------------------------------------------------------------------------- 1451 1452 File Class 1453 1454 For LP64 relocatable objects, the file class value in e_ident[EI_CLASS] may be 1455 either ELFCLASS32 or ELFCLASS64, and a conforming linker must be able to 1456 process either or both classes. 1457 1458 ------------------------------------------------------------------------------- 1459 1460 Data Encoding 1461 1462 Implementations shall support 2's complement, little endian data encoding. The 1463 data encoding value in e_ident[EI_DATA] shall contain the value ELFDATA2LSB. 1464 1465 ------------------------------------------------------------------------------- 1466 1467 OS Identification 1468 1469 The OS Identification field e_ident[EI_OSABI] shall contain the value 1470 ELFOSABI_LINUX. 1471 1472 ------------------------------------------------------------------------------- 1473 1474 Processor Identification 1475 1476 The processor identification value held in e_machine shall contain the value 1477 EM_IA_64. 1478 1479 ------------------------------------------------------------------------------- 1480 1481 Processor Specific Flags 1482 1483 The flags field e_flags shall be as described in Intel® Itanium TM 1484 Processor-specific Application Binary Interface, Chapter 4.1.1.6. 1485 1486 The following additional processor-specific flags are defined: 1487 1488 Table 9-1. Additional Processor-Specific Flags 1489 1490 +------------------------------------------+ 1491 | Name | Value | 1492 |-------------------------------+----------| 1493 |EF_IA_64_LINUX_EXECUTABLE_STACK|0x00000001| 1494 +------------------------------------------+ 1495 1496 EF_IA_64_LINUX_EXECUTABLE_STACK 1497 1498 The stack and heap sections are executable. If this flag is not set, code 1499 can not be executed from the stack or heap. 1500 1501 ------------------------------------------------------------------------------- 1502 1503 Chapter 10. Sections 1504 1505 The ItaniumTM architecture defines two processor-specific section types, as 1506 described in Intel® Itanium TM Processor-specific Application Binary Interface, 1507 Chapter 4. 1508 1509 ------------------------------------------------------------------------------- 1510 1511 Special Sections 1512 1513 The following sections are defined in the Intel® Itanium TM Processor-specific 1514 Application Binary Interface. 1515 1516 Table 10-1. ELF Special Sections 1517 1518 +-----------------------------------------------------------------------+ 1519 | Name | Type | Attributes | 1520 |------------------+----------------+-----------------------------------| 1521 |.got |SHT_PROGBITS |SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT| 1522 |------------------+----------------+-----------------------------------| 1523 |.IA_64.archext |SHT_IA_64_EXT |0 | 1524 |------------------+----------------+-----------------------------------| 1525 |.IA_64.pltoff |SHT_PROGBITS |SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT| 1526 |------------------+----------------+-----------------------------------| 1527 |.IA_64.unwind |SHT_IA_64_UNWIND|SHF_ALLOC+SHF_LINK_ORDER | 1528 |------------------+----------------+-----------------------------------| 1529 |.IA_64.unwind_info|SHT_PROGBITS |SHF_ALLOC | 1530 |------------------+----------------+-----------------------------------| 1531 |.plt |SHT_PROGBITS |SHF_ALLOC+SHF_EXECINSTR | 1532 |------------------+----------------+-----------------------------------| 1533 |.sbss |SHT_NOBITS |SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT| 1534 |------------------+----------------+-----------------------------------| 1535 |.sdata |SHT_PROGBITS |SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT| 1536 |------------------+----------------+-----------------------------------| 1537 |.sdata1 |SHT_PROGBITS |SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT| 1538 +-----------------------------------------------------------------------+ 1539 1540 .got 1541 1542 This section holds the Global Offset Table. See `Coding Examples' in 1543 Chapter 3, `Special Sections' in Chapter 4, and `Global Offset Table' in 1544 Chapter 5 of the processor supplement for more information. 1545 1546 .IA_64.archext 1547 1548 This section holds product-specific extension bits. The link editor will 1549 perform a logical "or" of the extension bits of each object when creating 1550 an executable so that it creates only a single .IA_64.archext section in 1551 the executable. 1552 1553 .IA_64.pltoff 1554 1555 This section holds local function descriptor entries. 1556 1557 .IA_64.unwind 1558 1559 This section holds the unwind function table. The contents are described in 1560 the Intel (r) Itanium (tm) Processor Specific ABI. 1561 1562 .IA_64.unwind_info 1563 1564 This section holds stack unwind and and exception handling information. The 1565 exception handling information is programming language specific, and is 1566 unspecified. 1567 1568 .plt 1569 1570 This section holds the Procedure Linkage Table. 1571 1572 .sbss 1573 1574 This section holds uninitialized data that contribute to the program''s 1575 memory image. Data objects contained in this section are recommended to be 1576 eight bytes or less in size. The system initializes the data with zeroes 1577 when the program begins to run. The section occupies no file space, as 1578 indicated by the section type SHT_NOBITS. The .sbss section is placed so it 1579 may be accessed using short direct addressing (22 bit offset from gp). 1580 1581 .sdata 1582 1583 This section and the .sdata1 section hold initialized data that contribute 1584 to the program''s memory image. Data objects contained in this section are 1585 recommended to be eight bytes or less in size. The .sdata and .sdata1 1586 sections are placed so they may be accessed using short direct addressing 1587 (22 bit offset from gp). 1588 1589 .sdata1 1590 1591 See .sdata. 1592 1593 1594 1595 ------------------------------------------------------------------------------- 1596 1597 Linux Special Sections 1598 1599 The following Linux IA-64 specific sections are defined here. 1600 1601 Table 10-2. Additional Special Sections 1602 1603 +--------------------------------------+ 1604 | Name | Type |Attributes| 1605 |------------------+--------+----------| 1606 |.rela.dyn |SHT_RELA|SHF_ALLOC | 1607 |------------------+--------+----------| 1608 |.rela.IA_64.pltoff|SHT_RELA|SHF_ALLOC | 1609 +--------------------------------------+ 1610 1611 .rela.dyn 1612 1613 This section holds relocation information, as described in `Relocation'. 1614 These relocations are applied to the .dyn section. 1615 1616 .rela.IA_64.pltoff 1617 1618 This section holds relocation information, as described in `Relocation'. 1619 These relocations are applied to the .IA_64.pltoff section. 1620 1621 1622 1623 ------------------------------------------------------------------------------- 1624 1625 Section Types 1626 1627 Section Types are described in the Intel® Itanium TM Processor-specific 1628 Application Binary Interface, Chapter 4.2. LSB conforming implementations are 1629 not required to use any sections in the range from SHT_IA_64_LOPSREG to 1630 SHT_IA_64_HIPSREG. Additionally, LSB conforming implementations are not 1631 required to support the SHT_IA_64_PRIORITY_INIT section, beyond the gABI 1632 requirements for the handling of unrecognized section types, linking them into 1633 a contiguous section in the object file created by the static linker. 1634 1635 ------------------------------------------------------------------------------- 1636 1637 Section Attribute Flags 1638 1639 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1640 4.2.2. 1641 1642 ------------------------------------------------------------------------------- 1643 1644 Special Section Types 1645 1646 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1647 4.2.3. 1648 1649 ------------------------------------------------------------------------------- 1650 1651 Chapter 11. Symbol Table 1652 1653 If an executable file contains a reference to a function defined in one of its 1654 associated shared objects, the symbol table section for that file shall contain 1655 an entry for that symbol. The st_shndx member of that symbol table entry 1656 contains SHN_UNDEF. This signals to the dynamic linker that the symbol 1657 definition for that function is not contained in the executable file itself. If 1658 that symbol has been allocated a procedure linkage table entry in the 1659 executable file, and the st_value member for that symbol table entry is 1660 non-zero, the value shall contain the virtual address of the first instruction 1661 of that procedure linkage table entry. Otherwise, the st_value member contains 1662 zero. This procedure linkage table entry address is used by the dynamic linker 1663 in resolving references to the address of the function. 1664 1665 1666 Note: Need to add something here about st_info and st_other ... 1667 1668 ------------------------------------------------------------------------------- 1669 1670 Chapter 12. Relocation 1671 1672 LSB-conforming applications shall use Relocations as defined in Intel® Itanium 1673 TM Processor-specific Application Binary Interface, Chapter 4.3. 1674 1675 ------------------------------------------------------------------------------- 1676 1677 Relocation Types 1678 1679 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1680 4.3. 1681 1682 IV. Program Loading and Dynamic Linking 1683 1684 LSB-conforming implementations shall support the object file information and 1685 system actions that create running programs as specified in the System V 1686 Application Binary Interface, Edition 4.1, Intel® Itanium TM Processor-specific 1687 Application Binary Interface and as supplemented by the Linux Standard Base 1688 Specification and this document. 1689 1690 Table of Contents 1691 13. Program Header 1692 14. Program Loading 1693 15. Dynamic Linking 1694 1695 ------------------------------------------------------------------------------- 1696 1697 Chapter 13. Program Header 1698 1699 The program header shall be as defined in the Intel® Itanium TM 1700 Processor-specific Application Binary Interface, Chapter 5. 1701 1702 ------------------------------------------------------------------------------- 1703 1704 Types 1705 1706 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1707 5.1. 1708 1709 ------------------------------------------------------------------------------- 1710 1711 Flags 1712 1713 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1714 5.1. 1715 1716 ------------------------------------------------------------------------------- 1717 1718 Chapter 14. Program Loading 1719 1720 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1721 5.2. 1722 1723 ------------------------------------------------------------------------------- 1724 1725 Chapter 15. Dynamic Linking 1726 1727 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1728 5.3. 1729 1730 ------------------------------------------------------------------------------- 1731 1732 Program Interpreter/Dynamic Linker 1733 1734 The LSB specifies the Program Interpreter to be /lib/ld-lsb-ia64.so.1. 1735 1736 ------------------------------------------------------------------------------- 1737 1738 Dynamic Section 1739 1740 The following dynamic entries are defined in the Intel® Itanium TM 1741 Processor-specific Application Binary Interface, Chapter 5.3.2. 1742 1743 DT_PLTGOT 1744 1745 This entry's d_ptr member gives the address of the first byte in the 1746 procedure linkage table 1747 1748 1749 1750 ------------------------------------------------------------------------------- 1751 1752 Global Offset Table 1753 1754 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1755 5.3.4. 1756 1757 ------------------------------------------------------------------------------- 1758 1759 Shared Object Dependencies 1760 1761 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1762 5.3.3. 1763 1764 ------------------------------------------------------------------------------- 1765 1766 Function Addresses 1767 1768 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1769 5.3.5. 1770 1771 ------------------------------------------------------------------------------- 1772 1773 Procedure Linkage Table 1774 1775 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1776 5.3.6. 1777 1778 ------------------------------------------------------------------------------- 1779 1780 Initialization and Termination Functions 1781 1782 See Intel® Itanium TM Processor-specific Application Binary Interface, Chapter 1783 5.3.7. 1784 1785 V. Base Libraries 1786 1787 Table of Contents 1788 16. Libraries 1789 1790 ------------------------------------------------------------------------------- 1791 1792 Chapter 16. Libraries 1793 1794 An LSB-conforming implementation shall support base libraries which provide 1795 interfaces for accessing the operating system, processor and other hardware in 1796 the system. 1797 1798 Only those interfaces that are unique to the ItaniumTM platform are defined 1799 here. This section should be used in conjunction with the corresponding section 1800 in the Linux Standard Base Specification. 1801 1802 An LSB conforming implementation need not define an Unwind library interface as 1803 required by the Intel® Itanium TM Processor-specific Application Binary 1804 Interface. If such an interface is provided, it shall conform to the 1805 specification in the Intel® Itanium TM Processor-specific Application Binary 1806 Interface. A conforming application shall not depend on this interface. 1807 1808 ------------------------------------------------------------------------------- 1809 1810 Interfaces for libc 1811 1812 Table 16-1. libc Definition 1813 1814 +---------------------+ 1815 |Library:|libc | 1816 |--------+------------| 1817 |SONAME: |libc.so.6.1 | 1818 +---------------------+ 1819 1820 The behavior of the interfaces in this library is specified by the following 1821 standards. 1822 1823 ISO/IEC 9899: 1999, Programming Languages --C[1] 1824 Large File Support[2] 1825 Linux Standard Base[3] 1826 IEEE Std POSIX.1-1996 [ISO/IEC 9945-1:1996][4] 1827 CAE Specification, February 1997, Networking Services (XNS), Issue 5(ISBN: 1828 1-85912-165-9, C523)[5] 1829 CAE Specification, January 1997, System Interfaces and Headers (XSH),Issue 5 1830 (ISBN: 1-85912-181-0, C606)[6] 1831 The Single UNIX® Specification(SUS) Version 3[7] 1832 System V Interface Definition, Issue 3 (ISBN 0201566524)[8] 1833 System V Interface Definition,Fourth Edition[9] 1834 1835 ------------------------------------------------------------------------------- 1836 1837 RPC 1838 1839 Table 16-2. libc - RPC Function Interfaces 1840 1841 +-----------------------------------------------------------------------------------+ 1842 |authnone_create |svc_getreqset |xdr_bytes |xdr_opaque_auth |xdr_union | 1843 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1844 | | |[8] | | | 1845 |------------------+------------------+-----------+------------------+--------------| 1846 |clnt_create |svcerr_auth |xdr_callhdr|xdr_pointer |xdr_vector | 1847 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1848 | | |[8] | | | 1849 |------------------+------------------+-----------+------------------+--------------| 1850 |clnt_pcreateerror |svcerr_decode |xdr_callmsg|xdr_reference |xdr_void | 1851 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1852 | | |[8] | | | 1853 |------------------+------------------+-----------+------------------+--------------| 1854 |clnt_perrno |svcerr_noproc |xdr_char |xdr_rejected_reply|xdr_wrapstring| 1855 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1856 | | |[8] | | | 1857 |------------------+------------------+-----------+------------------+--------------| 1858 |clnt_perror |svcerr_noprog |xdr_double |xdr_replymsg |xdrmem_create | 1859 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1860 | | |[8] | | | 1861 |------------------+------------------+-----------+------------------+--------------| 1862 |clnt_spcreateerror|svcerr_progvers |xdr_enum |xdr_short |xdrrec_create | 1863 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1864 | | |[8] | | | 1865 |------------------+------------------+-----------+------------------+--------------| 1866 |clnt_sperrno |svcerr_systemerr |xdr_float |xdr_string |xdrrec_eof | 1867 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] |(GLIBC_2.2)[8]| 1868 | | |[8] | | | 1869 |------------------+------------------+-----------+------------------+--------------| 1870 |clnt_sperror |svcerr_weakauth |xdr_free |xdr_u_char | | 1871 |(GLIBC_2.2)[9] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] | | 1872 | | |[8] | | | 1873 |------------------+------------------+-----------+------------------+--------------| 1874 |getdomainname |xdr_accepted_reply|xdr_int |xdr_u_int | | 1875 |(GLIBC_2.2)[3] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[3] | | 1876 | | |[8] | | | 1877 |------------------+------------------+-----------+------------------+--------------| 1878 |key_decryptsession|xdr_array |xdr_long |xdr_u_long | | 1879 |(GLIBC_2.2)[8] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] | | 1880 | | |[8] | | | 1881 |------------------+------------------+-----------+------------------+--------------| 1882 |setdomainname |xdr_bool |xdr_opaque |xdr_u_short | | 1883 |(GLIBC_2.2)[3] |(GLIBC_2.2)[8] |(GLIBC_2.2)|(GLIBC_2.2)[8] | | 1884 | | |[8] | | | 1885 +-----------------------------------------------------------------------------------+ 1886 ------------------------------------------------------------------------------- 1887 1888 System Calls 1889 1890 Table 16-3. libc - System Calls Function Interfaces 1891 1892 +-----------------------------------------------------------------------------+ 1893 |__fxstat |fchown |initgroups |read(GLIBC_2.2)[6] |setrlimit64 | 1894 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1895 |[3] |[6] |[3] | |[2] | 1896 |------------+-------------+-------------+----------------------+-------------| 1897 |__getpgid |fcntl |ioctl |readdir(GLIBC_2.2)[6] |setsid | 1898 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1899 |[3] |[3] |[3] | |[6] | 1900 |------------+-------------+-------------+----------------------+-------------| 1901 |__lxstat |fdatasync |kill |readdir_r(GLIBC_2.2) |setuid | 1902 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 1903 |[3] |[6] |[3] | |[6] | 1904 |------------+-------------+-------------+----------------------+-------------| 1905 |__xmknod |flock |killpg |readlink(GLIBC_2.2)[6]|sleep | 1906 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1907 |[3] |[3] |[6] | |[6] | 1908 |------------+-------------+-------------+----------------------+-------------| 1909 |__xstat |fork |lchown |readv(GLIBC_2.2)[6] |statfs | 1910 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1911 |[3] |[6] |[6] | |[3] | 1912 |------------+-------------+-------------+----------------------+-------------| 1913 |access |fstatfs |link |rename(GLIBC_2.2)[6] |statvfs | 1914 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1915 |[6] |[3] |[6] | |[6] | 1916 |------------+-------------+-------------+----------------------+-------------| 1917 |acct |fstatvfs |lockf |rmdir(GLIBC_2.2)[6] |stime | 1918 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1919 |[3] |[6] |[6] | |[3] | 1920 |------------+-------------+-------------+----------------------+-------------| 1921 |alarm |fsync |lseek |sbrk(GLIBC_2.2)[6] |symlink | 1922 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1923 |[6] |[6] |[6] | |[6] | 1924 |------------+-------------+-------------+----------------------+-------------| 1925 |brk |ftime |mkdir |sched_get_priority_max|sync | 1926 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1927 |[6] |[6] |[6] | |[6] | 1928 |------------+-------------+-------------+----------------------+-------------| 1929 |chdir |ftruncate |mkfifo |sched_get_priority_min|sysconf | 1930 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1931 |[6] |[6] |[6] | |[6] | 1932 |------------+-------------+-------------+----------------------+-------------| 1933 |chmod |getcontext |mlock |sched_getparam |time | 1934 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1935 |[6] |[6] |[6] | |[6] | 1936 |------------+-------------+-------------+----------------------+-------------| 1937 |chown |getegid |mlockall |sched_getscheduler |times | 1938 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1939 |[6] |[6] |[6] | |[6] | 1940 |------------+-------------+-------------+----------------------+-------------| 1941 |chroot |geteuid |mmap |sched_rr_get_interval |truncate | 1942 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1943 |[6] |[6] |[6] | |[6] | 1944 |------------+-------------+-------------+----------------------+-------------| 1945 |clock |getgid |mprotect |sched_setparam |ulimit | 1946 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1947 |[6] |[6] |[6] | |[6] | 1948 |------------+-------------+-------------+----------------------+-------------| 1949 |close |getgroups |msync |sched_setscheduler |umask | 1950 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 1951 |[6] |[6] |[6] | |[6] | 1952 |------------+-------------+-------------+----------------------+-------------| 1953 |closedir |getitimer |munlock |sched_yield(GLIBC_2.2)|uname | 1954 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 1955 |[6] |[6] |[6] | |[6] | 1956 |------------+-------------+-------------+----------------------+-------------| 1957 |creat |getloadavg |munlockall |select(GLIBC_2.2)[5] |unlink | 1958 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1959 |[6] |[3] |[6] | |[3] | 1960 |------------+-------------+-------------+----------------------+-------------| 1961 |dup |getpagesize |munmap |setcontext(GLIBC_2.2) |utime | 1962 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 1963 |[6] |[6] |[6] | |[6] | 1964 |------------+-------------+-------------+----------------------+-------------| 1965 |dup2 |getpgid |nanosleep |setegid(GLIBC_2.2)[3] |utimes | 1966 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1967 |[6] |[6] |[6] | |[6] | 1968 |------------+-------------+-------------+----------------------+-------------| 1969 |execl |getpgrp |nice |seteuid(GLIBC_2.2)[3] |vfork | 1970 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1971 |[6] |[6] |[3] | |[6] | 1972 |------------+-------------+-------------+----------------------+-------------| 1973 |execle |getpid |open |setgid(GLIBC_2.2)[6] |wait | 1974 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1975 |[6] |[6] |[6] | |[6] | 1976 |------------+-------------+-------------+----------------------+-------------| 1977 |execlp |getppid |opendir |setitimer(GLIBC_2.2) |wait3 | 1978 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 1979 |[6] |[6] |[6] | |[3] | 1980 |------------+-------------+-------------+----------------------+-------------| 1981 |execv |getpriority |pathconf |setpgid(GLIBC_2.2)[6] |wait4 | 1982 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1983 |[6] |[6] |[6] | |[3] | 1984 |------------+-------------+-------------+----------------------+-------------| 1985 |execve |getrlimit |pause |setpgrp(GLIBC_2.2)[6] |waitid | 1986 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1987 |[6] |[6] |[6] | |[3] | 1988 |------------+-------------+-------------+----------------------+-------------| 1989 |execvp |getrusage |pipe |setpriority(GLIBC_2.2)|waitpid | 1990 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 1991 |[6] |[6] |[6] | |[3] | 1992 |------------+-------------+-------------+----------------------+-------------| 1993 |exit |getsid |poll |setregid(GLIBC_2.2)[6]|write | 1994 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1995 |[6] |[6] |[6] | |[6] | 1996 |------------+-------------+-------------+----------------------+-------------| 1997 |fchdir |getuid |pread |setreuid(GLIBC_2.2)[6]|writev | 1998 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2) | 1999 |[6] |[6] |[6] | |[6] | 2000 |------------+-------------+-------------+----------------------+-------------| 2001 |fchmod |getwd |pwrite |setrlimit(GLIBC_2.2) | | 2002 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |[6] | | 2003 |[6] |[6] |[6] | | | 2004 +-----------------------------------------------------------------------------+ 2005 2006 Table 16-4. libc - System Calls Deprecated Function Interfaces 2007 2008 +---------------------------------------------------------------------+ 2009 |fstatfs(GLIBC_2.2)[3] |statfs(GLIBC_2.2)[3]|waitid(GLIBC_2.2)[3] | | | 2010 +---------------------------------------------------------------------+ 2011 ------------------------------------------------------------------------------- 2012 2013 Standard I/O 2014 2015 Table 16-5. libc - Standard I/O Function Interfaces 2016 2017 +-----------------------------------------------------------------------------+ 2018 |_IO_feof |fgetc |fseeko |putc(GLIBC_2.2) |snprintf | 2019 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2)| 2020 | | | | |[6] | 2021 |---------------+---------------+----------------+----------------+-----------| 2022 |_IO_getc |fgetpos |fsetpos |putc_unlocked |sprintf | 2023 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2024 | | | | |[6] | 2025 |---------------+---------------+----------------+----------------+-----------| 2026 |_IO_putc |fgets |ftell(GLIBC_2.2)|putchar |sscanf | 2027 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2028 | | | | |[6] | 2029 |---------------+---------------+----------------+----------------+-----------| 2030 |_IO_puts |fgetwc_unlocked|ftello |putchar_unlocked|telldir | 2031 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2032 | | | | |[6] | 2033 |---------------+---------------+----------------+----------------+-----------| 2034 |alphasort |fileno |fwrite |puts(GLIBC_2.2) |tempnam | 2035 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2)| 2036 | | | | |[6] | 2037 |---------------+---------------+----------------+----------------+-----------| 2038 |asprintf |flockfile |getc(GLIBC_2.2) |putw(GLIBC_2.2) |ungetc | 2039 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |[6] |[6] |(GLIBC_2.2)| 2040 | | | | |[6] | 2041 |---------------+---------------+----------------+----------------+-----------| 2042 |clearerr |fopen |getc_unlocked |remove |vasprintf | 2043 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2044 | | | | |[3] | 2045 |---------------+---------------+----------------+----------------+-----------| 2046 |ctermid |fprintf |getchar |rewind |vdprintf | 2047 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2048 | | | | |[3] | 2049 |---------------+---------------+----------------+----------------+-----------| 2050 |fclose |fputc |getchar_unlocked|rewinddir |vfprintf | 2051 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2052 | | | | |[6] | 2053 |---------------+---------------+----------------+----------------+-----------| 2054 |fdopen |fputs |gets(GLIBC_2.2) |scanf(GLIBC_2.2)|vprintf | 2055 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |[3] |[6] |(GLIBC_2.2)| 2056 | | | | |[6] | 2057 |---------------+---------------+----------------+----------------+-----------| 2058 |feof(GLIBC_2.2)|fread |getw(GLIBC_2.2) |seekdir |vsnprintf | 2059 |[6] |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2060 | | | | |[6] | 2061 |---------------+---------------+----------------+----------------+-----------| 2062 |ferror |freopen |pclose |setbuf |vsprintf | 2063 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)| 2064 | | | | |[6] | 2065 |---------------+---------------+----------------+----------------+-----------| 2066 |fflush |fscanf |popen(GLIBC_2.2)|setbuffer | | 2067 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2)[3] | | 2068 |---------------+---------------+----------------+----------------+-----------| 2069 |fflush_unlocked|fseek |printf |setvbuf | | 2070 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] | | 2071 +-----------------------------------------------------------------------------+ 2072 2073 Table 16-6. libc - Standard I/O Deprecated Function Interfaces 2074 2075 +--------------------------------+ 2076 |alphasort(GLIBC_2.2)[3] | | | | | 2077 +--------------------------------+ 2078 2079 Table 16-7. libc - Standard I/O Data Interfaces 2080 2081 +-------------------------------------------------------------------+ 2082 |stderr(GLIBC_2.2)[6] |stdin(GLIBC_2.2)[6]|stdout(GLIBC_2.2)[6] | | | 2083 +-------------------------------------------------------------------+ 2084 ------------------------------------------------------------------------------- 2085 2086 Signal Handling 2087 2088 Table 16-8. libc - Signal Handling Function Interfaces 2089 2090 +-----------------------------------------------------------------------------+ 2091 |__libc_current_sigrtmax|sigaddset |sighold |sigpause |sigsuspend | 2092 |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2093 | |[6] |[6] |[6] |[6] | 2094 |-----------------------+------------+-------------+------------+-------------| 2095 |__libc_current_sigrtmin|sigaltstack |sigignore |sigpending |sigtimedwait | 2096 |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2097 | |[6] |[6] |[6] |[6] | 2098 |-----------------------+------------+-------------+------------+-------------| 2099 |__sigsetjmp(GLIBC_2.2) |sigandset |siginterrupt |sigprocmask |sigwait | 2100 |[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2101 | |[3] |[6] |[6] |[6] | 2102 |-----------------------+------------+-------------+------------+-------------| 2103 |__sysv_signal |sigblock |sigisemptyset|sigqueue |sigwaitinfo | 2104 |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2105 | |[3] |[3] |[6] |[6] | 2106 |-----------------------+------------+-------------+------------+-------------| 2107 |bsd_signal(GLIBC_2.2) |sigdelset |sigismember |sigrelse | | 2108 |[6] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | | 2109 | |[6] |[6] |[6] | | 2110 |-----------------------+------------+-------------+------------+-------------| 2111 |psignal(GLIBC_2.2)[3] |sigemptyset |siglongjmp |sigreturn | | 2112 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | | 2113 | |[6] |[6] |[3] | | 2114 |-----------------------+------------+-------------+------------+-------------| 2115 |raise(GLIBC_2.2)[6] |sigfillset |signal |sigset | | 2116 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | | 2117 | |[6] |[6] |[6] | | 2118 |-----------------------+------------+-------------+------------+-------------| 2119 |sigaction(GLIBC_2.2)[6]|siggetmask |sigorset |sigstack | | 2120 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | | 2121 | |[3] |[3] |[6] | | 2122 +-----------------------------------------------------------------------------+ 2123 2124 Table 16-9. libc - Signal Handling Data Interfaces 2125 2126 +-----------------------------------+ 2127 |_sys_siglist(GLIBC_2.2)[3] | | | | | 2128 +-----------------------------------+ 2129 ------------------------------------------------------------------------------- 2130 2131 Localization Functions 2132 2133 Table 16-10. libc - Localization Functions Function Interfaces 2134 2135 +-----------------------------------------------------------------------------+ 2136 |__dcgettext(GLIBC_2.2) |catgets |dgettext |iconv_close |nl_langinfo | 2137 |[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2138 | |[6] |[3] |[6] |[6] | 2139 |-----------------------+------------+------------+-------------+-------------| 2140 |bind_textdomain_codeset|catopen |dngettext |iconv_open |setlocale | 2141 |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2142 | |[6] |[3] |[6] |[6] | 2143 |-----------------------+------------+------------+-------------+-------------| 2144 |bindtextdomain |dcgettext |gettext |localeconv |textdomain | 2145 |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | 2146 | |[3] |[3] |[6] |[3] | 2147 |-----------------------+------------+------------+-------------+-------------| 2148 |catclose(GLIBC_2.2)[6] |dcngettext |iconv |ngettext | | 2149 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2) | | 2150 | |[3] |[6] |[3] | | 2151 +-----------------------------------------------------------------------------+ 2152 2153 Table 16-11. libc - Localization Functions Deprecated Function Interfaces 2154 2155 +----------------------------------+ 2156 |__dcgettext(GLIBC_2.2)[3] | | | | | 2157 +----------------------------------+ 2158 2159 Table 16-12. libc - Localization Functions Data Interfaces 2160 2161 +-----------------------------------------+ 2162 |_nl_msg_cat_cntr(GLIBC_2.2)[3] | | | | | 2163 +-----------------------------------------+ 2164 ------------------------------------------------------------------------------- 2165 2166 Socket Interface 2167 2168 Table 16-13. libc - Socket Interface Function Interfaces 2169 2170 +------------------------------------------------------------------------------+ 2171 |__h_errno_location|gethostbyname_r |getsockopt |send |socket | 2172 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[5]|(GLIBC_2.2) | 2173 | | |[5] | |[5] | 2174 |------------------+----------------+-------------+--------------+-------------| 2175 |accept(GLIBC_2.2) |gethostid |listen |sendmsg |socketpair | 2176 |[5] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[5]|(GLIBC_2.2) | 2177 | | |[5] | |[5] | 2178 |------------------+----------------+-------------+--------------+-------------| 2179 |bind(GLIBC_2.2)[5]|gethostname |recv |sendto | | 2180 | |(GLIBC_2.2)[5] |(GLIBC_2.2) |(GLIBC_2.2)[5]| | 2181 | | |[5] | | | 2182 |------------------+----------------+-------------+--------------+-------------| 2183 |bindresvport |getpeername |recvfrom |setsockopt | | 2184 |(GLIBC_2.2)[3] |(GLIBC_2.2)[5] |(GLIBC_2.2) |(GLIBC_2.2)[5]| | 2185 | | |[5] | | | 2186 |------------------+----------------+-------------+--------------+-------------| 2187 |connect(GLIBC_2.2)|getsockname |recvmsg |shutdown | | 2188 |[5] |(GLIBC_2.2)[5] |(GLIBC_2.2) |(GLIBC_2.2)[5]| | 2189 | | |[5] | | | 2190 +------------------------------------------------------------------------------+ 2191 ------------------------------------------------------------------------------- 2192 2193 Wide Characters 2194 2195 Table 16-14. libc - Wide Characters Function Interfaces 2196 2197 +-------------------------------------------------------------------------------+ 2198 |__wcstod_internal |mbsinit |vwscanf |wcsnlen |wcstoumax | 2199 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[1] |(GLIBC_2.2)[3]|(GLIBC_2.2) | 2200 | | | | |[1] | 2201 |-------------------+--------------+---------------+--------------+-------------| 2202 |__wcstof_internal |mbsnrtowcs |wcpcpy |wcsnrtombs |wcstouq | 2203 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3]|(GLIBC_2.2)[3] |(GLIBC_2.2)[3]|(GLIBC_2.2) | 2204 | | | | |[3] | 2205 |-------------------+--------------+---------------+--------------+-------------| 2206 |__wcstol_internal |mbsrtowcs |wcpncpy |wcspbrk |wcswcs | 2207 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[3] |(GLIBC_2.2)[1]|(GLIBC_2.2) | 2208 | | | | |[6] | 2209 |-------------------+--------------+---------------+--------------+-------------| 2210 |__wcstold_internal |mbstowcs |wcrtomb |wcsrchr |wcswidth | 2211 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2212 | | | | |[6] | 2213 |-------------------+--------------+---------------+--------------+-------------| 2214 |__wcstoul_internal |mbtowc |wcscasecmp |wcsrtombs |wcsxfrm | 2215 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2216 | | | | |[6] | 2217 |-------------------+--------------+---------------+--------------+-------------| 2218 |btowc(GLIBC_2.2)[6]|putwc |wcscat |wcsspn |wctob | 2219 | |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2220 | | | | |[6] | 2221 |-------------------+--------------+---------------+--------------+-------------| 2222 |fgetwc(GLIBC_2.2) |putwchar |wcschr |wcsstr |wctomb | 2223 |[6] |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2224 | | | | |[6] | 2225 |-------------------+--------------+---------------+--------------+-------------| 2226 |fgetws(GLIBC_2.2) |swprintf |wcscmp |wcstod |wctrans | 2227 |[1] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2228 | | | | |[6] | 2229 |-------------------+--------------+---------------+--------------+-------------| 2230 |fputwc(GLIBC_2.2) |swscanf |wcscoll |wcstof |wctype | 2231 |[1] |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[1]|(GLIBC_2.2) | 2232 | | | | |[6] | 2233 |-------------------+--------------+---------------+--------------+-------------| 2234 |fputws(GLIBC_2.2) |towctrans |wcscpy |wcstoimax |wcwidth | 2235 |[1] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] |(GLIBC_2.2)[1]|(GLIBC_2.2) | 2236 | | | | |[6] | 2237 |-------------------+--------------+---------------+--------------+-------------| 2238 |fwide(GLIBC_2.2)[1]|towlower |wcscspn |wcstok |wmemchr | 2239 | |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2240 | | | | |[6] | 2241 |-------------------+--------------+---------------+--------------+-------------| 2242 |fwprintf(GLIBC_2.2)|towupper |wcsdup |wcstol |wmemcmp | 2243 |[6] |(GLIBC_2.2)[6]|(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2244 | | | | |[6] | 2245 |-------------------+--------------+---------------+--------------+-------------| 2246 |fwscanf(GLIBC_2.2) |ungetwc |wcsftime |wcstold |wmemcpy | 2247 |[1] |(GLIBC_2.2)[1]|(GLIBC_2.2)[1] |(GLIBC_2.2)[1]|(GLIBC_2.2) | 2248 | | | | |[6] | 2249 |-------------------+--------------+---------------+--------------+-------------| 2250 |getwc(GLIBC_2.2)[1]|vfwprintf |wcslen |wcstoll |wmemmove | 2251 | |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[1]|(GLIBC_2.2) | 2252 | | | | |[6] | 2253 |-------------------+--------------+---------------+--------------+-------------| 2254 |getwchar(GLIBC_2.2)|vfwscanf |wcsncasecmp |wcstombs |wmemset | 2255 |[6] |(GLIBC_2.2)[1]|(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2256 | | | | |[6] | 2257 |-------------------+--------------+---------------+--------------+-------------| 2258 |mblen(GLIBC_2.2)[6]|vswprintf |wcsncat |wcstoq |wprintf | 2259 | |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[3]|(GLIBC_2.2) | 2260 | | | | |[1] | 2261 |-------------------+--------------+---------------+--------------+-------------| 2262 |mbrlen(GLIBC_2.2) |vswscanf |wcsncmp |wcstoul |wscanf | 2263 |[6] |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2264 | | | | |[1] | 2265 |-------------------+--------------+---------------+--------------+-------------| 2266 |mbrtowc(GLIBC_2.2) |vwprintf |wcsncpy |wcstoull | | 2267 |[6] |(GLIBC_2.2)[1]|(GLIBC_2.2)[6] |(GLIBC_2.2)[1]| | 2268 +-------------------------------------------------------------------------------+ 2269 ------------------------------------------------------------------------------- 2270 2271 String Functions 2272 2273 Table 16-15. libc - String Functions Function Interfaces 2274 2275 +-------------------------------------------------------------------------------+ 2276 |__mempcpy |bzero |strcasestr |strncasecmp |strtoimax | 2277 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[3]|(GLIBC_2.2)[6]|(GLIBC_2.2)[1]| 2278 |-------------------+--------------+--------------+--------------+--------------| 2279 |__rawmemchr |ffs(GLIBC_2.2)|strcat |strncat |strtok | 2280 |(GLIBC_2.2)[3] |[6] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]| 2281 |-------------------+--------------+--------------+--------------+--------------| 2282 |__stpcpy(GLIBC_2.2)|index |strchr |strncmp |strtok_r | 2283 |[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[3]| 2284 |-------------------+--------------+--------------+--------------+--------------| 2285 |__strdup(GLIBC_2.2)|memccpy |strcmp |strncpy |strtold | 2286 |[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[1]| 2287 |-------------------+--------------+--------------+--------------+--------------| 2288 |__strtod_internal |memchr |strcoll |strndup |strtoll | 2289 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[3]|(GLIBC_2.2)[1]| 2290 |-------------------+--------------+--------------+--------------+--------------| 2291 |__strtof_internal |memcmp |strcpy |strnlen |strtoq | 2292 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[3]|(GLIBC_2.2)[3]| 2293 |-------------------+--------------+--------------+--------------+--------------| 2294 |__strtok_r |memcpy |strcspn |strpbrk |strtoull | 2295 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[1]| 2296 |-------------------+--------------+--------------+--------------+--------------| 2297 |__strtol_internal |memmove |strdup |strptime |strtoumax | 2298 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[3]|(GLIBC_2.2)[1]| 2299 |-------------------+--------------+--------------+--------------+--------------| 2300 |__strtold_internal |memrchr |strerror |strrchr |strtouq | 2301 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[3]| 2302 |-------------------+--------------+--------------+--------------+--------------| 2303 |__strtoll_internal |memset |strerror_r |strsep |strverscmp | 2304 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[3]|(GLIBC_2.2)[3]|(GLIBC_2.2)[3]| 2305 |-------------------+--------------+--------------+--------------+--------------| 2306 |__strtoul_internal |rindex |strfmon |strsignal |strxfrm | 2307 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[3]|(GLIBC_2.2)[6]| 2308 |-------------------+--------------+--------------+--------------+--------------| 2309 |__strtoull_internal|stpcpy |strfry |strspn |swab | 2310 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3]|(GLIBC_2.2)[3]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]| 2311 |-------------------+--------------+--------------+--------------+--------------| 2312 |bcmp(GLIBC_2.2)[6] |stpncpy |strftime |strstr | | 2313 | |(GLIBC_2.2)[3]|(GLIBC_2.2)[6]|(GLIBC_2.2)[6]| | 2314 |-------------------+--------------+--------------+--------------+--------------| 2315 |bcopy(GLIBC_2.2)[6]|strcasecmp |strlen |strtof | | 2316 | |(GLIBC_2.2)[6]|(GLIBC_2.2)[6]|(GLIBC_2.2)[1]| | 2317 +-------------------------------------------------------------------------------+ 2318 ------------------------------------------------------------------------------- 2319 2320 IPC Functions 2321 2322 Table 16-16. libc - IPC Functions Function Interfaces 2323 2324 +-----------------------------------------------------------------------------+ 2325 |ftok(GLIBC_2.2)[6]|msgrcv(GLIBC_2.2) |semget(GLIBC_2.2) |shmctl(GLIBC_2.2) | | 2326 | |[6] |[6] |[6] | | 2327 |------------------+------------------+------------------+------------------+-| 2328 |msgctl(GLIBC_2.2) |msgsnd(GLIBC_2.2) |semop(GLIBC_2.2) |shmdt(GLIBC_2.2) | | 2329 |[6] |[6] |[6] |[6] | | 2330 |------------------+------------------+------------------+------------------+-| 2331 |msgget(GLIBC_2.2) |semctl(GLIBC_2.2) |shmat(GLIBC_2.2) |shmget(GLIBC_2.2) | | 2332 |[6] |[6] |[6] |[6] | | 2333 +-----------------------------------------------------------------------------+ 2334 ------------------------------------------------------------------------------- 2335 2336 Regular Expressions 2337 2338 Table 16-17. libc - Regular Expressions Function Interfaces 2339 2340 +-----------------------------------------------------------------------------+ 2341 |advance(GLIBC_2.2)|re_exec(GLIBC_2.2)|regerror |regfree(GLIBC_2.2)| | 2342 |[6] |[6] |(GLIBC_2.2)[6] |[6] | | 2343 |------------------+------------------+------------------+------------------+-| 2344 |re_comp(GLIBC_2.2)|regcomp(GLIBC_2.2)|regexec(GLIBC_2.2)|step(GLIBC_2.2)[6]| | 2345 |[6] |[6] |[6] | | | 2346 +-----------------------------------------------------------------------------+ 2347 2348 Table 16-18. libc - Regular Expressions Data Interfaces 2349 2350 +---------------------------------------------------------------+ 2351 |loc1(GLIBC_2.2)[6] |loc2(GLIBC_2.2)[6] |locs(GLIBC_2.2)[6] | | | 2352 +---------------------------------------------------------------+ 2353 ------------------------------------------------------------------------------- 2354 2355 Character Type Functions 2356 2357 Table 16-19. libc - Character Type Functions Function Interfaces 2358 2359 +-----------------------------------------------------------------------------+ 2360 |__ctype_get_mb_cur_max|isdigit |iswalnum |iswlower |toascii | 2361 |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2362 | |[6] |[6] | |[6] | 2363 |----------------------+------------+-------------+--------------+------------| 2364 |_tolower(GLIBC_2.2)[6]|isgraph |iswalpha |iswprint |tolower | 2365 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2366 | |[6] |[6] | |[6] | 2367 |----------------------+------------+-------------+--------------+------------| 2368 |_toupper(GLIBC_2.2)[6]|islower |iswblank |iswpunct |toupper | 2369 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]|(GLIBC_2.2) | 2370 | |[6] |[7] | |[6] | 2371 |----------------------+------------+-------------+--------------+------------| 2372 |isalnum(GLIBC_2.2)[6] |isprint |iswcntrl |iswspace | | 2373 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]| | 2374 | |[6] |[6] | | | 2375 |----------------------+------------+-------------+--------------+------------| 2376 |isalpha(GLIBC_2.2)[6] |ispunct |iswctype |iswupper | | 2377 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]| | 2378 | |[6] |[3] | | | 2379 |----------------------+------------+-------------+--------------+------------| 2380 |isascii(GLIBC_2.2)[6] |isspace |iswdigit |iswxdigit | | 2381 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]| | 2382 | |[6] |[6] | | | 2383 |----------------------+------------+-------------+--------------+------------| 2384 |iscntrl(GLIBC_2.2)[6] |isupper |iswgraph |isxdigit | | 2385 | |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[6]| | 2386 | |[6] |[6] | | | 2387 +-----------------------------------------------------------------------------+ 2388 2389 Table 16-20. libc - Character Type Functions Data Interfaces 2390 2391 +------------------------------------------------------------------------------+ 2392 |__ctype_b(GLIBC_2.2)|__ctype_tolower(GLIBC_2.2)|__ctype_toupper(GLIBC_2.2)| | | 2393 |[3] |[3] |[3] | | | 2394 +------------------------------------------------------------------------------+ 2395 ------------------------------------------------------------------------------- 2396 2397 Time Manipulation 2398 2399 Table 16-21. libc - Time Manipulation Function Interfaces 2400 2401 +-------------------------------------------------------------------------------+ 2402 |adjtime |asctime_r |difftime |localtime |tzset | 2403 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2404 | | | | |[6] | 2405 |---------------+---------------+---------------+-----------------+-------------| 2406 |adjtimex |ctime |gmtime |localtime_r |ualarm | 2407 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2408 | | | | |[6] | 2409 |---------------+---------------+---------------+-----------------+-------------| 2410 |asctime |ctime_r |gmtime_r |mktime(GLIBC_2.2)| | 2411 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |[6] | | 2412 +-------------------------------------------------------------------------------+ 2413 2414 Table 16-22. libc - Time Manipulation Data Interfaces 2415 2416 +-----------------------------------------------------------------------------+ 2417 |__daylight(GLIBC_2.2)[3] |__tzname(GLIBC_2.2)[3] |timezone(GLIBC_2.2)[6] | | | 2418 |-------------------------+-----------------------+-----------------------+-+-| 2419 |__timezone(GLIBC_2.2)[3] |daylight(GLIBC_2.2)[6] |tzname(GLIBC_2.2)[6] | | | 2420 +-----------------------------------------------------------------------------+ 2421 ------------------------------------------------------------------------------- 2422 2423 Terminal Interface Functions 2424 2425 Table 16-23. libc - Terminal Interface Functions Function Interfaces 2426 2427 +-------------------------------------------------------------------------------+ 2428 |cfgetispeed |cfsetispeed |tcdrain |tcgetattr |tcsendbreak | 2429 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] | 2430 | | |[6] | | | 2431 |----------------+----------------+-------------+--------------+----------------| 2432 |cfgetospeed |cfsetospeed |tcflow |tcgetpgrp |tcsetattr | 2433 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] | 2434 | | |[6] | | | 2435 |----------------+----------------+-------------+--------------+----------------| 2436 |cfmakeraw |cfsetspeed |tcflush |tcgetsid |tcsetpgrp | 2437 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] | 2438 | | |[6] | | | 2439 +-------------------------------------------------------------------------------+ 2440 ------------------------------------------------------------------------------- 2441 2442 System Database Interface 2443 2444 Table 16-24. libc - System Database Interface Function Interfaces 2445 2446 +-----------------------------------------------------------------------------+ 2447 |endgrent |getgrgid |getpwent |getutxent |setprotoent | 2448 |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[5]| 2449 | | | |[6] | | 2450 |--------------+-----------------+---------------+-------------+--------------| 2451 |endhostent |getgrgid_r |getpwnam |getutxid |setpwent | 2452 |(GLIBC_2.2)[5]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6]| 2453 | | | |[6] | | 2454 |--------------+-----------------+---------------+-------------+--------------| 2455 |endnetent |getgrnam |getpwuid |getutxline |setservent | 2456 |(GLIBC_2.2)[5]|(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[5]| 2457 | | | |[6] | | 2458 |--------------+-----------------+---------------+-------------+--------------| 2459 |endprotoent |gethostbyaddr |getpwuid_r |pututxline |setutent | 2460 |(GLIBC_2.2)[5]|(GLIBC_2.2)[5] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[3]| 2461 | | | |[6] | | 2462 |--------------+-----------------+---------------+-------------+--------------| 2463 |endpwent |gethostbyname |getservbyname |setgrent |setutxent | 2464 |(GLIBC_2.2)[6]|(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[6]| 2465 | | | |[6] | | 2466 |--------------+-----------------+---------------+-------------+--------------| 2467 |endservent |getnetbyaddr |getservbyport |setgroups | | 2468 |(GLIBC_2.2)[5]|(GLIBC_2.2)[5] |(GLIBC_2.2)[5] |(GLIBC_2.2) | | 2469 | | | |[3] | | 2470 |--------------+-----------------+---------------+-------------+--------------| 2471 |endutent |getprotobyname |getservent |sethostent | | 2472 |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] |(GLIBC_2.2)[3] |(GLIBC_2.2) | | 2473 | | | |[5] | | 2474 |--------------+-----------------+---------------+-------------+--------------| 2475 |endutxent |getprotobynumber |getutent |setmntent | | 2476 |(GLIBC_2.2)[6]|(GLIBC_2.2)[5] |(GLIBC_2.2)[3] |(GLIBC_2.2) | | 2477 | | | |[3] | | 2478 |--------------+-----------------+---------------+-------------+--------------| 2479 |getgrent |getprotoent |getutent_r |setnetent | | 2480 |(GLIBC_2.2)[6]|(GLIBC_2.2)[6] |(GLIBC_2.2)[3] |(GLIBC_2.2) | | 2481 | | | |[5] | | 2482 +-----------------------------------------------------------------------------+ 2483 2484 Table 16-25. libc - System Database Interface Deprecated Function Interfaces 2485 2486 +-----------------------------------------------------------------------------+ 2487 |endhostent(GLIBC_2.2)[5]|sethostent(GLIBC_2.2)[5]|setmntent(GLIBC_2.2)[3]| | | 2488 +-----------------------------------------------------------------------------+ 2489 ------------------------------------------------------------------------------- 2490 2491 Language Support 2492 2493 Table 16-26. libc - Language Support Function Interfaces 2494 2495 +------------------------------------------------------------------------------+ 2496 |__libc_start_main |_obstack_begin |_obstack_newchunk |obstack_free | | 2497 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] | | 2498 +------------------------------------------------------------------------------+ 2499 ------------------------------------------------------------------------------- 2500 2501 Large File Support 2502 2503 Table 16-27. libc - Large File Support Function Interfaces 2504 2505 +----------------------------------------------------------------------------+ 2506 |__fxstat64 |fopen64 |ftello64 |mkstemp64 |readdir64 | 2507 |(GLIBC_2.2)[3] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2]| 2508 |---------------+--------------+---------------+--------------+--------------| 2509 |__lxstat64 |freopen64 |ftruncate64 |mmap64 |statvfs64 | 2510 |(GLIBC_2.2)[3] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2]| 2511 |---------------+--------------+---------------+--------------+--------------| 2512 |__xstat64 |fseeko64 |ftw64 |nftw64 |tmpfile64 | 2513 |(GLIBC_2.2)[3] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2]| 2514 |---------------+--------------+---------------+--------------+--------------| 2515 |alphasort64 |fsetpos64 |getrlimit64 |open64 |truncate64 | 2516 |(GLIBC_2.2)[3] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2]| 2517 |---------------+--------------+---------------+--------------+--------------| 2518 |creat64 |fstatfs64 |lockf64 |pread64 | | 2519 |(GLIBC_2.2)[2] |(GLIBC_2.2)[3]|(GLIBC_2.2)[2] |(GLIBC_2.2)[2]| | 2520 |---------------+--------------+---------------+--------------+--------------| 2521 |fgetpos64 |fstatvfs64 |lseek64 |pwrite64 | | 2522 |(GLIBC_2.2)[2] |(GLIBC_2.2)[2]|(GLIBC_2.2)[2] |(GLIBC_2.2)[2]| | 2523 +----------------------------------------------------------------------------+ 2524 2525 Table 16-28. libc - Large File Support Deprecated Function Interfaces 2526 2527 +---------------------------------------------------------+ 2528 |alphasort64(GLIBC_2.2)[3] |fstatfs64(GLIBC_2.2)[3] | | | | 2529 +---------------------------------------------------------+ 2530 ------------------------------------------------------------------------------- 2531 2532 Standard Library 2533 2534 Table 16-29. libc - Standard Library Function Interfaces 2535 2536 +-----------------------------------------------------------------------------+ 2537 |_Exit(GLIBC_2.2)|div(GLIBC_2.2) |globfree64 |longjmp |srand | 2538 |[1] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2539 | | |[3] | |[6] | 2540 |----------------+----------------+-------------+---------------+-------------| 2541 |__assert_fail |drand48 |grantpt |lrand48 |srand48 | 2542 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2543 | | |[6] | |[6] | 2544 |----------------+----------------+-------------+---------------+-------------| 2545 |__cxa_atexit |ecvt(GLIBC_2.2) |hcreate |lsearch |srandom | 2546 |(GLIBC_2.2)[3] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2547 | | |[6] | |[6] | 2548 |----------------+----------------+-------------+---------------+-------------| 2549 |__errno_location|erand48 |hdestroy |makecontext |strtod | 2550 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2551 | | |[6] | |[6] | 2552 |----------------+----------------+-------------+---------------+-------------| 2553 |__fpending |err(GLIBC_2.2) |hsearch |malloc |strtol | 2554 |(GLIBC_2.2)[3] |[3] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2555 | | |[6] | |[6] | 2556 |----------------+----------------+-------------+---------------+-------------| 2557 |__getpagesize |error(GLIBC_2.2)|htonl |memmem |strtoul | 2558 |(GLIBC_2.2)[3] |[3] |(GLIBC_2.2) |(GLIBC_2.2)[3] |(GLIBC_2.2) | 2559 | | |[5] | |[6] | 2560 |----------------+----------------+-------------+---------------+-------------| 2561 |__isinf |errx(GLIBC_2.2) |htons |mkstemp |swapcontext | 2562 |(GLIBC_2.2)[3] |[3] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2563 | | |[5] | |[6] | 2564 |----------------+----------------+-------------+---------------+-------------| 2565 |__isinff |fcvt(GLIBC_2.2) |imaxabs |mktemp |syslog | 2566 |(GLIBC_2.2)[3] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2567 | | |[1] | |[6] | 2568 |----------------+----------------+-------------+---------------+-------------| 2569 |__isinfl |fmtmsg |imaxdiv |mrand48 |system | 2570 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2571 | | |[1] | |[3] | 2572 |----------------+----------------+-------------+---------------+-------------| 2573 |__isnan |fnmatch |inet_addr |nftw(GLIBC_2.2)|tdelete | 2574 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 2575 | | |[5] | |[6] | 2576 |----------------+----------------+-------------+---------------+-------------| 2577 |__isnanf |fpathconf |inet_aton |nrand48 |tfind | 2578 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2579 | | |[5] | |[6] | 2580 |----------------+----------------+-------------+---------------+-------------| 2581 |__isnanl |free(GLIBC_2.2) |inet_ntoa |ntohl |tmpfile | 2582 |(GLIBC_2.2)[3] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[5] |(GLIBC_2.2) | 2583 | | |[5] | |[6] | 2584 |----------------+----------------+-------------+---------------+-------------| 2585 |__sysconf |freeaddrinfo |inet_ntop |ntohs |tmpnam | 2586 |(GLIBC_2.2)[3] |(GLIBC_2.2)[7] |(GLIBC_2.2) |(GLIBC_2.2)[5] |(GLIBC_2.2) | 2587 | | |[7] | |[6] | 2588 |----------------+----------------+-------------+---------------+-------------| 2589 |_exit(GLIBC_2.2)|ftrylockfile |inet_pton |openlog |tsearch | 2590 |[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2591 | | |[7] | |[6] | 2592 |----------------+----------------+-------------+---------------+-------------| 2593 |_longjmp |ftw(GLIBC_2.2) |initstate |perror |ttyname | 2594 |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2595 | | |[6] | |[6] | 2596 |----------------+----------------+-------------+---------------+-------------| 2597 |_setjmp |funlockfile |insque |posix_memalign |ttyname_r | 2598 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[4] |(GLIBC_2.2) | 2599 | | |[6] | |[6] | 2600 |----------------+----------------+-------------+---------------+-------------| 2601 |a64l(GLIBC_2.2) |gai_strerror |isatty |ptsname |twalk | 2602 |[6] |(GLIBC_2.2)[7] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2603 | | |[6] | |[6] | 2604 |----------------+----------------+-------------+---------------+-------------| 2605 |abort(GLIBC_2.2)|gcvt(GLIBC_2.2) |isblank |putenv |unlockpt | 2606 |[6] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2607 | | |[7] | |[6] | 2608 |----------------+----------------+-------------+---------------+-------------| 2609 |abs(GLIBC_2.2) |getaddrinfo |isinf |qsort |unsetenv | 2610 |[6] |(GLIBC_2.2)[7] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2611 | | |[1] | |[3] | 2612 |----------------+----------------+-------------+---------------+-------------| 2613 |atexit |getcwd |isinff |rand(GLIBC_2.2)|usleep | 2614 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |[6] |(GLIBC_2.2) | 2615 | | | | |[6] | 2616 |----------------+----------------+-------------+---------------+-------------| 2617 |atof(GLIBC_2.2) |getdate |isinfl |rand_r |verrx | 2618 |[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2619 | | |[1] | |[3] | 2620 |----------------+----------------+-------------+---------------+-------------| 2621 |atoi(GLIBC_2.2) |getenv |isnan |random |vfscanf | 2622 |[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2623 | | |[1] | |[1] | 2624 |----------------+----------------+-------------+---------------+-------------| 2625 |atol(GLIBC_2.2) |getlogin |isnanf |random_r |vscanf | 2626 |[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[3] |(GLIBC_2.2) | 2627 | | |[1] | |[1] | 2628 |----------------+----------------+-------------+---------------+-------------| 2629 |atoll(GLIBC_2.2)|getnameinfo |isnanl |realloc |vsscanf | 2630 |[1] |(GLIBC_2.2)[7] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2631 | | |[1] | |[1] | 2632 |----------------+----------------+-------------+---------------+-------------| 2633 |basename |getopt |jrand48 |realpath |vsyslog | 2634 |(GLIBC_2.2)[6] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2635 | | |[6] | |[3] | 2636 |----------------+----------------+-------------+---------------+-------------| 2637 |bsearch |getopt_long |l64a |remque |warn | 2638 |(GLIBC_2.2)[6] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2639 | | |[6] | |[3] | 2640 |----------------+----------------+-------------+---------------+-------------| 2641 |calloc |getopt_long_only|labs |seed48 |warnx | 2642 |(GLIBC_2.2)[6] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[6] |(GLIBC_2.2) | 2643 | | |[6] | |[3] | 2644 |----------------+----------------+-------------+---------------+-------------| 2645 |closelog |getsubopt |lcong48 |setenv |wordexp | 2646 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[3] |(GLIBC_2.2) | 2647 | | |[6] | |[6] | 2648 |----------------+----------------+-------------+---------------+-------------| 2649 |confstr |gettimeofday |ldiv |sethostid |wordfree | 2650 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[3] |(GLIBC_2.2) | 2651 | | |[6] | |[6] | 2652 |----------------+----------------+-------------+---------------+-------------| 2653 |cuserid |glob(GLIBC_2.2) |lfind |sethostname | | 2654 |(GLIBC_2.2)[6] |[6] |(GLIBC_2.2) |(GLIBC_2.2)[3] | | 2655 | | |[6] | | | 2656 |----------------+----------------+-------------+---------------+-------------| 2657 |daemon |glob64 |llabs |setlogmask | | 2658 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2) |(GLIBC_2.2)[6] | | 2659 | | |[1] | | | 2660 |----------------+----------------+-------------+---------------+-------------| 2661 |dirname |globfree |lldiv |setstate | | 2662 |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2)[6] | | 2663 | | |[1] | | | 2664 +-----------------------------------------------------------------------------+ 2665 2666 Table 16-30. libc - Standard Library Data Interfaces 2667 2668 +------------------------------------------------------------------------------+ 2669 |__environ |_sys_errlist |getdate_err |opterr |optopt | 2670 |(GLIBC_2.2)[3] |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2) |(GLIBC_2.2) | 2671 | | | |[3] |[3] | 2672 |---------------+-----------------+----------------+-------------+-------------| 2673 |_environ |environ |optarg |optind | | 2674 |(GLIBC_2.2)[3] |(GLIBC_2.2)[6] |(GLIBC_2.2)[6] |(GLIBC_2.2) | | 2675 | | | |[3] | | 2676 +------------------------------------------------------------------------------+ 2677 ------------------------------------------------------------------------------- 2678 2679 Data Definitions for libc 2680 2681 This section contains standard data definitions that describe system data. 2682 These definitions are organized into groups that correspond to system headers. 2683 This convention is used as a convenience for the reader, and does not imply the 2684 existence of these headers, or their content. 2685 2686 ISO C serves as the LSB reference programming language, and data definitions 2687 are specified in ISO C format. The C language is used here as a convenient 2688 notation. Using a C language description of these data objects does not 2689 preclude their use by other programming languages. 2690 2691 ------------------------------------------------------------------------------- 2692 2693 errno.h 2694 2695 2696 2697 2698 #define EDEADLOCK EDEADLK 2699 ------------------------------------------------------------------------------- 2700 2701 inttypes.h 2702 2703 2704 2705 2706 2707 2708 typedef long intmax_t; 2709 typedef unsigned long uintmax_t; 2710 typedef unsigned long uintptr_t; 2711 ------------------------------------------------------------------------------- 2712 2713 limits.h 2714 2715 #define LONG_MAX 0x7FFFFFFFFFFFFFFFL 2716 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 2717 2718 2719 2720 2721 2722 2723 #define CHAR_MAX SCHAR_MAX 2724 #define CHAR_MIN SCHAR_MIN 2725 ------------------------------------------------------------------------------- 2726 2727 setjmp.h 2728 2729 2730 2731 2732 2733 2734 typedef long __jmp_buf[70] __attribute__ ((aligned (16))); 2735 ------------------------------------------------------------------------------- 2736 2737 signal.h 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 struct sigaction 2763 { 2764 union 2765 { 2766 __sighandler_t _sa_handler; 2767 void (*_sa_sigaction) (int, siginfo_t *, void *); 2768 } 2769 __sigaction_handler; 2770 unsigned long sa_flags; 2771 sigset_t sa_mask; 2772 } 2773 ; 2774 2775 2776 2777 2778 2779 struct ia64_fpreg 2780 { 2781 union 2782 { 2783 unsigned long bits[2]; 2784 } 2785 u; 2786 } 2787 __attribute__ ((aligned (16))); 2788 2789 2790 2791 2792 2793 struct sigcontext 2794 { 2795 unsigned long sc_flags; 2796 unsigned long sc_nat; 2797 stack_t sc_stack; 2798 unsigned long sc_ip; 2799 unsigned long sc_cfm; 2800 unsigned long sc_um; 2801 unsigned long sc_ar_rsc; 2802 unsigned long sc_ar_bsp; 2803 unsigned long sc_ar_rnat; 2804 unsigned long sc_ar_ccv; 2805 unsigned long sc_ar_unat; 2806 unsigned long sc_ar_fpsr; 2807 unsigned long sc_ar_pfs; 2808 unsigned long sc_ar_lc; 2809 unsigned long sc_pr; 2810 unsigned long sc_br[8]; 2811 unsigned long sc_gr[32]; 2812 struct ia64_fpreg sc_fr[128]; 2813 unsigned long sc_rbs_base; 2814 unsigned long sc_loadrs; 2815 unsigned long sc_rsvd[14]; 2816 unsigned long sc_mask; 2817 } 2818 ; 2819 ------------------------------------------------------------------------------- 2820 2821 stddef.h 2822 2823 2824 2825 typedef long ptrdiff_t; 2826 typedef unsigned long size_t; 2827 ------------------------------------------------------------------------------- 2828 2829 sys/ioctl.h 2830 2831 #define FIONREAD 0x541B 2832 #define TIOCNOTTY 0x5422 2833 ------------------------------------------------------------------------------- 2834 2835 sys/ipc.h 2836 2837 2838 2839 struct ipc_perm 2840 { 2841 key_t __key; 2842 uid_t uid; 2843 gid_t gid; 2844 uid_t cuid; 2845 uid_t cgid; 2846 mode_t mode; 2847 unsigned short __seq; 2848 unsigned short __pad1; 2849 unsigned long __unused1; 2850 unsigned long __unused2; 2851 } 2852 ; 2853 ------------------------------------------------------------------------------- 2854 2855 sys/mman.h 2856 2857 #define MCL_CURRENT 1 2858 #define MCL_FUTURE 2 2859 ------------------------------------------------------------------------------- 2860 2861 sys/msg.h 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 struct msqid_ds 2872 { 2873 struct ipc_perm msg_perm; 2874 time_t msg_stime; 2875 time_t msg_rtime; 2876 time_t msg_ctime; 2877 unsigned long __msg_cbytes; 2878 unsigned long msg_qnum; 2879 unsigned long msg_qbytes; 2880 pid_t msg_lspid; 2881 pid_t msg_lrpid; 2882 unsigned long __unused1; 2883 unsigned long __unused2; 2884 } 2885 ; 2886 ------------------------------------------------------------------------------- 2887 2888 sys/sem.h 2889 2890 2891 2892 struct semid_ds 2893 { 2894 struct ipc_perm sem_perm; 2895 time_t sem_otime; 2896 time_t sem_ctime; 2897 unsigned long sem_nsems; 2898 unsigned long __unused1; 2899 unsigned long __unused2; 2900 } 2901 ; 2902 ------------------------------------------------------------------------------- 2903 2904 sys/shm.h 2905 2906 #define SHMLBA (1024*1024) 2907 2908 2909 2910 2911 2912 2913 2914 2915 struct shmid_ds 2916 { 2917 struct ipc_perm shm_perm; 2918 size_t shm_segsz; 2919 time_t shm_atime; 2920 time_t shm_dtime; 2921 time_t shm_ctime; 2922 pid_t shm_cpid; 2923 pid_t shm_lpid; 2924 unsigned long shm_nattch; 2925 unsigned long __unused1; 2926 unsigned long __unused2; 2927 } 2928 ; 2929 ------------------------------------------------------------------------------- 2930 2931 sys/stat.h 2932 2933 #define _STAT_VER 1 2934 2935 2936 struct stat 2937 { 2938 unsigned long st_dev; 2939 unsigned long st_ino; 2940 unsigned long st_nlink; 2941 unsigned int st_mode; 2942 unsigned int st_uid; 2943 unsigned int st_gid; 2944 unsigned int pad0; 2945 unsigned long st_rdev; 2946 unsigned long st_size; 2947 unsigned long st_atime; 2948 unsigned long __reserved0; 2949 unsigned long st_mtime; 2950 unsigned long __reserved1; 2951 unsigned long st_ctime; 2952 unsigned long __reserved2; 2953 unsigned long st_blksize; 2954 long st_blocks; 2955 unsigned long __unused[3]; 2956 } 2957 ; 2958 struct stat64 2959 { 2960 unsigned long st_dev; 2961 unsigned long st_ino; 2962 unsigned long st_nlink; 2963 unsigned int st_mode; 2964 unsigned int st_uid; 2965 unsigned int st_gid; 2966 unsigned int pad0; 2967 unsigned long st_rdev; 2968 unsigned long st_size; 2969 unsigned long st_atime; 2970 unsigned long __reserved0; 2971 unsigned long st_mtime; 2972 unsigned long __reserved1; 2973 unsigned long st_ctime; 2974 unsigned long __reserved2; 2975 unsigned long st_blksize; 2976 long st_blocks; 2977 unsigned long __unused[3]; 2978 } 2979 ; 2980 ------------------------------------------------------------------------------- 2981 2982 sys/statvfs.h 2983 2984 2985 2986 struct statvfs 2987 { 2988 unsigned long f_bsize; 2989 unsigned long f_frsize; 2990 fsblkcnt64_t f_blocks; 2991 fsblkcnt64_t f_bfree; 2992 fsblkcnt64_t f_bavail; 2993 fsfilcnt64_t f_files; 2994 fsfilcnt64_t f_ffree; 2995 fsfilcnt64_t f_favail; 2996 unsigned long f_fsid; 2997 unsigned long f_flag; 2998 unsigned long f_namemax; 2999 unsigned int __f_spare[6]; 3000 } 3001 ; 3002 struct statvfs64 3003 { 3004 unsigned long f_bsize; 3005 unsigned long f_frsize; 3006 fsblkcnt64_t f_blocks; 3007 fsblkcnt64_t f_bfree; 3008 fsblkcnt64_t f_bavail; 3009 fsfilcnt64_t f_files; 3010 fsfilcnt64_t f_ffree; 3011 fsfilcnt64_t f_favail; 3012 unsigned long f_fsid; 3013 unsigned long f_flag; 3014 unsigned long f_namemax; 3015 unsigned int __f_spare[6]; 3016 } 3017 ; 3018 ------------------------------------------------------------------------------- 3019 3020 sys/types.h 3021 3022 3023 3024 typedef int64_t ssize_t; 3025 ------------------------------------------------------------------------------- 3026 3027 termios.h 3028 3029 #define OLCUC 0000002 3030 #define ONLCR 0000004 3031 #define XCASE 0000004 3032 #define NLDLY 0000400 3033 #define CR1 0001000 3034 #define IUCLC 0001000 3035 #define CR2 0002000 3036 #define CR3 0003000 3037 #define CRDLY 0003000 3038 #define TAB1 0004000 3039 #define TAB2 0010000 3040 #define TAB3 0014000 3041 #define TABDLY 0014000 3042 #define BS1 0020000 3043 #define BSDLY 0020000 3044 #define VT1 0040000 3045 #define VTDLY 0040000 3046 #define FF1 0100000 3047 #define FFDLY 0100000 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 #define VSUSP 10 3058 #define VEOL 11 3059 #define VREPRINT 12 3060 #define VDISCARD 13 3061 #define VWERASE 14 3062 #define VEOL2 16 3063 #define VMIN 6 3064 #define VSWTC 7 3065 #define VSTART 8 3066 #define VSTOP 9 3067 3068 3069 3070 #define IXON 0002000 3071 #define IXOFF 0010000 3072 3073 3074 3075 3076 3077 3078 #define CS6 0000020 3079 #define CS7 0000040 3080 #define CS8 0000060 3081 #define CSIZE 0000060 3082 #define CSTOPB 0000100 3083 #define CREAD 0000200 3084 #define PARENB 0000400 3085 #define PARODD 0001000 3086 #define HUPCL 0002000 3087 #define CLOCAL 0004000 3088 #define VTIME 5 3089 3090 3091 3092 #define ISIG 0000001 3093 #define ICANON 0000002 3094 #define ECHOE 0000020 3095 #define ECHOK 0000040 3096 #define ECHONL 0000100 3097 #define NOFLSH 0000200 3098 #define TOSTOP 0000400 3099 #define ECHOCTL 0001000 3100 #define ECHOPRT 0002000 3101 #define ECHOKE 0004000 3102 #define FLUSHO 0010000 3103 #define PENDIN 0040000 3104 #define IEXTEN 0100000 3105 ------------------------------------------------------------------------------- 3106 3107 ucontext.h 3108 3109 #define _SC_GR0_OFFSET (((char *) & ((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0) 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 typedef struct sigcontext mcontext_t; 3137 3138 3139 typedef struct ucontext 3140 { 3141 union 3142 { 3143 mcontext_t _mc; 3144 struct 3145 { 3146 unsigned long _pad[_SC_GR0_OFFSET / 8]; 3147 struct ucontext *_link; 3148 } 3149 _uc; 3150 } 3151 _u; 3152 } 3153 ucontext_t; 3154 ------------------------------------------------------------------------------- 3155 3156 unistd.h 3157 3158 3159 3160 typedef long intptr_t; 3161 ------------------------------------------------------------------------------- 3162 3163 Interfaces for libm 3164 3165 Table 16-31. libm Definition 3166 3167 +---------------------+ 3168 |Library:|libm | 3169 |--------+------------| 3170 |SONAME: |libm.so.6.1 | 3171 +---------------------+ 3172 3173 The behavior of the interfaces in this library is specified by the following 3174 standards. 3175 3176 ISO/IEC 9899: 1999, Programming Languages --C[10] 3177 CAE Specification, January 1997, System Interfaces and Headers (XSH),Issue 5 3178 (ISBN: 1-85912-181-0, C606)[11] 3179 3180 ------------------------------------------------------------------------------- 3181 3182 Math 3183 3184 Table 16-32. libm - Math Function Interfaces 3185 3186 +------------------------------------------------------------------------------+ 3187 |acos |cexp |expf(GLIBC_2.2) |jnf(GLIBC_2.2) |remquof | 3188 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |(GLIBC_2.2)[10]| 3189 |[11] |[10] | | | | 3190 |-------------+--------------+-----------------+---------------+---------------| 3191 |acosf |cexpf |expl(GLIBC_2.2) |jnl(GLIBC_2.2) |remquol | 3192 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |(GLIBC_2.2)[10]| 3193 |[10] |[10] | | | | 3194 |-------------+--------------+-----------------+---------------+---------------| 3195 |acosh |cexpl |expm1(GLIBC_2.2) |ldexp |rint(GLIBC_2.2)| 3196 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |(GLIBC_2.2)[11]|[11] | 3197 |[11] |[10] | | | | 3198 |-------------+--------------+-----------------+---------------+---------------| 3199 |acoshf |cimag |fabs(GLIBC_2.2) |ldexpf |rintf | 3200 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3201 |[10] |[10] | | | | 3202 |-------------+--------------+-----------------+---------------+---------------| 3203 |acoshl |cimagf |fabsf(GLIBC_2.2) |ldexpl |rintl | 3204 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3205 |[10] |[10] | | | | 3206 |-------------+--------------+-----------------+---------------+---------------| 3207 |acosl |cimagl |fabsl(GLIBC_2.2) |lgamma |round | 3208 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[11]|(GLIBC_2.2)[10]| 3209 |[10] |[10] | | | | 3210 |-------------+--------------+-----------------+---------------+---------------| 3211 |asin |clog |fdim(GLIBC_2.2) |lgamma_r |roundf | 3212 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3213 |[11] |[10] | | | | 3214 |-------------+--------------+-----------------+---------------+---------------| 3215 |asinf |clog10 |fdimf(GLIBC_2.2) |lgammaf |roundl | 3216 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3217 |[10] |[10] | | | | 3218 |-------------+--------------+-----------------+---------------+---------------| 3219 |asinh |clog10f |fdiml(GLIBC_2.2) |lgammaf_r |scalb | 3220 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[11]| 3221 |[11] |[10] | | | | 3222 |-------------+--------------+-----------------+---------------+---------------| 3223 |asinhf |clog10l |feclearexcept |lgammal |scalbf | 3224 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3225 |[10] |[10] | | | | 3226 |-------------+--------------+-----------------+---------------+---------------| 3227 |asinhl |clogf |fegetenv |lgammal_r |scalbl | 3228 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3229 |[10] |[10] | | | | 3230 |-------------+--------------+-----------------+---------------+---------------| 3231 |asinl |clogl |fegetexceptflag |llrint |scalbln | 3232 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3233 |[10] |[10] | | | | 3234 |-------------+--------------+-----------------+---------------+---------------| 3235 |atan |conj |fegetround |llrintf |scalblnf | 3236 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3237 |[11] |[10] | | | | 3238 |-------------+--------------+-----------------+---------------+---------------| 3239 |atan2 |conjf |feholdexcept |llrintl |scalblnl | 3240 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3241 |[11] |[10] | | | | 3242 |-------------+--------------+-----------------+---------------+---------------| 3243 |atan2f |conjl |feraiseexcept |llround |scalbn | 3244 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3245 |[10] |[10] | | | | 3246 |-------------+--------------+-----------------+---------------+---------------| 3247 |atan2l |copysign |fesetenv |llroundf |scalbnf | 3248 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3249 |[10] |[10] | | | | 3250 |-------------+--------------+-----------------+---------------+---------------| 3251 |atanf |copysignf |fesetexceptflag |llroundl |scalbnl | 3252 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3253 |[10] |[10] | | | | 3254 |-------------+--------------+-----------------+---------------+---------------| 3255 |atanh |copysignl |fesetround |log(GLIBC_2.2) |significand | 3256 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |[11] |(GLIBC_2.2)[10]| 3257 |[11] |[10] | | | | 3258 |-------------+--------------+-----------------+---------------+---------------| 3259 |atanhf |cos(GLIBC_2.2)|fetestexcept |log10 |significandf | 3260 |(GLIBC_2.2) |[11] |(GLIBC_2.2)[10] |(GLIBC_2.2)[11]|(GLIBC_2.2)[10]| 3261 |[10] | | | | | 3262 |-------------+--------------+-----------------+---------------+---------------| 3263 |atanhl |cosf |feupdateenv |log10f |significandl | 3264 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3265 |[10] |[10] | | | | 3266 |-------------+--------------+-----------------+---------------+---------------| 3267 |atanl |cosh |finite(GLIBC_2.2)|log10l |sin(GLIBC_2.2) | 3268 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |(GLIBC_2.2)[10]|[11] | 3269 |[10] |[11] | | | | 3270 |-------------+--------------+-----------------+---------------+---------------| 3271 |cabs |coshf |finitef |log1p |sincos | 3272 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |(GLIBC_2.2)[11]|(GLIBC_2.2)[10]| 3273 |[11] |[10] | | | | 3274 |-------------+--------------+-----------------+---------------+---------------| 3275 |cabsf |coshl |finitel |logb(GLIBC_2.2)|sincosf | 3276 |(GLIBC_2.2) |(GLIBC_2.2) |(GLIBC_2.2)[10] |[11] |(GLIBC_2.2)[10]| 3277 |[10] |[10] | | | | 3278 |-------------+--------------+-----------------+---------------+---------------| 3279 |cabsl |cosl |floor(GLIBC_2.2) |logf(GLIBC_2.2)|sincosl | 3280 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |[10] |(GLIBC_2.2)[10]| 3281 |[10] |[10] | | | | 3282 |-------------+--------------+-----------------+---------------+---------------| 3283 |cacos |cpow |floorf(GLIBC_2.2)|logl(GLIBC_2.2)|sinf(GLIBC_2.2)| 3284 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |[10] | 3285 |[10] |[10] | | | | 3286 |-------------+--------------+-----------------+---------------+---------------| 3287 |cacosf |cpowf |floorl(GLIBC_2.2)|lrint |sinh(GLIBC_2.2)| 3288 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[11] | 3289 |[10] |[10] | | | | 3290 |-------------+--------------+-----------------+---------------+---------------| 3291 |cacosh |cpowl |fma(GLIBC_2.2) |lrintf |sinhf | 3292 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3293 |[10] |[10] | | | | 3294 |-------------+--------------+-----------------+---------------+---------------| 3295 |cacoshf |cproj |fmaf(GLIBC_2.2) |lrintl |sinhl | 3296 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3297 |[10] |[10] | | | | 3298 |-------------+--------------+-----------------+---------------+---------------| 3299 |cacoshl |cprojf |fmal(GLIBC_2.2) |lround |sinl(GLIBC_2.2)| 3300 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[10] | 3301 |[10] |[10] | | | | 3302 |-------------+--------------+-----------------+---------------+---------------| 3303 |cacosl |cprojl |fmax(GLIBC_2.2) |lroundf |sqrt(GLIBC_2.2)| 3304 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[11] | 3305 |[10] |[10] | | | | 3306 |-------------+--------------+-----------------+---------------+---------------| 3307 |carg |creal |fmaxf(GLIBC_2.2) |lroundl |sqrtf | 3308 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3309 |[10] |[10] | | | | 3310 |-------------+--------------+-----------------+---------------+---------------| 3311 |cargf |crealf |fmaxl(GLIBC_2.2) |matherr |sqrtl | 3312 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3313 |[10] |[10] | | | | 3314 |-------------+--------------+-----------------+---------------+---------------| 3315 |cargl |creall |fmin(GLIBC_2.2) |modf(GLIBC_2.2)|tan(GLIBC_2.2) | 3316 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[11] |[11] | 3317 |[10] |[10] | | | | 3318 |-------------+--------------+-----------------+---------------+---------------| 3319 |casin |csin |fminf(GLIBC_2.2) |modff |tanf(GLIBC_2.2)| 3320 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[10] | 3321 |[10] |[10] | | | | 3322 |-------------+--------------+-----------------+---------------+---------------| 3323 |casinf |csinf |fminl(GLIBC_2.2) |modfl |tanh(GLIBC_2.2)| 3324 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[11] | 3325 |[10] |[10] | | | | 3326 |-------------+--------------+-----------------+---------------+---------------| 3327 |casinh |csinh |fmod(GLIBC_2.2) |nan(GLIBC_2.2) |tanhf | 3328 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |[10] |(GLIBC_2.2)[10]| 3329 |[10] |[10] | | | | 3330 |-------------+--------------+-----------------+---------------+---------------| 3331 |casinhf |csinhf |fmodf(GLIBC_2.2) |nanf(GLIBC_2.2)|tanhl | 3332 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |(GLIBC_2.2)[10]| 3333 |[10] |[10] | | | | 3334 |-------------+--------------+-----------------+---------------+---------------| 3335 |casinhl |csinhl |fmodl(GLIBC_2.2) |nanl(GLIBC_2.2)|tanl(GLIBC_2.2)| 3336 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |[10] | 3337 |[10] |[10] | | | | 3338 |-------------+--------------+-----------------+---------------+---------------| 3339 |casinl |csinl |frexp(GLIBC_2.2) |nearbyint |tgamma | 3340 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3341 |[10] |[10] | | | | 3342 |-------------+--------------+-----------------+---------------+---------------| 3343 |catan |csqrt |frexpf(GLIBC_2.2)|nearbyintf |tgammaf | 3344 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3345 |[10] |[10] | | | | 3346 |-------------+--------------+-----------------+---------------+---------------| 3347 |catanf |csqrtf |frexpl(GLIBC_2.2)|nearbyintl |tgammal | 3348 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3349 |[10] |[10] | | | | 3350 |-------------+--------------+-----------------+---------------+---------------| 3351 |catanh |csqrtl |gamma(GLIBC_2.2) |nextafter |trunc | 3352 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |(GLIBC_2.2)[11]|(GLIBC_2.2)[10]| 3353 |[10] |[10] | | | | 3354 |-------------+--------------+-----------------+---------------+---------------| 3355 |catanhf |ctan |gammaf(GLIBC_2.2)|nextafterf |truncf | 3356 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3357 |[10] |[10] | | | | 3358 |-------------+--------------+-----------------+---------------+---------------| 3359 |catanhl |ctanf |gammal(GLIBC_2.2)|nextafterl |truncl | 3360 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|(GLIBC_2.2)[10]| 3361 |[10] |[10] | | | | 3362 |-------------+--------------+-----------------+---------------+---------------| 3363 |catanl |ctanh |hypot(GLIBC_2.2) |nexttoward |y0(GLIBC_2.2) | 3364 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |(GLIBC_2.2)[10]|[11] | 3365 |[10] |[10] | | | | 3366 |-------------+--------------+-----------------+---------------+---------------| 3367 |cbrt |ctanhf |hypotf(GLIBC_2.2)|nexttowardf |y0f(GLIBC_2.2) | 3368 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[10] | 3369 |[11] |[10] | | | | 3370 |-------------+--------------+-----------------+---------------+---------------| 3371 |cbrtf |ctanhl |hypotl(GLIBC_2.2)|nexttowardl |y0l(GLIBC_2.2) | 3372 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[10] | 3373 |[10] |[10] | | | | 3374 |-------------+--------------+-----------------+---------------+---------------| 3375 |cbrtl |ctanl |ilogb(GLIBC_2.2) |pow(GLIBC_2.2) |y1(GLIBC_2.2) | 3376 |(GLIBC_2.2) |(GLIBC_2.2) |[11] |[10] |[11] | 3377 |[10] |[10] | | | | 3378 |-------------+--------------+-----------------+---------------+---------------| 3379 |ccos |dremf |ilogbf(GLIBC_2.2)|pow10 |y1f(GLIBC_2.2) | 3380 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[10] | 3381 |[10] |[10] | | | | 3382 |-------------+--------------+-----------------+---------------+---------------| 3383 |ccosf |dreml |ilogbl(GLIBC_2.2)|pow10f |y1l(GLIBC_2.2) | 3384 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]|[10] | 3385 |[10] |[10] | | | | 3386 |-------------+--------------+-----------------+---------------+---------------| 3387 |ccosh |erf(GLIBC_2.2)|j0(GLIBC_2.2)[11]|pow10l |yn(GLIBC_2.2) | 3388 |(GLIBC_2.2) |[11] | |(GLIBC_2.2)[10]|[11] | 3389 |[10] | | | | | 3390 |-------------+--------------+-----------------+---------------+---------------| 3391 |ccoshf |erfc |j0f(GLIBC_2.2) |powf(GLIBC_2.2)|ynf(GLIBC_2.2) | 3392 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |[10] | 3393 |[10] |[11] | | | | 3394 |-------------+--------------+-----------------+---------------+---------------| 3395 |ccoshl |erfcf |j0l(GLIBC_2.2) |powl(GLIBC_2.2)|ynl(GLIBC_2.2) | 3396 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |[10] |[10] | 3397 |[10] |[10] | | | | 3398 |-------------+--------------+-----------------+---------------+---------------| 3399 |ccosl |erfcl |j1(GLIBC_2.2)[11]|remainder | | 3400 |(GLIBC_2.2) |(GLIBC_2.2) | |(GLIBC_2.2)[11]| | 3401 |[10] |[10] | | | | 3402 |-------------+--------------+-----------------+---------------+---------------| 3403 |ceil |erff |j1f(GLIBC_2.2) |remainderf | | 3404 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]| | 3405 |[11] |[10] | | | | 3406 |-------------+--------------+-----------------+---------------+---------------| 3407 |ceilf |erfl |j1l(GLIBC_2.2) |remainderl | | 3408 |(GLIBC_2.2) |(GLIBC_2.2) |[10] |(GLIBC_2.2)[10]| | 3409 |[10] |[10] | | | | 3410 |-------------+--------------+-----------------+---------------+---------------| 3411 |ceill |exp(GLIBC_2.2)|jn(GLIBC_2.2)[11]|remquo | | 3412 |(GLIBC_2.2) |[11] | |(GLIBC_2.2)[10]| | 3413 |[10] | | | | | 3414 +------------------------------------------------------------------------------+ 3415 3416 Table 16-33. libm - Math Data Interfaces 3417 3418 +-------------------------------+ 3419 |signgam(GLIBC_2.2)[11] | | | | | 3420 +-------------------------------+ 3421 ------------------------------------------------------------------------------- 3422 3423 Data Definitions for libm 3424 3425 This section contains standard data definitions that describe system data. 3426 These definitions are organized into groups that correspond to system headers. 3427 This convention is used as a convenience for the reader, and does not imply the 3428 existence of these headers, or their content. 3429 3430 ISO C serves as the LSB reference programming language, and data definitions 3431 are specified in ISO C format. The C language is used here as a convenient 3432 notation. Using a C language description of these data objects does not 3433 preclude their use by other programming languages. 3434 3435 ------------------------------------------------------------------------------- 3436 3437 Interfaces for libpthread 3438 3439 Table 16-34. libpthread Definition 3440 3441 +-------------------------+ 3442 |Library:|libpthread | 3443 |--------+----------------| 3444 |SONAME: |libpthread.so.0 | 3445 +-------------------------+ 3446 3447 The behavior of the interfaces in this library is specified by the following 3448 standards. 3449 3450 Linux Standard Base[12] 3451 CAE Specification, January 1997, System Interfaces and Headers (XSH),Issue 5 3452 (ISBN: 1-85912-181-0, C606)[13] 3453 3454 ------------------------------------------------------------------------------- 3455 3456 Posix Threads 3457 3458 Table 16-35. libpthread - Posix Threads Function Interfaces 3459 3460 +----------------------------------------------------------------------------------------------------------------------------------------+ 3461 |pthread_attr_destroy |pthread_attr_setstackaddr|pthread_getspecific |pthread_once(GLIBC_2.2)[13] |pthread_setcanceltype | 3462 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | |(GLIBC_2.2)[13] | 3463 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3464 |pthread_attr_getdetachstate |pthread_attr_setstacksize|pthread_join(GLIBC_2.2)[13] |pthread_rwlock_destroy |pthread_setconcurrency| 3465 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | 3466 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3467 |pthread_attr_getguardsize |pthread_cancel(GLIBC_2.2)|pthread_key_create |pthread_rwlock_init |pthread_setschedparam | 3468 |(GLIBC_2.2)[13] |[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | 3469 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3470 |pthread_attr_getinheritsched|pthread_cond_broadcast |pthread_key_delete |pthread_rwlock_rdlock |pthread_setspecific | 3471 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | 3472 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3473 |pthread_attr_getschedparam |pthread_cond_destroy |pthread_kill(GLIBC_2.2)[13] |pthread_rwlock_timedrdlock |pthread_sigmask | 3474 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | 3475 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3476 |pthread_attr_getschedpolicy |pthread_cond_init |pthread_mutex_destroy |pthread_rwlock_timedwrlock |pthread_testcancel | 3477 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | 3478 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3479 |pthread_attr_getscope |pthread_cond_signal |pthread_mutex_init |pthread_rwlock_tryrdlock |sem_close(GLIBC_2.2) | 3480 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3481 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3482 |pthread_attr_getstackaddr |pthread_cond_timedwait |pthread_mutex_lock |pthread_rwlock_trywrlock |sem_destroy(GLIBC_2.2)| 3483 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3484 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3485 |pthread_attr_getstacksize |pthread_cond_wait |pthread_mutex_trylock |pthread_rwlock_unlock |sem_getvalue | 3486 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] | 3487 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3488 |pthread_attr_init(GLIBC_2.2)|pthread_condattr_destroy |pthread_mutex_unlock |pthread_rwlock_wrlock |sem_init(GLIBC_2.2) | 3489 |[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3490 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3491 |pthread_attr_setdetachstate |pthread_condattr_init |pthread_mutexattr_destroy |pthread_rwlockattr_destroy |sem_open(GLIBC_2.2) | 3492 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3493 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3494 |pthread_attr_setguardsize |pthread_create(GLIBC_2.2)|pthread_mutexattr_getpshared|pthread_rwlockattr_getpshared|sem_post(GLIBC_2.2) | 3495 |(GLIBC_2.2)[13] |[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3496 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3497 |pthread_attr_setinheritsched|pthread_detach(GLIBC_2.2)|pthread_mutexattr_gettype |pthread_rwlockattr_init |sem_timedwait | 3498 |(GLIBC_2.2)[13] |[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[12] | 3499 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3500 |pthread_attr_setschedparam |pthread_equal(GLIBC_2.2) |pthread_mutexattr_init |pthread_rwlockattr_setpshared|sem_trywait(GLIBC_2.2)| 3501 |(GLIBC_2.2)[13] |[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3502 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3503 |pthread_attr_setschedpolicy |pthread_exit(GLIBC_2.2) |pthread_mutexattr_setpshared|pthread_self(GLIBC_2.2)[13] |sem_unlink(GLIBC_2.2) | 3504 |(GLIBC_2.2)[13] |[13] |(GLIBC_2.2)[13] | |[13] | 3505 |----------------------------+-------------------------+----------------------------+-----------------------------+----------------------| 3506 |pthread_attr_setscope |pthread_getschedparam |pthread_mutexattr_settype |pthread_setcancelstate |sem_wait(GLIBC_2.2) | 3507 |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |(GLIBC_2.2)[13] |[13] | 3508 +----------------------------------------------------------------------------------------------------------------------------------------+ 3509 ------------------------------------------------------------------------------- 3510 3511 Data Definitions for libpthread 3512 3513 This section contains standard data definitions that describe system data. 3514 These definitions are organized into groups that correspond to system headers. 3515 This convention is used as a convenience for the reader, and does not imply the 3516 existence of these headers, or their content. 3517 3518 ISO C serves as the LSB reference programming language, and data definitions 3519 are specified in ISO C format. The C language is used here as a convenient 3520 notation. Using a C language description of these data objects does not 3521 preclude their use by other programming languages. 3522 3523 ------------------------------------------------------------------------------- 3524 3525 Interfaces for libdl 3526 3527 Table 16-36. libdl Definition 3528 3529 +--------------------+ 3530 |Library:|libdl | 3531 |--------+-----------| 3532 |SONAME: |libdl.so.2 | 3533 +--------------------+ 3534 3535 ------------------------------------------------------------------------------- 3536 3537 Dynamic Loader 3538 3539 ------------------------------------------------------------------------------- 3540 3541 Data Definitions for libdl 3542 3543 This section contains standard data definitions that describe system data. 3544 These definitions are organized into groups that correspond to system headers. 3545 This convention is used as a convenience for the reader, and does not imply the 3546 existence of these headers, or their content. 3547 3548 ISO C serves as the LSB reference programming language, and data definitions 3549 are specified in ISO C format. The C language is used here as a convenient 3550 notation. Using a C language description of these data objects does not 3551 preclude their use by other programming languages. 3552 3553 ------------------------------------------------------------------------------- 3554 3555 Interfaces for libcrypt 3556 3557 Table 16-37. libcrypt Definition 3558 3559 +-----------------------+ 3560 |Library:|libcrypt | 3561 |--------+--------------| 3562 |SONAME: |libcrypt.so.1 | 3563 +-----------------------+ 3564 3565 ------------------------------------------------------------------------------- 3566 3567 Encryption 3568 3569 ------------------------------------------------------------------------------- 3570 3571 Data Definitions for libcrypt 3572 3573 This section contains standard data definitions that describe system data. 3574 These definitions are organized into groups that correspond to system headers. 3575 This convention is used as a convenience for the reader, and does not imply the 3576 existence of these headers, or their content. 3577 3578 ISO C serves as the LSB reference programming language, and data definitions 3579 are specified in ISO C format. The C language is used here as a convenient 3580 notation. Using a C language description of these data objects does not 3581 preclude their use by other programming languages. 3582 3583 VI. Package Format and Installation 3584 3585 Table of Contents 3586 17. Software Installation 3587 3588 ------------------------------------------------------------------------------- 3589 3590 Chapter 17. Software Installation 3591 3592 ------------------------------------------------------------------------------- 3593 3594 Package Architecture Considerations 3595 3596 All packages must specify an architecture of IA64. A LSB runtime environment 3597 must accept an architecture of IA64 even if the native architecture is 3598 different. 3599 3600 The archnum value in the Lead Section shall be 0x0009. 3601 3602 ------------------------------------------------------------------------------- 3603 3604 Appendix A. Alphabetical Listing of Interfaces 3605 3606 ------------------------------------------------------------------------------- 3607 3608 Appendix B. GNU Free Documentation License 3609 3610 Version 1.1, March 2000 3611 3612 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 3613 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute 3614 verbatim copies of this license document, but changing it is not allowed. 3615 3616 ------------------------------------------------------------------------------- 3617 3618 PREAMBLE 3619 3620 The purpose of this License is to make a manual, textbook, or other written 3621 document "free" in the sense of freedom: to assure everyone the effective 3622 freedom to copy and redistribute it, with or without modifying it, either 3623 commercially or noncommercially. Secondarily, this License preserves for the 3624 author and publisher a way to get credit for their work, while not being 3625 considered responsible for modifications made by others. 3626 3627 This License is a kind of "copyleft", which means that derivative works of the 3628 document must themselves be free in the same sense. It complements the GNU 3629 General Public License, which is a copyleft license designed for free software. 3630 3631 We have designed this License in order to use it for manuals for free software, 3632 because free software needs free documentation: a free program should come with 3633 manuals providing the same freedoms that the software does. But this License is 3634 not limited to software manuals; it can be used for any textual work, 3635 regardless of subject matter or whether it is published as a printed book. We 3636 recommend this License principally for works whose purpose is instruction or 3637 reference. 3638 3639 ------------------------------------------------------------------------------- 3640 3641 APPLICABILITY AND DEFINITIONS 3642 3643 This License applies to any manual or other work that contains a notice placed 3644 by the copyright holder saying it can be distributed under the terms of this 3645 License. The "Document", below, refers to any such manual or work. Any member 3646 of the public is a licensee, and is addressed as "you". 3647 3648 A "Modified Version" of the Document means any work containing the Document or 3649 a portion of it, either copied verbatim, or with modifications and/or 3650 translated into another language. 3651 3652 A "Secondary Section" is a named appendix or a front-matter section of the 3653 Document that deals exclusively with the relationship of the publishers or 3654 authors of the Document to the Document's overall subject (or to related 3655 matters) and contains nothing that could fall directly within that overall 3656 subject. (For example, if the Document is in part a textbook of mathematics, a 3657 Secondary Section may not explain any mathematics.) The relationship could be a 3658 matter of historical connection with the subject or with related matters, or of 3659 legal, commercial, philosophical, ethical or political position regarding them. 3660 3661 The "Invariant Sections" are certain Secondary Sections whose titles are 3662 designated, as being those of Invariant Sections, in the notice that says that 3663 the Document is released under this License. 3664 3665 The "Cover Texts" are certain short passages of text that are listed, as 3666 Front-Cover Texts or Back-Cover Texts, in the notice that says that the 3667 Document is released under this License. 3668 3669 A "Transparent" copy of the Document means a machine-readable copy, represented 3670 in a format whose specification is available to the general public, whose 3671 contents can be viewed and edited directly and straightforwardly with generic 3672 text editors or (for images composed of pixels) generic paint programs or (for 3673 drawings) some widely available drawing editor, and that is suitable for input 3674 to text formatters or for automatic translation to a variety of formats 3675 suitable for input to text formatters. A copy made in an otherwise Transparent 3676 file format whose markup has been designed to thwart or discourage subsequent 3677 modification by readers is not Transparent. A copy that is not "Transparent" is 3678 called "Opaque". 3679 3680 Examples of suitable formats for Transparent copies include plain ASCII without 3681 markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly 3682 available DTD, and standard-conforming simple HTML designed for human 3683 modification. Opaque formats include PostScript, PDF, proprietary formats that 3684 can be read and edited only by proprietary word processors, SGML or XML for 3685 which the DTD and/or processing tools are not generally available, and the 3686 machine-generated HTML produced by some word processors for output purposes 3687 only. 3688 3689 The "Title Page" means, for a printed book, the title page itself, plus such 3690 following pages as are needed to hold, legibly, the material this License 3691 requires to appear in the title page. For works in formats which do not have 3692 any title page as such, "Title Page" means the text near the most prominent 3693 appearance of the work's title, preceding the beginning of the body of the 3694 text. 3695 3696 ------------------------------------------------------------------------------- 3697 3698 VERBATIM COPYING 3699 3700 You may copy and distribute the Document in any medium, either commercially or 3701 noncommercially, provided that this License, the copyright notices, and the 3702 license notice saying this License applies to the Document are reproduced in 3703 all copies, and that you add no other conditions whatsoever to those of this 3704 License. You may not use technical measures to obstruct or control the reading 3705 or further copying of the copies you make or distribute. However, you may 3706 accept compensation in exchange for copies. If you distribute a large enough 3707 number of copies you must also follow the conditions in section 3. 3708 3709 You may also lend copies, under the same conditions stated above, and you may 3710 publicly display copies. 3711 3712 ------------------------------------------------------------------------------- 3713 3714 COPYING IN QUANTITY 3715 3716 If you publish printed copies of the Document numbering more than 100, and the 3717 Document's license notice requires Cover Texts, you must enclose the copies in 3718 covers that carry, clearly and legibly, all these Cover Texts: Front-Cover 3719 Texts on the front cover, and Back-Cover Texts on the back cover. Both covers 3720 must also clearly and legibly identify you as the publisher of these copies. 3721 The front cover must present the full title with all words of the title equally 3722 prominent and visible. You may add other material on the covers in addition. 3723 Copying with changes limited to the covers, as long as they preserve the title 3724 of the Document and satisfy these conditions, can be treated as verbatim 3725 copying in other respects. 3726 3727 If the required texts for either cover are too voluminous to fit legibly, you 3728 should put the first ones listed (as many as fit reasonably) on the actual 3729 cover, and continue the rest onto adjacent pages. 3730 3731 If you publish or distribute Opaque copies of the Document numbering more than 3732 100, you must either include a machine-readable Transparent copy along with 3733 each Opaque copy, or state in or with each Opaque copy a publicly-accessible 3734 computer-network location containing a complete Transparent copy of the 3735 Document, free of added material, which the general network-using public has 3736 access to download anonymously at no charge using public-standard network 3737 protocols. If you use the latter option, you must take reasonably prudent 3738 steps, when you begin distribution of Opaque copies in quantity, to ensure that 3739 this Transparent copy will remain thus accessible at the stated location until 3740 at least one year after the last time you distribute an Opaque copy (directly 3741 or through your agents or retailers) of that edition to the public. 3742 3743 It is requested, but not required, that you contact the authors of the Document 3744 well before redistributing any large number of copies, to give them a chance to 3745 provide you with an updated version of the Document. 3746 3747 ------------------------------------------------------------------------------- 3748 3749 MODIFICATIONS 3750 3751 You may copy and distribute a Modified Version of the Document under the 3752 conditions of sections 2 and 3 above, provided that you release the Modified 3753 Version under precisely this License, with the Modified Version filling the 3754 role of the Document, thus licensing distribution and modification of the 3755 Modified Version to whoever possesses a copy of it. In addition, you must do 3756 these things in the Modified Version: 3757 3758 A. Use in the Title Page (and on the covers, if any) a title distinct from 3759 that of the Document, and from those of previous versions (which should, if 3760 there were any, be listed in the History section of the Document). You may 3761 use the same title as a previous version if the original publisher of that 3762 version gives permission. 3763 3764 B. List on the Title Page, as authors, one or more persons or entities 3765 responsible for authorship of the modifications in the Modified Version, 3766 together with at least five of the principal authors of the Document (all 3767 of its principal authors, if it has less than five). 3768 3769 C. State on the Title page the name of the publisher of the Modified Version, 3770 as the publisher. 3771 3772 D. Preserve all the copyright notices of the Document. 3773 3774 E. Add an appropriate copyright notice for your modifications adjacent to the 3775 other copyright notices. 3776 3777 F. Include, immediately after the copyright notices, a license notice giving 3778 the public permission to use the Modified Version under the terms of this 3779 License, in the form shown in the Addendum below. 3780 3781 G. Preserve in that license notice the full lists of Invariant Sections and 3782 required Cover Texts given in the Document's license notice. 3783 3784 H. Include an unaltered copy of this License. 3785 3786 I. Preserve the section entitled "History", and its title, and add to it an 3787 item stating at least the title, year, new authors, and publisher of the 3788 Modified Version as given on the Title Page. If there is no section 3789 entitled "History" in the Document, create one stating the title, year, 3790 authors, and publisher of the Document as given on its Title Page, then add 3791 an item describing the Modified Version as stated in the previous sentence. 3792 3793 J. Preserve the network location, if any, given in the Document for public 3794 access to a Transparent copy of the Document, and likewise the network 3795 locations given in the Document for previous versions it was based on. 3796 These may be placed in the "History" section. You may omit a network 3797 location for a work that was published at least four years before the 3798 Document itself, or if the original publisher of the version it refers to 3799 gives permission. 3800 3801 K. In any section entitled "Acknowledgements" or "Dedications", preserve the 3802 section's title, and preserve in the section all the substance and tone of 3803 each of the contributor acknowledgements and/or dedications given therein. 3804 3805 L. Preserve all the Invariant Sections of the Document, unaltered in their 3806 text and in their titles. Section numbers or the equivalent are not 3807 considered part of the section titles. 3808 3809 M. Delete any section entitled "Endorsements". Such a section may not be 3810 included in the Modified Version. 3811 3812 N. Do not retitle any existing section as "Endorsements" or to conflict in 3813 title with any Invariant Section. 3814 3815 If the Modified Version includes new front-matter sections or appendices that 3816 qualify as Secondary Sections and contain no material copied from the Document, 3817 you may at your option designate some or all of these sections as invariant. To 3818 do this, add their titles to the list of Invariant Sections in the Modified 3819 Version's license notice. These titles must be distinct from any other section 3820 titles. 3821 3822 You may add a section entitled "Endorsements", provided it contains nothing but 3823 endorsements of your Modified Version by various parties--for example, 3824 statements of peer review or that the text has been approved by an organization 3825 as the authoritative definition of a standard. 3826 3827 You may add a passage of up to five words as a Front-Cover Text, and a passage 3828 of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts 3829 in the Modified Version. Only one passage of Front-Cover Text and one of 3830 Back-Cover Text may be added by (or through arrangements made by) any one 3831 entity. If the Document already includes a cover text for the same cover, 3832 previously added by you or by arrangement made by the same entity you are 3833 acting on behalf of, you may not add another; but you may replace the old one, 3834 on explicit permission from the previous publisher that added the old one. 3835 3836 The author(s) and publisher(s) of the Document do not by this License give 3837 permission to use their names for publicity for or to assert or imply 3838 endorsement of any Modified Version. 3839 3840 ------------------------------------------------------------------------------- 3841 3842 COMBINING DOCUMENTS 3843 3844 You may combine the Document with other documents released under this License, 3845 under the terms defined in section 4 above for modified versions, provided that 3846 you include in the combination all of the Invariant Sections of all of the 3847 original documents, unmodified, and list them all as Invariant Sections of your 3848 combined work in its license notice. 3849 3850 The combined work need only contain one copy of this License, and multiple 3851 identical Invariant Sections may be replaced with a single copy. If there are 3852 multiple Invariant Sections with the same name but different contents, make the 3853 title of each such section unique by adding at the end of it, in parentheses, 3854 the name of the original author or publisher of that section if known, or else 3855 a unique number. Make the same adjustment to the section titles in the list of 3856 Invariant Sections in the license notice of the combined work. 3857 3858 In the combination, you must combine any sections entitled "History" in the 3859 various original documents, forming one section entitled "History"; likewise 3860 combine any sections entitled "Acknowledgements", and any sections entitled 3861 "Dedications". You must delete all sections entitled "Endorsements." 3862 3863 ------------------------------------------------------------------------------- 3864 3865 COLLECTIONS OF DOCUMENTS 3866 3867 You may make a collection consisting of the Document and other documents 3868 released under this License, and replace the individual copies of this License 3869 in the various documents with a single copy that is included in the collection, 3870 provided that you follow the rules of this License for verbatim copying of each 3871 of the documents in all other respects. 3872 3873 You may extract a single document from such a collection, and distribute it 3874 individually under this License, provided you insert a copy of this License 3875 into the extracted document, and follow this License in all other respects 3876 regarding verbatim copying of that document. 3877 3878 ------------------------------------------------------------------------------- 3879 3880 AGGREGATION WITH INDEPENDENT WORKS 3881 3882 A compilation of the Document or its derivatives with other separate and 3883 independent documents or works, in or on a volume of a storage or distribution 3884 medium, does not as a whole count as a Modified Version of the Document, 3885 provided no compilation copyright is claimed for the compilation. Such a 3886 compilation is called an "aggregate", and this License does not apply to the 3887 other self-contained works thus compiled with the Document, on account of their 3888 being thus compiled, if they are not themselves derivative works of the 3889 Document. 3890 3891 If the Cover Text requirement of section 3 is applicable to these copies of the 3892 Document, then if the Document is less than one quarter of the entire 3893 aggregate, the Document's Cover Texts may be placed on covers that surround 3894 only the Document within the aggregate. Otherwise they must appear on covers 3895 around the whole aggregate. 3896 3897 ------------------------------------------------------------------------------- 3898 3899 TRANSLATION 3900 3901 Translation is considered a kind of modification, so you may distribute 3902 translations of the Document under the terms of section 4. Replacing Invariant 3903 Sections with translations requires special permission from their copyright 3904 holders, but you may include translations of some or all Invariant Sections in 3905 addition to the original versions of these Invariant Sections. You may include 3906 a translation of this License provided that you also include the original 3907 English version of this License. In case of a disagreement between the 3908 translation and the original English version of this License, the original 3909 English version will prevail. 3910 3911 ------------------------------------------------------------------------------- 3912 3913 TERMINATION 3914 3915 You may not copy, modify, sublicense, or distribute the Document except as 3916 expressly provided for under this License. Any other attempt to copy, modify, 3917 sublicense or distribute the Document is void, and will automatically terminate 3918 your rights under this License. However, parties who have received copies, or 3919 rights, from you under this License will not have their licenses terminated so 3920 long as such parties remain in full compliance. 3921 3922 ------------------------------------------------------------------------------- 3923 3924 FUTURE REVISIONS OF THIS LICENSE 3925 3926 The Free Software Foundation may publish new, revised versions of the GNU Free 3927 Documentation License from time to time. Such new versions will be similar in 3928 spirit to the present version, but may differ in detail to address new problems 3929 or concerns. See http://www.gnu.org/copyleft/. 3930 3931 Each version of the License is given a distinguishing version number. If the 3932 Document specifies that a particular numbered version of this License "or any 3933 later version" applies to it, you have the option of following the terms and 3934 conditions either of that specified version or of any later version that has 3935 been published (not as a draft) by the Free Software Foundation. If the 3936 Document does not specify a version number of this License, you may choose any 3937 version ever published (not as a draft) by the Free Software Foundation. 3938 3939 ------------------------------------------------------------------------------- 3940 3941 How to use this License for your documents 3942 3943 To use this License in a document you have written, include a copy of the 3944 License in the document and put the following copyright and license notices 3945 just after the title page: 3946 3947 Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and 3948 /or modify this document under the terms of the GNU Free Documentation 3949 License, Version 1.1 or any later version published by the Free Software 3950 Foundation; with the Invariant Sections being LIST THEIR TITLES, with the 3951 Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A 3952 copy of the license is included in the section entitled "GNU Free 3953 Documentation License". 3954 3955 If you have no Invariant Sections, write "with no Invariant Sections" instead 3956 of saying which ones are invariant. If you have no Front-Cover Texts, write "no 3957 Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for 3958 Back-Cover Texts. 3959 3960 If your document contains nontrivial examples of program code, we recommend 3961 releasing these examples in parallel under your choice of free software 3962 license, such as the GNU General Public License, to permit their use in free 3963 software. 3964 3965 ------------------------------------------------------------------------------- 3966 3967 Appendix C. Build Environment 3968 3969 Introduction 3970 3971 This section is informative, and carries no normative requirements on the 3972 ItaniumTM Application Binary Interface. The interfaces described here should be 3973 available in an ItaniumTM LSB Build Environment. An LSB Build Environment is a 3974 platform on which LSB conforming applications can be built from source code. 3975 Platforms providing an LSB Build Environment need not provide an LSB Runtime 3976 Environment. 3977 3978 ------------------------------------------------------------------------------- 3979 3980 Build Environment 3981 3982 A conforming LSB Build Environment should provide a compiler capable of 3983 producing objects that conform to this standard. 3984 3985 Such a compiler should provide the following predefined symbols, pre-processor 3986 assertions, and compiler pragmas. 3987 3988 ------------------------------------------------------------------------------- 3989 3990 Pre-Defined Preprocessor Symbols 3991 3992 Table C-1. Pre-Defined Preprocessor Symbols 3993 3994 +----------------------------------------------------------------------------------+ 3995 |Symbol |Description | 3996 |-------------+--------------------------------------------------------------------| 3997 |__ia64 |This symbol should be used when testing for the target architecture | 3998 | |at compile time. The initial value shall be 1. Further information | 3999 | |on the architecture can be determined from the ELF header flags. | 4000 |-------------+--------------------------------------------------------------------| 4001 |_LP64 |Value is defined as 1. The architecture supports 64 bit longs, long | 4002 | |longs, and pointers. Integers are 32 bit. | 4003 +----------------------------------------------------------------------------------+ 4004 4005 Note: The gcc compiler currently pre-defines the symbol __LP64__, but not 4006 the symbol _LP64. The gcc team are aware of this deficiency. 4007 4008 ------------------------------------------------------------------------------- 4009 4010 Pre-Defined Preprocessor Assertions 4011 4012 Preprocessor assertions are deprecated, and conforming applications should not 4013 require any preprocessor assertion support. LSB Conforming Build Environments 4014 are not required to provide any predefined preprocessor assertions. 4015 4016 Note: The Intel® Itanium TM Processor-specific Application Binary Interface 4017 requires preprocessor assertion support. However, this feature is 4018 deprecated in some compilers (most notably gcc), and applications should 4019 not use it. 4020 4021 ------------------------------------------------------------------------------- 4022 4023 Compiler Pragmas 4024 4025 The Intel® Itanium TM Processor-specific Application Binary Interface, chapter 4026 7.2.3, defines a number of compiler pragmas specific to the Intel ItaniumTM 4027 compiler. These pragmas are not required to be supported by other compilers. 4028 4029 ------------------------------------------------------------------------------- 4030 4031 ILP32 ABI 4032 4033 Support for the IA32/ILP32 ABI is optional. See Intel® Itanium TM 4034 Processor-specific Application Binary Interface Chapter 7.3. 4035 4036 ------------------------------------------------------------------------------- 4037 4038 Synchronization Primitives 4039 4040 The synchronization primitives listed below should be available to applications 4041 in the LSB Build Environment for ItaniumTM. These intrinsic functions need not 4042 be provided in any system library, and the compiler may treat these as inline 4043 functions in all cases. See Intel® Itanium TM Processor-specific Application 4044 Binary Interface, Chapter 7.4 for details. 4045 4046 Table C-2. Intrinsic Functions 4047 4048 +-------------------------------------------------------------------------------------------------+ 4049 |Symbol |Description | 4050 |----------------------------+--------------------------------------------------------------------| 4051 |__sync_fetch_and_add |Atomically add a value to a referenced location and return the | 4052 | |previous value | 4053 |----------------------------+--------------------------------------------------------------------| 4054 |__sync_fetch_and_sub |Atomically subtract a value from a referenced location and return | 4055 | |the previous value | 4056 |----------------------------+--------------------------------------------------------------------| 4057 |__sync_fetch_and_or |Atomically bitwise or a value with a referenced location and return | 4058 | |the previous value | 4059 |----------------------------+--------------------------------------------------------------------| 4060 |__sync_fetch_and_and |Atomically bitwise and a value with a referenced location and return| 4061 | |the previous value | 4062 |----------------------------+--------------------------------------------------------------------| 4063 |__sync_fetch_and_xor |Atomically bitwise exclusive or a value with a referenced location | 4064 | |and return the previous value | 4065 |----------------------------+--------------------------------------------------------------------| 4066 |__sync_fetch_and_nand |Atomically bitwise not-and a value with a referenced location and | 4067 | |return the previous value | 4068 |----------------------------+--------------------------------------------------------------------| 4069 |__sync_add_and_fetch |Atomically add a value to a referenced location and return the new | 4070 | |value | 4071 |----------------------------+--------------------------------------------------------------------| 4072 |__sync_sub_and_fetch |Atomically subtract a value from a referenced location and return | 4073 | |the new value | 4074 |----------------------------+--------------------------------------------------------------------| 4075 |__sync_or_and_fetch |Atomically bitwise or a value with a referenced location and return | 4076 | |the new value | 4077 |----------------------------+--------------------------------------------------------------------| 4078 |__sync_and_and_fetch |Atomically bitwise and a value with a referenced location and return| 4079 | |the new value | 4080 |----------------------------+--------------------------------------------------------------------| 4081 |__sync_xor_and_fetch |Atomically bitwise exclusive or a value with a referenced location | 4082 | |and return the new value | 4083 |----------------------------+--------------------------------------------------------------------| 4084 |__sync_nand_and_fetch |Atomically bitwise not-and a value with a referenced location and | 4085 | |return the new value | 4086 |----------------------------+--------------------------------------------------------------------| 4087 |__sync_bool_compare_and_swap|Atomically compare a referenced location with a given value. If | 4088 | |equal, replace the contents of the location with a new value, and | 4089 | |return 1 (true), otherwise return 0 (false). | 4090 |----------------------------+--------------------------------------------------------------------| 4091 |__sync_val_compare_and_swap |Atomically compare a referenced location with a given value. If | 4092 | |equal, replace the contents of the location with a new value. Return| 4093 | |the resulting value. | 4094 |----------------------------+--------------------------------------------------------------------| 4095 |__sync_synchronize |A synchronization point. | 4096 |----------------------------+--------------------------------------------------------------------| 4097 |__sync_lock_test_and_set |Atomically set a referenced location to a value and return the old | 4098 | |value. Acquire a lock on the referenced location. | 4099 |----------------------------+--------------------------------------------------------------------| 4100 |__sync_lock_release |Release a lock acquired previously. | 4101 +-------------------------------------------------------------------------------------------------+ 4102 4103 4104 ------------------------------------------------------------------------------- 4105 4106 Thread-Local Storage 4107 4108 See Intel® Itanium TM Processor-specific Application Binary Interface Chapter 4109 7.4. 4110 4111 Notes 4112 4113 [1] ISO/IEC 9899: 1999, Programming Languages --C 4114 4115 [2] Large File Support 4116 4117 [3] Linux Standard Base 4118 4119 [4] IEEE Std POSIX.1-1996 [ISO/IEC 9945-1:1996] 4120 4121 [5] CAE Specification, February 1997, Networking Services (XNS), Issue 5(ISBN: 4122 1-85912-165-9, C523) 4123 4124 [6] CAE Specification, January 1997, System Interfaces and Headers (XSH),Issue 4125 5 (ISBN: 1-85912-181-0, C606) 4126 4127 [7] The Single UNIX® Specification(SUS) Version 3 4128 4129 [8] System V Interface Definition, Issue 3 (ISBN 0201566524) 4130 4131 [9] System V Interface Definition,Fourth Edition 4132 4133 [10] ISO/IEC 9899: 1999, Programming Languages --C 4134 4135 [11] CAE Specification, January 1997, System Interfaces and Headers (XSH),Issue 4136 5 (ISBN: 1-85912-181-0, C606) 4137 4138 [12] Linux Standard Base 4139 4140 [13] CAE Specification, January 1997, System Interfaces and Headers (XSH),Issue 4141 5 (ISBN: 1-85912-181-0, C606) 4142