Getting Past the 4 Gigabyte Barrier
Changes in Derived Types
Interoperability Issues
Large Files
Changes to stdio
Alignment Issues
Converting Applications
Frequently Asked Questions (FAQ)
Frequently Asked Questions (FAQ)
When to Use 64-Bit for Applications
64-Bit Arithmetic
Comparing 32-Bit Interfaces and 64-Bit Interfaces
Changes in Derived Types
64-Bit Computing
Guidelines for Converting to LP64 Data Type Model
64-Bit Arithmetic
Typical Performance and Problem Size Curve
Debugging 64-Bit Applications
ELF and System Generation Tools
Interoperability Issues
Large Files
64-Bit Libraries
When to Use 64-Bit for Applications
Changes to stdio
Alignment Issues
Performance Issues
When to Use 64-Bit for Applications
Frequently Asked Questions (FAQ)
System Call Issues
Compatibility Between 32-Bit Applications and 64-Bit Applications
64-Bit Application Disadvantages
Converting Applications
amd64, i386, SPARC V9 ABI
Beyond Large Address Spaces
Address Space Layout of the SPARC V9 ABI
Algorithmic Changes
Alignment Issues
Address Space Layout for amd64 Applications
Alignment Issues
AMD64 ABI Features
Application Binaries
Compatibility Between 32-Bit Applications and 64-Bit Applications
Converting Applications
Implementing Single Source Code
Converting Applications
Application Source Code
Calling Convention Changes
Do Not Assume int and Pointers Are the Same Size
Use Casts to Show Your Intentions
Building FOSS on Oracle Solaris Systems
Changes in Derived Types
Check for Side Effects of Changes
Checklist for Converting to 64-bit
Code Models of the SPARC V9 ABI
Finding Errors With lint
Changes in Derived Types
Application Binaries
Application Source Code
Device Drivers
Changes in Derived Types
ioctl Does Not Type Check at Compile Time
Constant Macros
Specify Constant Types
Converting Applications
Guidelines for Converting to LP64 Data Type Model
Calling Convention Changes
Algorithmic Changes
sizeof
unsigned long in LP64
Beware of Implicit Declaration
Internal Data Structures
Check Unions
Checklist for Converting to 64-bit
Check Format String Conversion Operation
Check Whether Literal Uses of long Still Make Sense
Compiling LP64 Programs
Use Pointer Arithmetic Instead of Integers
Sample 64-Bit From 32-Bit Program
Check for Side Effects of Changes
Sign Extension
Specify Constant Types
Use Casts to Show Your Intentions
Check for Derived Types That Have Grown in Size
libkvm and /dev/ksyms
libkvm and /dev/ksyms
sizeof
unsigned long in LP64
Overview of the Data Model Differences
Placement of Text and Data of the SPARC V9 ABI
Typical Performance and Problem Size Curve
Debugging 64-Bit Applications
Finding Errors With lint
Derived Types
AMD64 ABI Features
Finding Errors With lint
Device Drivers
Linking Object Files
ELF and System Generation Tools
EOVERFLOW Indicates System Call Issue
ELF
size_t Definition in _LP64
Fixed-Width Integer Types
libkstat Kernel Statistics
Check Format String Conversion Operation
Format String Macros
Building FOSS on Oracle Solaris Systems
sizeof
unsigned long in LP64
ELF and System Generation Tools
Check for Derived Types That Have Grown in Size
64-Bit Header Files
Implementing Single Source Code
Alignment Issues
32-bit
Beware of Implicit Declaration
Do Not Assume int and long Are the Same Size
Fixed-Width Integer Types
Limits in inttypes.h
Internal Data Structures
Interoperability Issues
Interprocess Communication
ioctl Does Not Type Check at Compile Time
Kernel Memory Readers
Building FOSS on Oracle Solaris Systems
large files
Large Files
Differences Between Derived Types Specific to Large Files
EOVERFLOW Indicates System Call Issue
Large Virtual Address Space
LD_LIBRARY_PATH Environment Variable
Building FOSS on Oracle Solaris Systems
Changes to stdio
libkstat Kernel Statistics
32-Bit and 64-Bit Libraries
64-Bit Libraries
SPARC V9 ABI Features
Building FOSS on Oracle Solaris Systems
Changes to stdio
libkstat Kernel Statistics
Frequently Asked Questions (FAQ)
Getting Past the 4 Gigabyte Barrier
Limits in inttypes.h
Changes to stdio
Changes to stdio
Frequently Asked Questions (FAQ)
Linking Object Files
Finding Errors With lint
64-bit
When to Use 64-Bit for Applications
Guidelines for Converting to LP64 Data Type Model
Constant Macros
Format String Macros
$ORIGIN Keyword
Finding Errors With lint
/proc Interface
/proc Restrictions
Application Naming Conventions
Building FOSS on Oracle Solaris Systems
Packaging Guidelines
Placement of Libraries and Programs
Performance Issues
Compiling LP64 Programs
Use Pointer Arithmetic Instead of Integers
Helpful Types Such as unintptr_t
When to Use 64-Bit for Applications
Helpful Types Such as unintptr_t
Finding Errors With lint
Sign Extension
Sign Extension
Sign Extension
Fixed-Width Integer Types
Implementing Single Source Code
Converting Applications
sizeof
unsigned long in LP64
Alignment Issues
Address Space Layout of the SPARC V9 ABI
Alignment Issues
Code Models of the SPARC V9 ABI
Placement of Text and Data of the SPARC V9 ABI
SPARC V9 ABI Features
Stack Bias
Application Binary Interfaces
Overview of the Data Model Differences
Changes to stdio
Changes to stdio
Changes in Derived Types
Differences Between Derived Types Specific to Large Files
64-Bit Header Files
Feature Test Macros
Changes in Derived Types
Extensions to sysinfo System Call
System Call Issues
EOVERFLOW Indicates System Call Issue
ioctl Does Not Type Check at Compile Time
Placement of Text and Data of the SPARC V9 ABI
Changes in Derived Types
Derived Types
Building FOSS on Oracle Solaris Systems
Helpful Types Such as unintptr_t
Check Unions
Fixed-Width Integer Types
Check for Derived Types That Have Grown in Size
Check for Derived Types That Have Grown in Size
Large Virtual Address Space
Getting Past the 4 Gigabyte Barrier