summaryrefslogtreecommitdiff
blob: 5013b13ff7f8820f648b18b6b25cb44dea63a4c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Kevqunn's Xorg hardened overlay
===============================

Aim: to eliminate lazy binding requirement


Issues:
1) Video drivers for ATI and cirrus consist of multiple modules, and
   these modules are mutually dependend (i.e. submodule A needs symbols
   from submodule B, and submodule B needs symbols from submodule A).

   Solution is to patch them so that the mutual dependencies are
   eliminated.

2) libglx and libGLcore have similar mutual dependencies.

   The solution used for the ATI & cirrus drivers cannot be applied here
   because although it works well enough for Xorg, it does not work
   for Xnest etc which do not have the loader code linked in.

   There are two possible approaches:

   a) Patch x11-base/xorg-server so that libglx has a NEEDED entry for
      libGLcore.

	  This probably won't work if a third-party libGLcore is to be used
	  with the X11 libglx.

   b) Patch x11-base/xorg-server so that libglx has lazy bindings

   Patches are provided for both, however the build is setup for (a).

3) libglx needs libdrm which needs libdri which uses libglx (circular dependency)

   Solved in the same manner as (1) since libdri is only used where the loader
   is available (if configured).

   Note that with 2(b) this isn't necessary.

4) mesa requires executable heap
   Ideal solution would be to use the C dispatch code, but this requires disabling all
   other asm as well, which it would be nice to avoid.

   Solution not ready

[17195423.420000] PAX: execution attempt in: /usr/lib/opengl/xorg-x11/lib/libGL.so.1.2, 4c5c5000-4c5cb000 00077000
[17195423.420000] PAX: terminating task: /usr/bin/glxgears(glxgears):1645, uid/euid: 1000/1000, PC: 4c5c8440, SP: 5c5333bc
[17195423.420000] PAX: bytes at PC: 65 a1 f8 ff ff ff ff a0 4c 04 00 00 8d 74 26 00 65 a1 f8 ff
[17195423.424000] PAX: bytes at SP-4: 5c533448 4c567288 00001f03 00000000 04400002 04400002 5c533400 00000000 4c46ca94 4c40549c 00000000 13360a08 00000000 4c5c6020 1335a9c8 00000001 00000000 9191a9c8 00162201 00000000 00000001

5) mesa has TEXTRELS
   Involves fixing various bits of asm.

   Solution not ready