mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-29 21:46:40 +00:00
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.
This commit is contained in:
parent
ccd2c668c1
commit
b1dac41fb3
27 changed files with 476 additions and 1283 deletions
|
|
@ -55,6 +55,7 @@ SOFTWARE.
|
|||
#include "scrnintstr.h"
|
||||
#include <X11/extensions/Xvproto.h>
|
||||
|
||||
#ifndef XorgLoader
|
||||
extern _X_EXPORT unsigned long XvExtensionGeneration;
|
||||
extern _X_EXPORT unsigned long XvScreenGeneration;
|
||||
extern _X_EXPORT unsigned long XvResourceGeneration;
|
||||
|
|
@ -69,6 +70,7 @@ extern _X_EXPORT unsigned long XvRTGrab;
|
|||
extern _X_EXPORT unsigned long XvRTVideoNotify;
|
||||
extern _X_EXPORT unsigned long XvRTVideoNotifyList;
|
||||
extern _X_EXPORT unsigned long XvRTPortNotify;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int numerator;
|
||||
|
|
@ -234,6 +236,7 @@ typedef struct {
|
|||
#define _XvBadPort (XvBadPort+XvErrorBase)
|
||||
#define _XvBadEncoding (XvBadEncoding+XvErrorBase)
|
||||
|
||||
#ifndef XorgLoader
|
||||
extern _X_EXPORT int ProcXvDispatch(ClientPtr);
|
||||
extern _X_EXPORT int SProcXvDispatch(ClientPtr);
|
||||
|
||||
|
|
@ -270,6 +273,7 @@ extern _X_EXPORT int XvdiPreemptVideo(ClientPtr, XvPortPtr, DrawablePtr);
|
|||
extern _X_EXPORT int XvdiMatchPort(XvPortPtr, DrawablePtr);
|
||||
extern _X_EXPORT int XvdiGrabPort(ClientPtr, XvPortPtr, Time, int *);
|
||||
extern _X_EXPORT int XvdiUngrabPort( ClientPtr, XvPortPtr, Time);
|
||||
#endif /* XorgLoader */
|
||||
|
||||
|
||||
#if !defined(UNIXCPP)
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ typedef struct {
|
|||
XvMCDestroySubpictureProcPtr DestroySubpicture;
|
||||
} XvMCAdaptorRec, *XvMCAdaptorPtr;
|
||||
|
||||
#ifndef XorgLoader
|
||||
extern _X_EXPORT void XvMCExtensionInit(void);
|
||||
|
||||
extern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen,
|
||||
|
|
@ -112,6 +113,6 @@ extern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
|
|||
extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
|
||||
char *busID, int major, int minor,
|
||||
int patchLevel);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _XVMC_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue