Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
xserver
xserver
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 890
    • Issues 890
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 96
    • Merge Requests 96
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorg
  • xserverxserver
  • Issues
  • #692

Closed
Open
Opened May 09, 2019 by Adam Jackson@ajax💣Owner3 of 3 tasks completed3/3 tasks

RFE: Make it possible to build xserver with ld -z now

Linking with -z now is a modest security improvement because it allows the linker to set more of its data structures to be read-only after initialization. For the non-loadable X servers this can be enabled trivially.

For the loadable server - i.e., Xorg the xfree86 DDX - we're still carrying the legacy of the old elfloader, in that our modules expect to work if loaded before all the other modules they might call. For example, vbe and int10 can be (and are) loaded in arbitrary order by drivers, even though vbe depends on symbols defined in int10. So this is really a question of reducing the number of modules that we build and ensuring that the remaining ones can satisfy their needed symbols from the X server directly. I think all that would be needed for this to work is:

  • merge int10 and vbe as a single loadable object, and teach the loader to know this
  • link fb directly into the server executable, since you're almost certainly going to load it anyway
  • modify the modesetting driver to LoaderSymbol() for things it plans to call from glamor or shadow

External drivers that wanted to link with -z now would need to do similar LoaderSymbol tricks.

Edited Nov 13, 2019 by Adam Jackson
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
xserver-21.1
Milestone
xserver-21.1
Assign milestone
Time tracking
None
Due date
None
Reference: xorg/xserver#692