Commit Graph

55 Commits

Author SHA1 Message Date
Adam Jackson
f28e48834e Remove SCO support
This has never been buildable in any modular server release.

Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-12-20 12:11:11 -05:00
Chris Wilson
9a893fe52f xfree86: Do not call dlclose(NULL) [regression after ab7f057]
During unwind following an error when attempting to a load a module, we
attempt to call dlclose on a potentially NULL handle. This is a
side-effect of removing the abstraction layer in ab7f057.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Adam Jackson <ajax@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-10-04 11:46:07 -07:00
Adam Jackson
ab7f057ce9 loader: Remove a silly layer of reference counting
libdl will refcount objects for us just fine, thanks.

Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-22 10:57:12 -04:00
Adam Jackson
0438002cd2 loader: include cleanup
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-22 10:57:07 -04:00
Adam Jackson
2f003fe496 loader: Remove the handle field from LoaderOpen
This was always 0 from all the callers.

Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-22 10:57:02 -04:00
Adam Jackson
09929da505 loader: Remove unused canonical name field
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-22 10:56:57 -04:00
Adam Jackson
3a26e7f459 loader: Remove unused module serial number
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-22 10:56:53 -04:00
Adam Jackson
2a24a013bf loader: Merge dlloader directly into the loader
This lets us drop some double-tracking of loaded modules too.  If your
OS is too lame to have libdl, fix that first.

Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-09-22 10:55:55 -04:00
Matt Turner
08adf41f63 Replace malloc/strlen/strcpy with strdup.
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-08-27 19:05:48 -04:00
Adam Jackson
3637945a45 loader: Remove a useless check. 2009-07-17 15:03:57 -04:00
Adam Jackson
ef2bb08c76 loader: remove dead LoaderCheckUnresolved 2009-07-17 15:03:57 -04:00
Adam Jackson
71a83d68ab xfree86: Remove loader symbol list ABI stubs
These have been nops since 2006 and functionally void since 7.0.
2009-05-28 15:32:03 -04:00
Alan Coopersmith
b680bda34d Fix a couple off-by-one array boundary checks.
Error: Write outside array bounds at Xext/geext.c:406
        in function 'GEWindowSetMask' [Symbolic analysis]
       In array dereference of cli->nextSib[extension] with index 'extension'
       Array size is 128 elements (of 4 bytes each), index <= 128

Error: Buffer overflow at dix/events.c:592
	in function 'SetMaskForEvent' [Symbolic analysis]
       In array dereference of filters[deviceid] with index 'deviceid'
       Array size is 20 elements (of 512 bytes each), index >= 0 and index <= 20

Error: Read buffer overflow at hw/xfree86/loader/loader.c:226
	in function 'LoaderOpen' [Symbolic analysis]
       In array dereference of refCount[new_handle] with index 'new_handle'
       Array size is 256 elements (of 4 bytes each), index >= 1 and index <= 256

These bugs were found using the Parfait source code analysis tool.
For more information see http://research.sun.com/projects/parfait

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-08 12:27:11 -07:00
Adam Jackson
910a1e88d2 loader: Remove a vestige of archive support 2009-02-04 22:44:16 -05:00
Adam Jackson
366f23c6eb loader: Remove useless call to LoaderGetOS
We know what OS you're running on anyway, it's printed in the uname
string at the top of the log.
2009-02-04 22:44:12 -05:00
Adam Jackson
05e415a5a3 loader: Simplify loader magic 2009-02-04 22:44:06 -05:00
Adam Jackson
bf1ca06a16 loader: Make a comment slightly less stupid 2009-02-04 22:44:01 -05:00
Adam Jackson
499908aeca loader: code motion. 2009-02-04 22:43:57 -05:00
Adam Jackson
28b6b1519c loader: Simplify handle allocation and refcounting. 2009-02-04 22:43:52 -05:00
Julien Cristau
aec4c0caca xfree86: ANSI cleanups 2009-01-11 08:54:11 +01:00
Paulo Cesar Pereira de Andrade
b1dac41fb3 Use libtool convenience libraries and better "symbol" table.
All .a libraries were converted to .la, and instead of linking the
Xorg binary with a mix of .a and .la, and adding some libraries more
then once in the command line, etc, now it generates a single libxorg.la
from all the required convenience libraries, and links with a dummy
xorg.c (that should usually be the file with the main function...).
This removes the requirement of some things like libosandcommon and
libinit, that existed to circumvent problems when linking multiple
.a and .la in the final Xorg binary.

  The "symbol table" is now generated dynamically, by a shell script,
with an embedded gawk parser that parses cpp output. The new file
sdksyms.sh is generated by hand by analyzing all Makefile.am's and
making it create a sdksyms.c file, that includes all sdk headers that
will add symbols for the Xorg binary. Module headers aren't read, and
a in 2 files it was required to add a "<hash>ifndef XorgLoader" around
declarations shared between the Xorg binary and libextmod. A few
other changes were added to other sdk headers, like preventing
multiple inclusion, or including other headers to satisfy dependencies.

  This should be a lot more portable, and better (hopefully properly)
using libtool to generate convenience libraries.
2008-12-07 02:22:19 -02:00
Paulo Cesar Pereira de Andrade
466b0fca9b Add back a simplified version of the loader static address tables.
If not taking the symbol addresses, linkage will break badly, as not
all symbols will be present, and it also requires changing library order,
and/or making some changes like the "libosandcommon".

  This table should be modified to be generated automatically, as
