Documentation Home
> Solaris 7 64-bit Developer's Guide
Solaris 7 64-bit Developer's Guide
Book Information
Preface
Chapter 1 64-bit Computing
Getting Past the 4Gbyte Barrier
Beyond Large Address Spaces
Chapter 2 When to Use 64-bit
Major Features
Large Virtual Address Space
Large Files
64-bit Arithmetic
System Limitations Removed
Interoperability Issues
Kernel Memory Readers
/proc Restrictions
64-bit Libraries
Estimating the Effort of Conversion
Chapter 3 Comparing 32-bit and 64-bit Interfaces
Application Programming Interfaces
Application Binary Interfaces
Compatibility
Application Binaries
Application Source Code
Device Drivers
Which Solaris Operating Environment Are You Running?
Sample Program
Chapter 4 Converting Applications
Data Model
Implementing Single-Source Code
Derived Types
<sys/types.h>
<inttypes.h>
Fixed-Width Integer Types
uintptr_t and Other Helpful Types
Constant Macros
Limits
Format String Macros
Tools
lint(1)
Guidelines for Converting to LP64
Do Not Assume int and Pointers Are the Same Size
Do Not Assume int and long Are the Same Size
Sign Extension
Use Pointer Arithmetic Instead of Address Arithmetic
Repack Structures
Check Unions
Specify Type of Constants
Beware of Implicit Declaration
sizeof() is an unsigned long
Use Casts to Show Your Intentions
Check Format String Conversion Operation
Other Considerations
Derived Types That Have Grown in Size
Check for Side Effects of Changes
Check Whether Literal Uses of long Still Make Sense
Use #ifdef for Explicit 32-bit Versus 64-bit Prototypes
Calling Convention Changes
Algorithmic Changes
Checklist for Getting Started
Chapter 5 The Development Environment
Build Environment
Headers
Compilers
Libraries
Linking
LD_LIBRARY_PATH
$ORIGIN
Packaging
Placement of Libraries and Programs
Packaging Guidelines
Application Naming Conventions
Wrappers
/usr/lib/isaexec
isaexec(3C)
Debugging
Chapter 6 Advanced Topics
What's New for Applications
Generic 64-bit ABI Features
SPARC V9 ABI Features
Address Space Layout
Placement of Text and Data
Interprocess Communication
ELF and System Generation Tools
/proc
libkvm and /dev/ksyms
libkstat
Changes to stdio
Performance Issues
64-bit Application Advantages
64-bit Application Disadvantages
System Call Issues
What does EOVERFLOW mean?
Beware ioctl(2)
Appendix A Changes in Derived Types
Appendix B Frequently Asked Questions (FAQ)
Appendix C 64-bit Developer's Guide Updates
© 2010, Oracle Corporation and/or its affiliates