Skip to content
GitLab
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 24
    • Issues 24
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • 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

Add BTI landing pads for aarch64

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged ggardet requested to merge ggardet/libglvnd:master into master Jan 21, 2022
  • Overview 8
  • Commits 1
  • Pipelines 0
  • 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
Reviewers
Request review from
Time tracking
Source branch: master