Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • L libglvnd
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 25
    • Issues 25
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • glvnd
  • libglvnd
  • Merge requests
  • !262

Merged
Created Jan 21, 2022 by ggardet@ggardetContributor

Add BTI landing pads for aarch64

  • Overview 8
  • Commits 1
  • Changes 2

When Branch Target Identifier (BTI) is enabled on aarch64, any software which run libglvnd will fail with SIGILL, Illegal instruction. If I run kmscube within gdb, I get:

Thread 1 "kmscube" received signal SIGILL, Illegal instruction.
0x0000fffff7e7e300 in glGetString () from /lib64/libGLESv2.so.2
#0  0x0000fffff7e7e300 in glGetString () from /lib64/libGLESv2.so.2
#1  0x0000aaaaaaaa7b28 in ?? ()
#2  0x0000aaaaaaaa5dc8 [PAC] in ?? ()
#3  0x0000fffff77b70c4 [PAC] in __libc_start_call_main () from /lib64/libc.so.6
#4  0x0000fffff77b7198 [PAC] in __libc_start_main_impl () from /lib64/libc.so.6
#5  0x0000aaaaaaaa75f8 [PAC] in ?? ()

This is because some assembler code misses the BTI landing pads. See: https://developer.arm.com/documentation/102433/0100/Jump-oriented-programming

"hint #34 (closed)" is the same thing as "BTI C" landing pad, but keep compatibility with systems without BTI enabled.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: master