Summary: | xorg/xserver - _X_EXPORT related patches, ensuring symbols used by modules are visible and fixing some missing symbols | ||
---|---|---|---|
Product: | xorg | Reporter: | Paulo César Pereira de Andrade <pcpa> |
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> |
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | blocker | ||
Priority: | highest | Keywords: | patch |
Version: | git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 14771, 14781 | ||
Attachments: |
Description
Paulo César Pereira de Andrade
2008-02-28 21:25:33 UTC
Created attachment 14684 [details] [review] 0002-Rework-code-deferencing-return-value-of-LoaderSymbol.patch Created attachment 14685 [details] [review] 0003-Ensure-symbols-that-replace-weak-symbols-in-librarie.patch Created attachment 14686 [details] [review] 0004-Remove-symbol-clashes-by-not-compiling-shape.c-as-bu.patch Created attachment 14687 [details] [review] 0005-Make-public-default-visibility-symbols-used-by-diffe.patch Created attachment 14688 [details] [review] 0006-Add-a-dummy-mfbChangeWindowAttributes-function.patch Changing priority/severity because these patches needs to be remade from time to time. As of today they don't apply cleanly anymore also, but I am not posting an update, at least until at least one response is given to this bug report. Note that I am also just editing configure.ac and Makefile.am's in the X Server source tree and drivers, as I am using the macro XORG_CHECK_SYMBOLS in the patch for util/macros, and then adding a XORG_CHECK_SYMBOLS to configure.ac and @HIDDEN_SYMBOLS@ to AM_CFLAGS as appropriate to most Makefile.am's. After having things compiled with hidden symbols by default, I can use xorg-symbols.pl (see #14912 for the scripts) to check for missing symbols. This looks okay to me, but it's really ajax's turf. Created attachment 15112 [details] [review] 0005-Make-public-default-visibility-symbols-used-by-diffe.patch Patch remade as of a few minutes ago. It also adds exports functions that I previously opened another bug report, but better to have only one patch for this issue. Other patches diff is only the "From <commit>" line, so they should still apply cleanly. Comment on attachment 14683 [details] [review] 0001-Replace-ALLOCATE_LOCAL-DEALLOCATE_LOCAL-with-xalloc.patch This has been fixed in commit 57d48d94b8947c571925e6fd4c9bf041fbd1b2ac Other patches should still apply, but patch 5 isn't enough anymore to cover symbols required by different compilable modules. Created attachment 15864 [details]
xserver-patches.tar.bz2
Adding all X Server patches in a single tarball.
This has been updated for the cfb removal, and
exports one xvmc and some dri2 symbols.
Changing priority/severity. Ajax, can you give some comment on it? Currently I use xorg/util/macros, and there is an associated bugzilla (https://bugs.freedesktop.org/show_bug.cgi?id=14745) to define the macro XORG_CHECK_SYMBOLS, that uses AC_SUBST on HIDDEN_SYMBOLS and PUBLIC_SYMBOLS. This was done initially to allow compiling half with public symbols by default. But everything in the X Server should compile and run fine if XORG_CFLAGS did include the visibility argument, and this way avoid the requirement of adding @@HIDDEN_SYMBOLS@@ or @@PUBLIC_SYMBOLS@@ to AM_CFLAGS. I think the only code that may use XORG_CFLAGS and should be public visibility (to match the default for all other libraries) are the lib*XvMC.so binaries, that are built for some drivers, and usually installed by default in /usr/lib. Also, for an official version, it should export everything that is defined in /usr/include/xorg/*.h. I already posted information about these symbols, as well as about symbols not in the "sdk" but that must be made of public visibility because some drivers use those "private" symbols. The only reason I can think to still not at least give a response is maybe fear of lack of maintenance. But it should not be too hard, I already posted a script that lists all missing symbols in an install, see https://bugs.freedesktop.org/show_bug.cgi?id=14912 and knowing what symbols are not being exported, just use ctags/cscope to find the symbol and make it "visible". There are of course some problems with symbols defined using macros that are harder to find, that I plan to make them reachable from a text editor that understands ctags, but did not make patches because I consider maintaining and remaking these patches is enough for now. There is no script to do an automated check if a symbol that is not in the sdk, but made public, is no longer required to be made public, but if this is also a problem, I can work on it. Created attachment 16466 [details]
xserver-patches.tar.bz2
Update to current git master.
Also _X_EXPORT'ed randr/randr.c:rrPrivKey required
by the geode driver, but not in the "sdk".
All required patches to allow compiling the X Server and modules with hidden symbols by default were applied. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.