Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk4 min

ILP32 ABI Explained: 32-Bit Types, RISC-V Variants, and LP64 Differences

ILP32 makes int, long, and pointers 32 bits, but it is not a complete ABI description. Here is how ILP32 variants, LP64, and RISC-V compatibility fit together.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

ILP32 is a data-model name: C and C++ int, long, and object pointers are each 32 bits (4 bytes). It does not, by itself, describe an entire application binary interface (ABI); the ABI also defines calling conventions, object-file rules, register use, and platform-specific types. On RISC-V, the current specification associates ILP32-family ABIs with RV32-family instruction-set architectures (ISAs), while LP64-family ABIs are associated with RV64.

What ILP32 means

The letters identify the widths of three C data types:

  • I — int is 32 bits.
  • LP — long and pointers are 32 bits.
  • 32 — the model’s word size is 32 bits for those types.

In the RISC-V C/C++ type table, int, long, and void * are 4 bytes, with 4-byte alignment. That table also specifies a 2-byte short, 8-byte long long, 8-byte double, and 16-byte long double; ILP32 does not make every C type 32-bit. See the RISC-V C/C++ type details.

Because a data model covers type widths rather than every binary-interface rule, two platforms can both use ILP32 while differing in calling convention, register assignments, object-file flags, or operating-system conventions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
XIAO ESP32C3 3PCS Pack - RISC-V Tiny MCU Board with Wi-Fi and Bluetooth5.0, Battery Charge Supported, Power Efficiency and Rich Interface
  • Flexible MCU Board: Incorporate the ESP32-C3 32-bit RISC-V chip, operating up to 160 MHz, mounted multiple development ports,
  • Developer Friendly: Compatible with Arduino IDE, MicroPython, CircuitPython, PlatformIO, ESP IDF, Zephyr, Matter, ESPNow, Meshtastic, WLED, ESPHome, Home Assistant, Ubidots
  • Outstanding RF performance: Complete Wi-Fi functions and Bluetooth Low Energy, while supporting communication over 100m with anFL antenna
  • Elaborate Power Design: 4 working modes as low as 44 μA in deep sleep mode, while supporting lithium battery charge management
  • Thumb-sized Design: 21 x 17.5mm, Seeed Studio XIAO series classic form factor

Is ILP32 a 32-bit ABI?

It is commonly described as a 32-bit ABI, but that shorthand needs qualification. ILP32 guarantees 32-bit int, long, and pointers; the complete ABI includes additional rules. The architecture and ABI must therefore be named together when discussing compatibility.

For RISC-V, the procedure-calling-convention specification states: “The ILP32* ABIs are only compatible with RV32* ISAs, and the LP64* ABIs are only compatible with RV64* ISAs.” This is a RISC-V rule, not a universal statement about every processor family. The wording appears in section 2.1.4 of the RISC-V procedure-calling-convention specification.

Rank #2
2Pcs Type-C USB CH32V003 Development Board Minimum System core Board for Nano RISC-V
  • CH32V003 Development Minimum System Board for Nano RISC-V CH32V003F4U6 Chip TYPE-C USB 22Pin
  • on-board 24MHz Crystal oscillator
  • Power by TYPE-C USB

ILP32 variants on RISC-V

RISC-V names several ILP32-family ABIs. The suffix identifies the floating-point calling convention or the reduced embedded register set.

ABI Compatible ISA family Calling-convention feature RISC-V status
ILP32 RV32 Integer calling convention; no hardware floating-point argument convention Ratified
ILP32F RV32 with single-precision floating-point support Hardware floating-point convention with ABI_FLEN = 32 Ratified
ILP32D RV32 with double-precision floating-point support Hardware floating-point convention with ABI_FLEN = 64 Ratified
ILP32E RV32E embedded ISA Reduced-register embedded convention; uses the RISC-V embedded ELF flag Draft

The compatibility and calling-convention definitions are in RISC-V’s procedure-calling-convention specification. The ratified-versus-draft labels come from the RISC-V ABI status page.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
AITRIP ESP32-C3 Mini Development Board, 4MB Flash Core Board ESP32 Super Mini Development Board ESP32 Development Board WiFi Bluetooth (2PCS)
  • The ESP32-C3 SUPERMINI is positioned as a high-performance, low-power, cost-effective IoT mini development board, suitable for low-power IoT applications and wireless wearable applications
  • It is equipped with a rich set of interfaces, including 11 digital I/Os that can be used as PWM pins and 4 analog I/Os that can be used as ADC pins.
  • It supports four serial interfaces, including UART, I2C, and SPI.
  • The ESP32-C3 features a 32-bit RISC-V CPU, including an FPU (Floating Point Unit) capable of 32-bit single-precision
  • Package: 2PCS ESP32-C3 MINI Development Board ESP32 SuperMini ESP32 C3 WiFi Module

ILP32 versus LP64

Both models keep int at 32 bits. The difference is the width of long and pointers.

Type or property ILP32 LP64
int 32 bits (4 bytes) 32 bits (4 bytes)
long 32 bits (4 bytes) 64 bits (8 bytes)
Object pointers 32 bits (4 bytes) 64 bits (8 bytes)
Typical RISC-V ISA pairing RV32 RV64

LP64 does not mean every type is 64 bits: in the RISC-V table, int remains 32 bits, while types such as long long and floating-point types have their own specified sizes. Likewise, not every 64-bit operating system must use LP64; other data models exist outside the RISC-V rules summarized here.

