Merge remote-tracking branch 'yselkowitz/master'

Pull in Cygwin for XFree86
This commit is contained in:
Keith Packard 2012-04-19 15:48:34 -05:00
commit d77eb7ee49
19 changed files with 114 additions and 32 deletions

View File

@ -699,11 +699,21 @@ dnl DDX Detection... Yes, it's ugly to have it here... but we need to
dnl handle this early on so that we don't require unsupported extensions dnl handle this early on so that we don't require unsupported extensions
case $host_os in case $host_os in
cygwin*) cygwin*)
CONFIG_DBUS_API=no
CONFIG_HAL=no
CONFIG_UDEV=no
DGA=no DGA=no
DRI2=no DRI2=no
INT10MODULE=no
PCI=no
VGAHW=no
VBE=no
XAA=no
XF86UTILS=no
XF86VIDMODE=no XF86VIDMODE=no
XSELINUX=no XSELINUX=no
XV=no XV=no
SYMBOL_VISIBILITY=no
;; ;;
darwin*) darwin*)
PCI=no PCI=no
@ -1060,6 +1070,7 @@ if test "x$GLX_USE_TLS" = xyes ; then
GLX_SYS_LIBS="$GLX_SYS_LIBS -lpthread" GLX_SYS_LIBS="$GLX_SYS_LIBS -lpthread"
fi fi
AC_SUBST([GLX_DEFINES]) AC_SUBST([GLX_DEFINES])
AC_SUBST([GLX_SYS_LIBS])
AM_CONDITIONAL(DRI, test "x$DRI" = xyes) AM_CONDITIONAL(DRI, test "x$DRI" = xyes)
if test "x$DRI" = xyes; then if test "x$DRI" = xyes; then
@ -1461,7 +1472,21 @@ AC_SUBST([UTILS_SYS_LIBS])
# Some platforms require extra flags to do this. libtool should set the # Some platforms require extra flags to do this. libtool should set the
# necessary flags for each platform when -export-dynamic is passed to it. # necessary flags for each platform when -export-dynamic is passed to it.
LD_EXPORT_SYMBOLS_FLAG="-export-dynamic" LD_EXPORT_SYMBOLS_FLAG="-export-dynamic"
LD_NO_UNDEFINED_FLAG=
XORG_DRIVER_LIBS=
case "$host_os" in
cygwin*)
LD_EXPORT_SYMBOLS_FLAG="-Wl,--export-all,--out-implib,lib\$@.a"
LD_NO_UNDEFINED_FLAG="-no-undefined -Wl,\$(top_builddir)/hw/xfree86/libXorg.exe.a"
XORG_DRIVER_LIBS="-lXorg.exe -L\${moduledir} -lshadow -lfb -no-undefined"
CYGWIN=yes
;;
esac
AC_SUBST([LD_EXPORT_SYMBOLS_FLAG]) AC_SUBST([LD_EXPORT_SYMBOLS_FLAG])
AC_SUBST([LD_NO_UNDEFINED_FLAG])
AC_SUBST([XORG_DRIVER_LIBS])
AM_CONDITIONAL([CYGWIN], [test x"$CYGWIN" = xyes])
AM_CONDITIONAL([NO_UNDEFINED], [test x"$LD_NO_UNDEFINED_FLAG" != x])
dnl Imake defines SVR4 on SVR4 systems, and many files check for it, so dnl Imake defines SVR4 on SVR4 systems, and many files check for it, so
dnl we need to replicate that here until those can all be fixed dnl we need to replicate that here until those can all be fixed

View File

