[GSoC] Rust: Compiling the alloc crate - Status Report 1

Enes Cevik via Gcc <[email protected]> Sun, 07 Jun 2026 13:08:02 +0300
Newsgroups gmane.comp.gcc.devel
Message-ID <[email protected]>
Hi!
This is the first report on compiling the alloc crate with GCCRS.

This week I set out to:
- Configure the alloc testsuite.
- Implement the required Rust attributes for the alloc crate,
   specifically:
	- rustc_allocator
	- rustc_allocator_nounwind
	- rustc_std_internal_symbol
- Implement the 'oom' and 'exchange_malloc' lang items.
	- The 'oom' lang item is required to ensure a function exists
	during out-of-memory situations.
	- The 'exchange_malloc' lang item is required to ensure a function
	exists when Box allocates memory.

Over the week:
- Configured the alloc testsuite. However, expanding it was blocked
   by a missing name resolution issue, limiting us to a basic lib.rs
   and a mock core. This deficiency was recently fixed, so we expect
   the testsuite to continue being expanded in the coming weeks.
- Submitted a pull-request implementing the attributes mentioned above
   (Rust-GCC#4556). It is approved by my mentors but we are performing
   final checks to ensure correct behavior.
- Postponed the 'oom' lang item implementation, as it is not an
   immediate priority.
- Implemented and merged the 'exchange_malloc' lang item
   (Rust-GCC#4557).
- Began implementing the 'owned_box' lang item. The core
   implementation is done, but I am currently researching edge cases
   for expanding the testsuite.

Current status:
- Our first plan is to get the 'owned_box' implementation ready for
   merging next week.
- Next, we need to implement the 'box_free' lang item. This is
   required to ensure a function exists when Box deallocates memory.
- Then, if time permits, we plan to move on to the implementation of
   intrinsics related to fat pointers.

Note: My progress will slow down slightly over the next two weeks
due to university exams.

Best regards,
Enes