it is required to "fool" the compiler/loader into adding all required
symbols to the X Server.
2008-12-05 17:01:09 -02:00
Paulo Cesar Pereira de Andrade
49f77fff14 Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.

  This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)

  LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.

  xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 05:43:34 -02:00
Alan Coopersmith
058100fd19 Remove more Lynx leftovers
A couple #if defined(Lynx) && defined(sun) had become just if defined(sun),
resulting in wrong settings for Solaris builds, so they're now just deleted.
2008-07-17 09:35:30 -07:00
Mathieu Bérard
47833eef35 Drop a bunch of #ifdef Lynx. 2008-07-17 11:59:24 -04:00
Adam Jackson
affec10635 Remove loadable font renderer support. 2008-07-16 14:49:36 -04:00
Aaron Plattner
ebd70c82fd Add LoaderShouldIgnoreABI to allow drivers that roll their own ABI checks (i.e. nvidia) to perform the check before ScreenInit. 2008-07-10 15:13:13 -07:00
Adam Jackson
9719354ae0 Check for __amd64__, not __x86_64__.
Spiritual revert of 1fa4de80fc.  Intel's C
compiler claims to be gcc-compatible; if they're not defining the same
macros as gcc then that's their bug, not ours.  Even if we were to do
this aliasing we should do it once and for all in servermd.h.
2008-06-24 14:37:06 -04:00
Matt Turner
1fa4de80fc Check for __x86_64__ when we check for __amd64__
It seems Intel C Compiler neglects to define __amd64__, __amd64, or
amd64, but *does* define __x86_64__.
2008-04-12 20:39:18 +02:00
Adam Jackson
9a0f25de7c Static cleanups, dead code deletion. 2007-03-25 12:27:01 -04:00
Adam Jackson
114264584c Remove a useless open() of the module we're about to load. 2006-07-21 22:55:41 -04:00
Adam Jackson
bca9364f3f Remove the loader's required and referenced symbol lists, dead code. 2006-07-21 18:41:46 -04:00
Adam Jackson
d8135eb9e4 Unbreak unbreaking the loader. Re-add the symbol reference lists so that the
linker will include everything it's supposed to.  This is a terrible solution,
but ld semantics don't let you do anything better.
2006-06-21 20:49:21 -04:00
Adam Jackson
a28652f9c3 Another round of loader sense-beating. Remove the (unused) server export
lists, a really bad hash table, the last vestiges of the other backends,
and some miscellaneous cleanups.  Good for dropping 300k from the size of
the built server on x86.
2006-06-19 00:57:18 -04:00
Adam Jackson
21ebcfd702 Demolish now-unused loader functions. 2006-06-07 14:17:31 -04:00
Daniel Stone
cd384af305 Completely remove relocation pointer table. 2006-06-03 10:50:23 +00:00
Daniel Stone
97203f1cf6 Clean up a warning, and remove excess multiple-suffix code. 2006-06-01 20:41:21 +00:00
Daniel Stone
6d594ebc66 Ditch more alternate-loader braindamage. 2006-06-01 20:22:39 +00:00
Daniel Stone
c946817748 Kill a.out, COFF and ELF loaders with FIRE. 2006-06-01 20:18:30 +00:00
Matthieu Herrb
a715634d23 Don't access free memory after unloading a module. Bugzilla #4168. 2006-04-23 13:14:50 +00:00
Aaron Plattner
bd283c2464 Add a new export, LoaderGetABIVersion. This function allows modules to
query the versions directly instead of having to guess. Bug #6416: Add
    LoaderGetABIVersion.
2006-03-28 07:21:50 +00:00
Adam Jackson
a68c11bb1d Mark everything in xf86sym.c as _X_EXPORT. 2006-03-25 19:52:05 +00:00
Adam Jackson
d8221a9b70 Coverity #484: Fix an off-by-one in module refcounting. 2006-03-15 16:11:34 +00:00
Kristian Høgsberg
c3342c8000 Merge accel_indirect branch to HEAD. 2006-03-12 00:11:34 +00:00
Kean Johnson
5390c7ab05 See ChangeLog entry 2005-11-07 for details. 2005-11-08 06:33:30 +00:00
Daniel Stone
b48a24e796 Don't assume that all sun4m CPUs support muldiv; the Cypress CPU, which
implements the 4m MMU but only v7 instructions, does not. (Debian
    #100).
2005-08-26 06:23:41 +00:00
Daniel Stone
0bb669638f Change <X11/misc.h> and <X11/os.h> to "misc.h" and "os.h". 2005-07-03 08:53:54 +00:00
Daniel Stone
e03198972c Add Xtrans definitions (FONT_t, TRANS_CLIENT) to clean up warnings.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
    source files in the xserver/xorg tree, predicated on defines of
    HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
    <X11/fonts/foo.h>.
2005-07-03 07:02:09 +00:00
Daniel Stone
9b1debcdb6 Change all misc.h and os.h references to <X11/foo.h>. 2005-07-01 22:43:43 +00:00
Eric Anholt
d5739efd2c Port X.Org to FreeBSD/powerpc. This makes a bit of math for sysmouse in
mouse.c explicitly signed, avoiding the need for -fsigned-chars. (Peter
    Grehan, grehan at FreeBSD dot org)
2005-05-04 04:14:58 +00:00