@ -25,9 +25,9 @@ if INT10MODULE
INT10_SUBDIR = int10 INT10_SUBDIR = int10
endif endif
SUBDIRS = common ddc i2c x86emu $(INT10_SUBDIR) fbdevhw os-support parser \ SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \
ramdac shadowfb $(VBE_SUBDIR) $(VGAHW_SUBDIR) $(XAA_SUBDIR) \ ramdac $(VBE_SUBDIR) $(VGAHW_SUBDIR) $(XAA_SUBDIR) \
loader dixmods exa modes \ loader modes . i2c dixmods fbdevhw shadowfb exa \
$(DRI_SUBDIR) $(DRI2_SUBDIR) $(XF86UTILS_SUBDIR) doc man $(DRI_SUBDIR) $(DRI2_SUBDIR) $(XF86UTILS_SUBDIR) doc man
DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
@ -92,6 +92,9 @@ if INSTALL_SETUID
chown root $(DESTDIR)$(bindir)/Xorg chown root $(DESTDIR)$(bindir)/Xorg
chmod u+s $(DESTDIR)$(bindir)/Xorg chmod u+s $(DESTDIR)$(bindir)/Xorg
endif endif
if CYGWIN
$(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a
endif
# Use variables from XORG_MANPAGE_SECTIONS and X Server configuration # Use variables from XORG_MANPAGE_SECTIONS and X Server configuration
# Do not include manpages.am as values are not appropriate for rc files # Do not include manpages.am as values are not appropriate for rc files
@ -113,3 +116,12 @@ sdksyms.dep sdksyms.c: sdksyms.sh
SDKSYMS_DEP = sdksyms.dep SDKSYMS_DEP = sdksyms.dep
include $(SDKSYMS_DEP) include $(SDKSYMS_DEP)
i2c/libi2c.la:
$(AM_V_at)cd i2c && $(MAKE) libi2c.la
dixmods/libdixmods.la:
$(AM_V_at)cd dixmods && $(MAKE) libdixmods.la
dixmods/libxorgxkb.la:
$(AM_V_at)cd dixmods && $(MAKE) libxorgxkb.la

View File

@ -124,6 +124,11 @@ static ModuleDefault ModuleDefaults[] = {
#endif #endif
#ifdef DRI2 #ifdef DRI2
{.name = "dri2",.toLoad = TRUE,.load_opt = NULL}, {.name = "dri2",.toLoad = TRUE,.load_opt = NULL},
#endif
#ifdef __CYGWIN__
/* load DIX modules used by drivers first */
{.name = "fb",.toLoad = TRUE,.load_opt = NULL},
{.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
#endif #endif
{.name = NULL,.toLoad = FALSE,.load_opt = NULL} {.name = NULL,.toLoad = FALSE,.load_opt = NULL}
}; };

View File

@ -1580,3 +1580,10 @@ xf86GetBppFromDepth(ScrnInfoPtr pScrn, int depth)
else else
return 0; return 0;
} }
#ifdef DDXBEFORERESET
void
ddxBeforeReset(void)
{
}
#endif

View File

@ -30,35 +30,39 @@ INCLUDES = @XORG_INCS@ \
-I$(top_srcdir)/miext/shadow \ -I$(top_srcdir)/miext/shadow \
-I$(top_srcdir)/glx -I$(top_srcdir)/glx
libdbe_la_LDFLAGS = -module -avoid-version libdbe_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libdbe_la_LIBADD = $(top_builddir)/dbe/libdbe.la libdbe_la_LIBADD = $(top_builddir)/dbe/libdbe.la
libdbe_la_SOURCES = dbemodule.c libdbe_la_SOURCES = dbemodule.c
libfb_la_LDFLAGS = -module -avoid-version libfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libfb_la_LIBADD = $(top_builddir)/fb/libfb.la libfb_la_LIBADD = $(top_builddir)/fb/libfb.la
libfb_la_SOURCES = $(top_builddir)/fb/fbcmap_mi.c fbmodule.c libfb_la_SOURCES = $(top_builddir)/fb/fbcmap_mi.c fbmodule.c
libfb_la_CFLAGS = $(AM_CFLAGS) libfb_la_CFLAGS = $(AM_CFLAGS)
libwfb_la_LDFLAGS = -module -avoid-version libwfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libwfb_la_LIBADD = $(top_builddir)/fb/libwfb.la libwfb_la_LIBADD = $(top_builddir)/fb/libwfb.la
libwfb_la_SOURCES = $(top_builddir)/fb/fbcmap_mi.c fbmodule.c libwfb_la_SOURCES = $(top_builddir)/fb/fbcmap_mi.c fbmodule.c
libwfb_la_CFLAGS = $(AM_CFLAGS) -DFB_ACCESS_WRAPPER libwfb_la_CFLAGS = $(AM_CFLAGS) -DFB_ACCESS_WRAPPER
libglx_la_LDFLAGS = -module -avoid-version libglx_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libglx_la_LIBADD = $(top_builddir)/glx/libglx.la $(GLX_SYS_LIBS)
if AIGLX_DRI_LOADER if AIGLX_DRI_LOADER
GLXDRI_LIBRARY = $(top_builddir)/glx/libglxdri.la libglx_la_LIBADD += $(top_builddir)/glx/libglxdri.la
if NO_UNDEFINED
libglx_la_LIBADD += ../dri/libdri.la ../dri2/libdri2.la
endif
endif endif
libglx_la_LIBADD = \
$(top_builddir)/glx/libglx.la \
$(GLXDRI_LIBRARY)
libglx_la_SOURCES = glxmodule.c libglx_la_SOURCES = glxmodule.c
librecord_la_LDFLAGS = -module -avoid-version librecord_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
librecord_la_LIBADD = $(top_builddir)/record/librecord.la librecord_la_LIBADD = $(top_builddir)/record/librecord.la
librecord_la_SOURCES = recordmod.c librecord_la_SOURCES = recordmod.c
libshadow_la_LDFLAGS = -module -avoid-version libshadow_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libshadow_la_LIBADD = $(top_builddir)/miext/shadow/libshadow.la libshadow_la_LIBADD = $(top_builddir)/miext/shadow/libshadow.la
if NO_UNDEFINED
libshadow_la_LIBADD += libfb.la
endif
libshadow_la_SOURCES = shmodule.c libshadow_la_SOURCES = shmodule.c
libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c

View File

@ -21,7 +21,7 @@ INCLUDES = @XORG_INCS@ \
-I$(top_srcdir)/hw/xfree86/loader \ -I$(top_srcdir)/hw/xfree86/loader \
-I$(top_srcdir)/miext/shadow -I$(top_srcdir)/miext/shadow
libextmod_la_LDFLAGS = -module -avoid-version libextmod_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libextmod_la_SOURCES = modinit.c \ libextmod_la_SOURCES = modinit.c \
modinit.h \ modinit.h \
$(DGA_SRCS) \ $(DGA_SRCS) \

View File

@ -12,7 +12,8 @@ libdri_la_CFLAGS = -I$(top_srcdir)/hw/xfree86/common \
@DIX_CFLAGS@ @XORG_CFLAGS@ @DRIPROTO_CFLAGS@ \ @DIX_CFLAGS@ @XORG_CFLAGS@ @DRIPROTO_CFLAGS@ \
@LIBDRM_CFLAGS@ \ @LIBDRM_CFLAGS@ \
@DRI_CFLAGS@ @DRI_CFLAGS@
libdri_la_LDFLAGS = -module -avoid-version @LIBDRM_LIBS@ libdri_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libdri_la_LIBADD = @LIBDRM_LIBS@
libdri_ladir = $(moduledir)/extensions libdri_ladir = $(moduledir)/extensions
libdri_la_SOURCES = \ libdri_la_SOURCES = \
dri.c \ dri.c \

View File

@ -6,7 +6,8 @@ libdri2_la_CFLAGS = \
-I$(top_srcdir)/hw/xfree86/common \ -I$(top_srcdir)/hw/xfree86/common \
-I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/hw/xfree86/os-support/bus
libdri2_la_LDFLAGS = -module -avoid-version @LIBDRM_LIBS@ libdri2_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libdri2_la_LIBADD = @LIBDRM_LIBS@
libdri2_ladir = $(moduledir)/extensions libdri2_ladir = $(moduledir)/extensions
libdri2_la_SOURCES = \ libdri2_la_SOURCES = \
dri2.c \ dri2.c \

View File

@ -2,7 +2,7 @@ SUBDIRS = man
module_LTLIBRARIES = libexa.la module_LTLIBRARIES = libexa.la
libexa_la_LDFLAGS = -module -avoid-version libexa_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
INCLUDES = \ INCLUDES = \
$(XORG_INCS) \ $(XORG_INCS) \
@ -15,4 +15,4 @@ libexa_la_SOURCES = \
examodule.c examodule.c
libexa_la_LIBADD = \ libexa_la_LIBADD = \
../../../exa/libexa.la ../../../exa/libexa.la $(PIXMAN_LIBS)

View File