Rank #4
waveshare ESP32-C6 RISC-V Microcontroller Development Board Integrated WiFi 6, Bluetooth 5 and IEEE 802.15.4 (Zigbee 3.0&Thread), Adopts ESP32-C6-WROOM-1-N8 Module, Support USB and UART Development
  • ESP32-C6 WiFi 6 microcontroller development board adopts ESP32-C6-WROOM-1-N8 module, which is equipped with RISC-V 32-bit single-core processor, up to 160MHz main frequency, built-in 8MB Flash
  • Integrates WiFi 6, Bluetooth 5 and and IEEE 802.15.4 (Zigbee 3.0 and Thread) wireless communication, with superior RF performance
  • Integrates rich peripherals including SPI, UART, I2C, I2S, LED PWM, SDIO and other interfaces, compatible with the pinout of ESP32-C6-DevKitC-1-N8 development board, more convenient to use and expand a variety of peripheral modules
  • Onboard CH343 and CH334 USB HUB chips, supports USB and UART development at the same time via a USB-C port
  • Comes with online examples and tutorials for ESP-IDF development environment

Can a 64-bit processor run an ILP32 ABI?

That depends on the architecture and operating-system toolchain. A 64-bit CPU can, in principle, execute code using narrower data types if its architecture and ABI define such a mode. However, the current RISC-V ABI specification does not define ILP32 for RV64: its named ABI compatibility rule pairs ILP32-family ABIs with RV32-family ISAs and LP64-family ABIs with RV64-family ISAs.

Therefore, for RISC-V, do not infer that an RV64 processor can select a standard ILP32 RISC-V ABI simply because the hardware can perform 32-bit operations. Check the exact ISA, ABI, compiler multilibs, linker, libraries, and operating-system support supplied by the platform.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Waveshare ESP32-C5 Dual-Band Wi-Fi 6 Development Board, 240MHz RISC-V Processor, ESP32-C5-WROOM-1 Series Module, Multi-Protocol RISC-V MCU, 8MP PSRAM, with Pre-soldered Headers
  • Ample PSRAM Storage – The development board offers 8MB PSRAM, providing substantial extra memory for handling more complex tasks, large data buffers, and advanced processing.
  • Enhanced Multi-Tasking Capability – With the additional 8MB PSRAM, the ESP32-C5-WIFI6-KIT can efficiently manage multiple protocol stacks simultaneously, ensuring smooth operation in multi-tasking IoT environments.
  • Support for Medium-Load Applications – The 8MB PSRAM allows the ESP32-C5 to handle medium-load applications more effectively, making it ideal for scenarios requiring real-time data processing or continuous communication.
  • Seamless Performance – The increased memory improves the overall performance and responsiveness of the device, particularly when running applications with larger memory footprints or more demanding computations.
  • Future-Proof for Complex Projects – With 8MB of PSRAM, developers are better equipped to build scalable, high-performance solutions that support both current and future IoT use cases, offering flexibility for future-proofing designs.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What the ABI controls beyond type widths

When compiling or linking, the ABI determines details that the ILP32 label alone cannot answer:

  • Which registers carry integer, pointer, and floating-point arguments.
  • How return values are placed in registers or memory.
  • Stack alignment and layout at a call boundary.
  • How structures, unions, and variadic arguments are passed.
  • Object-file and ELF flags used to reject incompatible objects.
  • Platform conventions for types and system interfaces.

This is why ILP32, ILP32F, and ILP32D are separate ABI names even though they share the same basic integer and pointer widths.

Linux-specific type details

An operating-system ABI can add rules beyond the generic data model. In the RISC-V Linux-specific ABI, wchar_t and wint_t are 4 bytes, with no ILP32-versus-LP64 distinction for those two types. Those definitions apply to that Linux ABI and should not be generalized to every ILP32 platform. See the RISC-V Linux-specific ABI.

Common mistakes when reading “ILP32”

  • Assuming every type is 32-bit: short, long long, floating-point types, and alignment can have different values.
  • Equating CPU width with pointer width: name the architecture and ABI; do not infer one from the other.
  • Calling ILP32E ratified: the RISC-V status page currently labels it draft.
  • Applying Linux rules everywhere: operating-system type definitions are platform-specific.
  • Promising a performance gain: narrower pointers can affect memory use, but performance depends on the workload, implementation, libraries, and toolchain; the ABI label alone is not a benchmark.

How to identify an ILP32 build

  1. Identify the target ISA (for RISC-V, RV32 or RV64).
  2. Read the compiler’s target ABI option or configuration; distinguish ilp32, ilp32f, ilp32d, and ilp32e where supported.
  3. Inspect the produced object with the platform’s ELF inspection tools and verify its ABI flags.
  4. Ensure every linked library was built for the same ISA and ABI variant; matching only the instruction-set family is insufficient.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. Shenzhen desk3 min
    HONOR Expands Beyond Smartphones With Humanoid Robot RevealHONOR said it unveiled its first humanoid robot at MWC 2026 and named shopping assistance, workplace inspections, and supportive companionship as intended uses. Later Robotics D1 claims and a reported…
  2. Cupertino desk5 min
    Apple Unveils AirPods Max 2: The Upgrade That Should Have Happened Years AgoAirPods Max 2 adds H2-powered audio features and Apple claims up to 1.5× more effective ANC, but its design, Smart Case, and 20-hour battery rating are unchanged. Wired lossless audio…
  3. Cupertino desk4 min
    Apple’s OLED Touch MacBooks Are Coming—but the Dynamic Island Is the Real GambleApple has not announced an OLED touchscreen MacBook, but reports point to high-end models arriving in late 2026 or early 2027. The reported Mac Dynamic Island could be useful, but…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.