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
|