Bug 14730

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/GeneralAssignee: 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 Flags
0001-Replace-ALLOCATE_LOCAL-DEALLOCATE_LOCAL-with-xalloc.patch
none
0002-Rework-code-deferencing-return-value-of-LoaderSymbol.patch
none
0003-Ensure-symbols-that-replace-weak-symbols-in-librarie.patch
none
0004-Remove-symbol-clashes-by-not-compiling-shape.c-as-bu.patch
none
0005-Make-public-default-visibility-symbols-used-by-diffe.patch
none
0006-Add-a-dummy-mfbChangeWindowAttributes-function.patch
none
0005-Make-public-default-visibility-symbols-used-by-diffe.patch
none
xserver-patches.tar.bz2
none
xserver-patches.tar.bz2 none

Description Paulo César Pereira de Andrade 2008-02-28 21:25:33 UTC
Created attachment 14683 [details] [review]
0001-Replace-ALLOCATE_LOCAL-DEALLOCATE_LOCAL-with-xalloc.patch

I just remade the patches I posted some time ago to the
xorg@lists.freedesktop.org mailing list, as all of them did
not apply cleanly anymore.
Comment 1 Paulo César Pereira de Andrade 2008-02-28 21:25:58 UTC
Created attachment 14684 [details] [review]
0002-Rework-code-deferencing-return-value-of-LoaderSymbol.patch
Comment 2 Paulo César Pereira de Andrade 2008-02-28 21:26:20 UTC
Created attachment 14685 [details] [review]
0003-Ensure-symbols-that-replace-weak-symbols-in-librarie.patch
Comment 3 Paulo César Pereira de Andrade 2008-02-28 21:26:40 UTC
Created attachment 14686 [details] [review]
0004-Remove-symbol-clashes-by-not-compiling-shape.c-as-bu.patch
Comment 4 Paulo César Pereira de Andrade 2008-02-28 21:27:05 UTC
Created attachment 14687 [details] [review]
0005-Make-public-default-visibility-symbols-used-by-diffe.patch
Comment 5 Paulo César Pereira de Andrade 2008-02-28 21:27:34 UTC
Created attachment 14688 [details] [review]
0006-Add-a-dummy-mfbChangeWindowAttributes-function.patch
Comment 6 Paulo César Pereira de Andrade 2008-03-09 04:03:55 UTC
  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.
Comment 7 Daniel Stone 2008-03-09 13:26:32 UTC
This looks okay to me, but it's really ajax's turf.
Comment 8 Paulo César Pereira de Andrade 2008-03-13 23:10:55 UTC
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 9 Paulo César Pereira de Andrade 2008-03-24 19:01:25 UTC
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.
Comment 10 Paulo César Pereira de Andrade 2008-04-12 19:23:09 UTC
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.
Comment 11 Paulo César Pereira de Andrade 2008-04-27 12:07:51 UTC
  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.
Comment 12 Paulo César Pereira de Andrade 2008-05-10 15:45:48 UTC
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".
Comment 13 Paulo César Pereira de Andrade 2008-11-28 21:40:34 UTC
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.