@ -2,7 +2,7 @@ SUBDIRS = man
module_LTLIBRARIES = libfbdevhw.la module_LTLIBRARIES = libfbdevhw.la
libfbdevhw_la_LDFLAGS = -module -avoid-version libfbdevhw_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
if FBDEVHW if FBDEVHW
libfbdevhw_la_SOURCES = fbdevhw.c libfbdevhw_la_SOURCES = fbdevhw.c

View File

@ -21,23 +21,26 @@ sdk_HEADERS = xf86i2c.h bt829.h fi1236.h msp3430.h tda8425.h tda9850.h tda9885.h
# #
# i2c drivers # i2c drivers
# #
bt829_drv_la_LDFLAGS = -module -avoid-version bt829_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
bt829_drv_la_SOURCES = bt829.c bt829.h bt829_module.c bt829_drv_la_SOURCES = bt829.c bt829.h bt829_module.c
fi1236_drv_la_LDFLAGS = -module -avoid-version fi1236_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
fi1236_drv_la_SOURCES = fi1236.c fi1236.h fi1236_module.c fi1236_drv_la_SOURCES = fi1236.c fi1236.h fi1236_module.c
if NO_UNDEFINED
fi1236_drv_la_LIBADD = tda9885_drv.la
endif
msp3430_drv_la_LDFLAGS = -module -avoid-version msp3430_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
msp3430_drv_la_SOURCES = msp3430.c msp3430.h msp3430_module.c msp3430_drv_la_SOURCES = msp3430.c msp3430.h msp3430_module.c
tda8425_drv_la_LDFLAGS = -module -avoid-version tda8425_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
tda8425_drv_la_SOURCES = tda8425.c tda8425.h tda8425_module.c tda8425_drv_la_SOURCES = tda8425.c tda8425.h tda8425_module.c
tda9850_drv_la_LDFLAGS = -module -avoid-version tda9850_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
tda9850_drv_la_SOURCES = tda9850.c tda9850.h tda9850_module.c tda9850_drv_la_SOURCES = tda9850.c tda9850.h tda9850_module.c
tda9885_drv_la_LDFLAGS = -module -avoid-version tda9885_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
tda9885_drv_la_SOURCES = tda9885.c tda9885.h tda9885_module.c tda9885_drv_la_SOURCES = tda9885.c tda9885.h tda9885_module.c
uda1380_drv_la_LDFLAGS = -module -avoid-version uda1380_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
uda1380_drv_la_SOURCES = uda1380.c uda1380.h uda1380_module.c uda1380_drv_la_SOURCES = uda1380.c uda1380.h uda1380_module.c

View File

@ -212,9 +212,15 @@ static const char *stdSubdirs[] = {
* to port this DDX to, say, Darwin, we'll need to fix this. * to port this DDX to, say, Darwin, we'll need to fix this.
*/ */
static PatternRec stdPatterns[] = { static PatternRec stdPatterns[] = {
#ifdef __CYGWIN__
{"^cyg(.*)\\.dll$",},
{"(.*)_drv\\.dll$",},
{"(.*)\\.dll$",},
#else
{"^lib(.*)\\.so$",}, {"^lib(.*)\\.so$",},
{"(.*)_drv\\.so$",}, {"(.*)_drv\\.so$",},
{"(.*)\\.so$",}, {"(.*)\\.so$",},
#endif
{NULL,} {NULL,}
}; };
@ -408,21 +414,33 @@ FindModuleInSubdir(const char *dirpath, const char *module)
continue; continue;
} }
#ifdef __CYGWIN__
snprintf(tmpBuf, PATH_MAX, "cyg%s.dll", module);
#else
snprintf(tmpBuf, PATH_MAX, "lib%s.so", module); snprintf(tmpBuf, PATH_MAX, "lib%s.so", module);
#endif
if (strcmp(direntry->d_name, tmpBuf) == 0) { if (strcmp(direntry->d_name, tmpBuf) == 0) {
if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1) if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
ret = NULL; ret = NULL;
break; break;
} }
#ifdef __CYGWIN__
snprintf(tmpBuf, PATH_MAX, "%s_drv.dll", module);
#else
snprintf(tmpBuf, PATH_MAX, "%s_drv.so", module); snprintf(tmpBuf, PATH_MAX, "%s_drv.so", module);
#endif
if (strcmp(direntry->d_name, tmpBuf) == 0) { if (strcmp(direntry->d_name, tmpBuf) == 0) {
if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1) if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
ret = NULL; ret = NULL;
break; break;
} }
#ifdef __CYGWIN__
snprintf(tmpBuf, PATH_MAX, "%s.dll", module);
#else
snprintf(tmpBuf, PATH_MAX, "%s.so", module); snprintf(tmpBuf, PATH_MAX, "%s.so", module);
#endif
if (strcmp(direntry->d_name, tmpBuf) == 0) { if (strcmp(direntry->d_name, tmpBuf) == 0) {
if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1) if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
ret = NULL; ret = NULL;

View File

@ -701,7 +701,7 @@ This instructs the server to load the module called
The module name given should be the module's standard name, not the The module name given should be the module's standard name, not the
module file name. module file name.
The standard name is case\-sensitive, and does not include the \(lqlib\(rq The standard name is case\-sensitive, and does not include the \(lqlib\(rq
prefix, or the \(lq.a\(rq, \(lq.o\(rq, or \(lq.so\(rq suffixes. or \(lqcyg\(rq prefixes, or the \(lq.so\(rq or \(lq.dll\(rq suffixes.
.PP .PP
.RS 7 .RS 7
Example: the DRI extension module can be loaded with the following entry: Example: the DRI extension module can be loaded with the following entry:

View File

@ -44,7 +44,9 @@
#include "X11/Xatom.h" #include "X11/Xatom.h"
#include "picturestr.h" #include "picturestr.h"
#ifdef XV
#include "xf86xv.h" #include "xf86xv.h"
#endif
#define NO_OUTPUT_DEFAULT_WIDTH 1024 #define NO_OUTPUT_DEFAULT_WIDTH 1024
#define NO_OUTPUT_DEFAULT_HEIGHT 768 #define NO_OUTPUT_DEFAULT_HEIGHT 768

View File

@ -171,7 +171,7 @@
/**************************************************************************/ /**************************************************************************/
/* Linux or Glibc-based system */ /* Linux or Glibc-based system */
/**************************************************************************/ /**************************************************************************/
#if defined(__linux__) || defined(__GLIBC__) #if defined(__linux__) || defined(__GLIBC__) || defined(__CYGWIN__)
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <signal.h> #include <signal.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -1,6 +1,7 @@
module_LTLIBRARIES = libshadowfb.la module_LTLIBRARIES = libshadowfb.la
libshadowfb_la_LDFLAGS = -module -avoid-version libshadowfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libshadowfb_la_SOURCES = sfbmodule.c shadow.c libshadowfb_la_SOURCES = sfbmodule.c shadow.c
libshadowfb_la_LIBADD = $(PIXMAN_LIBS)
sdk_HEADERS = shadowfb.h sdk_HEADERS = shadowfb.h

View File

@ -1,6 +1,9 @@
module_LTLIBRARIES = libvbe.la module_LTLIBRARIES = libvbe.la
libvbe_la_LDFLAGS = -module -avoid-version libvbe_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
libvbe_la_SOURCES = vbe.c vbeModes.c vbe_module.c libvbe_la_SOURCES = vbe.c vbeModes.c vbe_module.c
if NO_UNDEFINED
libvbe_la_LIBADD = ../int10/libint10.la
endif
sdk_HEADERS = vbe.h vbeModes.h sdk_HEADERS = vbe.h vbeModes.h

View File

@ -10,7 +10,7 @@ POLYSEG = s-xaaLine.c s-xaaDashLine.c
if XAA if XAA
libxaa_la_LDFLAGS = -module -avoid-version libxaa_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
if COMPOSITE if COMPOSITE
libxaa_la_LIBADD = $(top_builddir)/miext/cw/libcw.la libxaa_la_LIBADD = $(top_builddir)/miext/cw/libcw.la
endif endif

View File

@ -17,4 +17,4 @@ Description: Modular X.Org X Server
Version: @PACKAGE_VERSION@ Version: @PACKAGE_VERSION@
Requires.private: @SDK_REQUIRED_MODULES@ Requires.private: @SDK_REQUIRED_MODULES@
Cflags: -I${sdkdir} @symbol_visibility@ Cflags: -I${sdkdir} @symbol_visibility@
Libs: -L${libdir} Libs: -L${libdir} @XORG_DRIVER_LIBS@