Skip to content

Use Go 1.23's new structs.HostLayout #259

@TotallyGamerJet

Description

@TotallyGamerJet

Operating System

  • Windows
  • macOS
  • Linux
  • FreeBSD
  • Android
  • iOS

What feature would you like to be added?

Use structs.HostLayout in all Platform specific structs

Why is this needed?

In Go 1.23, a new package and type called structs.HostLayout was added in golang/go#66408. Adding this field to a struct instructs the compiler to guarantee the struct matches the C ABI.

We currently, rely on the fact that Go's current struct layout matches the C ABI. The following is an incomplete list of structs that must match C ABI.

  • objc_super
  • G
  • ThreadStart
  • pthread_mutex_t
  • pthread_cond_t

As well as all the one's in struct_test.go, objc_runtime_darwin_test.go and in the examples/window platform files

This is not urgent as there is no current plan to change Go's struct layout

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions