xserver: Branch 'master'

Paulo Cesar Pereira de Andrade pcpa at kemper.freedesktop.org
Wed Dec 3 00:07:25 PST 2008


 Xext/Makefile.am                                    |    3 
 Xext/geext.c                                        |   24 -
 Xext/geext.h                                        |   12 
 Xext/geint.h                                        |   12 
 Xext/panoramiX.c                                    |   22 -
 Xext/panoramiXsrv.h                                 |   38 -
 Xext/shape.c                                        |    8 
 Xext/shm.c                                          |   10 
 Xext/shmint.h                                       |    8 
 Xext/sleepuntil.c                                   |    2 
 Xext/xace.c                                         |    2 
 Xext/xace.h                                         |    3 
 Xext/xvdisp.c                                       |    4 
 Xext/xvdix.h                                        |   68 +--
 Xext/xvmain.c                                       |   64 +--
 Xext/xvmc.c                                         |    8 
 Xext/xvmcext.h                                      |   10 
 Xi/exevents.c                                       |   52 +-
 Xi/extinit.c                                        |   20 -
 Xi/stubs.c                                          |   16 
 Xi/xiproperty.c                                     |   16 
 composite/compinit.c                                |    1 
 config/config.c                                     |    4 
 dbe/dbe.c                                           |    2 
 dbe/dbestruct.h                                     |    2 
 dix/atom.c                                          |   12 
 dix/colormap.c                                      |   32 -
 dix/cursor.c                                        |    8 
 dix/deprecated.c                                    |   18 
 dix/devices.c                                       |   78 +--
 dix/dispatch.c                                      |   42 +-
 dix/dixfonts.c                                      |   58 +-
 dix/dixutils.c                                      |   58 +-
 dix/events.c                                        |  162 ++++----
 dix/extension.c                                     |   14 
 dix/ffs.c                                           |    2 
 dix/gc.c                                            |   34 -
 dix/getevents.c                                     |   32 -
 dix/globals.c                                       |   94 ++--
 dix/glyphcurs.c                                     |    4 
 dix/grabs.c                                         |   10 
 dix/initatoms.c                                     |    2 
 dix/main.c                                          |   12 
 dix/pixmap.c                                        |   10 
 dix/privates.c                                      |   22 -
 dix/property.c                                      |   10 
 dix/ptrveloc.c                                      |   16 
 dix/registry.c                                      |   16 
 dix/resource.c                                      |   42 +-
 dix/selection.c                                     |   12 
 dix/swaprep.c                                       |  146 +++----
 dix/swapreq.c                                       |  140 +++----
 dix/tables.c                                        |   10 
 dix/window.c                                        |   86 ++--
 exa/exa.c                                           |   20 -
 exa/exa.h                                           |   34 -
 exa/exa_migration.c                                 |    4 
 exa/exa_offscreen.c                                 |    8 
 exa/exa_unaccel.c                                   |    2 
 fb/Makefile.am                                      |    2 
 fb/fb.h                                             |  287 +++++++-------
 fb/fb24_32.c                                        |   16 
 fb/fballpriv.c                                      |   12 
 fb/fbarc.c                                          |    2 
 fb/fbbits.h                                         |   14 
 fb/fbblt.c                                          |    6 
 fb/fbbltone.c                                       |   22 -
 fb/fbcmap.c                                         |   22 -
 fb/fbcmap_mi.c                                      |   18 
 fb/fbcopy.c                                         |   14 
 fb/fbfill.c                                         |    4 
 fb/fbfillrect.c                                     |    2 
 fb/fbfillsp.c                                       |    2 
 fb/fbgc.c                                           |   10 
 fb/fbgetsp.c                                        |    2 
 fb/fbglyph.c                                        |    8 
 fb/fbimage.c                                        |    8 
 fb/fbline.c                                         |   10 
 fb/fboverlay.c                                      |   22 -
 fb/fboverlay.h                                      |   22 -
 fb/fbpict.c                                         |   12 
 fb/fbpict.h                                         |   14 
 fb/fbpixmap.c                                       |   14 
 fb/fbpoint.c                                        |    4 
 fb/fbpush.c                                         |    8 
 fb/fbrop.h                                          |   14 
 fb/fbscreen.c                                       |   18 
 fb/fbseg.c                                          |   14 
 fb/fbsetsp.c                                        |    2 
 fb/fbsolid.c                                        |    4 
 fb/fbstipple.c                                      |    8 
 fb/fbtile.c                                         |    6 
 fb/fbtrap.c                                         |    6 
 fb/fbutil.c                                         |   30 -
 fb/fbwindow.c                                       |   18 
 hw/xfree86/common/Makefile.am                       |    7 
 hw/xfree86/common/compiler.h                        |  110 ++---
 hw/xfree86/common/vidmodeproc.h                     |   77 +++
 hw/xfree86/common/xf86.h                            |  393 ++++++++++----------
 hw/xfree86/common/xf86Bus.c                         |  120 +++---
 hw/xfree86/common/xf86Config.c                      |    4 
 hw/xfree86/common/xf86Configure.c                   |    8 
 hw/xfree86/common/xf86Cursor.c                      |   16 
 hw/xfree86/common/xf86DGA.c                         |   58 +-
 hw/xfree86/common/xf86DPMS.c                        |    8 
 hw/xfree86/common/xf86Events.c                      |   48 +-
 hw/xfree86/common/xf86Globals.c                     |  104 ++---
 hw/xfree86/common/xf86Helper.c                      |  166 ++++----
 hw/xfree86/common/xf86Init.c                        |   28 -
 hw/xfree86/common/xf86Mode.c                        |   28 -
 hw/xfree86/common/xf86Module.h                      |   39 -
 hw/xfree86/common/xf86Opt.h                         |   82 ++--
 hw/xfree86/common/xf86Option.c                      |   86 ++--
 hw/xfree86/common/xf86PM.c                          |    6 
 hw/xfree86/common/xf86Priv.h                        |  154 ++++---
 hw/xfree86/common/xf86RAC.c                         |    2 
 hw/xfree86/common/xf86RAC.h                         |    2 
 hw/xfree86/common/xf86RandR.c                       |    6 
 hw/xfree86/common/xf86Resources.h                   |   20 -
 hw/xfree86/common/xf86ShowOpts.c                    |    2 
 hw/xfree86/common/xf86VidMode.c                     |   58 +-
 hw/xfree86/common/xf86Xinput.c                      |   48 +-
 hw/xfree86/common/xf86Xinput.h                      |   56 +-
 hw/xfree86/common/xf86cmap.c                        |   10 
 hw/xfree86/common/xf86cmap.h                        |   10 
 hw/xfree86/common/xf86fbBus.c                       |    6 
 hw/xfree86/common/xf86fbman.c                       |   34 -
 hw/xfree86/common/xf86fbman.h                       |   34 -
 hw/xfree86/common/xf86noBus.c                       |    2 
 hw/xfree86/common/xf86pciBus.c                      |   18 
 hw/xfree86/common/xf86sbusBus.c                     |   14 
 hw/xfree86/common/xf86sbusBus.h                     |   48 +-
 hw/xfree86/common/xf86xv.c                          |   32 -
 hw/xfree86/common/xf86xv.h                          |   28 -
 hw/xfree86/common/xf86xvmc.c                        |    9 
 hw/xfree86/common/xf86xvmc.h                        |    9 
 hw/xfree86/common/xf86xvpriv.h                      |    2 
 hw/xfree86/common/xisb.c                            |   12 
 hw/xfree86/common/xisb.h                            |   12 
 hw/xfree86/common/xorgHelper.c                      |    2 
 hw/xfree86/ddc/ddcProperty.c                        |    2 
 hw/xfree86/ddc/edid.h                               |    2 
 hw/xfree86/ddc/interpret_edid.c                     |    6 
 hw/xfree86/ddc/print_edid.c                         |    2 
 hw/xfree86/ddc/xf86DDC.c                            |    6 
 hw/xfree86/ddc/xf86DDC.h                            |   20 -
 hw/xfree86/dixmods/extmod/Makefile.am               |    2 
 hw/xfree86/dixmods/extmod/dgaproc.h                 |   58 +-
 hw/xfree86/dixmods/extmod/vidmodeproc.h             |   77 ---
 hw/xfree86/dixmods/extmod/xf86dga2.c                |    6 
 hw/xfree86/dixmods/xkbKillSrv.c                     |    2 
 hw/xfree86/dixmods/xkbPrivate.c                     |    2 
 hw/xfree86/dixmods/xkbVT.c                          |    2 
 hw/xfree86/dri/dri.c                                |  108 ++---
 hw/xfree86/dri/dri.h                                |  108 ++---
 hw/xfree86/dri2/dri2.c                              |   16 
 hw/xfree86/dri2/dri2.h                              |   16 
 hw/xfree86/dummylib/dixprivates.c                   |    2 
 hw/xfree86/dummylib/fatalerror.c                    |    2 
 hw/xfree86/dummylib/logvwrite.c                     |    2 
 hw/xfree86/dummylib/verrorf.c                       |    2 
 hw/xfree86/dummylib/xalloc.c                        |   18 
 hw/xfree86/dummylib/xf86addrestolist.c              |    6 
 hw/xfree86/dummylib/xf86allocscripi.c               |    2 
 hw/xfree86/dummylib/xf86drvmsg.c                    |    2 
 hw/xfree86/dummylib/xf86drvmsgverb.c                |    2 
 hw/xfree86/dummylib/xf86errorf.c                    |    4 
 hw/xfree86/dummylib/xf86errorfverb.c                |    2 
 hw/xfree86/dummylib/xf86getverb.c                   |    2 
 hw/xfree86/dummylib/xf86info.c                      |    2 
 hw/xfree86/dummylib/xf86msg.c                       |    2 
 hw/xfree86/dummylib/xf86msgverb.c                   |    2 
 hw/xfree86/dummylib/xf86opt.c                       |    4 
 hw/xfree86/dummylib/xf86screens.c                   |    2 
 hw/xfree86/dummylib/xf86servisinit.c                |    2 
 hw/xfree86/dummylib/xf86verbose.c                   |    2 
 hw/xfree86/fbdevhw/fbdevhw.c                        |   70 +--
 hw/xfree86/fbdevhw/fbdevhw.h                        |   86 ++--
 hw/xfree86/fbdevhw/fbdevhwstub.c                    |   70 +--
 hw/xfree86/i2c/bt829.c                              |   22 -
 hw/xfree86/i2c/bt829.h                              |   24 -
 hw/xfree86/i2c/fi1236.c                             |   12 
 hw/xfree86/i2c/fi1236.h                             |   12 
 hw/xfree86/i2c/msp3430.c                            |   10 
 hw/xfree86/i2c/msp3430.h                            |   10 
 hw/xfree86/i2c/tda8425.c                            |    8 
 hw/xfree86/i2c/tda8425.h                            |    8 
 hw/xfree86/i2c/tda9850.c                            |   12 
 hw/xfree86/i2c/tda9850.h                            |   12 
 hw/xfree86/i2c/tda9885.c                            |   10 
 hw/xfree86/i2c/tda9885.h                            |   10 
 hw/xfree86/i2c/uda1380.c                            |   16 
 hw/xfree86/i2c/uda1380.h                            |   16 
 hw/xfree86/i2c/xf86i2c.c                            |   38 -
 hw/xfree86/i2c/xf86i2c.h                            |   38 -
 hw/xfree86/int10/generic.c                          |   12 
 hw/xfree86/int10/helper_exec.c                      |   62 +--
 hw/xfree86/int10/helper_mem.c                       |   22 -
 hw/xfree86/int10/stub.c                             |   18 
 hw/xfree86/int10/xf86int10.c                        |    4 
 hw/xfree86/int10/xf86int10.h                        |   31 -
 hw/xfree86/int10/xf86x86emu.c                       |    4 
 hw/xfree86/loader/Makefile.am                       |    2 
 hw/xfree86/loader/loader.c                          |   16 
 hw/xfree86/loader/loaderProcs.h                     |   10 
 hw/xfree86/loader/loadext.c                         |    4 
 hw/xfree86/loader/loadmod.c                         |   25 -
 hw/xfree86/loader/os.c                              |    2 
 hw/xfree86/modes/xf86Crtc.c                         |   63 +--
 hw/xfree86/modes/xf86Crtc.h                         |   81 ++--
 hw/xfree86/modes/xf86Cursors.c                      |   10 
 hw/xfree86/modes/xf86DiDGA.c                        |    4 
 hw/xfree86/modes/xf86EdidModes.c                    |    6 
 hw/xfree86/modes/xf86Modes.c                        |   46 +-
 hw/xfree86/modes/xf86Modes.h                        |   56 +-
 hw/xfree86/modes/xf86RandR12.c                      |   18 
 hw/xfree86/modes/xf86RandR12.h                      |   18 
 hw/xfree86/modes/xf86Rotate.c                       |    6 
 hw/xfree86/modes/xf86cvt.c                          |    2 
 hw/xfree86/modes/xf86gtf.c                          |    2 
 hw/xfree86/os-support/bsd/alpha_video.c             |   24 -
 hw/xfree86/os-support/bsd/arm_video.c               |    6 
 hw/xfree86/os-support/bsd/bsd_VTsw.c                |    8 
 hw/xfree86/os-support/bsd/bsd_apm.c                 |    2 
 hw/xfree86/os-support/bsd/bsd_bell.c                |    2 
 hw/xfree86/os-support/bsd/bsd_init.c                |    8 
 hw/xfree86/os-support/bsd/bsd_kmod.c                |    2 
 hw/xfree86/os-support/bsd/bsd_kqueue_apm.c          |    2 
 hw/xfree86/os-support/bsd/i386_video.c              |   10 
 hw/xfree86/os-support/bsd/ppc_video.c               |    8 
 hw/xfree86/os-support/bsd/sparc64_video.c           |    2 
 hw/xfree86/os-support/bus/Pci.c                     |    6 
 hw/xfree86/os-support/bus/Sbus.c                    |   36 -
 hw/xfree86/os-support/bus/bsd_pci.c                 |    2 
 hw/xfree86/os-support/bus/linuxPci.c                |    4 
 hw/xfree86/os-support/bus/xf86Pci.h                 |   10 
 hw/xfree86/os-support/hurd/hurd_bell.c              |    2 
 hw/xfree86/os-support/hurd/hurd_init.c              |    8 
 hw/xfree86/os-support/hurd/hurd_video.c             |   14 
 hw/xfree86/os-support/linux/int10/linux.c           |   12 
 hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c |    4 
 hw/xfree86/os-support/linux/lnx_agp.c               |   20 -
 hw/xfree86/os-support/linux/lnx_apm.c               |    2 
 hw/xfree86/os-support/linux/lnx_axp.c               |   12 
 hw/xfree86/os-support/linux/lnx_bell.c              |    2 
 hw/xfree86/os-support/linux/lnx_init.c              |    8 
 hw/xfree86/os-support/linux/lnx_kmod.c              |    2 
 hw/xfree86/os-support/linux/lnx_pci.c               |    2 
 hw/xfree86/os-support/linux/lnx_video.c             |   24 -
 hw/xfree86/os-support/misc/BUSmemcpy.c              |    4 
 hw/xfree86/os-support/misc/Delay.c                  |    2 
 hw/xfree86/os-support/misc/SlowBcopy.c              |    8 
 hw/xfree86/os-support/sco/VTsw_sco.c                |    8 
 hw/xfree86/os-support/sco/sco_init.c                |    8 
 hw/xfree86/os-support/sco/sco_iop.c                 |    4 
 hw/xfree86/os-support/shared/VTsw_noop.c            |    6 
 hw/xfree86/os-support/shared/VTsw_usl.c             |    8 
 hw/xfree86/os-support/shared/agp_noop.c             |   20 -
 hw/xfree86/os-support/shared/bios_devmem.c          |    2 
 hw/xfree86/os-support/shared/bios_mmap.c            |    2 
 hw/xfree86/os-support/shared/ia64Pci.c              |   12 
 hw/xfree86/os-support/shared/ioperm_noop.c          |    4 
 hw/xfree86/os-support/shared/kmod_noop.c            |    2 
 hw/xfree86/os-support/shared/pm_noop.c              |    2 
 hw/xfree86/os-support/shared/posix_tty.c            |   26 -
 hw/xfree86/os-support/shared/sigio.c                |   12 
 hw/xfree86/os-support/shared/sigiostubs.c           |   12 
 hw/xfree86/os-support/shared/stdResource.c          |    2 
 hw/xfree86/os-support/shared/vidmem.c               |   14 
 hw/xfree86/os-support/solaris/sun_agp.c             |   20 -
 hw/xfree86/os-support/solaris/sun_apm.c             |    2 
 hw/xfree86/os-support/solaris/sun_bell.c            |    2 
 hw/xfree86/os-support/solaris/sun_init.c            |    8 
 hw/xfree86/os-support/solaris/sun_vid.c             |    6 
 hw/xfree86/os-support/sysv/sysv_init.c              |    8 
 hw/xfree86/os-support/sysv/sysv_video.c             |    4 
 hw/xfree86/os-support/xf86_OSproc.h                 |  122 +++---
 hw/xfree86/parser/Device.c                          |    4 
 hw/xfree86/parser/Flags.c                           |   28 -
 hw/xfree86/parser/Input.c                           |    4 
 hw/xfree86/parser/Layout.c                          |    2 
 hw/xfree86/parser/Monitor.c                         |    6 
 hw/xfree86/parser/Screen.c                          |    2 
 hw/xfree86/parser/Video.c                           |    2 
 hw/xfree86/parser/read.c                            |    8 
 hw/xfree86/parser/scan.c                            |   14 
 hw/xfree86/parser/write.c                           |    2 
 hw/xfree86/parser/xf86Optrec.h                      |   32 -
 hw/xfree86/parser/xf86Parser.h                      |   40 +-
 hw/xfree86/ramdac/BT.c                              |    8 
 hw/xfree86/ramdac/BT.h                              |    8 
 hw/xfree86/ramdac/IBM.c                             |   20 -
 hw/xfree86/ramdac/IBM.h                             |   20 -
 hw/xfree86/ramdac/TI.c                              |   18 
 hw/xfree86/ramdac/TI.h                              |   18 
 hw/xfree86/ramdac/xf86Cursor.c                      |    8 
 hw/xfree86/ramdac/xf86Cursor.h                      |    8 
 hw/xfree86/ramdac/xf86RamDac.c                      |   20 -
 hw/xfree86/ramdac/xf86RamDac.h                      |   20 -
 hw/xfree86/ramdac/xf86RamDacCmap.c                  |    2 
 hw/xfree86/shadowfb/shadow.c                        |    4 
 hw/xfree86/shadowfb/shadowfb.h                      |    4 
 hw/xfree86/vbe/vbe.c                                |   46 +-
 hw/xfree86/vbe/vbe.h                                |   46 +-
 hw/xfree86/vbe/vbeModes.c                           |   12 
 hw/xfree86/vbe/vbeModes.h                           |   12 
 hw/xfree86/vgahw/vgaHW.c                            |   74 +--
 hw/xfree86/vgahw/vgaHW.h                            |   74 +--
 hw/xfree86/xaa/xaa.h                                |    8 
 hw/xfree86/xaa/xaaBitBlt.c                          |    2 
 hw/xfree86/xaa/xaaBitOrder.c                        |    5 
 hw/xfree86/xaa/xaaBitmap.c                          |    4 
 hw/xfree86/xaa/xaaCpyArea.c                         |   10 
 hw/xfree86/xaa/xaaCpyPlane.c                        |    4 
 hw/xfree86/xaa/xaaCpyWin.c                          |    2 
 hw/xfree86/xaa/xaaDashLine.c                        |    2 
 hw/xfree86/xaa/xaaFallback.c                        |    4 
 hw/xfree86/xaa/xaaFillArc.c                         |    2 
 hw/xfree86/xaa/xaaFillPoly.c                        |   10 
 hw/xfree86/xaa/xaaFillRect.c                        |   22 -
 hw/xfree86/xaa/xaaGC.c                              |    4 
 hw/xfree86/xaa/xaaGCmisc.c                          |   16 
 hw/xfree86/xaa/xaaImage.c                           |   12 
 hw/xfree86/xaa/xaaInit.c                            |   12 
 hw/xfree86/xaa/xaaInitAccel.c                       |    2 
 hw/xfree86/xaa/xaaLine.c                            |    2 
 hw/xfree86/xaa/xaaLineMisc.c                        |    8 
 hw/xfree86/xaa/xaaNonTEGlyph.c                      |    4 
 hw/xfree86/xaa/xaaNonTEText.c                       |   14 
 hw/xfree86/xaa/xaaOffscreen.c                       |    8 
 hw/xfree86/xaa/xaaOverlay.c                         |    2 
 hw/xfree86/xaa/xaaOverlayDF.c                       |    2 
 hw/xfree86/xaa/xaaPCache.c                          |   48 +-
 hw/xfree86/xaa/xaaPict.c                            |   14 
 hw/xfree86/xaa/xaaROP.c                             |   20 -
 hw/xfree86/xaa/xaaRect.c                            |    2 
 hw/xfree86/xaa/xaaSpans.c                           |   18 
 hw/xfree86/xaa/xaaStateChange.c                     |    2 
 hw/xfree86/xaa/xaaStipple.c                         |   14 
 hw/xfree86/xaa/xaaTEGlyph.c                         |   12 
 hw/xfree86/xaa/xaaTEText.c                          |   12 
 hw/xfree86/xaa/xaaTables.c                          |    4 
 hw/xfree86/xaa/xaaWideLine.c                        |    2 
 hw/xfree86/xaa/xaaWrapper.c                         |    2 
 hw/xfree86/xaa/xaaWrapper.h                         |    2 
 hw/xfree86/xaa/xaalocal.h                           |  380 +++++++++----------
 hw/xfree86/xaa/xaarop.h                             |   20 -
 hw/xfree86/xf8_16bpp/cfb8_16.h                      |    2 
 hw/xfree86/xf8_16bpp/xf8_16module.c                 |    2 
 include/XIstubs.h                                   |   12 
 include/colormap.h                                  |   32 -
 include/cursor.h                                    |   26 -
 include/dix.h                                       |  214 +++++-----
 include/dixevents.h                                 |   44 +-
 include/dixfont.h                                   |   90 +++-
 include/dixgrabs.h                                  |   10 
 include/dixstruct.h                                 |   38 -
 include/exevents.h                                  |   64 +--
 include/extension.h                                 |   12 
 include/extinit.h                                   |    6 
 include/extnsionst.h                                |   12 
 include/gc.h                                        |   34 -
 include/globals.h                                   |  102 ++---
 include/hotplug.h                                   |    4 
 include/input.h                                     |  132 +++---
 include/inputstr.h                                  |    4 
 include/misc.h                                      |   14 
 include/opaque.h                                    |   50 +-
 include/os.h                                        |  262 ++++++-------
 include/pixmap.h                                    |   10 
 include/privates.h                                  |   22 -
 include/property.h                                  |   10 
 include/ptrveloc.h                                  |   16 
 include/regionstr.h                                 |   52 +-
 include/registry.h                                  |   16 
 include/resource.h                                  |   50 +-
 include/screenint.h                                 |    2 
 include/scrnintstr.h                                |    4 
 include/selection.h                                 |   12 
 include/servermd.h                                  |    3 
 include/swaprep.h                                   |   96 ++--
 include/swapreq.h                                   |    6 
 include/window.h                                    |   82 ++--
 include/windowstr.h                                 |    6 
 include/xkbfile.h                                   |   64 +--
 include/xkbrules.h                                  |   26 -
 include/xkbsrv.h                                    |  242 ++++++------
 mi/Makefile.am                                      |    2 
 mi/mi.h                                             |  122 +++---
 mi/miarc.c                                          |    2 
 mi/mibank.c                                         |    4 
 mi/mibank.h                                         |    4 
 mi/mibitblt.c                                       |    8 
 mi/mibstore.c                                       |    2 
 mi/mibstore.h                                       |    2 
 mi/micmap.c                                         |   28 -
 mi/micmap.h                                         |   28 -
 mi/micursor.c                                       |    2 
 mi/midash.c                                         |    2 
 mi/midispcur.c                                      |    2 
 mi/mieq.c                                           |   12 
 mi/miexpose.c                                       |   12 
 mi/mifillarc.c                                      |    6 
 mi/mifillarc.h                                      |    4 
 mi/mifillrct.c                                      |    2 
 mi/mifpoly.h                                        |    2 
 mi/mifpolycon.c                                     |    2 
 mi/migc.c                                           |   14 
 mi/migc.h                                           |   14 
 mi/miglblt.c                                        |    4 
 mi/miinitext.c                                      |    6 
 mi/miline.h                                         |    6 
 mi/mioverlay.c                                      |   14 
 mi/mioverlay.h                                      |   14 
 mi/mipointer.c                                      |   20 -
 mi/mipointer.h                                      |   22 -
 mi/mipoly.c                                         |    2 
 mi/mipoly.h                                         |   10 
 mi/mipolycon.c                                      |    2 
 mi/mipolygen.c                                      |    2 
 mi/mipolypnt.c                                      |    2 
 mi/mipolyrect.c                                     |    2 
 mi/mipolyseg.c                                      |    2 
 mi/mipolytext.c                                     |    8 
 mi/mipushpxl.c                                      |    2 
 mi/miregion.c                                       |   60 +--
 mi/miscrinit.c                                      |   14 
 mi/mispans.c                                        |    8 
 mi/mispans.h                                        |   10 
 mi/misprite.c                                       |    2 
 mi/mivaltree.c                                      |    6 
 mi/miwideline.c                                     |   12 
 mi/miwideline.h                                     |    8 
 mi/miwindow.c                                       |   22 -
 mi/mizerarc.c                                       |    4 
 mi/mizerarc.h                                       |    2 
 mi/mizerclip.c                                      |    2 
 mi/mizerline.c                                      |    4 
 miext/damage/damage.c                               |   32 -
 miext/damage/damage.h                               |   32 -
 miext/shadow/shadow.c                               |   10 
 miext/shadow/shadow.h                               |   56 +-
 miext/shadow/shalloc.c                              |    2 
 miext/shadow/shpacked.c                             |    4 
 miext/shadow/shplanar.c                             |    6 
 miext/shadow/shplanar8.c                            |    2 
 miext/shadow/shrotate.c                             |    4 
 miext/shadow/shrotpack.h                            |    2 
 os/WaitFor.c                                        |   18 
 os/access.c                                         |   38 -
 os/auth.c                                           |   16 
 os/backtrace.c                                      |    6 
 os/connection.c                                     |   48 +-
 os/io.c                                             |   20 -
 os/log.c                                            |   34 -
 os/oscolor.c                                        |    2 
 os/osinit.c                                         |   10 
 os/strcasecmp.c                                     |    4 
 os/strcasestr.c                                     |    2 
 os/strlcat.c                                        |    2 
 os/strlcpy.c                                        |    2 
 os/utils.c                                          |  120 +++---
 os/xprintf.c                                        |    8 
 randr/mirandr.c                                     |   14 
 randr/randr.c                                       |   22 -
 randr/randrstr.h                                    |  203 +++++-----
 randr/rrcrtc.c                                      |   48 +-
 randr/rrdispatch.c                                  |    4 
 randr/rrinfo.c                                      |   12 
 randr/rrmode.c                                      |   18 
 randr/rroutput.c                                    |   30 -
 randr/rrpointer.c                                   |    4 
 randr/rrproperty.c                                  |   26 -
 randr/rrscreen.c                                    |   20 -
 randr/rrsdispatch.c                                 |    2 
 randr/rrtransform.c                                 |   12 
 randr/rrtransform.h                                 |   12 
 randr/rrxinerama.c                                  |    2 
 render/animcur.c                                    |    4 
 render/filter.c                                     |   18 
 render/glyph.c                                      |   38 -
 render/glyphstr.h                                   |   32 -
 render/matrix.c                                     |    8 
 render/miindex.c                                    |    6 
 render/mipict.c                                     |   28 -
 render/mipict.h                                     |   58 +-
 render/mirect.c                                     |    2 
 render/mitrap.c                                     |    6 
 render/mitri.c                                      |   10 
 render/picture.c                                    |   80 ++--
 render/picture.h                                    |    8 
 render/picturestr.h                                 |  114 ++---
 render/render.c                                     |   10 
 render/renderedge.c                                 |   10 
 render/renderedge.h                                 |   10 
 xfixes/Makefile.am                                  |    4 
 xfixes/region.c                                     |    2 
 xfixes/xfixes.c                                     |    2 
 xfixes/xfixes.h                                     |    6 
 xkb/XKBAlloc.c                                      |   16 
 xkb/XKBMAlloc.c                                     |   18 
 xkb/XKBMisc.c                                       |   10 
 xkb/ddxBeep.c                                       |    2 
 xkb/ddxCtrls.c                                      |    6 
 xkb/ddxDevBtn.c                                     |    2 
 xkb/ddxFakeMtn.c                                    |    2 
 xkb/ddxInit.c                                       |    2 
 xkb/ddxKeyClick.c                                   |    2 
 xkb/ddxKillSrv.c                                    |    2 
 xkb/ddxLEDs.c                                       |    2 
 xkb/ddxList.c                                       |    2 
 xkb/ddxLoad.c                                       |    4 
 xkb/ddxPrivate.c                                    |    2 
 xkb/ddxVT.c                                         |    2 
 xkb/maprules.c                                      |   26 -
 xkb/xkb.c                                           |    8 
 xkb/xkbAccessX.c                                    |   18 
 xkb/xkbActions.c                                    |   14 
 xkb/xkbEvents.c                                     |   30 -
 xkb/xkbInit.c                                       |   22 -
 xkb/xkbLEDs.c                                       |   24 -
 xkb/xkbPrKeyEv.c                                    |    4 
 xkb/xkbSwap.c                                       |    2 
 xkb/xkbUtils.c                                      |   44 +-
 xkb/xkbfmisc.c                                      |   12 
 xkb/xkbout.c                                        |   10 
 xkb/xkbtext.c                                       |   36 -
 xkb/xkmread.c                                       |    8 
 528 files changed, 5964 insertions(+), 5880 deletions(-)

New commits:
commit 49f77fff1495c0a2050fb18f9b1fc627839bbfc2
Author: Paulo Cesar Pereira de Andrade <pcpa at mandriva.com.br>
Date:   Wed Dec 3 05:43:34 2008 -0200

    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).

diff --git a/Xext/Makefile.am b/Xext/Makefile.am
index 2f5c98b..beb9e7a 100644
--- a/Xext/Makefile.am
+++ b/Xext/Makefile.am
@@ -62,6 +62,9 @@ endif
 XINERAMA_SRCS = panoramiX.c panoramiX.h panoramiXh.h panoramiXsrv.h panoramiXprocs.c panoramiXSwap.c 
 if XINERAMA
 BUILTIN_SRCS += $(XINERAMA_SRCS)
+if XORG
+sdk_HEADERS += panoramiXsrv.h panoramiX.h
+endif
 endif
 
 # X-ACE extension: provides hooks for building security policy extensions
diff --git a/Xext/geext.c b/Xext/geext.c
index 91a3b7e..a58db03 100644
--- a/Xext/geext.c
+++ b/Xext/geext.c
@@ -39,16 +39,16 @@
 
 #define rClient(obj) (clients[CLIENT_ID((obj)->resource)])
 
-_X_EXPORT int GEEventBase;
-_X_EXPORT int GEErrorBase;
+int GEEventBase;
+int GEErrorBase;
 static int GEClientPrivateKeyIndex;
-_X_EXPORT DevPrivateKey GEClientPrivateKey = &GEClientPrivateKeyIndex;
-_X_EXPORT int GEEventType; /* The opcode for all GenericEvents will have. */
+DevPrivateKey GEClientPrivateKey = &GEClientPrivateKeyIndex;
+int GEEventType; /* The opcode for all GenericEvents will have. */
 
 int RT_GECLIENT  = 0;
 
 
-_X_EXPORT GEExtension GEExtensions[MAXEXTENSIONS];
+GEExtension GEExtensions[MAXEXTENSIONS];
 
 /* Major available requests */
 static const int version_requests[] = {
@@ -101,7 +101,7 @@ ProcGEQueryVersion(ClientPtr client)
     return(client->noClientException);
 }
 
-_X_EXPORT int (*ProcGEVector[GENumberRequests])(ClientPtr) = {
+int (*ProcGEVector[GENumberRequests])(ClientPtr) = {
     /* Version 1.0 */
     ProcGEQueryVersion
 };
@@ -122,7 +122,7 @@ SProcGEQueryVersion(ClientPtr client)
     return(*ProcGEVector[stuff->ReqType])(client);
 }
 
-_X_EXPORT int (*SProcGEVector[GENumberRequests])(ClientPtr) = {
+int (*SProcGEVector[GENumberRequests])(ClientPtr) = {
     /* Version 1.0 */
     SProcGEQueryVersion
 };
@@ -258,7 +258,7 @@ GEClientGone(WindowPtr pWin, XID id)
  * Since other extensions may rely on XGE (XInput does already), it is a good
  * idea to init XGE first, before any other extension.
  */
-_X_EXPORT void
+void
 GEExtensionInit(void)
 {
     ExtensionEntry *extEntry;
@@ -300,7 +300,7 @@ GEExtensionInit(void)
  * @param ev_fill Called for an event before delivery. The extension now has
  * the chance to fill in necessary fields for the event.
  */
-_X_EXPORT void
+void
 GERegisterExtension(int extension,
                     void (*ev_swap)(xGenericEvent* from, xGenericEvent* to),
                     void (*ev_fill)(xGenericEvent* ev, DeviceIntPtr pDev,
@@ -318,7 +318,7 @@ GERegisterExtension(int extension,
 /* Sets type and extension field for a generic event. This is just an
  * auxiliary function, extensions could do it manually too.
  */
-_X_EXPORT void
+void
 GEInitEvent(xGenericEvent* ev, int extension)
 {
     ev->type = GenericEvent;
@@ -356,7 +356,7 @@ GERecalculateWinMask(WindowPtr pWin)
 }
 
 /* Set generic event mask for given window. */
-_X_EXPORT void
+void
 GEWindowSetMask(ClientPtr pClient, DeviceIntPtr pDev,
                 WindowPtr pWin, int extension, Mask mask)
 {
@@ -443,7 +443,7 @@ GEWindowSetMask(ClientPtr pClient, DeviceIntPtr pDev,
  * @param extension Extension ID
  * @param mask Event mask
  */
-_X_EXPORT BOOL
+BOOL
 GEDeviceMaskIsSet(WindowPtr pWin, DeviceIntPtr pDev,
                   int extension, Mask mask)
 {
diff --git a/Xext/geext.h b/Xext/geext.h
index 3d16653..3074431 100644
--- a/Xext/geext.h
+++ b/Xext/geext.h
@@ -66,7 +66,7 @@ typedef struct _GEExtension {
 
 
 /* All registered extensions and their handling functions. */
-extern GEExtension GEExtensions[MAXEXTENSIONS];
+extern _X_EXPORT GEExtension GEExtensions[MAXEXTENSIONS];
 
 /* Returns the extension offset from the event */
 #define GEEXT(ev) (((xGenericEvent*)(ev))->extension)
@@ -95,20 +95,20 @@ extern GEExtension GEExtensions[MAXEXTENSIONS];
 
 
 /* Interface for other extensions */
-void GEWindowSetMask(ClientPtr pClient, DeviceIntPtr pDev,
+extern _X_EXPORT void GEWindowSetMask(ClientPtr pClient, DeviceIntPtr pDev,
                      WindowPtr pWin, int extension, Mask mask);
 
-void GERegisterExtension(
+extern _X_EXPORT void GERegisterExtension(
         int extension,
         void (*ev_dispatch)(xGenericEvent* from, xGenericEvent* to),
         void (*ev_fill)(xGenericEvent* ev, DeviceIntPtr pDev,
                         WindowPtr pWin, GrabPtr pGrab)
         );
 
-void GEInitEvent(xGenericEvent* ev, int extension);
-BOOL GEDeviceMaskIsSet(WindowPtr pWin, DeviceIntPtr pDev,
+extern _X_EXPORT void GEInitEvent(xGenericEvent* ev, int extension);
+extern _X_EXPORT BOOL GEDeviceMaskIsSet(WindowPtr pWin, DeviceIntPtr pDev,
                        int extension, Mask mask);
 
-void GEExtensionInit(void);
+extern _X_EXPORT void GEExtensionInit(void);
 
 #endif /* _GEEXT_H_ */
diff --git a/Xext/geint.h b/Xext/geint.h
index 60cba7d..b7f0265 100644
--- a/Xext/geint.h
+++ b/Xext/geint.h
@@ -38,10 +38,10 @@
 #include "extnsionst.h"
 #include <X11/extensions/geproto.h>
 
-extern int GEEventType;
-extern int GEEventBase;
-extern int GEErrorBase;
-extern DevPrivateKey GEClientPrivateKey;
+extern _X_EXPORT int GEEventType;
+extern _X_EXPORT int GEEventBase;
+extern _X_EXPORT int GEErrorBase;
+extern _X_EXPORT DevPrivateKey GEClientPrivateKey;
 
 typedef struct _GEClientInfo {
     CARD32  major_version;
@@ -50,7 +50,7 @@ typedef struct _GEClientInfo {
 
 #define GEGetClient(pClient)    ((GEClientInfoPtr)(dixLookupPrivate(&((pClient)->devPrivates), GEClientPrivateKey)))
 
-extern int (*ProcGEVector[/*GENumRequests*/])(ClientPtr);
-extern int (*SProcGEVector[/*GENumRequests*/])(ClientPtr);
+extern _X_EXPORT int (*ProcGEVector[/*GENumRequests*/])(ClientPtr);
+extern _X_EXPORT int (*SProcGEVector[/*GENumRequests*/])(ClientPtr);
 
 #endif /* _GEINT_H_ */
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index bab8c98..09587c4 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -71,9 +71,9 @@ extern VisualPtr glxMatchVisual(ScreenPtr pScreen,
 
 int 		PanoramiXPixWidth = 0;
 int 		PanoramiXPixHeight = 0;
-_X_EXPORT int 	PanoramiXNumScreens = 0;
+int 		PanoramiXNumScreens = 0;
 
-_X_EXPORT PanoramiXData *panoramiXdataPtr = NULL;
+PanoramiXData *panoramiXdataPtr = NULL;
 static RegionRec   	PanoramiXScreenRegion = {{0, 0, 0, 0}, NULL};
 
 static int		PanoramiXNumDepths;
@@ -81,14 +81,14 @@ static DepthPtr		PanoramiXDepths;
 static int		PanoramiXNumVisuals;
 static VisualPtr	PanoramiXVisuals;
 
-_X_EXPORT unsigned long XRC_DRAWABLE;
-_X_EXPORT unsigned long XRT_WINDOW;
-_X_EXPORT unsigned long XRT_PIXMAP;
-_X_EXPORT unsigned long XRT_GC;
-_X_EXPORT unsigned long XRT_COLORMAP;
+unsigned long XRC_DRAWABLE;
+unsigned long XRT_WINDOW;
+unsigned long XRT_PIXMAP;
+unsigned long XRT_GC;
+unsigned long XRT_COLORMAP;
 
 static Bool VisualsEqual(VisualPtr, ScreenPtr, VisualPtr);
-_X_EXPORT XineramaVisualsEqualProcPtr XineramaVisualsEqualPtr = &VisualsEqual;
+XineramaVisualsEqualProcPtr XineramaVisualsEqualPtr = &VisualsEqual;
 
 /*
  *	Function prototypes
@@ -328,7 +328,7 @@ XineramaDestroyClip(GCPtr pGC)
     Xinerama_GC_FUNC_EPILOGUE (pGC);
 }
 
-_X_EXPORT int
+int
 XineramaDeleteResource(pointer data, XID id)
 {
     xfree(data);
@@ -371,7 +371,7 @@ typedef struct _connect_callback_list {
 
 static XineramaConnectionCallbackList *ConnectionCallbackList = NULL;
 
-_X_EXPORT Bool
+Bool
 XineramaRegisterConnectionBlockCallback(void (*func)(void))
 {
     XineramaConnectionCallbackList *newlist;
@@ -839,7 +839,7 @@ PanoramiXConsolidate(void)
     AddResource(defmap->info[0].id, XRT_COLORMAP, defmap);
 }
 
-_X_EXPORT VisualID
+VisualID
 PanoramiXTranslateVisualID(int screen, VisualID orig)
 {
     ScreenPtr pOtherScreen = screenInfo.screens[screen];
diff --git a/Xext/panoramiXsrv.h b/Xext/panoramiXsrv.h
index d5c3d98..c77b119 100644
--- a/Xext/panoramiXsrv.h
+++ b/Xext/panoramiXsrv.h
@@ -8,27 +8,27 @@
 
 #include "panoramiX.h"
 
-extern int PanoramiXNumScreens;
-extern PanoramiXData *panoramiXdataPtr;
-extern int PanoramiXPixWidth;
-extern int PanoramiXPixHeight;
+extern _X_EXPORT int PanoramiXNumScreens;
+extern _X_EXPORT PanoramiXData *panoramiXdataPtr;
+extern _X_EXPORT int PanoramiXPixWidth;
+extern _X_EXPORT int PanoramiXPixHeight;
 
-extern VisualID PanoramiXTranslateVisualID(int screen, VisualID orig);
-extern void PanoramiXConsolidate(void);
-extern Bool PanoramiXCreateConnectionBlock(void);
-extern PanoramiXRes * PanoramiXFindIDByScrnum(RESTYPE, XID, int);
-extern Bool XineramaRegisterConnectionBlockCallback(void (*func)(void));
-extern int XineramaDeleteResource(pointer, XID);
+extern _X_EXPORT VisualID PanoramiXTranslateVisualID(int screen, VisualID orig);
+extern _X_EXPORT void PanoramiXConsolidate(void);
+extern _X_EXPORT Bool PanoramiXCreateConnectionBlock(void);
+extern _X_EXPORT PanoramiXRes * PanoramiXFindIDByScrnum(RESTYPE, XID, int);
+extern _X_EXPORT Bool XineramaRegisterConnectionBlockCallback(void (*func)(void));
+extern _X_EXPORT int XineramaDeleteResource(pointer, XID);
 
-extern void XineramaReinitData(ScreenPtr);
+extern _X_EXPORT void XineramaReinitData(ScreenPtr);
 
-extern RegionRec XineramaScreenRegions[MAXSCREENS];
+extern _X_EXPORT RegionRec XineramaScreenRegions[MAXSCREENS];
 
-extern unsigned long XRC_DRAWABLE;
-extern unsigned long XRT_WINDOW;
-extern unsigned long XRT_PIXMAP;
-extern unsigned long XRT_GC;
-extern unsigned long XRT_COLORMAP;
+extern _X_EXPORT unsigned long XRC_DRAWABLE;
+extern _X_EXPORT unsigned long XRT_WINDOW;
+extern _X_EXPORT unsigned long XRT_PIXMAP;
+extern _X_EXPORT unsigned long XRT_GC;
+extern _X_EXPORT unsigned long XRT_COLORMAP;
 
 /*
  * Drivers are allowed to wrap this function.  Each wrapper can decide that the
@@ -38,9 +38,9 @@ extern unsigned long XRT_COLORMAP;
  * screen 0.
  */
 typedef Bool (*XineramaVisualsEqualProcPtr)(VisualPtr, ScreenPtr, VisualPtr);
-extern XineramaVisualsEqualProcPtr XineramaVisualsEqualPtr;
+extern _X_EXPORT XineramaVisualsEqualProcPtr XineramaVisualsEqualPtr;
 
-extern void XineramaGetImageData(
+extern _X_EXPORT void XineramaGetImageData(
     DrawablePtr *pDrawables,
     int left,
     int top,
diff --git a/Xext/shape.c b/Xext/shape.c
index b26d60e..aaef0cb 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -136,7 +136,7 @@ typedef struct _ShapeEvent {
  *
  ****************/
 
-_X_EXPORT void
+void
 ShapeExtensionInit(void)
 {
     ExtensionEntry *extEntry;
@@ -238,7 +238,7 @@ RegionOperate (client, pWin, kind, destRgnp, srcRgn, op, xoff, yoff, create)
     return Success;
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 CreateBoundingShape (pWin)
     WindowPtr	pWin;
 {
@@ -251,7 +251,7 @@ CreateBoundingShape (pWin)
     return REGION_CREATE(pWin->drawable.pScreen, &extents, 1);
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 CreateClipShape (pWin)
     WindowPtr	pWin;
 {
@@ -895,7 +895,7 @@ ProcShapeSelectInput (client)
  * deliver the event
  */
 
-_X_EXPORT void
+void
 SendShapeNotify (pWin, which)
     WindowPtr	pWin;
     int		which;
diff --git a/Xext/shm.c b/Xext/shm.c
index a48d2bd..de364be 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -132,9 +132,9 @@ static DISPATCH_PROC(SProcShmPutImage);
 static DISPATCH_PROC(SProcShmQueryVersion);
 
 static unsigned char ShmReqCode;
-_X_EXPORT int ShmCompletionCode;
-_X_EXPORT int BadShmSegCode;
-_X_EXPORT RESTYPE ShmSegType;
+int ShmCompletionCode;
+int BadShmSegCode;
+RESTYPE ShmSegType;
 static ShmDescPtr Shmsegs;
 static Bool sharedPixmaps;
 static ShmFuncsPtr shmFuncs[MAXSCREENS];
@@ -271,7 +271,7 @@ ShmResetProc(ExtensionEntry *extEntry)
     }
 }
 
-_X_EXPORT void
+void
 ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs)
 {
     shmFuncs[pScreen->myNum] = funcs;
@@ -298,7 +298,7 @@ ShmDestroyPixmap (PixmapPtr pPixmap)
     return ret;
 }
 
-_X_EXPORT void
+void
 ShmRegisterFbFuncs(ScreenPtr pScreen)
 {
     shmFuncs[pScreen->myNum] = &fbFuncs;
diff --git a/Xext/shmint.h b/Xext/shmint.h
index f659fd2..ec1688d 100644
--- a/Xext/shmint.h
+++ b/Xext/shmint.h
@@ -30,10 +30,14 @@
 #include "pixmap.h"
 #include "gc.h"
 
-void
+extern _X_EXPORT void
 ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
 
-void
+extern _X_EXPORT void
 ShmRegisterFbFuncs(ScreenPtr pScreen);
 
+extern _X_EXPORT RESTYPE ShmSegType;
+extern _X_EXPORT int ShmCompletionCode;
+extern _X_EXPORT int BadShmSegCode;
+
 #endif /* _SHMINT_H_ */
diff --git a/Xext/sleepuntil.c b/Xext/sleepuntil.c
index f8cedbe..bedb6f6 100644
--- a/Xext/sleepuntil.c
+++ b/Xext/sleepuntil.c
@@ -77,7 +77,7 @@ static void	    SertafiedWakeupHandler(
     pointer /* LastSelectMask */
 );
 
-_X_EXPORT int
+int
 ClientSleepUntil (client, revive, notifyFunc, closure)
     ClientPtr	client;
     TimeStamp	*revive;
diff --git a/Xext/xace.c b/Xext/xace.c
index 4956131..8a8f8c6 100644
--- a/Xext/xace.c
+++ b/Xext/xace.c
@@ -80,7 +80,7 @@ void XaceHookAuditEnd(ClientPtr ptr, int result)
 
 /* Entry point for hook functions.  Called by Xserver.
  */
-_X_EXPORT int XaceHook(int hook, ...)
+int XaceHook(int hook, ...)
 {
     pointer calldata;	/* data passed to callback */
     int *prv = NULL;	/* points to return value from callback */
diff --git a/Xext/xace.h b/Xext/xace.h
index bd69bca..1aaab03 100644
--- a/Xext/xace.h
+++ b/Xext/xace.h
@@ -59,8 +59,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 extern CallbackListPtr XaceHooks[XACE_NUM_HOOKS];
 
 /* Entry point for hook functions.  Called by Xserver.
+ * Required by libdbe and libextmod
  */
-extern int XaceHook(
+extern _X_EXPORT int XaceHook(
     int /*hook*/,
     ... /*appropriate args for hook*/
     ); 
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
index ab6c11f..de0128e 100644
--- a/Xext/xvdisp.c
+++ b/Xext/xvdisp.c
@@ -1349,7 +1349,7 @@ static int (*XvProcVector[xvNumRequests])(ClientPtr) = {
     ProcXvShmPutImage,
 };
 
-_X_EXPORT int
+int
 ProcXvDispatch(ClientPtr client)
 {
   REQUEST(xReq);
@@ -1673,7 +1673,7 @@ static int (*SXvProcVector[xvNumRequests])(ClientPtr) = {
     SProcXvShmPutImage,
 };
 
-_X_EXPORT int
+int
 SProcXvDispatch(ClientPtr client)
 {
   REQUEST(xReq);
diff --git a/Xext/xvdix.h b/Xext/xvdix.h
index a516cf1..ee0bf7e 100644
--- a/Xext/xvdix.h
+++ b/Xext/xvdix.h
@@ -55,20 +55,20 @@ SOFTWARE.
 #include "scrnintstr.h"
 #include <X11/extensions/Xvproto.h>
 
-extern unsigned long XvExtensionGeneration;
-extern unsigned long XvScreenGeneration;
-extern unsigned long XvResourceGeneration;
+extern _X_EXPORT unsigned long XvExtensionGeneration;
+extern _X_EXPORT unsigned long XvScreenGeneration;
+extern _X_EXPORT unsigned long XvResourceGeneration;
 
-extern int XvReqCode;
-extern int XvEventBase;
-extern int XvErrorBase;
+extern _X_EXPORT int XvReqCode;
+extern _X_EXPORT int XvEventBase;
+extern _X_EXPORT int XvErrorBase;
 
-extern unsigned long XvRTPort;
-extern unsigned long XvRTEncoding;
-extern unsigned long XvRTGrab;
-extern unsigned long XvRTVideoNotify;
-extern unsigned long XvRTVideoNotifyList;
-extern unsigned long XvRTPortNotify;
+extern _X_EXPORT unsigned long XvRTPort;
+extern _X_EXPORT unsigned long XvRTEncoding;
+extern _X_EXPORT unsigned long XvRTGrab;
+extern _X_EXPORT unsigned long XvRTVideoNotify;
+extern _X_EXPORT unsigned long XvRTVideoNotifyList;
+extern _X_EXPORT unsigned long XvRTPortNotify;
 
 typedef struct {
   int numerator;
@@ -234,42 +234,42 @@ typedef struct {
 #define _XvBadPort (XvBadPort+XvErrorBase)
 #define _XvBadEncoding (XvBadEncoding+XvErrorBase)
 
-extern int ProcXvDispatch(ClientPtr);
-extern int SProcXvDispatch(ClientPtr);
+extern _X_EXPORT int ProcXvDispatch(ClientPtr);
+extern _X_EXPORT int SProcXvDispatch(ClientPtr);
 
-extern void XvExtensionInit(void);
-extern int XvScreenInit(ScreenPtr);
-extern DevPrivateKey XvGetScreenKey(void);
-extern unsigned long XvGetRTPort(void);
-extern int XvdiSendPortNotify(XvPortPtr, Atom, INT32);
-extern int XvdiVideoStopped(XvPortPtr, int);
+extern _X_EXPORT void XvExtensionInit(void);
+extern _X_EXPORT int XvScreenInit(ScreenPtr);
+extern _X_EXPORT DevPrivateKey XvGetScreenKey(void);
+extern _X_EXPORT unsigned long XvGetRTPort(void);
+extern _X_EXPORT int XvdiSendPortNotify(XvPortPtr, Atom, INT32);
+extern _X_EXPORT int XvdiVideoStopped(XvPortPtr, int);
 
-extern int XvdiPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+extern _X_EXPORT int XvdiPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
    				INT16, INT16, CARD16, CARD16, 
 				INT16, INT16, CARD16, CARD16);
-extern int XvdiPutStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+extern _X_EXPORT int XvdiPutStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
    				INT16, INT16, CARD16, CARD16, 
 				INT16, INT16, CARD16, CARD16);
-extern int XvdiGetVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+extern _X_EXPORT int XvdiGetVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
    				INT16, INT16, CARD16, CARD16, 
 				INT16, INT16, CARD16, CARD16);
-extern int XvdiGetStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+extern _X_EXPORT int XvdiGetStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
    				INT16, INT16, CARD16, CARD16, 
 				INT16, INT16, CARD16, CARD16);
-extern int XvdiPutImage(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+extern _X_EXPORT int XvdiPutImage(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
    				INT16, INT16, CARD16, CARD16, 
 				INT16, INT16, CARD16, CARD16,
 				XvImagePtr, unsigned char*, Bool,
 				CARD16, CARD16);
-extern int XvdiSelectVideoNotify(ClientPtr, DrawablePtr, BOOL);
-extern int XvdiSelectPortNotify(ClientPtr, XvPortPtr, BOOL);
-extern int XvdiSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
-extern int XvdiGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32*);
-extern int XvdiStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
-extern int XvdiPreemptVideo(ClientPtr, XvPortPtr, DrawablePtr);
-extern int XvdiMatchPort(XvPortPtr, DrawablePtr);
-extern int XvdiGrabPort(ClientPtr, XvPortPtr, Time, int *);
-extern int XvdiUngrabPort( ClientPtr, XvPortPtr, Time);
+extern _X_EXPORT int XvdiSelectVideoNotify(ClientPtr, DrawablePtr, BOOL);
+extern _X_EXPORT int XvdiSelectPortNotify(ClientPtr, XvPortPtr, BOOL);
+extern _X_EXPORT int XvdiSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
+extern _X_EXPORT int XvdiGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32*);
+extern _X_EXPORT int XvdiStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
+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);
 
 
 #if !defined(UNIXCPP)
diff --git a/Xext/xvmain.c b/Xext/xvmain.c
index d2f46ec..613f54d 100644
--- a/Xext/xvmain.c
+++ b/Xext/xvmain.c
@@ -107,20 +107,20 @@ SOFTWARE.
 
 static int XvScreenKeyIndex;
 static DevPrivateKey XvScreenKey = &XvScreenKeyIndex;
-_X_EXPORT unsigned long XvExtensionGeneration = 0;
-_X_EXPORT unsigned long XvScreenGeneration = 0;
-_X_EXPORT unsigned long XvResourceGeneration = 0;
+unsigned long XvExtensionGeneration = 0;
+unsigned long XvScreenGeneration = 0;
+unsigned long XvResourceGeneration = 0;
 
-_X_EXPORT int XvReqCode;
-_X_EXPORT int XvEventBase;
-_X_EXPORT int XvErrorBase;
+int XvReqCode;
+int XvEventBase;
+int XvErrorBase;
 
-_X_EXPORT unsigned long XvRTPort;
-_X_EXPORT unsigned long XvRTEncoding;
-_X_EXPORT unsigned long XvRTGrab;
-_X_EXPORT unsigned long XvRTVideoNotify;
-_X_EXPORT unsigned long XvRTVideoNotifyList;
-_X_EXPORT unsigned long XvRTPortNotify;
+unsigned long XvRTPort;
+unsigned long XvRTEncoding;
+unsigned long XvRTGrab;
+unsigned long XvRTVideoNotify;
+unsigned long XvRTVideoNotifyList;
+unsigned long XvRTPortNotify;
 
 
 
@@ -153,7 +153,7 @@ static int XvdiSendVideoNotify(XvPortPtr, DrawablePtr, int);
 **
 */
 
-_X_EXPORT void 
+void
 XvExtensionInit(void)
 {
   ExtensionEntry *extEntry;
@@ -248,7 +248,7 @@ CreateResourceTypes(void)
 
 }
 
-_X_EXPORT int
+int
 XvScreenInit(ScreenPtr pScreen)
 {
   XvScreenPtr pxvs;
@@ -323,13 +323,13 @@ XvResetProc(ExtensionEntry* extEntry)
     XvResetProcVector();
 }
 
-_X_EXPORT DevPrivateKey
+DevPrivateKey
 XvGetScreenKey(void)
 {
     return XvScreenKey;
 }
 
-_X_EXPORT unsigned long
+unsigned long
 XvGetRTPort(void)
 {
   return XvRTPort;
@@ -445,7 +445,7 @@ XvDestroyWindow(WindowPtr pWin)
    stopped in a port for reasons that the di layer had no control over; note
    that it doesn't call back into the dd layer */
 
-_X_EXPORT int
+int
 XvdiVideoStopped(XvPortPtr pPort, int reason)
 {
   
@@ -553,7 +553,7 @@ int reason;
 }
 
 
-_X_EXPORT int
+int
 XvdiSendPortNotify(
   XvPortPtr pPort,
   Atom attribute,
@@ -593,7 +593,7 @@ XvdiSendPortNotify(
 }
 
 
-_X_EXPORT int
+int
 XvdiPutVideo(   
    ClientPtr client,
    DrawablePtr pDraw,
@@ -646,7 +646,7 @@ XvdiPutVideo(
 
 }
 
-_X_EXPORT int
+int
 XvdiPutStill(   
    ClientPtr client,
    DrawablePtr pDraw,
@@ -684,7 +684,7 @@ XvdiPutStill(
 
 }
 
-_X_EXPORT int
+int
 XvdiPutImage(   
    ClientPtr client, 
    DrawablePtr pDraw, 
@@ -723,7 +723,7 @@ XvdiPutImage(
 }
 
 
-_X_EXPORT int
+int
 XvdiGetVideo(
    ClientPtr client,
    DrawablePtr pDraw,
@@ -776,7 +776,7 @@ XvdiGetVideo(
 
 }
 
-_X_EXPORT int
+int
 XvdiGetStill(
    ClientPtr client,
    DrawablePtr pDraw,
@@ -814,7 +814,7 @@ XvdiGetStill(
 
 }
 
-_X_EXPORT int
+int
 XvdiGrabPort(
    ClientPtr client,
    XvPortPtr pPort,
@@ -871,7 +871,7 @@ XvdiGrabPort(
 
 }
 
-_X_EXPORT int
+int
 XvdiUngrabPort(
   ClientPtr client,
   XvPortPtr pPort,
@@ -905,7 +905,7 @@ XvdiUngrabPort(
 }
 
 
-_X_EXPORT int
+int
 XvdiSelectVideoNotify(
   ClientPtr client,
   DrawablePtr pDraw,
@@ -983,7 +983,7 @@ XvdiSelectVideoNotify(
 
 }
 
-_X_EXPORT int
+int
 XvdiSelectPortNotify(
    ClientPtr client,
    XvPortPtr pPort,
@@ -1036,7 +1036,7 @@ XvdiSelectPortNotify(
 
 }
 
-_X_EXPORT int
+int
 XvdiStopVideo(
   ClientPtr client,
   XvPortPtr pPort,
@@ -1073,7 +1073,7 @@ XvdiStopVideo(
 
 }
 
-_X_EXPORT int
+int
 XvdiPreemptVideo(
   ClientPtr client,
   XvPortPtr pPort,
@@ -1097,7 +1097,7 @@ XvdiPreemptVideo(
 
 }
 
-_X_EXPORT int
+int
 XvdiMatchPort(
   XvPortPtr pPort,
   DrawablePtr pDraw
@@ -1130,7 +1130,7 @@ XvdiMatchPort(
 
 }
 
-_X_EXPORT int
+int
 XvdiSetPortAttribute(
   ClientPtr client,
   XvPortPtr pPort,
@@ -1145,7 +1145,7 @@ XvdiSetPortAttribute(
 
 }
 
-_X_EXPORT int
+int
 XvdiGetPortAttribute(
   ClientPtr client,
   XvPortPtr pPort,
diff --git a/Xext/xvmc.c b/Xext/xvmc.c
index ad223d9..359e954 100644
--- a/Xext/xvmc.c
+++ b/Xext/xvmc.c
@@ -664,7 +664,7 @@ SProcXvMCDispatch (ClientPtr client)
     return BadImplementation;
 }
 
-_X_EXPORT void
+void
 XvMCExtensionInit(void)
 {
    ExtensionEntry *extEntry;
@@ -705,7 +705,7 @@ XvMCCloseScreen (int i, ScreenPtr pScreen)
 }
 
 
-_X_EXPORT int
+int
 XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr pAdapt)
 {
    XvMCScreenPtr pScreenPriv;
@@ -731,7 +731,7 @@ XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr pAdapt)
    return Success;
 }
 
-_X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id)
+XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id)
 {
     XvImagePtr pImage = NULL;
     ScreenPtr pScreen = pPort->pAdaptor->pScreen;
@@ -763,7 +763,7 @@ _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id)
     return pImage;
 }
 
-_X_EXPORT int
+int
 xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
 		       char *busID, int major, int minor,
 		       int patchLevel)
diff --git a/Xext/xvmcext.h b/Xext/xvmcext.h
index 9c019fe..0051ebd 100644
--- a/Xext/xvmcext.h
+++ b/Xext/xvmcext.h
@@ -101,13 +101,15 @@ typedef struct {
   XvMCDestroySubpictureProcPtr      DestroySubpicture;
 } XvMCAdaptorRec, *XvMCAdaptorPtr;
 
-void XvMCExtensionInit(void);
+extern _X_EXPORT void XvMCExtensionInit(void);
 
-int XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr adapt);
+extern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen,
+				    int num,
+				    XvMCAdaptorPtr adapt);
 
-XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
+extern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
 
-int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
+extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
 			   char *busID, int major, int minor, 
 			   int patchLevel);
 
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 6797f50..43657b9 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -100,14 +100,14 @@ static Bool MakeInputMasks(WindowPtr	/* pWin */
 extern DevPrivateKey UnusedClassesPrivateKey;
 
 
-_X_EXPORT void
+void
 RegisterOtherDevice(DeviceIntPtr device)
 {
     device->public.processInputProc = ProcessOtherEvent;
     device->public.realInputProc = ProcessOtherEvent;
 }
 
-_X_EXPORT Bool
+Bool
 IsPointerEvent(xEvent* xE)
 {
     switch(xE->u.u.type)
@@ -137,7 +137,7 @@ IsPointerEvent(xEvent* xE)
  * @return the device matching the deviceid of the device set in the event, or
  * NULL if the event is not an XInput event.
  */
-_X_EXPORT DeviceIntPtr
+DeviceIntPtr
 XIGetDevice(xEvent* xE)
 {
     DeviceIntPtr pDev = NULL;
@@ -521,7 +521,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
  * Saves a few memory allocations.
  */
 
-_X_EXPORT void
+void
 DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to)
 {
     ClassesPtr classes;
@@ -789,7 +789,7 @@ ChangeMasterDeviceClasses(DeviceIntPtr device,
 #define DEFAULT 0
 #define DONT_PROCESS 1
 #define IS_REPEAT 2
-_X_EXPORT int
+int
 UpdateDeviceState(DeviceIntPtr device, xEvent* xE, int count)
 {
     int i;
@@ -994,7 +994,7 @@ UpdateDeviceState(DeviceIntPtr device, xEvent* xE, int count)
  * Called from when processing the events from the event queue.
  *
  */
-_X_EXPORT void
+void
 ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
 {
     int i;
@@ -1131,7 +1131,7 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
     xE->u.u.detail = key;
 }
 
-_X_EXPORT int
+int
 InitProximityClassDeviceStruct(DeviceIntPtr dev)
 {
     ProximityClassPtr proxc;
@@ -1152,7 +1152,7 @@ InitProximityClassDeviceStruct(DeviceIntPtr dev)
  *
  * @see InitValuatorClassDeviceStruct
  */
-_X_EXPORT void
+void
 InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, int minval, int maxval,
 		       int resolution, int min_res, int max_res)
 {
@@ -1231,7 +1231,7 @@ FixDeviceValuator(DeviceIntPtr dev, deviceValuator * ev, ValuatorClassPtr v,
     first += ev->num_valuators;
 }
 
-_X_EXPORT void
+void
 DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
 		 WindowPtr pWin)
 {
@@ -1351,7 +1351,7 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
     }
 }
 
-_X_EXPORT int
+int
 GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
 	   BYTE other_devices_mode, CARD16 modifiers,
 	   DeviceIntPtr modifier_device, CARD8 button, Window grabWindow,
@@ -1418,7 +1418,7 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
     return AddPassiveGrabToList(client, grab);
 }
 
-_X_EXPORT int
+int
 GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
 	BYTE other_devices_mode, CARD16 modifiers,
 	DeviceIntPtr modifier_device, CARD8 key, Window grabWindow,
@@ -1473,7 +1473,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
     return AddPassiveGrabToList(client, grab);
 }
 
-_X_EXPORT int
+int
 SelectForWindow(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client,
 		Mask mask, Mask exclusivemasks, Mask validmasks)
 {
@@ -1534,7 +1534,7 @@ SelectForWindow(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client,
     return Success;
 }
 
-_X_EXPORT int
+int
 AddExtensionClient(WindowPtr pWin, ClientPtr client, Mask mask, int mskidx)
 {
     InputClientsPtr others;
@@ -1567,7 +1567,7 @@ MakeInputMasks(WindowPtr pWin)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 RecalculateDeviceDeliverableEvents(WindowPtr pWin)
 {
     InputClientsPtr others;
@@ -1605,7 +1605,7 @@ RecalculateDeviceDeliverableEvents(WindowPtr pWin)
     }
 }
 
-_X_EXPORT int
+int
 InputClientGone(WindowPtr pWin, XID id)
 {
     InputClientsPtr other, prev;
@@ -1644,7 +1644,7 @@ InputClientGone(WindowPtr pWin, XID id)
     FatalError("client not on device event list");
 }
 
-_X_EXPORT int
+int
 SendEvent(ClientPtr client, DeviceIntPtr d, Window dest, Bool propagate,
 	  xEvent * ev, Mask mask, int count)
 {
@@ -1703,7 +1703,7 @@ SendEvent(ClientPtr client, DeviceIntPtr d, Window dest, Bool propagate,
     return Success;
 }
 
-_X_EXPORT int
+int
 SetButtonMapping(ClientPtr client, DeviceIntPtr dev, int nElts, BYTE * map)
 {
     int i;
@@ -1726,7 +1726,7 @@ SetButtonMapping(ClientPtr client, DeviceIntPtr dev, int nElts, BYTE * map)
     return Success;
 }
 
-_X_EXPORT int
+int
 SetModifierMapping(ClientPtr client, DeviceIntPtr dev, int len, int rlen,
 		   int numKeyPerModifier, KeyCode * inputMap, KeyClassPtr * k)
 {
@@ -1806,7 +1806,7 @@ SetModifierMapping(ClientPtr client, DeviceIntPtr dev, int len, int rlen,
     return (MappingSuccess);
 }
 
-_X_EXPORT void
+void
 SendDeviceMappingNotify(ClientPtr client, CARD8 request,
 			KeyCode firstKeyCode, CARD8 count, DeviceIntPtr dev)
 {
@@ -1830,7 +1830,7 @@ SendDeviceMappingNotify(ClientPtr client, CARD8 request,
     SendEventToAllWindows(dev, DeviceMappingNotifyMask, (xEvent *) ev, 1);
 }
 
-_X_EXPORT int
+int
 ChangeKeyMapping(ClientPtr client,
 		 DeviceIntPtr dev,
 		 unsigned len,
@@ -1931,7 +1931,7 @@ DeleteDeviceFromAnyExtEvents(WindowPtr pWin, DeviceIntPtr dev)
 	    dev->valuator->motionHintWindow = NullWindow;
 }
 
-_X_EXPORT void
+void
 DeleteWindowFromAnyExtEvents(WindowPtr pWin, Bool freeResources)
 {
     int i;
@@ -1957,7 +1957,7 @@ DeleteWindowFromAnyExtEvents(WindowPtr pWin, Bool freeResources)
 	}
 }
 
-_X_EXPORT int
+int
 MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * pEvents, Mask mask)
 {
     DeviceIntPtr dev;
@@ -1980,7 +1980,7 @@ MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * pEvents, Mask mask)
     return (0);
 }
 
-_X_EXPORT void
+void
 CheckDeviceGrabAndHintWindow(WindowPtr pWin, int type,
 			     deviceKeyButtonPointer * xE, GrabPtr grab,
 			     ClientPtr client, Mask deliveryMask)
@@ -2029,7 +2029,7 @@ DeviceEventMaskForClient(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client)
     return 0;
 }
 
-_X_EXPORT void
+void
 MaybeStopDeviceHint(DeviceIntPtr dev, ClientPtr client)
 {
     WindowPtr pWin;
@@ -2048,7 +2048,7 @@ MaybeStopDeviceHint(DeviceIntPtr dev, ClientPtr client)
 	dev->valuator->motionHintWindow = NullWindow;
 }
 
-_X_EXPORT int
+int
 DeviceEventSuppressForWindow(WindowPtr pWin, ClientPtr client, Mask mask,
 			     int maskndx)
 {
@@ -2119,7 +2119,7 @@ FindInterestedChildren(DeviceIntPtr dev, WindowPtr p1, Mask mask,
  *
  */
 
-_X_EXPORT void
+void
 SendEventToAllWindows(DeviceIntPtr dev, Mask mask, xEvent * ev, int count)
 {
     int i;
diff --git a/Xi/extinit.c b/Xi/extinit.c
index 07508c8..7880497 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -304,11 +304,11 @@ Mask DeviceEnterWindowMask;
 Mask DeviceLeaveWindowMask;
 
 int DeviceValuator;
-_X_EXPORT int DeviceKeyPress;
-_X_EXPORT int DeviceKeyRelease;
-_X_EXPORT int DeviceButtonPress;
-_X_EXPORT int DeviceButtonRelease;
-_X_EXPORT int DeviceMotionNotify;
+int DeviceKeyPress;
+int DeviceKeyRelease;
+int DeviceButtonPress;
+int DeviceButtonRelease;
+int DeviceMotionNotify;
 int DeviceFocusIn;
 int DeviceFocusOut;
 int ProximityIn;
@@ -320,8 +320,8 @@ int DeviceMappingNotify;
 int ChangeDeviceNotify;
 int DevicePresenceNotify;
 int DevicePropertyNotify;
-_X_EXPORT int DeviceEnterNotify;
-_X_EXPORT int DeviceLeaveNotify;
+int DeviceEnterNotify;
+int DeviceLeaveNotify;
 
 int RT_INPUTCLIENT;
 
@@ -982,7 +982,7 @@ IResetProc(ExtensionEntry * unused)
  *
  */
 
-_X_EXPORT Bool
+Bool
 DeviceIsPointerType(DeviceIntPtr dev)
 {
     if (dev_type[1].type == dev->type)
@@ -998,7 +998,7 @@ DeviceIsPointerType(DeviceIntPtr dev)
  *
  */
 
-_X_EXPORT void
+void
 AssignTypeAndName(DeviceIntPtr dev, Atom type, char *name)
 {
     dev->type = type;
@@ -1127,7 +1127,7 @@ XIGEEventFill(xGenericEvent* ev, DeviceIntPtr pDev,
  * XI is mandatory nowadays, so if we fail to init XI, we die.
  */
 
-_X_EXPORT void
+void
 XInputExtensionInit(void)
 {
     ExtensionEntry *extEntry;
diff --git a/Xi/stubs.c b/Xi/stubs.c
index d88d914..d01927c 100644
--- a/Xi/stubs.c
+++ b/Xi/stubs.c
@@ -80,7 +80,7 @@ SOFTWARE.
  *
  */
 
-_X_EXPORT void
+void
 CloseInputDevice(DeviceIntPtr d, ClientPtr client)
 {
 }
@@ -111,7 +111,7 @@ CloseInputDevice(DeviceIntPtr d, ClientPtr client)
  *
  */
 
-_X_EXPORT void
+void
 AddOtherInputDevices(void)
 {
     /**********************************************************************
@@ -151,7 +151,7 @@ AddOtherInputDevices(void)
  *
  */
 
-_X_EXPORT void
+void
 OpenInputDevice(DeviceIntPtr dev, ClientPtr client, int *status)
 {
     *status = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixReadAccess);
@@ -169,7 +169,7 @@ OpenInputDevice(DeviceIntPtr dev, ClientPtr client, int *status)
  *
  */
 
-_X_EXPORT int
+int
 SetDeviceMode(ClientPtr client, DeviceIntPtr dev, int mode)
 {
     return BadMatch;
@@ -187,7 +187,7 @@ SetDeviceMode(ClientPtr client, DeviceIntPtr dev, int mode)
  *
  */
 
-_X_EXPORT int
+int
 SetDeviceValuators(ClientPtr client, DeviceIntPtr dev,
 		   int *valuators, int first_valuator, int num_valuators)
 {
@@ -202,7 +202,7 @@ SetDeviceValuators(ClientPtr client, DeviceIntPtr dev,
  *
  */
 
-_X_EXPORT int
+int
 ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
 		    xDeviceCtl * control)
 {
@@ -227,7 +227,7 @@ ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
  * Add a new device with the specified options.
  *
  */
-_X_EXPORT int
+int
 NewInputDeviceRequest(InputOption *options, DeviceIntPtr *pdev)
 {
     return BadValue;
@@ -240,7 +240,7 @@ NewInputDeviceRequest(InputOption *options, DeviceIntPtr *pdev)
  * Remove the specified device previously added.
  *
  */
-_X_EXPORT void
+void
 DeleteInputDeviceRequest(DeviceIntPtr dev)
 {
 }
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index 2d72fa6..b057428 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -57,7 +57,7 @@ static long XIPropHandlerID = 1;
  * Return the type assigned to the specified atom or 0 if the atom isn't known
  * to the DIX.
  */
-_X_EXPORT Atom
+Atom
 XIGetKnownProperty(char *name)
 {
     int i;
@@ -93,7 +93,7 @@ XIInitKnownProperties(void)
  * property handler again.
  * @return The handler's identifier or 0 if an error occured.
  */
-_X_EXPORT long
+long
 XIRegisterPropertyHandler(DeviceIntPtr         dev,
                           int (*SetProperty) (DeviceIntPtr dev,
                                               Atom property,
@@ -120,7 +120,7 @@ XIRegisterPropertyHandler(DeviceIntPtr         dev,
     return new_handler->id;
 }
 
-_X_EXPORT void
+void
 XIUnRegisterPropertyHandler(DeviceIntPtr dev, long id)
 {
     XIPropertyHandlerPtr curr, prev = NULL;
@@ -186,7 +186,7 @@ XIDestroyDeviceProperty (XIPropertyPtr prop)
  * including removing all device handlers.
  * DO NOT CALL FROM THE DRIVER.
  */
-_X_EXPORT void
+void
 XIDeleteAllDeviceProperties (DeviceIntPtr device)
 {
     XIPropertyPtr               prop, next;
@@ -219,7 +219,7 @@ XIDeleteAllDeviceProperties (DeviceIntPtr device)
 }
 
 
-_X_EXPORT int
+int
 XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient)
 {
     XIPropertyPtr               prop, *prev;
@@ -263,7 +263,7 @@ XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient)
     return Success;
 }
 
-_X_EXPORT int
+int
 XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
                         int format, int mode, unsigned long len,
                         pointer value, Bool sendevent)
@@ -400,7 +400,7 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
     return(Success);
 }
 
-_X_EXPORT int
+int
 XIGetDeviceProperty (DeviceIntPtr dev, Atom property, XIPropertyValuePtr *value)
 {
     XIPropertyPtr   prop = XIFetchDeviceProperty (dev, property);
@@ -435,7 +435,7 @@ XIGetDeviceProperty (DeviceIntPtr dev, Atom property, XIPropertyValuePtr *value)
     return Success;
 }
 
-_X_EXPORT int
+int
 XISetDevicePropertyDeletable(DeviceIntPtr dev, Atom property, Bool deletable)
 {
     XIPropertyPtr prop = XIFetchDeviceProperty(dev, property);
diff --git a/composite/compinit.c b/composite/compinit.c
index b2a9861..5b2fba1 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -213,7 +213,6 @@ compRegisterAlternateVisuals (CompScreenPtr cs, VisualID *vids, int nVisuals)
     return TRUE;
 }
 
-_X_EXPORT
 Bool CompositeRegisterAlternateVisuals (ScreenPtr pScreen, VisualID *vids,
 					int nVisuals)
 {
diff --git a/config/config.c b/config/config.c
index b4737f8..882b699 100644
--- a/config/config.c
+++ b/config/config.c
@@ -31,7 +31,7 @@
 #include "hotplug.h"
 #include "config-backends.h"
 
-_X_EXPORT void
+void
 config_init()
 {
 #if defined(CONFIG_DBUS_API) || defined(CONFIG_HAL)
@@ -51,7 +51,7 @@ config_init()
 #endif
 }
 
-_X_EXPORT void
+void
 config_fini()
 {
 #if defined(CONFIG_DBUS_API) || defined(CONFIG_HAL)
diff --git a/dbe/dbe.c b/dbe/dbe.c
index c5293fa..ff9df7f 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -1553,7 +1553,7 @@ DbeDestroyWindow(WindowPtr pWin)
  *
  *****************************************************************************/
 
-_X_EXPORT void
+void
 DbeExtensionInit(void)
 {
     ExtensionEntry	*extEntry;
diff --git a/dbe/dbestruct.h b/dbe/dbestruct.h
index 641f209..e067f37 100644
--- a/dbe/dbestruct.h
+++ b/dbe/dbestruct.h
@@ -74,7 +74,7 @@
 /* Marker for free elements in the buffer ID array. */
 #define DBE_FREE_ID_ELEMENT	0
 
-extern void DbeExtensionInit (void);
+extern _X_EXPORT void DbeExtensionInit (void);
 
 /* TYPEDEFS */
 
diff --git a/dix/atom.c b/dix/atom.c
index bcf212d..8ed6872 100644
--- a/dix/atom.c
+++ b/dix/atom.c
@@ -74,7 +74,7 @@ static NodePtr *nodeTable;
 
 void FreeAtom(NodePtr patom);
 
-_X_EXPORT Atom 
+Atom
 MakeAtom(char *string, unsigned len, Bool makeit)
 {
     NodePtr * np;
@@ -151,13 +151,13 @@ MakeAtom(char *string, unsigned len, Bool makeit)
 	return None;
 }
 
-_X_EXPORT Bool
+Bool
 ValidAtom(Atom atom)
 {
     return (atom != None) && (atom <= lastAtom);
 }
 
-_X_EXPORT char *
+char *
 NameForAtom(Atom atom)
 {
     NodePtr node;
@@ -166,7 +166,7 @@ NameForAtom(Atom atom)
     return node->string;
 }
 
-_X_EXPORT void
+void
 AtomError(void)
 {
     FatalError("initializing atoms");
@@ -184,7 +184,7 @@ FreeAtom(NodePtr patom)
     xfree(patom);
 }
 
-_X_EXPORT void
+void
 FreeAllAtoms(void)
 {
     if(atomRoot == (NodePtr)NULL)
@@ -196,7 +196,7 @@ FreeAllAtoms(void)
     lastAtom = None;
 }
 
-_X_EXPORT void
+void
 InitAtoms(void)
 {
     FreeAllAtoms();
diff --git a/dix/colormap.c b/dix/colormap.c
index c8f4c71..3f22a47 100644
--- a/dix/colormap.c
+++ b/dix/colormap.c
@@ -253,7 +253,7 @@ typedef struct _colorResource
  * \param mid    resource to use for this colormap
  * \param alloc  1 iff all entries are allocated writable
  */
-_X_EXPORT int 
+int
 CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, 
                 ColormapPtr *ppcmap, int alloc, int client)
 {
@@ -420,7 +420,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
  *
  * \param value  must conform to DeleteType
  */
-_X_EXPORT int
+int
 FreeColormap (pointer value, XID mid)
 {
     int	i;
@@ -502,7 +502,7 @@ TellNoMap (WindowPtr pwin, Colormap *pmid)
 }
 
 /* Tell window that pmid got uninstalled */
-_X_EXPORT int
+int
 TellLostMap (WindowPtr pwin, pointer value)
 {
     Colormap 	*pmid = (Colormap *)value;
@@ -527,7 +527,7 @@ TellLostMap (WindowPtr pwin, pointer value)
 }
 
 /* Tell window that pmid got installed */
-_X_EXPORT int
+int
 TellGainedMap (WindowPtr pwin, pointer value)
 {
     Colormap 	*pmid = (Colormap *)value;
@@ -552,7 +552,7 @@ TellGainedMap (WindowPtr pwin, pointer value)
 }
 
   
-_X_EXPORT int
+int
 CopyColormapAndFree (Colormap mid, ColormapPtr pSrc, int client)
 {
     ColormapPtr	pmap = (ColormapPtr) NULL;
@@ -800,7 +800,7 @@ UpdateColors (ColormapPtr pmap)
 /* Get a read-only color from a ColorMap (probably slow for large maps)
  * Returns by changing the value in pred, pgreen, pblue and pPix
  */
-_X_EXPORT int
+int
 AllocColor (ColormapPtr pmap, 
             unsigned short *pred, unsigned short *pgreen, unsigned short *pblue, 
             Pixel *pPix, int client)
@@ -985,7 +985,7 @@ AllocColor (ColormapPtr pmap,
  * is that this routine will never return failure.
  */
 
-_X_EXPORT void
+void
 FakeAllocColor (ColormapPtr pmap, xColorItem *item)
 {
     Pixel pixR, pixG, pixB;
@@ -1052,7 +1052,7 @@ FakeAllocColor (ColormapPtr pmap, xColorItem *item)
 }
 
 /* free a pixel value obtained from FakeAllocColor */
-_X_EXPORT void
+void
 FakeFreeColor(ColormapPtr pmap, Pixel pixel)
 {
     VisualPtr pVisual;
@@ -1203,7 +1203,7 @@ FindColorInRootCmap (ColormapPtr pmap, EntryPtr pentFirst, int size,
  * Starts looking at pentFirst + *pPixel, so if you want a specific pixel,
  * load *pPixel with that value, otherwise set it to 0
  */
-_X_EXPORT int
+int
 FindColor (ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb *prgb, 
            Pixel *pPixel, int channel, int client, 
            ColorCompareProcPtr comp)
@@ -1415,7 +1415,7 @@ BlueComp (EntryPtr pent, xrgb *prgb)
 
 /* Read the color value of a cell */
 
-_X_EXPORT int
+int
 QueryColors (ColormapPtr pmap, int count, Pixel *ppixIn, xrgb *prgbList)
 {
     Pixel	*ppix, pixel;
@@ -1548,7 +1548,7 @@ FreePixels(ColormapPtr pmap, int client)
  *  \param value  must conform to DeleteType
  *  \unused fakeid
  */
-_X_EXPORT int
+int
 FreeClientPixels (pointer value, XID fakeid)
 {
     ColormapPtr pmap;
@@ -1561,7 +1561,7 @@ FreeClientPixels (pointer value, XID fakeid)
     return Success;
 }
 
-_X_EXPORT int
+int
 AllocColorCells (int client, ColormapPtr pmap, int colors, int planes, 
                  Bool contig, Pixel *ppix, Pixel *masks)
 {
@@ -1633,7 +1633,7 @@ AllocColorCells (int client, ColormapPtr pmap, int colors, int planes,
 }
 
 
-_X_EXPORT int
+int
 AllocColorPlanes (int client, ColormapPtr pmap, int colors, 
                   int r, int g, int b, Bool contig, Pixel *pixels, 
                   Pixel *prmask, Pixel *pgmask, Pixel *pbmask)
@@ -2206,7 +2206,7 @@ AllocShared (ColormapPtr pmap, Pixel *ppix, int c, int r, int g, int b,
 /** FreeColors
  * Free colors and/or cells (probably slow for large numbers) 
  */
-_X_EXPORT int
+int
 FreeColors (ColormapPtr pmap, int client, int count, Pixel *pixels, Pixel mask)
 {
     int		rval, result, class;
@@ -2400,7 +2400,7 @@ FreeCo (ColormapPtr pmap, int client, int color, int npixIn, Pixel *ppixIn, Pixe
 
 
 /* Redefine color values */
-_X_EXPORT int
+int
 StoreColors (ColormapPtr pmap, int count, xColorItem *defs)
 {
     Pixel 	pix;
@@ -2667,7 +2667,7 @@ StoreColors (ColormapPtr pmap, int count, xColorItem *defs)
     return (errVal);
 }
 
-_X_EXPORT int
+int
 IsMapInstalled(Colormap map, WindowPtr pWin)
 {
     Colormap	*pmaps;
diff --git a/dix/cursor.c b/dix/cursor.c
index 9e2506a..b91c194 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -110,7 +110,7 @@ FreeCursorBits(CursorBitsPtr bits)
  *
  *  \param value must conform to DeleteType
  */
-_X_EXPORT int
+int
 FreeCursor(pointer value, XID cid)
 {
     int		nscr;
@@ -166,7 +166,7 @@ CheckForEmptyMask(CursorBitsPtr bits)
  *  \param pmaskbits server-defined padding
  *  \param argb      no padding
  */
-_X_EXPORT int
+int
 AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
 		CARD32 *argb, CursorMetricPtr cm,
 		unsigned foreRed, unsigned foreGreen, unsigned foreBlue, 
@@ -280,7 +280,7 @@ AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
     return rc;
 }
 
-_X_EXPORT int
+int
 AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar,
                 unsigned foreRed, unsigned foreGreen, unsigned foreBlue, 
                 unsigned backRed, unsigned backGreen, unsigned backBlue,
@@ -515,7 +515,7 @@ AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar,
  * add the cursor to the resource table
  *************************************************************/
 
-_X_EXPORT CursorPtr 
+CursorPtr
 CreateRootCursor(char *unused1, unsigned int unused2)
 {
     CursorPtr 	curs;
diff --git a/dix/deprecated.c b/dix/deprecated.c
index 2bb8119..d395c96 100644
--- a/dix/deprecated.c
+++ b/dix/deprecated.c
@@ -61,7 +61,7 @@ SOFTWARE.
  */
 
 /* replaced by dixLookupWindow */
-_X_EXPORT WindowPtr
+WindowPtr
 SecurityLookupWindow(XID id, ClientPtr client, Mask access_mode)
 {
     WindowPtr pWin;
@@ -75,14 +75,14 @@ SecurityLookupWindow(XID id, ClientPtr client, Mask access_mode)
 }
 
 /* replaced by dixLookupWindow */
-_X_EXPORT WindowPtr
+WindowPtr
 LookupWindow(XID id, ClientPtr client)
 {
     return SecurityLookupWindow(id, client, DixUnknownAccess);
 }
 
 /* replaced by dixLookupDrawable */
-_X_EXPORT pointer
+pointer
 SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode)
 {
     DrawablePtr pDraw;
@@ -96,14 +96,14 @@ SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode)
 }
 
 /* replaced by dixLookupDrawable */
-_X_EXPORT pointer
+pointer
 LookupDrawable(XID id, ClientPtr client)
 {
     return SecurityLookupDrawable(id, client, DixUnknownAccess);
 }
 
 /* replaced by dixLookupClient */
-_X_EXPORT ClientPtr
+ClientPtr
 LookupClient(XID id, ClientPtr client)
 {
     ClientPtr pClient;
@@ -116,7 +116,7 @@ LookupClient(XID id, ClientPtr client)
 }
 
 /* replaced by dixLookupResource */
-_X_EXPORT pointer
+pointer
 SecurityLookupIDByType(ClientPtr client, XID id, RESTYPE rtype,
 		       Mask access_mode)
 {
@@ -131,7 +131,7 @@ SecurityLookupIDByType(ClientPtr client, XID id, RESTYPE rtype,
 }
 
 /* replaced by dixLookupResource */
-_X_EXPORT pointer
+pointer
 SecurityLookupIDByClass(ClientPtr client, XID id, RESTYPE classes,
 			Mask access_mode)
 {
@@ -146,14 +146,14 @@ SecurityLookupIDByClass(ClientPtr client, XID id, RESTYPE classes,
 }
 
 /* replaced by dixLookupResource */
-_X_EXPORT pointer
+pointer
 LookupIDByType(XID id, RESTYPE rtype)
 {
     return SecurityLookupIDByType(NullClient, id, rtype, DixUnknownAccess);
 }
 
 /* replaced by dixLookupResource */
-_X_EXPORT pointer
+pointer
 LookupIDByClass(XID id, RESTYPE classes)
 {
     return SecurityLookupIDByClass(NullClient, id, classes, DixUnknownAccess);
diff --git a/dix/devices.c b/dix/devices.c
index 9feca90..7634668 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -94,7 +94,7 @@ SOFTWARE.
  */
 
 static int CoreDevicePrivateKeyIndex;
-_X_EXPORT DevPrivateKey CoreDevicePrivateKey = &CoreDevicePrivateKeyIndex;
+DevPrivateKey CoreDevicePrivateKey = &CoreDevicePrivateKeyIndex;
 /* Used to sture classes currently not in use by an MD */
 static int UnusedClassesPrivateKeyIndex;
 DevPrivateKey UnusedClassesPrivateKey = &UnusedClassesPrivateKeyIndex;
@@ -184,7 +184,7 @@ NextFreePointerDevice(void)
  * @param deviceProc Callback for device control function (switch dev on/off).
  * @return The newly created device.
  */
-_X_EXPORT DeviceIntPtr
+DeviceIntPtr
 AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
 {
     DeviceIntPtr dev, *prev; /* not a typo */
@@ -258,7 +258,7 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
  * @param The device to be enabled.
  * @return TRUE on success or FALSE otherwise.
  */
-_X_EXPORT Bool
+Bool
 EnableDevice(DeviceIntPtr dev)
 {
     DeviceIntPtr *prev;
@@ -356,7 +356,7 @@ EnableDevice(DeviceIntPtr dev)
  *
  * @return TRUE on success or FALSE otherwise.
  */
-_X_EXPORT Bool
+Bool
 DisableDevice(DeviceIntPtr dev)
 {
     DeviceIntPtr *prev, other;
@@ -433,7 +433,7 @@ DisableDevice(DeviceIntPtr dev)
  *
  * @return Success or an error code on failure.
  */
-_X_EXPORT int
+int
 ActivateDevice(DeviceIntPtr dev)
 {
     int ret = Success;
@@ -597,7 +597,7 @@ CorePointerProc(DeviceIntPtr pDev, int what)
  * Note that the server MUST have two core devices at all times, even if there
  * is no physical device connected.
  */
-_X_EXPORT void
+void
 InitCoreDevices(void)
 {
     if (AllocMasterDevice(serverClient, "Virtual core",
@@ -624,7 +624,7 @@ InitCoreDevices(void)
  *
  * @return Success or error code on failure.
  */
-_X_EXPORT int
+int
 InitAndStartDevices()
 {
     DeviceIntPtr dev, next;
@@ -889,7 +889,7 @@ CloseDevice(DeviceIntPtr dev)
  * Shut down all devices, free all resources, etc.
  * Only useful if you're shutting down the server!
  */
-_X_EXPORT void
+void
 CloseDownDevices(void)
 {
     DeviceIntPtr dev, next;
@@ -929,7 +929,7 @@ CloseDownDevices(void)
  * Remove the cursor sprite for all devices. This needs to be done before any
  * resources are freed or any device is deleted.
  */
-_X_EXPORT void
+void
 UndisplayDevices()
 {
     DeviceIntPtr dev;
@@ -950,7 +950,7 @@ UndisplayDevices()
  * dev->init is FALSE it means the client never received a DeviceAdded event,
  * so let's not send a DeviceRemoved event either.
  */
-_X_EXPORT int
+int
 RemoveDevice(DeviceIntPtr dev)
 {
     DeviceIntPtr prev,tmp,next;
@@ -1017,7 +1017,7 @@ RemoveDevice(DeviceIntPtr dev)
     return ret;
 }
 
-_X_EXPORT int
+int
 NumMotionEvents(void)
 {
     /* only called to fill data in initial connection reply.
@@ -1025,19 +1025,19 @@ NumMotionEvents(void)
     return inputInfo.pointer->valuator->numMotionEvents;
 }
 
-_X_EXPORT void
+void
 RegisterPointerDevice(DeviceIntPtr device)
 {
     RegisterOtherDevice(device);
 }
 
-_X_EXPORT void
+void
 RegisterKeyboardDevice(DeviceIntPtr device)
 {
     RegisterOtherDevice(device);
 }
 
-_X_EXPORT int
+int
 dixLookupDevice(DeviceIntPtr *pDev, int id, ClientPtr client, Mask access_mode)
 {
     DeviceIntPtr dev;
@@ -1061,7 +1061,7 @@ found:
     return rc;
 }
 
-_X_EXPORT void
+void
 QueryMinMaxKeyCodes(KeyCode *minCode, KeyCode *maxCode)
 {
     if (inputInfo.keyboard) {
@@ -1070,7 +1070,7 @@ QueryMinMaxKeyCodes(KeyCode *minCode, KeyCode *maxCode)
     }
 }
 
-_X_EXPORT Bool
+Bool
 SetKeySymsMap(KeySymsPtr dst, KeySymsPtr src)
 {
     int i, j;
@@ -1169,7 +1169,7 @@ InitModMap(KeyClassPtr keyc)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitKeyClassDeviceStruct(DeviceIntPtr dev, KeySymsPtr pKeySyms, CARD8 pModifiers[])
 {
     KeyClassPtr keyc;
@@ -1196,7 +1196,7 @@ InitKeyClassDeviceStruct(DeviceIntPtr dev, KeySymsPtr pKeySyms, CARD8 pModifiers
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitButtonClassDeviceStruct(DeviceIntPtr dev, int numButtons,
                             CARD8 *map)
 {
@@ -1213,7 +1213,7 @@ InitButtonClassDeviceStruct(DeviceIntPtr dev, int numButtons,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes,
                               int numMotionEvents, int mode)
 {
@@ -1269,7 +1269,7 @@ ValuatorAccelerationRec pointerAccelerationScheme[] = {
  * install an acceleration scheme. returns TRUE on success, and should not
  * change anything if unsuccessful.
  */
-_X_EXPORT Bool
+Bool
 InitPointerAccelerationScheme(DeviceIntPtr dev,
                               int scheme)
 {
@@ -1318,7 +1318,7 @@ InitPointerAccelerationScheme(DeviceIntPtr dev,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitAbsoluteClassDeviceStruct(DeviceIntPtr dev)
 {
     AbsoluteClassPtr abs;
@@ -1349,7 +1349,7 @@ InitAbsoluteClassDeviceStruct(DeviceIntPtr dev)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitFocusClassDeviceStruct(DeviceIntPtr dev)
 {
     FocusClassPtr focc;
@@ -1367,7 +1367,7 @@ InitFocusClassDeviceStruct(DeviceIntPtr dev)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitKbdFeedbackClassDeviceStruct(DeviceIntPtr dev, BellProcPtr bellProc,
                                  KbdCtrlProcPtr controlProc)
 {
@@ -1395,7 +1395,7 @@ InitKbdFeedbackClassDeviceStruct(DeviceIntPtr dev, BellProcPtr bellProc,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc)
 {
     PtrFeedbackPtr feedc;
@@ -1430,7 +1430,7 @@ static IntegerCtrl defaultIntegerControl = {
 	DEFAULT_INT_DISPLAYED,
 	0};
 
-_X_EXPORT Bool
+Bool
 InitStringFeedbackClassDeviceStruct (
       DeviceIntPtr dev, StringCtrlProcPtr controlProc,
       int max_symbols, int num_symbols_supported, KeySym *symbols)
@@ -1470,7 +1470,7 @@ InitStringFeedbackClassDeviceStruct (
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitBellFeedbackClassDeviceStruct (DeviceIntPtr dev, BellProcPtr bellProc,
                                    BellCtrlProcPtr controlProc)
 {
@@ -1490,7 +1490,7 @@ InitBellFeedbackClassDeviceStruct (DeviceIntPtr dev, BellProcPtr bellProc,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitLedFeedbackClassDeviceStruct (DeviceIntPtr dev, LedCtrlProcPtr controlProc)
 {
     LedFeedbackPtr feedc;
@@ -1511,7 +1511,7 @@ InitLedFeedbackClassDeviceStruct (DeviceIntPtr dev, LedCtrlProcPtr controlProc)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitIntegerFeedbackClassDeviceStruct (DeviceIntPtr dev, IntegerCtrlProcPtr controlProc)
 {
     IntegerFeedbackPtr feedc;
@@ -1529,7 +1529,7 @@ InitIntegerFeedbackClassDeviceStruct (DeviceIntPtr dev, IntegerCtrlProcPtr contr
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 InitPointerDeviceStruct(DevicePtr device, CARD8 *map, int numButtons,
                         PtrCtrlProcPtr controlProc, int numMotionEvents,
                         int numAxes)
@@ -1542,7 +1542,7 @@ InitPointerDeviceStruct(DevicePtr device, CARD8 *map, int numButtons,
 	   InitPtrFeedbackClassDeviceStruct(dev, controlProc));
 }
 
-_X_EXPORT Bool
+Bool
 InitKeyboardDeviceStruct(DevicePtr device, KeySymsPtr pKeySyms,
                          CARD8 pModifiers[], BellProcPtr bellProc,
                          KbdCtrlProcPtr controlProc)
@@ -1554,7 +1554,7 @@ InitKeyboardDeviceStruct(DevicePtr device, KeySymsPtr pKeySyms,
 	   InitKbdFeedbackClassDeviceStruct(dev, bellProc, controlProc));
 }
 
-_X_EXPORT void
+void
 SendMappingNotify(DeviceIntPtr pDev, unsigned request, unsigned firstKeyCode,
         unsigned count, ClientPtr client)
 {
@@ -1599,7 +1599,7 @@ SendMappingNotify(DeviceIntPtr pDev, unsigned request, unsigned firstKeyCode,
  *
  * @return TRUE if the device map is invalid, FALSE otherwise.
  */
-_X_EXPORT Bool
+Bool
 BadDeviceMap(BYTE *buff, int length, unsigned low, unsigned high, XID *errval)
 {
     int i;
@@ -1616,7 +1616,7 @@ BadDeviceMap(BYTE *buff, int length, unsigned low, unsigned high, XID *errval)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 AllModifierKeysAreUp(dev, map1, per1, map2, per2)
     DeviceIntPtr dev;
     CARD8 *map1, *map2;
@@ -1986,7 +1986,7 @@ ProcGetPointerMapping(ClientPtr client)
     return Success;
 }
 
-_X_EXPORT void
+void
 NoteLedState(DeviceIntPtr keybd, int led, Bool on)
 {
     KeybdCtrl *ctrl = &keybd->kbdfeed->ctrl;
@@ -1996,7 +1996,7 @@ NoteLedState(DeviceIntPtr keybd, int led, Bool on)
 	ctrl->leds &= ~((Leds)1 << (led - 1));
 }
 
-_X_EXPORT int
+int
 Ones(unsigned long mask)             /* HACKMEM 169 */
 {
     unsigned long y;
@@ -2391,7 +2391,7 @@ ProcGetPointerControl(ClientPtr client)
     return Success;
 }
 
-_X_EXPORT void
+void
 MaybeStopHint(DeviceIntPtr dev, ClientPtr client)
 {
     GrabPtr grab = dev->deviceGrab.grab;
@@ -2508,7 +2508,7 @@ ProcQueryKeymap(ClientPtr client)
  * We don't allow multi-layer hierarchies right now. You can't attach a slave
  * to another slave.
  */
-_X_EXPORT int
+int
 AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master)
 {
     ScreenPtr screen;
@@ -2597,7 +2597,7 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master)
  * Returns the device paired with the parent master if the given device is a
  * slave device.
  */
-_X_EXPORT DeviceIntPtr
+DeviceIntPtr
 GetPairedDevice(DeviceIntPtr dev)
 {
     if (!dev->isMaster && dev->u.master)
@@ -2612,7 +2612,7 @@ GetPairedDevice(DeviceIntPtr dev)
  * Only allocates the devices, you will need to call ActivateDevice() and
  * EnableDevice() manually.
  */
-_X_EXPORT int
+int
 AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr* keybd)
 {
     DeviceIntPtr pointer;
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 14d4a7e..ee105f8 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -167,8 +167,8 @@ static ClientPtr grabClient;
 #define GrabKickout 2
 static int grabState = GrabNone;
 static long grabWaiters[mskcnt];
-_X_EXPORT CallbackListPtr ServerGrabCallback = NULL;
-_X_EXPORT HWEventQueuePtr checkForInput[2];
+CallbackListPtr ServerGrabCallback = NULL;
+HWEventQueuePtr checkForInput[2];
 extern int connBlockScreenStart;
 
 static void KillAllClients(void);
@@ -177,15 +177,15 @@ static int nextFreeClientID; /* always MIN free client ID */
 
 static int	nClients;	/* number of authorized clients */
 
-_X_EXPORT CallbackListPtr ClientStateCallback;
+CallbackListPtr ClientStateCallback;
 
 /* dispatchException & isItTimeToYield must be declared volatile since they
  * are modified by signal handlers - otherwise optimizer may assume it doesn't
  * need to actually check value in memory when used and may miss changes from
  * signal handlers.
  */
-_X_EXPORT volatile char dispatchException = 0;
-_X_EXPORT volatile char isItTimeToYield;
+volatile char dispatchException = 0;
+volatile char isItTimeToYield;
 
 /* Various of the DIX function interfaces were not designed to allow
  * the client->errorValue to be set on BadValue and other errors.
@@ -197,14 +197,14 @@ XID clientErrorValue;   /* XXX this is a kludge */
 #define SAME_SCREENS(a, b) (\
     (a.pScreen == b.pScreen))
 
-_X_EXPORT void
+void
 SetInputCheck(HWEventQueuePtr c0, HWEventQueuePtr c1)
 {
     checkForInput[0] = c0;
     checkForInput[1] = c1;
 }
 
-_X_EXPORT void
+void
 UpdateCurrentTime(void)
 {
     TimeStamp systime;
@@ -223,7 +223,7 @@ UpdateCurrentTime(void)
 }
 
 /* Like UpdateCurrentTime, but can't call ProcessInputEvents */
-_X_EXPORT void
+void
 UpdateCurrentTimeIf(void)
 {
     TimeStamp systime;
@@ -242,11 +242,11 @@ UpdateCurrentTimeIf(void)
 #define SMART_SCHEDULE_DEFAULT_INTERVAL	20	    /* ms */
 #define SMART_SCHEDULE_MAX_SLICE	200	    /* ms */
 
-_X_EXPORT Bool SmartScheduleDisable = FALSE;
-_X_EXPORT long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL;
-_X_EXPORT long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL;
-_X_EXPORT long SmartScheduleMaxSlice = SMART_SCHEDULE_MAX_SLICE;
-_X_EXPORT long SmartScheduleTime;
+Bool SmartScheduleDisable = FALSE;
+long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL;
+long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL;
+long SmartScheduleMaxSlice = SMART_SCHEDULE_MAX_SLICE;
+long SmartScheduleTime;
 static ClientPtr   SmartLastClient;
 static int	   SmartLastIndex[SMART_MAX_PRIORITY-SMART_MIN_PRIORITY+1];
 
@@ -470,7 +470,7 @@ Dispatch(void)
 
 #undef MAJOROP
 
-_X_EXPORT int
+int
 ProcBadRequest(ClientPtr client)
 {
     return (BadRequest);
@@ -1239,7 +1239,7 @@ ProcListFontsWithInfo(ClientPtr client)
  *
  *  \param value must conform to DeleteType
  */
-_X_EXPORT int
+int
 dixDestroyPixmap(pointer value, XID pid)
 {
     PixmapPtr pPixmap = (PixmapPtr)value;
@@ -3356,9 +3356,9 @@ InitProcVectors(void)
  *  then killed again, the client is really destroyed.
  *********************/
 
-_X_EXPORT char dispatchExceptionAtReset = DE_RESET;
+char dispatchExceptionAtReset = DE_RESET;
 
-_X_EXPORT void
+void
 CloseDownClient(ClientPtr client)
 {
     Bool really_close_down = client->clientGone ||
@@ -3458,7 +3458,7 @@ KillAllClients(void)
         }
 }
 
-_X_EXPORT void InitClient(ClientPtr client, int i, pointer ospriv)
+void InitClient(ClientPtr client, int i, pointer ospriv)
 {
     client->index = i;
     client->sequence = 0; 
@@ -3504,7 +3504,7 @@ _X_EXPORT void InitClient(ClientPtr client, int i, pointer ospriv)
  * Returns NULL if there are no free clients.
  *************************/
 
-_X_EXPORT ClientPtr NextAvailableClient(pointer ospriv)
+ClientPtr NextAvailableClient(pointer ospriv)
 {
     int i;
     ClientPtr client;
@@ -3704,7 +3704,7 @@ ProcEstablishConnection(ClientPtr client)
     return(client->noClientException);
 }
 
-_X_EXPORT void
+void
 SendErrorToClient(ClientPtr client, unsigned majorCode, unsigned minorCode, 
                   XID resId, int errorCode)
 {
@@ -3720,7 +3720,7 @@ SendErrorToClient(ClientPtr client, unsigned majorCode, unsigned minorCode,
     WriteEventsToClient (client, 1, (xEvent *)&rep);
 }
 
-_X_EXPORT void
+void
 MarkClientException(ClientPtr client)
 {
     client->noClientException = -1;
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index 57469bd..416adb3 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -130,7 +130,7 @@ LoadGlyphs(ClientPtr client, FontPtr pfont, unsigned nchars, int item_size,
 /*
  * adding RT_FONT prevents conflict with default cursor font
  */
-_X_EXPORT Bool
+Bool
 SetDefaultFont(char *defaultfontname)
 {
     int         err;
@@ -158,7 +158,7 @@ SetDefaultFont(char *defaultfontname)
  * init_fpe() and free_fpe(), there shouldn't be any problem in using
  * freed data.
  */
-_X_EXPORT void
+void
 QueueFontWakeup(FontPathElementPtr fpe)
 {
     int         i;
@@ -182,7 +182,7 @@ QueueFontWakeup(FontPathElementPtr fpe)
     num_slept_fpes++;
 }
 
-_X_EXPORT void
+void
 RemoveFontWakeup(FontPathElementPtr fpe)
 {
     int         i,
@@ -199,7 +199,7 @@ RemoveFontWakeup(FontPathElementPtr fpe)
     }
 }
 
-_X_EXPORT void
+void
 FontWakeup(pointer data, int count, pointer LastSelectMask)
 {
     int         i;
@@ -389,7 +389,7 @@ bail:
     return TRUE;
 }
 
-_X_EXPORT int
+int
 OpenFont(ClientPtr client, XID fid, Mask flags, unsigned lenfname, char *pfontname)
 {
     OFclosurePtr c;
@@ -479,7 +479,7 @@ OpenFont(ClientPtr client, XID fid, Mask flags, unsigned lenfname, char *pfontna
  *
  *  \param value must conform to DeleteType
  */
-_X_EXPORT int
+int
 CloseFont(pointer value, XID fid)
 {
     int         nscr;
@@ -522,7 +522,7 @@ CloseFont(pointer value, XID fid)
  *
  *  \param pReply caller must allocate this storage
   */
-_X_EXPORT void
+void
 QueryFont(FontPtr pFont, xQueryFontReply *pReply, int nProtoCCIStructs)
 {
     FontPropPtr      pFP;
@@ -840,7 +840,7 @@ bail:
     return TRUE;
 }
 
-_X_EXPORT int
+int
 ListFonts(ClientPtr client, unsigned char *pattern, unsigned length, 
           unsigned max_names)
 {
@@ -894,7 +894,7 @@ ListFonts(ClientPtr client, unsigned char *pattern, unsigned length,
     return Success;
 }
 
-_X_EXPORT int
+int
 doListFontsWithInfo(ClientPtr client, LFWIclosurePtr c)
 {
     FontPathElementPtr fpe;
@@ -1175,7 +1175,7 @@ badAlloc:
 static XID clearGC[] = { CT_NONE };
 #define clearGCmask (GCClipMask)
 
-_X_EXPORT int
+int
 doPolyText(ClientPtr client, PTclosurePtr c)
 {
     FontPtr pFont = c->pGC->font, oldpFont;
@@ -1442,7 +1442,7 @@ bail:
     return TRUE;
 }
 
-_X_EXPORT int
+int
 PolyText(ClientPtr client, DrawablePtr pDraw, GC *pGC, unsigned char *pElt, 
          unsigned char *endReq, int xorg, int yorg, int reqType, XID did)
 {
@@ -1477,7 +1477,7 @@ PolyText(ClientPtr client, DrawablePtr pDraw, GC *pGC, unsigned char *pElt,
 #undef TextEltHeader
 #undef FontShiftSize
 
-_X_EXPORT int
+int
 doImageText(ClientPtr client, ITclosurePtr c)
 {
     int err = Success, lgerr;	/* err is in X error, not font error, space */
@@ -1598,7 +1598,7 @@ bail:
     return TRUE;
 }
 
-_X_EXPORT int
+int
 ImageText(ClientPtr client, DrawablePtr pDraw, GC *pGC, int nChars, 
           unsigned char *data, int xorg, int yorg, int reqType, XID did)
 {
@@ -1796,7 +1796,7 @@ bail:
 }
 
 /* XXX -- do we need to pass error down to each renderer? */
-_X_EXPORT int
+int
 SetFontPath(ClientPtr client, int npaths, unsigned char *paths, int *error)
 {
     int err = XaceHook(XACE_SERVER_ACCESS, client, DixManageAccess);
@@ -1812,7 +1812,7 @@ SetFontPath(ClientPtr client, int npaths, unsigned char *paths, int *error)
     return err;
 }
 
-_X_EXPORT int
+int
 SetDefaultFontPath(char *path)
 {
     unsigned char *cp,
@@ -1853,7 +1853,7 @@ SetDefaultFontPath(char *path)
     return err;
 }
 
-_X_EXPORT int
+int
 GetFontPath(ClientPtr client, int *count, int *length, unsigned char **result)
 {
     int			i;
@@ -1888,7 +1888,7 @@ GetFontPath(ClientPtr client, int *count, int *length, unsigned char **result)
     return Success;
 }
 
-_X_EXPORT void
+void
 DeleteClientFontStuff(ClientPtr client)
 {
     int			i;
@@ -1902,7 +1902,7 @@ DeleteClientFontStuff(ClientPtr client)
     }
 }
 
-_X_EXPORT void
+void
 InitFonts (void)
 {
     patternCache = MakeFontPatternCache();
@@ -1915,14 +1915,14 @@ InitFonts (void)
 #endif
 }
 
-_X_EXPORT int
+int
 GetDefaultPointSize ()
 {
     return 120;
 }
 
 
-_X_EXPORT FontResolutionPtr
+FontResolutionPtr
 GetClientResolutions (int *num)
 {
     static struct _FontResolution res;
@@ -1954,7 +1954,7 @@ GetClientResolutions (int *num)
  * should be called (only once!) by each type of fpe when initialized
  */
 
-_X_EXPORT int
+int
 RegisterFPEFunctions(NameCheckFunc name_func, 
 		     InitFpeFunc init_func, 
 		     FreeFpeFunc free_func, 
@@ -2003,7 +2003,7 @@ RegisterFPEFunctions(NameCheckFunc name_func,
     return num_fpe_types++;
 }
 
-_X_EXPORT void
+void
 FreeFonts(void)
 {
     if (patternCache) {
@@ -2020,32 +2020,32 @@ FreeFonts(void)
 
 /* convenience functions for FS interface */
 
-_X_EXPORT FontPtr
+FontPtr
 find_old_font(XID id)
 {
     return (FontPtr) SecurityLookupIDByType(NullClient, id, RT_NONE,
 					    DixUnknownAccess);
 }
 
-_X_EXPORT Font
+Font
 GetNewFontClientID()
 {
     return FakeClientID(0);
 }
 
-_X_EXPORT int
+int
 StoreFontClientFont(FontPtr pfont, Font id)
 {
     return AddResource(id, RT_NONE, (pointer) pfont);
 }
 
-_X_EXPORT void
+void
 DeleteFontClientID(Font id)
 {
     FreeResource(id, RT_NONE);
 }
 
-_X_EXPORT int
+int
 client_auth_generation(ClientPtr client)
 {
     return 0;
@@ -2054,7 +2054,7 @@ client_auth_generation(ClientPtr client)
 static int  fs_handlers_installed = 0;
 static unsigned int last_server_gen;
 
-_X_EXPORT int
+int
 init_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr block_handler)
 {
     /* if server has reset, make sure the b&w handlers are reinstalled */
@@ -2072,7 +2072,7 @@ init_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr block_handler)
     return Successful;
 }
 
-_X_EXPORT void
+void
 remove_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr block_handler, Bool all)
 {
     if (all) {
diff --git a/dix/dixutils.c b/dix/dixutils.c
index 6d7c512..19ed5bf 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -102,7 +102,7 @@ Author:  Adobe Systems Incorporated
  * argument is less than, equal to or greater than the second argument.
  */
 
-_X_EXPORT int
+int
 CompareTimeStamps(TimeStamp a, TimeStamp b)
 {
     if (a.months < b.months)
@@ -121,7 +121,7 @@ CompareTimeStamps(TimeStamp a, TimeStamp b)
  */
 
 #define HALFMONTH ((unsigned long) 1<<31)
-_X_EXPORT TimeStamp
+TimeStamp
 ClientTimeToServerTime(CARD32 c)
 {
     TimeStamp ts;
@@ -165,7 +165,7 @@ ISOLatin1ToLower (unsigned char source)
 }
 
 
-_X_EXPORT void
+void
 CopyISOLatin1Lowered(unsigned char *dest, unsigned char *source, int length)
 {
     int i;
@@ -175,7 +175,7 @@ CopyISOLatin1Lowered(unsigned char *dest, unsigned char *source, int length)
     *dest = '\0';
 }
 
-_X_EXPORT int
+int
 CompareISOLatin1Lowered(unsigned char *s1, int s1len, 
 			unsigned char *s2, int s2len)
 {
@@ -203,7 +203,7 @@ CompareISOLatin1Lowered(unsigned char *s1, int s1len,
  * access mask values are defined in resource.h.  The type mask values are
  * defined in pixmap.h, with zero equivalent to M_DRAWABLE.
  */
-_X_EXPORT int
+int
 dixLookupDrawable(DrawablePtr *pDraw, XID id, ClientPtr client,
 		  Mask type, Mask access)
 {
@@ -229,7 +229,7 @@ dixLookupDrawable(DrawablePtr *pDraw, XID id, ClientPtr client,
     return Success;
 }
 
-_X_EXPORT int
+int
 dixLookupWindow(WindowPtr *pWin, XID id, ClientPtr client, Mask access)
 {
     int rc;
@@ -237,7 +237,7 @@ dixLookupWindow(WindowPtr *pWin, XID id, ClientPtr client, Mask access)
     return (rc == BadDrawable) ? BadWindow : rc;
 }
 
-_X_EXPORT int
+int
 dixLookupGC(GCPtr *pGC, XID id, ClientPtr client, Mask access)
 {
     GCPtr pTmp = (GCPtr)SecurityLookupIDByType(client, id, RT_GC, access);
@@ -250,7 +250,7 @@ dixLookupGC(GCPtr *pGC, XID id, ClientPtr client, Mask access)
     return BadGC;
 }
 
-_X_EXPORT int
+int
 dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client, Mask access)
 {
     pointer pRes;
@@ -276,7 +276,7 @@ bad:
     return rc;
 }
 
-_X_EXPORT int
+int
 AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode,
                       Bool toRoot, Bool map)
 {
@@ -332,7 +332,7 @@ AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode,
     return(Success);
 }
 
-_X_EXPORT void
+void
 DeleteWindowFromAnySaveSet(WindowPtr pWin)
 {
     int i;
@@ -351,7 +351,7 @@ DeleteWindowFromAnySaveSet(WindowPtr pWin)
  * colormaps, if someone calls install colormap, it's easier to have a dummy
  * procedure to call than to check if there's a procedure 
  */
-_X_EXPORT void
+void
 NoopDDA(void)
 {
 }
@@ -374,7 +374,7 @@ static Bool		handlerDeleted;
  *  \param pTimeout   DIX doesn't want to know how OS represents time
  *  \param pReadMask  nor how it represents the det of descriptors
  */
-_X_EXPORT void
+void
 BlockHandler(pointer pTimeout, pointer pReadmask)
 {
     int i, j;
@@ -408,7 +408,7 @@ BlockHandler(pointer pTimeout, pointer pReadmask)
  *  \param result    32 bits of undefined result from the wait
  *  \param pReadmask the resulting descriptor mask
  */
-_X_EXPORT void
+void
 WakeupHandler(int result, pointer pReadmask)
 {
     int i, j;
@@ -441,7 +441,7 @@ WakeupHandler(int result, pointer pReadmask)
  * Reentrant with BlockHandler and WakeupHandler, except wakeup won't
  * get called until next time
  */
-_X_EXPORT Bool
+Bool
 RegisterBlockAndWakeupHandlers (BlockHandlerProcPtr blockHandler, 
                                 WakeupHandlerProcPtr wakeupHandler, 
                                 pointer blockData)
@@ -465,7 +465,7 @@ RegisterBlockAndWakeupHandlers (BlockHandlerProcPtr blockHandler,
     return TRUE;
 }
 
-_X_EXPORT void
+void
 RemoveBlockAndWakeupHandlers (BlockHandlerProcPtr blockHandler, 
                               WakeupHandlerProcPtr wakeupHandler, 
                               pointer blockData)
@@ -492,7 +492,7 @@ RemoveBlockAndWakeupHandlers (BlockHandlerProcPtr blockHandler,
 	}
 }
 
-_X_EXPORT void
+void
 InitBlockAndWakeupHandlers (void)
 {
     xfree (handlers);
@@ -509,7 +509,7 @@ InitBlockAndWakeupHandlers (void)
 WorkQueuePtr		workQueue;
 static WorkQueuePtr	*workQueueLast = &workQueue;
 
-_X_EXPORT void
+void
 ProcessWorkQueue(void)
 {
     WorkQueuePtr    q, *p;
@@ -537,7 +537,7 @@ ProcessWorkQueue(void)
     workQueueLast = p;
 }
 
-_X_EXPORT void
+void
 ProcessWorkQueueZombies(void)
 {
     WorkQueuePtr    q, *p;
@@ -560,7 +560,7 @@ ProcessWorkQueueZombies(void)
     workQueueLast = p;
 }
 
-_X_EXPORT Bool
+Bool
 QueueWorkProc (
     Bool (*function)(ClientPtr /* pClient */, pointer /* closure */),
     ClientPtr client, pointer closure)
@@ -596,7 +596,7 @@ typedef struct _SleepQueue {
 
 static SleepQueuePtr	sleepQueue = NULL;
 
-_X_EXPORT Bool
+Bool
 ClientSleep (ClientPtr client, ClientSleepProcPtr function, pointer closure)
 {
     SleepQueuePtr   q;
@@ -614,7 +614,7 @@ ClientSleep (ClientPtr client, ClientSleepProcPtr function, pointer closure)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 ClientSignal (ClientPtr client)
 {
     SleepQueuePtr   q;
@@ -627,7 +627,7 @@ ClientSignal (ClientPtr client)
     return FALSE;
 }
 
-_X_EXPORT void
+void
 ClientWakeup (ClientPtr client)
 {
     SleepQueuePtr   q, *prev;
@@ -653,7 +653,7 @@ ClientWakeup (ClientPtr client)
     }
 }
 
-_X_EXPORT Bool
+Bool
 ClientIsAsleep (ClientPtr client)
 {
     SleepQueuePtr   q;
@@ -673,7 +673,7 @@ ClientIsAsleep (ClientPtr client)
 static int numCallbackListsToCleanup = 0;
 static CallbackListPtr **listsToCleanup = NULL;
 
-static Bool 
+static Bool
 _AddCallback(
     CallbackListPtr *pcbl,
     CallbackProcPtr callback,
@@ -850,7 +850,7 @@ CreateCallbackList(CallbackListPtr *pcbl)
 
 /* ===== Public Procedures ===== */
 
-_X_EXPORT Bool 
+Bool
 AddCallback(CallbackListPtr *pcbl, CallbackProcPtr callback, pointer data)
 {
     if (!pcbl) return FALSE;
@@ -862,28 +862,28 @@ AddCallback(CallbackListPtr *pcbl, CallbackProcPtr callback, pointer data)
     return _AddCallback(pcbl, callback, data);
 }
 
-_X_EXPORT Bool 
+Bool
 DeleteCallback(CallbackListPtr *pcbl, CallbackProcPtr callback, pointer data)
 {
     if (!pcbl || !*pcbl) return FALSE;
     return _DeleteCallback(pcbl, callback, data);
 }
 
-_X_EXPORT void 
+void
 CallCallbacks(CallbackListPtr *pcbl, pointer call_data)
 {
     if (!pcbl || !*pcbl) return;
     _CallCallbacks(pcbl, call_data);
 }
 
-_X_EXPORT void
+void
 DeleteCallbackList(CallbackListPtr *pcbl)
 {
     if (!pcbl || !*pcbl) return;
     _DeleteCallbackList(pcbl);
 }
 
-_X_EXPORT void 
+void
 InitCallbackManager(void)
 {
     int i;
diff --git a/dix/events.c b/dix/events.c
index de85caf..45cd608 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -210,12 +210,12 @@ typedef const char *string;
 
 #define rClient(obj) (clients[CLIENT_ID((obj)->resource)])
 
-_X_EXPORT CallbackListPtr EventCallback;
-_X_EXPORT CallbackListPtr DeviceEventCallback;
+CallbackListPtr EventCallback;
+CallbackListPtr DeviceEventCallback;
 
 #define DNPMCOUNT 8
 
-_X_EXPORT Mask DontPropagateMasks[DNPMCOUNT];
+Mask DontPropagateMasks[DNPMCOUNT];
 static int DontPropagateRefCnts[DNPMCOUNT];
 
 
@@ -239,7 +239,7 @@ static int DontPropagateRefCnts[DNPMCOUNT];
  *     inputInfo.numDevices
  *     Total number of devices.
  */
-_X_EXPORT InputInfo inputInfo;
+InputInfo inputInfo;
 
 /**
  * syncEvents is the global structure for queued events.
@@ -276,7 +276,7 @@ static int swapEventLen = 0;
  * Convert the given event type from an XI event to a core event.
  * @return The matching core event type or 0 if there is none.
  */
-_X_EXPORT int
+int
 XItoCoreType(int xitype)
 {
     int coretype = 0;
@@ -298,7 +298,7 @@ XItoCoreType(int xitype)
  * True if device owns a cursor, false if device shares a cursor sprite with
  * another device.
  */
-_X_EXPORT Bool
+Bool
 DevHasCursor(DeviceIntPtr pDev)
 {
     return pDev->spriteInfo->spriteOwner;
@@ -308,7 +308,7 @@ DevHasCursor(DeviceIntPtr pDev)
  * Return true if a device is a pointer, check is the same as used by XI to
  * fill the 'use' field.
  */
-_X_EXPORT Bool
+Bool
 IsPointerDevice(DeviceIntPtr dev)
 {
     return (dev->valuator && dev->button);
@@ -321,7 +321,7 @@ IsPointerDevice(DeviceIntPtr dev)
  * Some pointer devices have keys as well (e.g. multimedia keys). Try to not
  * count them as keyboard devices.
  */
-_X_EXPORT Bool
+Bool
 IsKeyboardDevice(DeviceIntPtr dev)
 {
     return (dev->key && dev->kbdfeed) && !IsPointerDevice(dev);
@@ -756,7 +756,7 @@ XineramaChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
 
 #endif  /* PANORAMIX */
 
-_X_EXPORT void
+void
 SetMaskForEvent(int deviceid, Mask mask, int event)
 {
     int coretype;
@@ -772,7 +772,7 @@ SetMaskForEvent(int deviceid, Mask mask, int event)
         filters[deviceid][coretype] = mask;
 }
 
-_X_EXPORT void
+void
 SetCriticalEvent(int event)
 {
     if (event >= 128)
@@ -780,7 +780,7 @@ SetCriticalEvent(int event)
     criticalEvents[event >> 3] |= 1 << (event & 7);
 }
 
-_X_EXPORT void
+void
 ConfineToShape(DeviceIntPtr pDev, RegionPtr shape, int *px, int *py)
 {
     BoxRec box;
@@ -944,7 +944,7 @@ ConfineCursorToWindow(DeviceIntPtr pDev, WindowPtr pWin, Bool generateEvents, Bo
     }
 }
 
-_X_EXPORT Bool
+Bool
 PointerConfinedToScreen(DeviceIntPtr pDev)
 {
     return pDev->spriteInfo->sprite->confined;
@@ -987,7 +987,7 @@ ChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
 /**
  * @returns true if b is a descendent of a
  */
-_X_EXPORT Bool
+Bool
 IsParent(WindowPtr a, WindowPtr b)
 {
     for (b = b->parent; b; b = b->parent)
@@ -1045,7 +1045,7 @@ PostNewCursor(DeviceIntPtr pDev)
  * @param dev device which you want to know its current root window
  * @return root window where dev's sprite is located
  */
-_X_EXPORT WindowPtr
+WindowPtr
 GetCurrentRootWindow(DeviceIntPtr dev)
 {
     return RootWindow(dev);
@@ -1054,7 +1054,7 @@ GetCurrentRootWindow(DeviceIntPtr dev)
 /**
  * @return window underneath the cursor sprite.
  */
-_X_EXPORT WindowPtr
+WindowPtr
 GetSpriteWindow(DeviceIntPtr pDev)
 {
     return pDev->spriteInfo->sprite->win;
@@ -1063,7 +1063,7 @@ GetSpriteWindow(DeviceIntPtr pDev)
 /**
  * @return current sprite cursor.
  */
-_X_EXPORT CursorPtr
+CursorPtr
 GetSpriteCursor(DeviceIntPtr pDev)
 {
     return pDev->spriteInfo->sprite->current;
@@ -1072,7 +1072,7 @@ GetSpriteCursor(DeviceIntPtr pDev)
 /**
  * Set x/y current sprite position in screen coordinates.
  */
-_X_EXPORT void
+void
 GetSpritePosition(DeviceIntPtr pDev, int *px, int *py)
 {
     SpritePtr pSprite = pDev->spriteInfo->sprite;
@@ -1081,7 +1081,7 @@ GetSpritePosition(DeviceIntPtr pDev, int *px, int *py)
 }
 
 #ifdef PANORAMIX
-_X_EXPORT int
+int
 XineramaGetCursorScreen(DeviceIntPtr pDev)
 {
     if(!noPanoramiXExtension) {
@@ -1113,7 +1113,7 @@ MonthChangedOrBadTime(xEvent *xE)
     currentTime.milliseconds = (xE)->u.keyButtonPointer.time; \
     lastDeviceEventTime = currentTime; }
 
-_X_EXPORT void
+void
 NoticeEventTime(xEvent *xE)
 {
     if (!syncEvents.playingEvents)
@@ -1129,7 +1129,7 @@ NoticeEventTime(xEvent *xE)
  * Instead of delivering the events to the client, the event is tacked onto a
  * linked list for later delivery.
  */
-_X_EXPORT void
+void
 EnqueueEvent(xEvent *xE, DeviceIntPtr device, int count)
 {
     QdEventPtr	tail = *syncEvents.pendtail;
@@ -1399,7 +1399,7 @@ playmore:
 }
 
 #ifdef RANDR
-_X_EXPORT void
+void
 ScreenRestructured (ScreenPtr pScreen)
 {
     GrabPtr grab;
@@ -1525,7 +1525,7 @@ RestoreOldMaster(DeviceIntPtr dev)
  * @param autoGrab True if the grab was caused by a button down event and not
  * explicitely by a client.
  */
-_X_EXPORT void
+void
 ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab,
                     TimeStamp time, Bool autoGrab)
 {
@@ -1571,7 +1571,7 @@ ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab,
  *
  * Extension devices are set up for ActivateKeyboardGrab().
  */
-_X_EXPORT void
+void
 DeactivatePointerGrab(DeviceIntPtr mouse)
 {
     GrabPtr grab = mouse->deviceGrab.grab;
@@ -1614,7 +1614,7 @@ DeactivatePointerGrab(DeviceIntPtr mouse)
  *
  * Extension devices have ActivateKeyboardGrab() set as their grabbing proc.
  */
-_X_EXPORT void
+void
 ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, Bool passive)
 {
     GrabInfoPtr grabinfo = &keybd->deviceGrab;
@@ -1651,7 +1651,7 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, Bool pass
 /**
  * Delete keyboard grab for the given device.
  */
-_X_EXPORT void
+void
 DeactivateKeyboardGrab(DeviceIntPtr keybd)
 {
     GrabPtr grab = keybd->deviceGrab.grab;
@@ -1686,7 +1686,7 @@ DeactivateKeyboardGrab(DeviceIntPtr keybd)
     ComputeFreezes();
 }
 
-_X_EXPORT void
+void
 AllowSome(ClientPtr client,
           TimeStamp time,
           DeviceIntPtr thisDev,
@@ -1816,7 +1816,7 @@ AllowSome(ClientPtr client,
  *
  * Release some events from a frozen device.
  */
-_X_EXPORT int
+int
 ProcAllowEvents(ClientPtr client)
 {
     TimeStamp		time;
@@ -1866,7 +1866,7 @@ ProcAllowEvents(ClientPtr client)
 /**
  * Deactivate grabs from any device that has been grabbed by the client.
  */
-_X_EXPORT void
+void
 ReleaseActiveGrabs(ClientPtr client)
 {
     DeviceIntPtr dev;
@@ -1917,7 +1917,7 @@ ReleaseActiveGrabs(ClientPtr client)
  * @return 1 if event was delivered, 0 if not or -1 if grab was not set by the
  * client.
  */
-_X_EXPORT int
+int
 TryClientEvents (ClientPtr client, DeviceIntPtr dev, xEvent *pEvents,
                  int count, Mask mask, Mask filter, GrabPtr grab)
 {
@@ -2012,7 +2012,7 @@ TryClientEvents (ClientPtr client, DeviceIntPtr dev, xEvent *pEvents,
  *
  * @return Number of events delivered to various clients.
  */
-_X_EXPORT int
+int
 DeliverEventsToWindow(DeviceIntPtr pDev, WindowPtr pWin, xEvent
         *pEvents, int count, Mask filter, GrabPtr grab, int mskidx)
 {
@@ -2224,7 +2224,7 @@ XineramaTryClientEventsResult(
  * @param filter Mask based on event type.
  * @param dontClient Don't deliver to the dontClient.
  */
-_X_EXPORT int
+int
 MaybeDeliverEventsToClient(WindowPtr pWin, xEvent *pEvents,
                            int count, Mask filter, ClientPtr dontClient)
 {
@@ -2354,7 +2354,7 @@ FixUpEventFromWindow(
  * @see DeliverGrabbedEvent
  * @see DeliverFocusedEvent
  */
-_X_EXPORT int
+int
 DeliverDeviceEvents(WindowPtr pWin, xEvent *xE, GrabPtr grab,
                     WindowPtr stopAt, DeviceIntPtr dev, int count)
 {
@@ -2469,7 +2469,7 @@ DeliverDeviceEvents(WindowPtr pWin, xEvent *xE, GrabPtr grab,
  * @param count number of events in xE.
  * @param otherParent Used for ReparentNotify events.
  */
-_X_EXPORT int
+int
 DeliverEvents(WindowPtr pWin, xEvent *xE, int count,
               WindowPtr otherParent)
 {
@@ -2612,7 +2612,7 @@ XYToWindow(DeviceIntPtr pDev, int x, int y)
  *
  * @return TRUE if the sprite has moved or FALSE otherwise.
  */
-_X_EXPORT Bool
+Bool
 CheckMotion(xEvent *xE, DeviceIntPtr pDev)
 {
     INT16     *rootX, *rootY;
@@ -2709,7 +2709,7 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
  * Windows have restructured, we need to update the sprite position and the
  * sprite's cursor.
  */
-_X_EXPORT void
+void
 WindowsRestructured(void)
 {
     DeviceIntPtr pDev = inputInfo.devices;
@@ -2727,7 +2727,7 @@ WindowsRestructured(void)
  * other than 0,0, the information in the private sprite structure must
  * be updated accordingly, or XYToWindow (and other routines) will not
  * compute correctly. */
-_X_EXPORT void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff)
+void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff)
 {
     GrabPtr   grab;
     DeviceIntPtr pDev;
@@ -2781,7 +2781,7 @@ _X_EXPORT void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff)
  *
  * Should delete this now? -ds
  */
-_X_EXPORT void
+void
 DefineInitialRootWindow(WindowPtr win)
 {
 }
@@ -2801,7 +2801,7 @@ DefineInitialRootWindow(WindowPtr win)
  * @param pWin The window where to generate the sprite in.
  *
  */
-_X_EXPORT void
+void
 InitializeSprite(DeviceIntPtr pDev, WindowPtr pWin)
 {
     SpritePtr pSprite;
@@ -2917,7 +2917,7 @@ InitializeSprite(DeviceIntPtr pDev, WindowPtr pWin)
  * reset the mouse pointer position.
  * @param win must be the new pScreen we are switching to.
  */
-_X_EXPORT void
+void
 UpdateSpriteForScreen(DeviceIntPtr pDev, ScreenPtr pScreen)
 {
     SpritePtr pSprite = NULL;
@@ -2969,7 +2969,7 @@ UpdateSpriteForScreen(DeviceIntPtr pDev, ScreenPtr pScreen)
  * between the one the pointer is in and the one that the last cursor was
  * instantiated from.
  */
-_X_EXPORT void
+void
 WindowHasNewCursor(WindowPtr pWin)
 {
     DeviceIntPtr pDev;
@@ -2979,7 +2979,7 @@ WindowHasNewCursor(WindowPtr pWin)
             PostNewCursor(pDev);
 }
 
-_X_EXPORT void
+void
 NewCurrentScreen(DeviceIntPtr pDev, ScreenPtr newScreen, int x, int y)
 {
     SpritePtr pSprite = pDev->spriteInfo->sprite;
@@ -3138,7 +3138,7 @@ XineramaWarpPointer(ClientPtr client)
  * Server-side protocol handling for WarpPointer request.
  * Warps the cursor position to the coordinates given in the request.
  */
-_X_EXPORT int
+int
 ProcWarpPointer(ClientPtr client)
 {
     WindowPtr	dest = NULL;
@@ -3437,7 +3437,7 @@ CheckPassiveGrabsOnWindow(
  * @return TRUE if a grab has been activated or false otherwise.
 */
 
-_X_EXPORT Bool
+Bool
 CheckDeviceGrabs(DeviceIntPtr device, xEvent *xE,
                  int checkFirst, int count)
 {
@@ -3511,7 +3511,7 @@ CheckDeviceGrabs(DeviceIntPtr device, xEvent *xE,
  * @param window Window underneath the sprite.
  * @param count number of events in xE.
  */
-_X_EXPORT void
+void
 DeliverFocusedEvent(DeviceIntPtr keybd, xEvent *xE, WindowPtr window, int count)
 {
     DeviceIntPtr pointer;
@@ -3569,7 +3569,7 @@ DeliverFocusedEvent(DeviceIntPtr keybd, xEvent *xE, WindowPtr window, int count)
  *
  * @param deactivateGrab True if the device's grab should be deactivated.
  */
-_X_EXPORT void
+void
 DeliverGrabbedEvent(xEvent *xE, DeviceIntPtr thisDev,
                     Bool deactivateGrab, int count)
 {
@@ -3741,7 +3741,7 @@ DeliverGrabbedEvent(xEvent *xE, DeviceIntPtr thisDev,
  * @param keybd The device that caused an event.
  * @param count Number of elements in xE.
  */
-_X_EXPORT void
+void
 #ifdef XKB
 CoreProcessKeyboardEvent (xEvent *xE, DeviceIntPtr keybd, int count)
 #else
@@ -3822,7 +3822,7 @@ ProcessKeyboardEvent (xEvent *xE, DeviceIntPtr keybd, int count)
    this is only used when the pressing of keys does not cause
    the device's processInputProc to be called, as in for example Mouse Keys.
 */
-_X_EXPORT void
+void
 FixKeyState (xEvent *xE, DeviceIntPtr keybd)
 {
     int             key, bit;
@@ -3861,7 +3861,7 @@ FixKeyState (xEvent *xE, DeviceIntPtr keybd)
  * @param mouse The device that caused an event.
  * @param count Number of elements in xE.
  */
-_X_EXPORT void
+void
 #ifdef XKB
 CoreProcessPointerEvent (xEvent *xE, DeviceIntPtr mouse, int count)
 #else
@@ -3968,7 +3968,7 @@ ProcessPointerEvent (xEvent *xE, DeviceIntPtr mouse, int count)
  *
  * Traverses to siblings and parents of the window.
  */
-_X_EXPORT void
+void
 RecalculateDeliverableEvents(pWin)
     WindowPtr pWin;
 {
@@ -4009,7 +4009,7 @@ RecalculateDeliverableEvents(pWin)
  *
  *  \param value must conform to DeleteType
  */
-_X_EXPORT int
+int
 OtherClientGone(pointer value, XID id)
 {
     OtherClientsPtr other, prev;
@@ -4038,7 +4038,7 @@ OtherClientGone(pointer value, XID id)
     return -1; /* make compiler happy */
 }
 
-_X_EXPORT int
+int
 EventSelectForWindow(WindowPtr pWin, ClientPtr client, Mask mask)
 {
     Mask check;
@@ -4122,7 +4122,7 @@ maskSet:
     return Success;
 }
 
-_X_EXPORT int
+int
 EventSuppressForWindow(WindowPtr pWin, ClientPtr client,
                        Mask mask, Bool *checkOptional)
 {
@@ -4477,7 +4477,7 @@ FocusOutEvents(
 	FocusEvent(dev, FocusOut, mode, detail, ancestor);
 }
 
-_X_EXPORT void
+void
 DoFocusEvents(DeviceIntPtr dev, WindowPtr fromWin, WindowPtr toWin, int mode)
 {
     int     out, in;		       /* for holding details for to/from
@@ -4621,7 +4621,7 @@ DoFocusEvents(DeviceIntPtr dev, WindowPtr fromWin, WindowPtr toWin, int mode)
  * @param ctime Specifies the time.
  * @param followOK True if pointer is allowed to follow the keyboard.
  */
-_X_EXPORT int
+int
 SetInputFocus(
     ClientPtr client,
     DeviceIntPtr dev,
@@ -4713,7 +4713,7 @@ SetInputFocus(
  *
  * Sets the input focus for the virtual core keyboard.
  */
-_X_EXPORT int
+int
 ProcSetInputFocus(client)
     ClientPtr client;
 {
@@ -4732,7 +4732,7 @@ ProcSetInputFocus(client)
  * Sends the current input focus for the client's keyboard back to the
  * client.
  */
-_X_EXPORT int
+int
 ProcGetInputFocus(ClientPtr client)
 {
     DeviceIntPtr kbd = PickKeyboard(client);
@@ -4765,7 +4765,7 @@ ProcGetInputFocus(ClientPtr client)
  * Sets an active grab on the client's ClientPointer and returns success
  * status to client.
  */
-_X_EXPORT int
+int
 ProcGrabPointer(ClientPtr client)
 {
     xGrabPointerReply rep;
@@ -4899,7 +4899,7 @@ ProcGrabPointer(ClientPtr client)
  * Changes properties of the grab hold by the client. If the client does not
  * hold an active grab on the device, nothing happens.
  */
-_X_EXPORT int
+int
 ProcChangeActivePointerGrab(ClientPtr client)
 {
     DeviceIntPtr device;
@@ -4954,7 +4954,7 @@ ProcChangeActivePointerGrab(ClientPtr client)
  *
  * Deletes a pointer grab on a device the client has grabbed.
  */
-_X_EXPORT int
+int
 ProcUngrabPointer(ClientPtr client)
 {
     DeviceIntPtr device = PickPointer(client);
@@ -4992,7 +4992,7 @@ ProcUngrabPointer(ClientPtr client)
  *
  * @returns Success or BadValue.
  */
-_X_EXPORT int
+int
 GrabDevice(ClientPtr client, DeviceIntPtr dev,
            unsigned this_mode, unsigned other_mode, Window grabWindow,
            unsigned ownerEvents, Time ctime, Mask mask, CARD8 *status,
@@ -5073,7 +5073,7 @@ GrabDevice(ClientPtr client, DeviceIntPtr dev,
  *
  * Grabs the client's keyboard and returns success status to client.
  */
-_X_EXPORT int
+int
 ProcGrabKeyboard(ClientPtr client)
 {
     xGrabKeyboardReply rep;
@@ -5102,7 +5102,7 @@ ProcGrabKeyboard(ClientPtr client)
  *
  * Deletes a possible grab on the client's keyboard.
  */
-_X_EXPORT int
+int
 ProcUngrabKeyboard(ClientPtr client)
 {
     DeviceIntPtr device = PickKeyboard(client);
@@ -5129,7 +5129,7 @@ ProcUngrabKeyboard(ClientPtr client)
  * Returns the current state and position of the client's ClientPointer to the
  * client.
  */
-_X_EXPORT int
+int
 ProcQueryPointer(ClientPtr client)
 {
     xQueryPointerReply rep;
@@ -5197,7 +5197,7 @@ ProcQueryPointer(ClientPtr client)
  * Initializes the device list and the DIX sprite to sane values. Allocates
  * trace memory used for quick window traversal.
  */
-_X_EXPORT void
+void
 InitEvents(void)
 {
     int i;
@@ -5241,7 +5241,7 @@ InitEvents(void)
         FatalError("[dix] Failed to allocate input event list.\n");
 }
 
-_X_EXPORT void
+void
 CloseDownEvents(void)
 {
     int len;
@@ -5257,7 +5257,7 @@ CloseDownEvents(void)
  *
  * Locates the window to send the event to and forwards the event.
  */
-_X_EXPORT int
+int
 ProcSendEvent(ClientPtr client)
 {
     WindowPtr pWin;
@@ -5354,7 +5354,7 @@ ProcSendEvent(ClientPtr client)
  * Deletes a passive grab for the given key. Works on the
  * client's keyboard.
  */
-_X_EXPORT int
+int
 ProcUngrabKey(ClientPtr client)
 {
     REQUEST(xUngrabKeyReq);
@@ -5403,7 +5403,7 @@ ProcUngrabKey(ClientPtr client)
  * Creates a grab for the client's keyboard and adds it to the list of passive
  * grabs.
  */
-_X_EXPORT int
+int
 ProcGrabKey(ClientPtr client)
 {
     WindowPtr pWin;
@@ -5464,7 +5464,7 @@ ProcGrabKey(ClientPtr client)
  * Creates a grab for the client's ClientPointer and adds it as a passive grab
  * to the list.
  */
-_X_EXPORT int
+int
 ProcGrabButton(ClientPtr client)
 {
     WindowPtr pWin, confineTo;
@@ -5599,7 +5599,7 @@ ProcUngrabButton(ClientPtr client)
  * @param freeResources True if resources associated with the window should be
  * deleted.
  */
-_X_EXPORT void
+void
 DeleteWindowFromAnyEvents(WindowPtr pWin, Bool freeResources)
 {
     WindowPtr		parent;
@@ -5713,7 +5713,7 @@ DeleteWindowFromAnyEvents(WindowPtr pWin, Bool freeResources)
  * there is a grab on the window, the cursor will be re-confined into the
  * window.
  */
-_X_EXPORT void
+void
 CheckCursorConfinement(WindowPtr pWin)
 {
     GrabPtr grab;
@@ -5740,7 +5740,7 @@ CheckCursorConfinement(WindowPtr pWin)
     }
 }
 
-_X_EXPORT Mask
+Mask
 EventMaskForClient(WindowPtr pWin, ClientPtr client)
 {
     OtherClientsPtr	other;
@@ -5758,7 +5758,7 @@ EventMaskForClient(WindowPtr pWin, ClientPtr client)
 /**
  * Server-side protocol handling for RecolorCursor request.
  */
-_X_EXPORT int
+int
 ProcRecolorCursor(ClientPtr client)
 {
     CursorPtr pCursor;
@@ -5814,7 +5814,7 @@ ProcRecolorCursor(ClientPtr client)
  * @param count Number of events.
  * @param events The event list.
  */
-_X_EXPORT void
+void
 WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
 {
 #ifdef PANORAMIX
@@ -5940,7 +5940,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
  * PickPointer()).
  * If a keyboard is needed, the first keyboard paired with the CP is used.
  */
-_X_EXPORT Bool
+Bool
 SetClientPointer(ClientPtr client, ClientPtr setter, DeviceIntPtr device)
 {
     if (!device->isMaster)
@@ -5964,7 +5964,7 @@ SetClientPointer(ClientPtr client, ClientPtr setter, DeviceIntPtr device)
  *  2) A device set as ClientPointer for the given client.
  *  3) The first master device.
  */
-_X_EXPORT DeviceIntPtr
+DeviceIntPtr
 PickPointer(ClientPtr client)
 {
     DeviceIntPtr it = inputInfo.devices;
@@ -6002,7 +6002,7 @@ PickPointer(ClientPtr client)
  * searching the list of devices for the keyboard device that is paired with
  * the client's pointer.
  */
-_X_EXPORT DeviceIntPtr
+DeviceIntPtr
 PickKeyboard(ClientPtr client)
 {
     DeviceIntPtr ptr = PickPointer(client);
@@ -6025,7 +6025,7 @@ PickKeyboard(ClientPtr client)
  * Return true if a core event from the device would interfere and should not
  * be delivered.
  */
-_X_EXPORT Bool
+Bool
 IsInterferingGrab(ClientPtr client, DeviceIntPtr dev, xEvent* event)
 {
     DeviceIntPtr it = inputInfo.devices;
@@ -6072,7 +6072,7 @@ IsInterferingGrab(ClientPtr client, DeviceIntPtr dev, xEvent* event)
  * e.g. if generic event type 2 should be let through for windows with
  * MyExampleMask set, make sure that filters[2] == MyExampleMask.
  */
-_X_EXPORT void
+void
 SetGenericFilter(int extension, Mask* filters)
 {
     generic_filters[extension & 0x7f] = filters;
@@ -6083,7 +6083,7 @@ SetGenericFilter(int extension, Mask* filters)
  * Grab a device for XI events and XGE events.
  * grabmode is used to ungrab a device.
  */
-_X_EXPORT int
+int
 ExtGrabDevice(ClientPtr client,
               DeviceIntPtr dev,
               int device_mode,
@@ -6151,7 +6151,7 @@ ExtGrabDevice(ClientPtr client,
 /*
  * @return Zero if no devices has focus on the window, non-zero otherwise.
  */
-_X_EXPORT int
+int
 FocusSemaphoresIsset(WindowPtr win)
 {
     int set = 0;
diff --git a/dix/extension.c b/dix/extension.c
index a7a8547..289705f 100644
--- a/dix/extension.c
+++ b/dix/extension.c
@@ -72,7 +72,7 @@ int lastEvent = EXTENSION_EVENT_BASE;
 static int lastError = FirstExtensionError;
 static unsigned int NumExtensions = 0;
 
-_X_EXPORT ExtensionEntry *
+ExtensionEntry *
 AddExtension(char *name, int NumEvents, int NumErrors, 
 	     int (*MainProc)(ClientPtr c1), 
 	     int (*SwappedMainProc)(ClientPtr c2), 
@@ -146,7 +146,7 @@ AddExtension(char *name, int NumEvents, int NumErrors,
     return(ext);
 }
 
-_X_EXPORT Bool AddExtensionAlias(char *alias, ExtensionEntry *ext)
+Bool AddExtensionAlias(char *alias, ExtensionEntry *ext)
 {
     char *name;
     char **aliases;
@@ -192,7 +192,7 @@ FindExtension(char *extname, int len)
  * CheckExtension returns the extensions[] entry for the requested
  * extension name.  Maybe this could just return a Bool instead?
  */
-_X_EXPORT ExtensionEntry *
+ExtensionEntry *
 CheckExtension(const char *extname)
 {
     int n;
@@ -207,7 +207,7 @@ CheckExtension(const char *extname)
 /*
  * Added as part of Xace.
  */
-_X_EXPORT ExtensionEntry *
+ExtensionEntry *
 GetExtensionEntry(int major)
 {    
     if (major < EXTENSION_BASE)
@@ -218,13 +218,13 @@ GetExtensionEntry(int major)
     return extensions[major];
 }
 
-_X_EXPORT unsigned short
+unsigned short
 StandardMinorOpcode(ClientPtr client)
 {
     return ((xReq *)client->requestBuffer)->data;
 }
 
-_X_EXPORT unsigned short
+unsigned short
 MinorOpcodeOfRequest(ClientPtr client)
 {
     unsigned char major;
@@ -238,7 +238,7 @@ MinorOpcodeOfRequest(ClientPtr client)
     return (*extensions[major]->MinorOpcode)(client);
 }
 
-_X_EXPORT void
+void
 CloseDownExtensions(void)
 {
     int i,j;
diff --git a/dix/ffs.c b/dix/ffs.c
index 24d3d2d..d0bd3e5 100644
--- a/dix/ffs.c
+++ b/dix/ffs.c
@@ -34,7 +34,7 @@ The Open Group.
 
 #include "dix.h"
 
-_X_EXPORT int
+int
 ffs(int i)
 {
     int j;
diff --git a/dix/gc.c b/dix/gc.c
index b9073d5..09d12b6 100644
--- a/dix/gc.c
+++ b/dix/gc.c
@@ -73,7 +73,7 @@ static Bool CreateDefaultTile(GCPtr pGC);
 
 static unsigned char DefaultDash[2] = {4, 4};
 
-_X_EXPORT void
+void
 ValidateGC(DrawablePtr pDraw, GC *pGC)
 {
     (*pGC->funcs->ValidateGC) (pGC, pGC->stateChanges, pDraw);
@@ -145,7 +145,7 @@ ValidateGC(DrawablePtr pDraw, GC *pGC)
 #define NEXT_PTR(_type, _var) { \
     assert(pUnion); _var = (_type)pUnion->ptr; pUnion++; }
 
-_X_EXPORT int
+int
 dixChangeGC(ClientPtr client, GC *pGC, BITS32 mask, CARD32 *pC32, ChangeGCValPtr pUnion)
 {
     BITS32 	index2;
@@ -527,7 +527,7 @@ dixChangeGC(ClientPtr client, GC *pGC, BITS32 mask, CARD32 *pC32, ChangeGCValPtr
 
 /* Publically defined entry to ChangeGC.  Just calls dixChangeGC and tells
  * it that all of the entries are constants or IDs */
-_X_EXPORT int
+int
 ChangeGC(GC *pGC, BITS32 mask, XID *pval)
 {
     return (dixChangeGC(NullClient, pGC, mask, pval, NULL));
@@ -553,7 +553,7 @@ NOTE:
 	all values sent over the protocol for ChangeGC requests are
 32 bits long
 */
-_X_EXPORT int
+int
 DoChangeGC(GC *pGC, BITS32 mask, XID *pval, int fPointer)
 {
     if (fPointer)
@@ -573,7 +573,7 @@ BUG:
    should check for failure to create default tile
 
 */
-_X_EXPORT GCPtr
+GCPtr
 CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus,
 	 XID gcid, ClientPtr client)
 {
@@ -706,7 +706,7 @@ CreateDefaultTile (GCPtr pGC)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 CopyGC(GC *pgcSrc, GC *pgcDst, BITS32 mask)
 {
     BITS32	index2;
@@ -870,7 +870,7 @@ CopyGC(GC *pgcSrc, GC *pgcDst, BITS32 mask)
  *
  *  \param value  must conform to DeleteType
  */
-_X_EXPORT int
+int
 FreeGC(pointer value, XID gid)
 {
     GCPtr pGC = (GCPtr)value;
@@ -904,7 +904,7 @@ is what fills the default tile.  (maybe this comment should
 go with CreateGC() or ChangeGC().)
 */
 
-_X_EXPORT GCPtr
+GCPtr
 CreateScratchGC(ScreenPtr pScreen, unsigned depth)
 {
     GCPtr pGC;
@@ -956,7 +956,7 @@ CreateScratchGC(ScreenPtr pScreen, unsigned depth)
     return pGC;
 }
 
-_X_EXPORT void
+void
 FreeGCperDepth(int screenNum)
 {
     int i;
@@ -972,7 +972,7 @@ FreeGCperDepth(int screenNum)
 }
 
 
-_X_EXPORT Bool
+Bool
 CreateGCperDepth(int screenNum)
 {
     int i;
@@ -1005,7 +1005,7 @@ CreateGCperDepth(int screenNum)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 CreateDefaultStipple(int screenNum)
 {
     ScreenPtr pScreen;
@@ -1042,14 +1042,14 @@ CreateDefaultStipple(int screenNum)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 FreeDefaultStipple(int screenNum)
 {
     ScreenPtr pScreen = screenInfo.screens[screenNum];
     (*pScreen->DestroyPixmap)(pScreen->PixmapPerDepth[0]);
 }
 
-_X_EXPORT int
+int
 SetDashes(GCPtr pGC, unsigned offset, unsigned ndash, unsigned char *pdash)
 {
     long i;
@@ -1105,7 +1105,7 @@ SetDashes(GCPtr pGC, unsigned offset, unsigned ndash, unsigned char *pdash)
     return Success;
 }
 
-_X_EXPORT int
+int
 VerifyRectOrder(int nrects, xRectangle *prects, int ordering)
 {
     xRectangle	*prectP, *prectN;
@@ -1155,7 +1155,7 @@ VerifyRectOrder(int nrects, xRectangle *prects, int ordering)
     return -1;
 }
 
-_X_EXPORT int
+int
 SetClipRects(GCPtr pGC, int xOrigin, int yOrigin, int nrects, 
              xRectangle *prects, int ordering)
 {
@@ -1192,7 +1192,7 @@ SetClipRects(GCPtr pGC, int xOrigin, int yOrigin, int nrects,
    if we can't, create one out of whole cloth (The Velveteen GC -- if
    you use it often enough it will become real.)
 */
-_X_EXPORT GCPtr
+GCPtr
 GetScratchGC(unsigned depth, ScreenPtr pScreen)
 {
     int i;
@@ -1241,7 +1241,7 @@ GetScratchGC(unsigned depth, ScreenPtr pScreen)
 mark it as available.
    if not, free it for real
 */
-_X_EXPORT void
+void
 FreeScratchGC(GCPtr pGC)
 {
     ScreenPtr pScreen = pGC->pScreen;
diff --git a/dix/getevents.c b/dix/getevents.c
index 88299b0..b77ea46 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -73,10 +73,10 @@
  * DDX. The DDX is expected to call GetEventList() and then pass the list into
  * Get{Pointer|Keyboard}Events.
  */
-_X_EXPORT EventListPtr InputEventList = NULL;
-_X_EXPORT int InputEventListLen = 0;
+EventListPtr InputEventList = NULL;
+int InputEventListLen = 0;
 
-_X_EXPORT int
+int
 GetEventList(EventListPtr* list)
 {
     *list = InputEventList;
@@ -86,7 +86,7 @@ GetEventList(EventListPtr* list)
 /**
  * Pick some arbitrary size for Xi motion history.
  */
-_X_EXPORT int
+int
 GetMotionHistorySize(void)
 {
     return MOTION_HISTORY_SIZE;
@@ -117,7 +117,7 @@ key_autorepeats(DeviceIntPtr pDev, int key_code)
               (1 << (key_code & 7)));
 }
 
-_X_EXPORT void
+void
 CreateClassesChangedEvent(EventList* event,
                           DeviceIntPtr master,
                           DeviceIntPtr slave)
@@ -232,7 +232,7 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev)
 /**
  * Allocate the motion history buffer.
  */
-_X_EXPORT void
+void
 AllocateMotionHistory(DeviceIntPtr pDev)
 {
     int size;
@@ -268,7 +268,7 @@ AllocateMotionHistory(DeviceIntPtr pDev)
  *
  * If core is set, we only generate x/y, in INT16, scaled to screen coords.
  */
-_X_EXPORT int
+int
 GetMotionHistory(DeviceIntPtr pDev, xTimecoord **buff, unsigned long start,
                  unsigned long stop, ScreenPtr pScreen, BOOL core)
 {
@@ -475,7 +475,7 @@ updateMotionHistory(DeviceIntPtr pDev, CARD32 ms, int first_valuator,
  *
  * This MUST be absolutely constant, from init until exit.
  */
-_X_EXPORT int
+int
 GetMaximumEventsNum(void) {
     /* One base event -- device, plus valuator events.
      *  Multiply by two if we're doing non-XKB key repeats. */
@@ -783,7 +783,7 @@ countValuatorEvents(int num_valuators)
  * Convenience wrapper around GetKeyboardValuatorEvents, that takes no
  * valuators.
  */
-_X_EXPORT int
+int
 GetKeyboardEvents(EventList *events, DeviceIntPtr pDev, int type, int key_code) {
     return GetKeyboardValuatorEvents(events, pDev, type, key_code, 0, 0, NULL);
 }
@@ -809,7 +809,7 @@ GetKeyboardEvents(EventList *events, DeviceIntPtr pDev, int type, int key_code)
  * key press will trigger a matching KeyRelease, as well as the
  * KeyPresses.
  */
-_X_EXPORT int
+int
 GetKeyboardValuatorEvents(EventList *events, DeviceIntPtr pDev, int type,
                           int key_code, int first_valuator,
                           int num_valuators, int *valuators) {
@@ -906,7 +906,7 @@ GetKeyboardValuatorEvents(EventList *events, DeviceIntPtr pDev, int type,
  *
  * @param num_events Number of elements in list.
  */
-_X_EXPORT EventListPtr
+EventListPtr
 InitEventList(int num_events)
 {
     EventListPtr events;
@@ -937,7 +937,7 @@ InitEventList(int num_events)
 /**
  * Allocs min_size memory for each event in the list.
  */
-_X_EXPORT void
+void
 SetMinimumEventSize(EventListPtr list, int num_events, int min_size)
 {
     if (!list)
@@ -964,7 +964,7 @@ SetMinimumEventSize(EventListPtr list, int num_events, int min_size)
  * @param list The list to be freed.
  * @param num_events Number of elements in list.
  */
-_X_EXPORT void
+void
 FreeEventList(EventListPtr list, int num_events)
 {
     if (!list)
@@ -993,7 +993,7 @@ FreeEventList(EventListPtr list, int num_events)
  *
  * master->last.valuators[x] for x > 2 is undefined.
  */
-_X_EXPORT int
+int
 GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
                  int flags, int first_valuator, int num_valuators,
                  int *valuators) {
@@ -1076,7 +1076,7 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
  * The DDX is responsible for allocating the event structure in the first
  * place via GetMaximumEventsNum(), and for freeing it.
  */
-_X_EXPORT int
+int
 GetProximityEvents(EventList *events, DeviceIntPtr pDev, int type,
                    int first_valuator, int num_valuators, int *valuators)
 {
@@ -1128,7 +1128,7 @@ GetProximityEvents(EventList *events, DeviceIntPtr pDev, int type,
  * Used in cursor functions, e.g. when cursor confinement changes, and we need
  * to shift the pointer to get it inside the new bounds.
  */
-_X_EXPORT void
+void
 PostSyntheticMotion(DeviceIntPtr pDev,
                     int x,
                     int y,
diff --git a/dix/globals.c b/dix/globals.c
index a60b9e9..2585798 100644
--- a/dix/globals.c
+++ b/dix/globals.c
@@ -61,8 +61,8 @@ SOFTWARE.
 #include "dixstruct.h"
 #include "os.h"
 
-_X_EXPORT ScreenInfo screenInfo;
-_X_EXPORT KeybdCtrl defaultKeyboardControl = {
+ScreenInfo screenInfo;
+KeybdCtrl defaultKeyboardControl = {
 	DEFAULT_KEYBOARD_CLICK,
 	DEFAULT_BELL,
 	DEFAULT_BELL_PITCH,
@@ -72,27 +72,27 @@ _X_EXPORT KeybdCtrl defaultKeyboardControl = {
 	DEFAULT_LEDS,
 	0};
 
-_X_EXPORT PtrCtrl defaultPointerControl = {
+PtrCtrl defaultPointerControl = {
 	DEFAULT_PTR_NUMERATOR,
 	DEFAULT_PTR_DENOMINATOR,
 	DEFAULT_PTR_THRESHOLD,
 	0};
 
-_X_EXPORT ClientPtr  clients[MAXCLIENTS];
-_X_EXPORT ClientPtr  serverClient;
-_X_EXPORT int  currentMaxClients;   /* current size of clients array */
-_X_EXPORT long maxBigRequestSize = MAX_BIG_REQUEST_SIZE;
+ClientPtr  clients[MAXCLIENTS];
+ClientPtr  serverClient;
+int  currentMaxClients;   /* current size of clients array */
+long maxBigRequestSize = MAX_BIG_REQUEST_SIZE;
 
-_X_EXPORT WindowPtr WindowTable[MAXSCREENS];
+WindowPtr WindowTable[MAXSCREENS];
 
-_X_EXPORT unsigned long globalSerialNumber = 0;
-_X_EXPORT unsigned long serverGeneration = 0;
+unsigned long globalSerialNumber = 0;
+unsigned long serverGeneration = 0;
 
 /* these next four are initialized in main.c */
-_X_EXPORT CARD32 ScreenSaverTime;
-_X_EXPORT CARD32 ScreenSaverInterval;
-_X_EXPORT int ScreenSaverBlanking;
-_X_EXPORT int  ScreenSaverAllowExposures;
+CARD32 ScreenSaverTime;
+CARD32 ScreenSaverInterval;
+int ScreenSaverBlanking;
+int  ScreenSaverAllowExposures;
 
 #ifdef DPMSExtension
 # ifndef DEFAULT_STANDBY_TIME
@@ -107,52 +107,52 @@ _X_EXPORT int  ScreenSaverAllowExposures;
 # ifndef DEFAULT_DPMS_ENABLED
 #  define DEFAULT_DPMS_ENABLED TRUE
 # endif
-_X_EXPORT CARD32 defaultDPMSStandbyTime = DEFAULT_STANDBY_TIME;
-_X_EXPORT CARD32 defaultDPMSSuspendTime = DEFAULT_SUSPEND_TIME;
-_X_EXPORT CARD32 defaultDPMSOffTime = DEFAULT_OFF_TIME;
-_X_EXPORT CARD16 DPMSPowerLevel = 0;
-_X_EXPORT Bool defaultDPMSEnabled = DEFAULT_DPMS_ENABLED;
-_X_EXPORT Bool DPMSEnabledSwitch = FALSE;  /* these denote the DPMS command */
-_X_EXPORT Bool DPMSDisabledSwitch = FALSE; /* lind switch states */
-_X_EXPORT Bool DPMSCapableFlag = FALSE;
-_X_EXPORT CARD32 DPMSStandbyTime;
-_X_EXPORT CARD32 DPMSSuspendTime;
-_X_EXPORT CARD32 DPMSOffTime;
-_X_EXPORT Bool DPMSEnabled;
+CARD32 defaultDPMSStandbyTime = DEFAULT_STANDBY_TIME;
+CARD32 defaultDPMSSuspendTime = DEFAULT_SUSPEND_TIME;
+CARD32 defaultDPMSOffTime = DEFAULT_OFF_TIME;
+CARD16 DPMSPowerLevel = 0;
+Bool defaultDPMSEnabled = DEFAULT_DPMS_ENABLED;
+Bool DPMSEnabledSwitch = FALSE;  /* these denote the DPMS command */
+Bool DPMSDisabledSwitch = FALSE; /* lind switch states */
+Bool DPMSCapableFlag = FALSE;
+CARD32 DPMSStandbyTime;
+CARD32 DPMSSuspendTime;
+CARD32 DPMSOffTime;
+Bool DPMSEnabled;
 #endif
 
-_X_EXPORT CARD32 defaultScreenSaverTime = DEFAULT_SCREEN_SAVER_TIME;
-_X_EXPORT CARD32 defaultScreenSaverInterval = DEFAULT_SCREEN_SAVER_INTERVAL;
-_X_EXPORT int  defaultScreenSaverBlanking = DEFAULT_SCREEN_SAVER_BLANKING;
-_X_EXPORT int  defaultScreenSaverAllowExposures = DEFAULT_SCREEN_SAVER_EXPOSURES;
+CARD32 defaultScreenSaverTime = DEFAULT_SCREEN_SAVER_TIME;
+CARD32 defaultScreenSaverInterval = DEFAULT_SCREEN_SAVER_INTERVAL;
+int  defaultScreenSaverBlanking = DEFAULT_SCREEN_SAVER_BLANKING;
+int  defaultScreenSaverAllowExposures = DEFAULT_SCREEN_SAVER_EXPOSURES;
 #ifndef NOLOGOHACK
-_X_EXPORT int  logoScreenSaver = DEFAULT_LOGO_SCREEN_SAVER;
+int  logoScreenSaver = DEFAULT_LOGO_SCREEN_SAVER;
 #endif
 
 #ifdef SCREENSAVER
-_X_EXPORT Bool screenSaverSuspended = FALSE;
+Bool screenSaverSuspended = FALSE;
 #endif
 
-_X_EXPORT char *defaultFontPath = COMPILEDDEFAULTFONTPATH;
-_X_EXPORT char *defaultTextFont = COMPILEDDEFAULTFONT;
-_X_EXPORT char *defaultCursorFont = COMPILEDCURSORFONT;
+char *defaultFontPath = COMPILEDDEFAULTFONTPATH;
+char *defaultTextFont = COMPILEDDEFAULTFONT;
+char *defaultCursorFont = COMPILEDCURSORFONT;
 FontPtr defaultFont;   /* not declared in dix.h to avoid including font.h in
 			every compilation of dix code */
-_X_EXPORT CursorPtr rootCursor;
-_X_EXPORT Bool party_like_its_1989 = FALSE;
-_X_EXPORT Bool whiteRoot = FALSE;
+CursorPtr rootCursor;
+Bool party_like_its_1989 = FALSE;
+Bool whiteRoot = FALSE;
 
-_X_EXPORT int cursorScreenDevPriv[MAXSCREENS];
+int cursorScreenDevPriv[MAXSCREENS];
 
-_X_EXPORT TimeStamp currentTime;
-_X_EXPORT TimeStamp lastDeviceEventTime;
+TimeStamp currentTime;
+TimeStamp lastDeviceEventTime;
 
-_X_EXPORT int defaultColorVisualClass = -1;
-_X_EXPORT int monitorResolution = 0;
+int defaultColorVisualClass = -1;
+int monitorResolution = 0;
 
-_X_EXPORT char *display;
-_X_EXPORT char *ConnectionInfo;
+char *display;
+char *ConnectionInfo;
 
-_X_EXPORT CARD32 TimeOutValue = DEFAULT_TIMEOUT * MILLI_PER_SECOND;
+CARD32 TimeOutValue = DEFAULT_TIMEOUT * MILLI_PER_SECOND;
 
-_X_EXPORT DDXPointRec dixScreenOrigins[MAXSCREENS];
+DDXPointRec dixScreenOrigins[MAXSCREENS];
diff --git a/dix/glyphcurs.c b/dix/glyphcurs.c
index c2799a6..f74b137 100644
--- a/dix/glyphcurs.c
+++ b/dix/glyphcurs.c
@@ -73,7 +73,7 @@ the first one we find.
 cursor metrics.
 */
 
-_X_EXPORT int
+int
 ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, unsigned char **ppbits)
 {
     ScreenPtr pScreen;
@@ -138,7 +138,7 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, unsigned cha
 }
 
 
-_X_EXPORT Bool
+Bool
 CursorMetricsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm)
 {
     CharInfoPtr 	pci;
diff --git a/dix/grabs.c b/dix/grabs.c
index 458fc4c..b372d8f 100644
--- a/dix/grabs.c
+++ b/dix/grabs.c
@@ -67,7 +67,7 @@ SOFTWARE.
 #define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
 #define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
 
-_X_EXPORT GrabPtr
+GrabPtr
 CreateGrab(
     int client,
     DeviceIntPtr device,
@@ -128,7 +128,7 @@ FreeGrab(GrabPtr pGrab)
     xfree(pGrab);
 }
 
-_X_EXPORT int
+int
 DeletePassiveGrab(pointer value, XID id)
 {
     GrabPtr g, prev;
@@ -254,7 +254,7 @@ GrabSupersedesSecond(GrabPtr pFirstGrab, GrabPtr pSecondGrab)
  * ignored.
  * @return TRUE if the grabs match or FALSE otherwise.
  */
-_X_EXPORT Bool
+Bool
 GrabMatchesSecond(GrabPtr pFirstGrab, GrabPtr pSecondGrab, Bool ignoreDevice)
 {
     if (!ignoreDevice &&
@@ -324,7 +324,7 @@ GrabsAreIdentical(GrabPtr pFirstGrab, GrabPtr pSecondGrab)
  * 
  * @return Success or X error code on failure.
  */
-_X_EXPORT int
+int
 AddPassiveGrabToList(ClientPtr client, GrabPtr pGrab)
 {
     GrabPtr grab;
@@ -376,7 +376,7 @@ AddPassiveGrabToList(ClientPtr client, GrabPtr pGrab)
  * if any allocation fails
  */
 
-_X_EXPORT Bool
+Bool
 DeletePassiveGrabFromList(GrabPtr pMinuendGrab)
 {
     GrabPtr grab;
diff --git a/dix/initatoms.c b/dix/initatoms.c
index bd4249d..de101bd 100644
--- a/dix/initatoms.c
+++ b/dix/initatoms.c
@@ -11,7 +11,7 @@
 #include <X11/Xatom.h>
 #include "misc.h"
 #include "dix.h"
-_X_EXPORT void MakePredeclaredAtoms(void)
+void MakePredeclaredAtoms(void)
 {
     if (MakeAtom("PRIMARY", 7, 1) != XA_PRIMARY) AtomError();
     if (MakeAtom("SECONDARY", 9, 1) != XA_SECONDARY) AtomError();
diff --git a/dix/main.c b/dix/main.c
index 1b7a991..3545991 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -130,11 +130,11 @@ static
 #endif
 Bool CreateConnectionBlock(void);
 
-_X_EXPORT PaddingInfo PixmapWidthPaddingInfo[33];
+PaddingInfo PixmapWidthPaddingInfo[33];
 
 int connBlockScreenStart;
 
-_X_EXPORT void
+void
 NotImplemented(xEvent *from, xEvent *to)
 {
     FatalError("Not implemented");
@@ -144,7 +144,7 @@ NotImplemented(xEvent *from, xEvent *to)
  * Dummy entry for ReplySwapVector[]
  */
 
-_X_EXPORT void
+void
 ReplyNotSwappd(
 	ClientPtr pClient ,
 	int size ,
@@ -446,13 +446,13 @@ int main(int argc, char *argv[], char *envp[])
 static int  VendorRelease = VENDOR_RELEASE;
 static char *VendorString = VENDOR_NAME;
 
-_X_EXPORT void
+void
 SetVendorRelease(int release)
 {
     VendorRelease = release;
 }
 
-_X_EXPORT void
+void
 SetVendorString(char *string)
 {
     VendorString = string;
@@ -609,7 +609,7 @@ with its screen number, a pointer to its ScreenRec, argc, and argv.
 
 */
 
-_X_EXPORT int
+int
 AddScreen(
     Bool	(* pfnInit)(
 	int /*index*/,
diff --git a/dix/pixmap.c b/dix/pixmap.c
index 7ab8681..d72a3d0 100644
--- a/dix/pixmap.c
+++ b/dix/pixmap.c
@@ -49,7 +49,7 @@ from The Open Group.
 
 
 /* callable by ddx */
-_X_EXPORT PixmapPtr
+PixmapPtr
 GetScratchPixmapHeader(ScreenPtr pScreen, int width, int height, int depth, 
                        int bitsPerPixel, int devKind, pointer pPixData)
 {
@@ -72,7 +72,7 @@ GetScratchPixmapHeader(ScreenPtr pScreen, int width, int height, int depth,
 
 
 /* callable by ddx */
-_X_EXPORT void
+void
 FreeScratchPixmapHeader(PixmapPtr pPixmap)
 {
     if (pPixmap)
@@ -88,7 +88,7 @@ FreeScratchPixmapHeader(PixmapPtr pPixmap)
 }
 
 
-_X_EXPORT Bool
+Bool
 CreateScratchPixmapsForScreen(int scrnum)
 {
     /* let it be created on first use */
@@ -97,7 +97,7 @@ CreateScratchPixmapsForScreen(int scrnum)
 }
 
 
-_X_EXPORT void
+void
 FreeScratchPixmapsForScreen(int scrnum)
 {
     FreeScratchPixmapHeader(screenInfo.screens[scrnum]->pScratchPixmap);
@@ -105,7 +105,7 @@ FreeScratchPixmapsForScreen(int scrnum)
 
 
 /* callable by ddx */
-_X_EXPORT PixmapPtr
+PixmapPtr
 AllocatePixmap(ScreenPtr pScreen, int pixDataSize)
 {
     PixmapPtr pPixmap;
diff --git a/dix/privates.c b/dix/privates.c
index 0e8c9ef..5eece69 100644
--- a/dix/privates.c
+++ b/dix/privates.c
@@ -84,7 +84,7 @@ privateExists(PrivateRec **privates, const DevPrivateKey key)
 /*
  * Request pre-allocated space.
  */
-_X_EXPORT int
+int
 dixRequestPrivate(const DevPrivateKey key, unsigned size)
 {
     PrivateDescRec *item = findItem(key);
@@ -98,7 +98,7 @@ dixRequestPrivate(const DevPrivateKey key, unsigned size)
 /*
  * Allocate a private and attach it to an existing object.
  */
-_X_EXPORT pointer *
+pointer *
 dixAllocatePrivate(PrivateRec **privates, const DevPrivateKey key)
 {
     PrivateDescRec *item = findItem(key);
@@ -154,7 +154,7 @@ dixAllocatePrivate(PrivateRec **privates, const DevPrivateKey key)
 /*
  * Look up a private pointer.
  */
-_X_EXPORT pointer
+pointer
 dixLookupPrivate(PrivateRec **privates, const DevPrivateKey key)
 {
     pointer *ptr;
@@ -169,7 +169,7 @@ dixLookupPrivate(PrivateRec **privates, const DevPrivateKey key)
 /*
  * Look up the address of a private pointer.
  */
-_X_EXPORT pointer *
+pointer *
 dixLookupPrivateAddr(PrivateRec **privates, const DevPrivateKey key)
 {
     if (privateExists(privates, key))
@@ -181,7 +181,7 @@ dixLookupPrivateAddr(PrivateRec **privates, const DevPrivateKey key)
 /*
  * Set a private pointer.
  */
-_X_EXPORT int
+int
 dixSetPrivate(PrivateRec **privates, const DevPrivateKey key, pointer val)
 {
  top:
@@ -198,7 +198,7 @@ dixSetPrivate(PrivateRec **privates, const DevPrivateKey key, pointer val)
 /*
  * Called to free privates at object deletion time.
  */
-_X_EXPORT void
+void
 dixFreePrivates(PrivateRec *privates)
 {
     int i;
@@ -223,7 +223,7 @@ dixFreePrivates(PrivateRec *privates)
 /*
  * Callback registration
  */
-_X_EXPORT int
+int
 dixRegisterPrivateInitFunc(const DevPrivateKey key,
 			   CallbackProcPtr callback, pointer data)
 {
@@ -234,7 +234,7 @@ dixRegisterPrivateInitFunc(const DevPrivateKey key,
     return AddCallback(&item->initfuncs, callback, data);
 }
 
-_X_EXPORT int
+int
 dixRegisterPrivateDeleteFunc(const DevPrivateKey key,
 			     CallbackProcPtr callback, pointer data)
 {
@@ -265,7 +265,7 @@ static int offsetsSize = 0;
 /*
  * Specify where the devPrivates field is located in a structure type
  */
-_X_EXPORT int
+int
 dixRegisterPrivateOffset(RESTYPE type, int offset)
 {
     type = type & TypeMask;
@@ -287,7 +287,7 @@ dixRegisterPrivateOffset(RESTYPE type, int offset)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 dixLookupPrivateOffset(RESTYPE type)
 {
     type = type & TypeMask;
@@ -295,7 +295,7 @@ dixLookupPrivateOffset(RESTYPE type)
     return offsets[type];
 }
 
-_X_EXPORT int
+int
 dixResetPrivates(void)
 {
     int i;
diff --git a/dix/property.c b/dix/property.c
index 150ae76..c653318 100644
--- a/dix/property.c
+++ b/dix/property.c
@@ -90,7 +90,7 @@ PrintPropertys(WindowPtr pWin)
 }
 #endif
 
-_X_EXPORT int
+int
 dixLookupProperty(PropertyPtr *result, WindowPtr pWin, Atom propertyName,
 		  ClientPtr client, Mask access_mode)
 {
@@ -248,7 +248,7 @@ ProcChangeProperty(ClientPtr client)
 	return client->noClientException;
 }
 
-_X_EXPORT int
+int
 dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
 			Atom type, int format, int mode, unsigned long len,
 			pointer value, Bool sendevent)
@@ -361,7 +361,7 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
     return(Success);
 }
 
-_X_EXPORT int
+int
 ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, 
 		     int mode, unsigned long len, pointer value, 
 		     Bool sendevent)
@@ -370,7 +370,7 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format,
 				   mode, len, value, sendevent);
 }
 
-_X_EXPORT int
+int
 DeleteProperty(ClientPtr client, WindowPtr pWin, Atom propName)
 {
     PropertyPtr pProp, prevProp;
@@ -401,7 +401,7 @@ DeleteProperty(ClientPtr client, WindowPtr pWin, Atom propName)
     return rc;
 }
 
-_X_EXPORT void
+void
 DeleteAllWindowProperties(WindowPtr pWin)
 {
     PropertyPtr pProp, pNextProp;
diff --git a/dix/ptrveloc.c b/dix/ptrveloc.c
index 9ae2b72..a1f6e7a 100644
--- a/dix/ptrveloc.c
+++ b/dix/ptrveloc.c
@@ -93,7 +93,7 @@ SimpleSmoothProfile(DeviceVelocityPtr pVel, float velocity,
 /**
  * Init struct so it should match the average case
  */
-_X_EXPORT void
+void
 InitVelocityData(DeviceVelocityPtr s)
 {
     memset(s, 0, sizeof(DeviceVelocityRec));
@@ -123,7 +123,7 @@ FreeVelocityData(DeviceVelocityPtr s){
 /*
  *  dix uninit helper, called through scheme
  */
-_X_EXPORT void
+void
 AccelerationDefaultCleanup(DeviceIntPtr pDev)
 {
     /*sanity check*/
@@ -149,7 +149,7 @@ and is being coupled to account for fast-changing input, or you have 'one for
 every situation'. You might want to have tighter coupling then, e.g. 0.1.
 In the filter stats, you can see if a reasonable filter useage emerges.
 */
-_X_EXPORT void
+void
 InitFilterChain(DeviceVelocityPtr s, float rdecay, float progression, int stages, int lutsize)
 {
     int fn;
@@ -683,7 +683,7 @@ LinearProfile(
  * would be a good place, since FreeVelocityData() also calls this with -1.
  * returns FALSE (0) if profile number is unavailable.
  */
-_X_EXPORT int
+int
 SetAccelerationProfile(
     DeviceVelocityPtr s,
     int profile_num)
@@ -746,7 +746,7 @@ SetAccelerationProfile(
  * it should do init/uninit in the driver (ie. with DEVICE_INIT and friends).
  * Users may override or choose it.
  */
-_X_EXPORT void
+void
 SetDeviceSpecificAccelerationProfile(
         DeviceVelocityPtr s,
         PointerAccelerationProfileFunc profile)
@@ -759,7 +759,7 @@ SetDeviceSpecificAccelerationProfile(
  * Use this function to obtain a DeviceVelocityPtr for a device. Will return NULL if
  * the predictable acceleration scheme is not in effect.
  */
-_X_EXPORT DeviceVelocityPtr
+DeviceVelocityPtr
 GetDevicePredictableAccelData(
 	DeviceIntPtr pDev)
 {
@@ -787,7 +787,7 @@ GetDevicePredictableAccelData(
  * This version employs a velocity approximation algorithm to
  * enable fine-grained predictable acceleration profiles.
  */
-_X_EXPORT void
+void
 acceleratePointerPredictable(
     DeviceIntPtr pDev,
     int first_valuator,
@@ -863,7 +863,7 @@ acceleratePointerPredictable(
  * Originally a part of xf86PostMotionEvent; modifies valuators
  * in-place. Retained mostly for embedded scenarios.
  */
-_X_EXPORT void
+void
 acceleratePointerLightweight(
     DeviceIntPtr pDev,
     int first_valuator,
diff --git a/dix/registry.c b/dix/registry.c
index a96ef77..a519cff 100644
--- a/dix/registry.c
+++ b/dix/registry.c
@@ -114,7 +114,7 @@ RegisterErrorName(unsigned error, char *name) {
     errors[error] = name;
 }
 
-_X_EXPORT void
+void
 RegisterExtensionNames(ExtensionEntry *extEntry)
 {
     char buf[256], *lineobj, *ptr;
@@ -196,7 +196,7 @@ RegisterExtensionNames(ExtensionEntry *extEntry)
  * Registration functions
  */
 
-_X_EXPORT void
+void
 RegisterResourceName(RESTYPE resource, char *name)
 {
     resource &= TypeMask;
@@ -214,7 +214,7 @@ RegisterResourceName(RESTYPE resource, char *name)
  * Lookup functions
  */
 
-_X_EXPORT const char *
+const char *
 LookupRequestName(int major, int minor)
 {
     if (major >= nmajor)
@@ -225,7 +225,7 @@ LookupRequestName(int major, int minor)
     return requests[major][minor] ? requests[major][minor] : XREGISTRY_UNKNOWN;
 }
 
-_X_EXPORT const char *
+const char *
 LookupMajorName(int major)
 {
     if (major < 128) {
@@ -244,7 +244,7 @@ LookupMajorName(int major)
     }
 }
 
-_X_EXPORT const char *
+const char *
 LookupEventName(int event)
 {
     event &= 127;
@@ -254,7 +254,7 @@ LookupEventName(int event)
     return events[event] ? events[event] : XREGISTRY_UNKNOWN;
 }
 
-_X_EXPORT const char *
+const char *
 LookupErrorName(int error)
 {
     if (error >= nerror)
@@ -263,7 +263,7 @@ LookupErrorName(int error)
     return errors[error] ? errors[error] : XREGISTRY_UNKNOWN;
 }
 
-_X_EXPORT const char *
+const char *
 LookupResourceName(RESTYPE resource)
 {
     resource &= TypeMask;
@@ -276,7 +276,7 @@ LookupResourceName(RESTYPE resource)
 /*
  * Setup and teardown
  */
-_X_EXPORT void
+void
 dixResetRegistry(void)
 {
     ExtensionEntry extEntry;
diff --git a/dix/resource.c b/dix/resource.c
index 5435afe..c05d681 100644
--- a/dix/resource.c
+++ b/dix/resource.c
@@ -186,13 +186,13 @@ typedef struct _ClientResource {
     XID		expectID;
 } ClientResourceRec;
 
-_X_EXPORT RESTYPE lastResourceType;
+RESTYPE lastResourceType;
 static RESTYPE lastResourceClass;
-_X_EXPORT RESTYPE TypeMask;
+RESTYPE TypeMask;
 
 static DeleteType *DeleteFuncs = (DeleteType *)NULL;
 
-_X_EXPORT CallbackListPtr ResourceStateCallback;
+CallbackListPtr ResourceStateCallback;
 
 static _X_INLINE void
 CallResourceStateCallback(ResourceState state, ResourceRec *res)
@@ -203,7 +203,7 @@ CallResourceStateCallback(ResourceState state, ResourceRec *res)
     }
 }
 
-_X_EXPORT RESTYPE
+RESTYPE
 CreateNewResourceType(DeleteType deleteFunc)
 {
     RESTYPE next = lastResourceType + 1;
@@ -224,7 +224,7 @@ CreateNewResourceType(DeleteType deleteFunc)
     return next;
 }
 
-_X_EXPORT RESTYPE
+RESTYPE
 CreateNewResourceClass(void)
 {
     RESTYPE next = lastResourceClass >> 1;
@@ -244,7 +244,7 @@ static ClientResourceRec clientTable[MAXCLIENTS];
  *    in resource table
  *****************/
 
-_X_EXPORT Bool
+Bool
 InitClientResources(ClientPtr client)
 {
     int i, j;
@@ -339,7 +339,7 @@ AvailableID(
     return 0;
 }
 
-_X_EXPORT void
+void
 GetXIDRange(int client, Bool server, XID *minp, XID *maxp)
 {
     XID id, maxid;
@@ -390,7 +390,7 @@ GetXIDRange(int client, Bool server, XID *minp, XID *maxp)
  *  invented, but this will be used so rarely that this should suffice.
  */
 
-_X_EXPORT unsigned int
+unsigned int
 GetXIDList(ClientPtr pClient, unsigned count, XID *pids)
 {
     unsigned int found = 0;
@@ -417,7 +417,7 @@ GetXIDList(ClientPtr pClient, unsigned count, XID *pids)
  * over-running another client.
  */
 
-_X_EXPORT XID
+XID
 FakeClientID(int client)
 {
     XID id, maxid;
@@ -438,7 +438,7 @@ FakeClientID(int client)
     return id;
 }
 
-_X_EXPORT Bool
+Bool
 AddResource(XID id, RESTYPE type, pointer value)
 {
     int client;
@@ -527,7 +527,7 @@ RebuildTable(int client)
     clientTable[client].resources = resources;
 }
 
-_X_EXPORT void
+void
 FreeResource(XID id, RESTYPE skipDeleteFuncType)
 {
     int		cid;
@@ -570,7 +570,7 @@ FreeResource(XID id, RESTYPE skipDeleteFuncType)
 }
 
 
-_X_EXPORT void
+void
 FreeResourceByType(XID id, RESTYPE type, Bool skipFree)
 {
     int		cid;
@@ -610,7 +610,7 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree)
  * data
  */
 
-_X_EXPORT Bool
+Bool
 ChangeResourceValue (XID id, RESTYPE rtype, pointer value)
 {
     int    cid;
@@ -636,7 +636,7 @@ ChangeResourceValue (XID id, RESTYPE rtype, pointer value)
  * add and delete an equal number of resources!
  */
 
-_X_EXPORT void
+void
 FindClientResourcesByType(
     ClientPtr client,
     RESTYPE type,
@@ -668,7 +668,7 @@ FindClientResourcesByType(
     }
 }
 
-_X_EXPORT void
+void
 FindAllClientResources(
     ClientPtr client,
     FindAllRes func,
@@ -698,7 +698,7 @@ FindAllClientResources(
 }
 
 
-_X_EXPORT pointer
+pointer
 LookupClientResourceComplex(
     ClientPtr client,
     RESTYPE type,
@@ -725,7 +725,7 @@ LookupClientResourceComplex(
 }
 
 
-_X_EXPORT void
+void
 FreeClientNeverRetainResources(ClientPtr client)
 {
     ResourcePtr *resources;
@@ -762,7 +762,7 @@ FreeClientNeverRetainResources(ClientPtr client)
     }
 }
 
-_X_EXPORT void
+void
 FreeClientResources(ClientPtr client)
 {
     ResourcePtr *resources;
@@ -813,7 +813,7 @@ FreeClientResources(ClientPtr client)
     clientTable[client->index].buckets = 0;
 }
 
-_X_EXPORT void
+void
 FreeAllResources(void)
 {
     int	i;
@@ -825,7 +825,7 @@ FreeAllResources(void)
     }
 }
 
-_X_EXPORT Bool
+Bool
 LegalNewID(XID id, ClientPtr client)
 {
 
@@ -845,7 +845,7 @@ LegalNewID(XID id, ClientPtr client)
 	     !LookupIDByClass(id, RC_ANY)));
 }
 
-_X_EXPORT int
+int
 dixLookupResource(pointer *result, XID id, RESTYPE rtype,
 		  ClientPtr client, Mask mode)
 {
diff --git a/dix/selection.c b/dix/selection.c
index b55826e..1fd0d21 100644
--- a/dix/selection.c
+++ b/dix/selection.c
@@ -65,10 +65,10 @@ SOFTWARE.
  *
  *****************************************************************/
 
-_X_EXPORT Selection *CurrentSelections;
-_X_EXPORT CallbackListPtr SelectionCallback;
+Selection *CurrentSelections;
+CallbackListPtr SelectionCallback;
 
-_X_EXPORT int
+int
 dixLookupSelection(Selection **result, Atom selectionName,
 		   ClientPtr client, Mask access_mode)
 {
@@ -86,7 +86,7 @@ dixLookupSelection(Selection **result, Atom selectionName,
     return rc;
 }
 
-_X_EXPORT void
+void
 InitSelections(void)
 {
     Selection *pSel, *pNextSel;
@@ -110,7 +110,7 @@ CallSelectionCallback(Selection *pSel, ClientPtr client,
     CallCallbacks(&SelectionCallback, &info);
 }
 
-_X_EXPORT void
+void
 DeleteWindowFromAnySelections(WindowPtr pWin)
 {
     Selection *pSel;
@@ -125,7 +125,7 @@ DeleteWindowFromAnySelections(WindowPtr pWin)
 	}
 }
 
-_X_EXPORT void
+void
 DeleteClientFromAnySelections(ClientPtr client)
 {
     Selection *pSel;
diff --git a/dix/swaprep.c b/dix/swaprep.c
index c850767..e7a4271 100644
--- a/dix/swaprep.c
+++ b/dix/swaprep.c
@@ -72,7 +72,7 @@ static void SwapFont(xQueryFontReply *pr, Bool hasGlyphs);
  *
  *  \param size size in bytes
  */
-_X_EXPORT void
+void
 Swap32Write(ClientPtr pClient, int size, CARD32 *pbuf)
 {
     int i;
@@ -92,7 +92,7 @@ Swap32Write(ClientPtr pClient, int size, CARD32 *pbuf)
  *
  * \param size size in bytes
  */
-_X_EXPORT void
+void
 CopySwap32Write(ClientPtr pClient, int size, CARD32 *pbuf)
 {
     int bufsize = size;
@@ -140,7 +140,7 @@ CopySwap32Write(ClientPtr pClient, int size, CARD32 *pbuf)
  *
  * \param size size in bytes
  */
-_X_EXPORT void
+void
 CopySwap16Write(ClientPtr pClient, int size, short *pbuf)
 {
     int bufsize = size;
@@ -186,7 +186,7 @@ CopySwap16Write(ClientPtr pClient, int size, short *pbuf)
 
 
 /* Extra-small reply */
-_X_EXPORT void
+void
 SGenericReply(ClientPtr pClient, int size, xGenericReply *pRep)
 {
     char n;
@@ -196,7 +196,7 @@ SGenericReply(ClientPtr pClient, int size, xGenericReply *pRep)
 }
 
 /* Extra-large reply */
-_X_EXPORT void
+void
 SGetWindowAttributesReply(ClientPtr pClient, int size,
                           xGetWindowAttributesReply *pRep)
 {
@@ -215,7 +215,7 @@ SGetWindowAttributesReply(ClientPtr pClient, int size,
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetGeometryReply(ClientPtr pClient, int size, xGetGeometryReply *pRep)
 {
     char n;
@@ -230,7 +230,7 @@ SGetGeometryReply(ClientPtr pClient, int size, xGetGeometryReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SQueryTreeReply(ClientPtr pClient, int size, xQueryTreeReply *pRep)
 {
     char n;
@@ -243,7 +243,7 @@ SQueryTreeReply(ClientPtr pClient, int size, xQueryTreeReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SInternAtomReply(ClientPtr pClient, int size, xInternAtomReply *pRep)
 {
     char n;
@@ -253,7 +253,7 @@ SInternAtomReply(ClientPtr pClient, int size, xInternAtomReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetAtomNameReply(ClientPtr pClient, int size, xGetAtomNameReply *pRep)
 {
     char n;
@@ -265,7 +265,7 @@ SGetAtomNameReply(ClientPtr pClient, int size, xGetAtomNameReply *pRep)
 }
 
 
-_X_EXPORT void
+void
 SGetPropertyReply(ClientPtr pClient, int size, xGetPropertyReply *pRep)
 {
     char n;
@@ -278,7 +278,7 @@ SGetPropertyReply(ClientPtr pClient, int size, xGetPropertyReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SListPropertiesReply(ClientPtr pClient, int size, xListPropertiesReply *pRep)
 {
     char n;
@@ -289,7 +289,7 @@ SListPropertiesReply(ClientPtr pClient, int size, xListPropertiesReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetSelectionOwnerReply(ClientPtr pClient, int size,
                         xGetSelectionOwnerReply *pRep)
 {
@@ -301,7 +301,7 @@ SGetSelectionOwnerReply(ClientPtr pClient, int size,
 }
 
 
-_X_EXPORT void
+void
 SQueryPointerReply(ClientPtr pClient, int size, xQueryPointerReply *pRep)
 {
     char n;
@@ -327,7 +327,7 @@ SwapTimecoord(xTimecoord* pCoord)
     swaps(&pCoord->y, n);
 }
 
-_X_EXPORT void
+void
 SwapTimeCoordWrite(ClientPtr pClient, int size, xTimecoord *pRep)
 {
     int	i, n;
@@ -343,7 +343,7 @@ SwapTimeCoordWrite(ClientPtr pClient, int size, xTimecoord *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 
 }
-_X_EXPORT void
+void
 SGetMotionEventsReply(ClientPtr pClient, int size, xGetMotionEventsReply *pRep)
 {
     char n;
@@ -354,7 +354,7 @@ SGetMotionEventsReply(ClientPtr pClient, int size, xGetMotionEventsReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 STranslateCoordsReply(ClientPtr pClient, int size, xTranslateCoordsReply *pRep)
 {
     char n;
@@ -366,7 +366,7 @@ STranslateCoordsReply(ClientPtr pClient, int size, xTranslateCoordsReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetInputFocusReply(ClientPtr pClient, int size, xGetInputFocusReply *pRep)
 {
     char n;
@@ -377,7 +377,7 @@ SGetInputFocusReply(ClientPtr pClient, int size, xGetInputFocusReply *pRep)
 }
 
 /* extra long reply */
-_X_EXPORT void
+void
 SQueryKeymapReply(ClientPtr pClient, int size, xQueryKeymapReply *pRep)
 {
     char n;
@@ -448,14 +448,14 @@ SwapFont(xQueryFontReply *pr, Bool hasGlyphs)
     }
 }
 
-_X_EXPORT void
+void
 SQueryFontReply(ClientPtr pClient, int size, xQueryFontReply *pRep)
 {
     SwapFont(pRep, TRUE);
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SQueryTextExtentsReply(ClientPtr pClient, int size, xQueryTextExtentsReply *pRep)
 {
     char n;
@@ -471,7 +471,7 @@ SQueryTextExtentsReply(ClientPtr pClient, int size, xQueryTextExtentsReply *pRep
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SListFontsReply(ClientPtr pClient, int size, xListFontsReply *pRep)
 {
     char n;
@@ -482,7 +482,7 @@ SListFontsReply(ClientPtr pClient, int size, xListFontsReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SListFontsWithInfoReply(ClientPtr pClient, int size,
                         xListFontsWithInfoReply *pRep)
 {
@@ -490,7 +490,7 @@ SListFontsWithInfoReply(ClientPtr pClient, int size,
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetFontPathReply(ClientPtr pClient, int size, xGetFontPathReply *pRep)
 {
     char n;
@@ -501,7 +501,7 @@ SGetFontPathReply(ClientPtr pClient, int size, xGetFontPathReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetImageReply(ClientPtr pClient, int size, xGetImageReply *pRep)
 {
     char n;
@@ -513,7 +513,7 @@ SGetImageReply(ClientPtr pClient, int size, xGetImageReply *pRep)
     /* Fortunately, image doesn't need swapping */
 }
 
-_X_EXPORT void
+void
 SListInstalledColormapsReply(ClientPtr pClient, int size,
                              xListInstalledColormapsReply *pRep)
 {
@@ -525,7 +525,7 @@ SListInstalledColormapsReply(ClientPtr pClient, int size,
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SAllocColorReply(pClient, size, pRep)
     ClientPtr		pClient;
     int			size;
@@ -541,7 +541,7 @@ SAllocColorReply(pClient, size, pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SAllocNamedColorReply(ClientPtr pClient, int size, xAllocNamedColorReply *pRep)
 {
     char n;
@@ -557,7 +557,7 @@ SAllocNamedColorReply(ClientPtr pClient, int size, xAllocNamedColorReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SAllocColorCellsReply(ClientPtr pClient, int size, xAllocColorCellsReply *pRep)
 {
     char n;
@@ -570,7 +570,7 @@ SAllocColorCellsReply(ClientPtr pClient, int size, xAllocColorCellsReply *pRep)
 }
 
 
-_X_EXPORT void
+void
 SAllocColorPlanesReply(ClientPtr pClient, int size, xAllocColorPlanesReply *pRep)
 {
     char n;
@@ -594,7 +594,7 @@ SwapRGB(xrgb *prgb)
     swaps(&prgb->blue, n);
 }
 
-_X_EXPORT void
+void
 SQColorsExtend(ClientPtr pClient, int size, xrgb *prgb)
 {
     int		i, n;
@@ -610,7 +610,7 @@ SQColorsExtend(ClientPtr pClient, int size, xrgb *prgb)
     (void)WriteToClient(pClient, size, (char *) prgb);
 }
 
-_X_EXPORT void
+void
 SQueryColorsReply(ClientPtr pClient, int size, xQueryColorsReply* pRep)
 {
     char n;
@@ -621,7 +621,7 @@ SQueryColorsReply(ClientPtr pClient, int size, xQueryColorsReply* pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SLookupColorReply(ClientPtr pClient, int size, xLookupColorReply *pRep)
 {
     char n;
@@ -636,7 +636,7 @@ SLookupColorReply(ClientPtr pClient, int size, xLookupColorReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SQueryBestSizeReply(ClientPtr pClient, int size, xQueryBestSizeReply *pRep)
 {
     char n;
@@ -647,7 +647,7 @@ SQueryBestSizeReply(ClientPtr pClient, int size, xQueryBestSizeReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SListExtensionsReply(ClientPtr pClient, int size, xListExtensionsReply *pRep)
 {
     char n;
@@ -657,7 +657,7 @@ SListExtensionsReply(ClientPtr pClient, int size, xListExtensionsReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetKeyboardMappingReply(ClientPtr pClient, int size,
                          xGetKeyboardMappingReply *pRep)
 {
@@ -668,7 +668,7 @@ SGetKeyboardMappingReply(ClientPtr pClient, int size,
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetPointerMappingReply(ClientPtr pClient, int size,
                         xGetPointerMappingReply *pRep)
 {
@@ -679,7 +679,7 @@ SGetPointerMappingReply(ClientPtr pClient, int size,
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetModifierMappingReply(ClientPtr pClient, int size,
                          xGetModifierMappingReply *pRep)
 {
@@ -690,7 +690,7 @@ SGetModifierMappingReply(ClientPtr pClient, int size,
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetKeyboardControlReply(ClientPtr pClient, int size, xGetKeyboardControlReply *pRep)
 {
     char n;
@@ -703,7 +703,7 @@ SGetKeyboardControlReply(ClientPtr pClient, int size, xGetKeyboardControlReply *
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetPointerControlReply(ClientPtr pClient, int size, xGetPointerControlReply *pRep)
 {
     char n;
@@ -715,7 +715,7 @@ SGetPointerControlReply(ClientPtr pClient, int size, xGetPointerControlReply *pR
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SGetScreenSaverReply(ClientPtr pClient, int size, xGetScreenSaverReply *pRep)
 {
     char n;
@@ -726,7 +726,7 @@ SGetScreenSaverReply(ClientPtr pClient, int size, xGetScreenSaverReply *pRep)
     (void)WriteToClient(pClient, size, (char *) pRep);
 }
 
-_X_EXPORT void
+void
 SLHostsExtend(ClientPtr pClient, int size, char *buf)
 {
     char *bufT = buf;
@@ -741,7 +741,7 @@ SLHostsExtend(ClientPtr pClient, int size, char *buf)
     (void)WriteToClient (pClient, size, buf);
 }
 
-_X_EXPORT void
+void
 SListHostsReply(ClientPtr pClient, int size, xListHostsReply *pRep)
 {
     char n;
@@ -754,7 +754,7 @@ SListHostsReply(ClientPtr pClient, int size, xListHostsReply *pRep)
 
 
 
-_X_EXPORT void
+void
 SErrorEvent(xError *from, xError *to)
 {
     to->type = X_Error;
@@ -765,7 +765,7 @@ SErrorEvent(xError *from, xError *to)
     to->majorCode = from->majorCode;
 }
 
-_X_EXPORT void
+void
 SKeyButtonPtrEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -793,7 +793,7 @@ SKeyButtonPtrEvent(xEvent *from, xEvent *to)
 	from->u.keyButtonPointer.sameScreen;
 }
 
-_X_EXPORT void
+void
 SEnterLeaveEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -812,7 +812,7 @@ SEnterLeaveEvent(xEvent *from, xEvent *to)
     to->u.enterLeave.flags = from->u.enterLeave.flags;
 }
 
-_X_EXPORT void
+void
 SFocusEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -822,7 +822,7 @@ SFocusEvent(xEvent *from, xEvent *to)
     to->u.focus.mode = from->u.focus.mode;
 }
 
-_X_EXPORT void
+void
 SExposeEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -835,7 +835,7 @@ SExposeEvent(xEvent *from, xEvent *to)
     cpswaps(from->u.expose.count, to->u.expose.count);
 }
 
-_X_EXPORT void
+void
 SGraphicsExposureEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -858,7 +858,7 @@ SGraphicsExposureEvent(xEvent *from, xEvent *to)
     	from->u.graphicsExposure.majorEvent;
 }
 
-_X_EXPORT void
+void
 SNoExposureEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -868,7 +868,7 @@ SNoExposureEvent(xEvent *from, xEvent *to)
     to->u.noExposure.majorEvent = from->u.noExposure.majorEvent;
 }
 
-_X_EXPORT void
+void
 SVisibilityEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -877,7 +877,7 @@ SVisibilityEvent(xEvent *from, xEvent *to)
     to->u.visibility.state = from->u.visibility.state;
 }
 
-_X_EXPORT void
+void
 SCreateNotifyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -893,7 +893,7 @@ SCreateNotifyEvent(xEvent *from, xEvent *to)
     to->u.createNotify.override = from->u.createNotify.override;
 }
 
-_X_EXPORT void
+void
 SDestroyNotifyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -902,7 +902,7 @@ SDestroyNotifyEvent(xEvent *from, xEvent *to)
     cpswapl(from->u.destroyNotify.window, to->u.destroyNotify.window);
 }
 
-_X_EXPORT void
+void
 SUnmapNotifyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -912,7 +912,7 @@ SUnmapNotifyEvent(xEvent *from, xEvent *to)
     to->u.unmapNotify.fromConfigure = from->u.unmapNotify.fromConfigure;
 }
 
-_X_EXPORT void
+void
 SMapNotifyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -922,7 +922,7 @@ SMapNotifyEvent(xEvent *from, xEvent *to)
     to->u.mapNotify.override = from->u.mapNotify.override;
 }
 
-_X_EXPORT void
+void
 SMapRequestEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -931,7 +931,7 @@ SMapRequestEvent(xEvent *from, xEvent *to)
     cpswapl(from->u.mapRequest.window, to->u.mapRequest.window);
 }
 
-_X_EXPORT void
+void
 SReparentEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -944,7 +944,7 @@ SReparentEvent(xEvent *from, xEvent *to)
     to->u.reparent.override = from->u.reparent.override;
 }
 
-_X_EXPORT void
+void
 SConfigureNotifyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -965,7 +965,7 @@ SConfigureNotifyEvent(xEvent *from, xEvent *to)
     to->u.configureNotify.override = from->u.configureNotify.override;
 }
 
-_X_EXPORT void
+void
 SConfigureRequestEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -990,7 +990,7 @@ SConfigureRequestEvent(xEvent *from, xEvent *to)
 }
 
 
-_X_EXPORT void
+void
 SGravityEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1001,7 +1001,7 @@ SGravityEvent(xEvent *from, xEvent *to)
     cpswaps(from->u.gravity.y, to->u.gravity.y);
 }
 
-_X_EXPORT void
+void
 SResizeRequestEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1011,7 +1011,7 @@ SResizeRequestEvent(xEvent *from, xEvent *to)
     cpswaps(from->u.resizeRequest.height, to->u.resizeRequest.height);
 }
 
-_X_EXPORT void
+void
 SCirculateEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1023,7 +1023,7 @@ SCirculateEvent(xEvent *from, xEvent *to)
     to->u.circulate.place = from->u.circulate.place;
 }
 
-_X_EXPORT void
+void
 SPropertyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1034,7 +1034,7 @@ SPropertyEvent(xEvent *from, xEvent *to)
     to->u.property.state = from->u.property.state;
 }
 
-_X_EXPORT void
+void
 SSelectionClearEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1044,7 +1044,7 @@ SSelectionClearEvent(xEvent *from, xEvent *to)
     cpswapl(from->u.selectionClear.atom, to->u.selectionClear.atom);
 }
 
-_X_EXPORT void
+void
 SSelectionRequestEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1062,7 +1062,7 @@ SSelectionRequestEvent(xEvent *from, xEvent *to)
 	to->u.selectionRequest.property);
 }
 
-_X_EXPORT void
+void
 SSelectionNotifyEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1078,7 +1078,7 @@ SSelectionNotifyEvent(xEvent *from, xEvent *to)
         to->u.selectionNotify.property);
 }
 
-_X_EXPORT void
+void
 SColormapEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1089,7 +1089,7 @@ SColormapEvent(xEvent *from, xEvent *to)
     to->u.colormap.state = from->u.colormap.state;
 }
 
-_X_EXPORT void
+void
 SMappingEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1100,7 +1100,7 @@ SMappingEvent(xEvent *from, xEvent *to)
     to->u.mappingNotify.count = from->u.mappingNotify.count;
 }
 
-_X_EXPORT void
+void
 SClientMessageEvent(xEvent *from, xEvent *to)
 {
     to->u.u.type = from->u.u.type;
@@ -1151,7 +1151,7 @@ SClientMessageEvent(xEvent *from, xEvent *to)
        }
 }
 
-_X_EXPORT void
+void
 SKeymapNotifyEvent(xEvent *from, xEvent *to)
 {
     /* Keymap notify events are special; they have no
@@ -1211,7 +1211,7 @@ SwapVisual(xVisualType *pVis, xVisualType *pVisT)
     cpswapl(pVis->blueMask, pVisT->blueMask);
 }
 
-_X_EXPORT void
+void
 SwapConnSetupInfo(
     char 	*pInfo,
     char 	*pInfoT
@@ -1262,7 +1262,7 @@ SwapConnSetupInfo(
     }
 }
 
-_X_EXPORT void
+void
 WriteSConnectionInfo(ClientPtr pClient, unsigned long size, char *pInfo)
 {
     char	*pInfoTBase;
@@ -1278,7 +1278,7 @@ WriteSConnectionInfo(ClientPtr pClient, unsigned long size, char *pInfo)
     xfree(pInfoTBase);
 }
 
-_X_EXPORT void
+void
 SwapConnSetupPrefix(xConnSetupPrefix *pcspFrom, xConnSetupPrefix *pcspTo)
 {
     pcspTo->success = pcspFrom->success;
@@ -1288,7 +1288,7 @@ SwapConnSetupPrefix(xConnSetupPrefix *pcspFrom, xConnSetupPrefix *pcspTo)
     cpswaps(pcspFrom->length, pcspTo->length);
 }
 
-_X_EXPORT void
+void
 WriteSConnSetupPrefix(ClientPtr pClient, xConnSetupPrefix *pcsp)
 {
     xConnSetupPrefix	cspT;
diff --git a/dix/swapreq.c b/dix/swapreq.c
index 1b90351..1b8f352 100644
--- a/dix/swapreq.c
+++ b/dix/swapreq.c
@@ -62,7 +62,7 @@ SOFTWARE.
 /* Thanks to Jack Palevich for testing and subsequently rewriting all this */
 
 /* Byte swap a list of longs */
-_X_EXPORT void
+void
 SwapLongs (CARD32 *list, unsigned long count)
 {
 	char n;
@@ -88,7 +88,7 @@ SwapLongs (CARD32 *list, unsigned long count)
 }
 
 /* Byte swap a list of shorts */
-_X_EXPORT void
+void
 SwapShorts (short *list, unsigned long count)
 {
 	char n;
@@ -123,7 +123,7 @@ SwapShorts (short *list, unsigned long count)
 
 /* The following is used for all requests that have
    no fields to be swapped (except "length") */
-_X_EXPORT int
+int
 SProcSimpleReq(ClientPtr client)
 {
     char n;
@@ -136,7 +136,7 @@ SProcSimpleReq(ClientPtr client)
 /* The following is used for all requests that have
    only a single 32-bit field to be swapped, coming
    right after the "length" field */
-_X_EXPORT int
+int
 SProcResourceReq(ClientPtr client)
 {
     char n;
@@ -148,7 +148,7 @@ SProcResourceReq(ClientPtr client)
     return(*ProcVector[stuff->reqType])(client);
 }
 
-_X_EXPORT int
+int
 SProcCreateWindow(ClientPtr client)
 {
     char n;
@@ -170,7 +170,7 @@ SProcCreateWindow(ClientPtr client)
     return((* ProcVector[X_CreateWindow])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangeWindowAttributes(ClientPtr client)
 {
     char n;
@@ -184,7 +184,7 @@ SProcChangeWindowAttributes(ClientPtr client)
     return((* ProcVector[X_ChangeWindowAttributes])(client));
 }
 
-_X_EXPORT int
+int
 SProcReparentWindow(ClientPtr client)
 {
     char n;
@@ -198,7 +198,7 @@ SProcReparentWindow(ClientPtr client)
     return((* ProcVector[X_ReparentWindow])(client));
 }
 
-_X_EXPORT int
+int
 SProcConfigureWindow(ClientPtr client)
 {
     char n;
@@ -213,7 +213,7 @@ SProcConfigureWindow(ClientPtr client)
 }
 
 
-_X_EXPORT int
+int
 SProcInternAtom(ClientPtr client)
 {
     char n;
@@ -224,7 +224,7 @@ SProcInternAtom(ClientPtr client)
     return((* ProcVector[X_InternAtom])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangeProperty(ClientPtr client)
 {
     char n;
@@ -248,7 +248,7 @@ SProcChangeProperty(ClientPtr client)
     return((* ProcVector[X_ChangeProperty])(client));
 }
 
-_X_EXPORT int 
+int
 SProcDeleteProperty(ClientPtr client)
 {
     char n;
@@ -261,7 +261,7 @@ SProcDeleteProperty(ClientPtr client)
               
 }
 
-_X_EXPORT int 
+int
 SProcGetProperty(ClientPtr client)
 {
     char n;
@@ -276,7 +276,7 @@ SProcGetProperty(ClientPtr client)
     return((* ProcVector[X_GetProperty])(client));
 }
 
-_X_EXPORT int
+int
 SProcSetSelectionOwner(ClientPtr client)
 {
     char n;
@@ -289,7 +289,7 @@ SProcSetSelectionOwner(ClientPtr client)
     return((* ProcVector[X_SetSelectionOwner])(client));
 }
 
-_X_EXPORT int
+int
 SProcConvertSelection(ClientPtr client)
 {
     char n;
@@ -304,7 +304,7 @@ SProcConvertSelection(ClientPtr client)
     return((* ProcVector[X_ConvertSelection])(client));
 }
 
-_X_EXPORT int
+int
 SProcSendEvent(ClientPtr client)
 {
     char n;
@@ -326,7 +326,7 @@ SProcSendEvent(ClientPtr client)
     return((* ProcVector[X_SendEvent])(client));
 }
 
-_X_EXPORT int
+int
 SProcGrabPointer(ClientPtr client)
 {
     char n;
@@ -341,7 +341,7 @@ SProcGrabPointer(ClientPtr client)
     return((* ProcVector[X_GrabPointer])(client));
 }
 
-_X_EXPORT int
+int
 SProcGrabButton(ClientPtr client)
 {
     char n;
@@ -356,7 +356,7 @@ SProcGrabButton(ClientPtr client)
     return((* ProcVector[X_GrabButton])(client));
 }
 
-_X_EXPORT int
+int
 SProcUngrabButton(ClientPtr client)
 {
     char n;
@@ -368,7 +368,7 @@ SProcUngrabButton(ClientPtr client)
     return((* ProcVector[X_UngrabButton])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangeActivePointerGrab(ClientPtr client)
 {
     char n;
@@ -381,7 +381,7 @@ SProcChangeActivePointerGrab(ClientPtr client)
     return((* ProcVector[X_ChangeActivePointerGrab])(client));
 }
 
-_X_EXPORT int
+int
 SProcGrabKeyboard(ClientPtr client)
 {
     char n;
@@ -393,7 +393,7 @@ SProcGrabKeyboard(ClientPtr client)
     return((* ProcVector[X_GrabKeyboard])(client));
 }
 
-_X_EXPORT int
+int
 SProcGrabKey(ClientPtr client)
 {
     char n;
@@ -405,7 +405,7 @@ SProcGrabKey(ClientPtr client)
     return((* ProcVector[X_GrabKey])(client));
 }
 
-_X_EXPORT int
+int
 SProcUngrabKey(ClientPtr client)
 {
     char n;
@@ -417,7 +417,7 @@ SProcUngrabKey(ClientPtr client)
     return((* ProcVector[X_UngrabKey])(client));
 }
 
-_X_EXPORT int
+int
 SProcGetMotionEvents(ClientPtr client)
 {
     char n;
@@ -430,7 +430,7 @@ SProcGetMotionEvents(ClientPtr client)
     return((* ProcVector[X_GetMotionEvents])(client));
 }
 
-_X_EXPORT int
+int
 SProcTranslateCoords(ClientPtr client)
 {
     char n;
@@ -444,7 +444,7 @@ SProcTranslateCoords(ClientPtr client)
     return((* ProcVector[X_TranslateCoords])(client));
 }
 
-_X_EXPORT int
+int
 SProcWarpPointer(ClientPtr client)
 {
     char n;
@@ -462,7 +462,7 @@ SProcWarpPointer(ClientPtr client)
     return((* ProcVector[X_WarpPointer])(client));
 }
 
-_X_EXPORT int
+int
 SProcSetInputFocus(ClientPtr client)
 {
     char n;
@@ -474,7 +474,7 @@ SProcSetInputFocus(ClientPtr client)
     return((* ProcVector[X_SetInputFocus])(client));
 }
 
-_X_EXPORT int
+int
 SProcOpenFont(ClientPtr client)
 {
     char n;
@@ -486,7 +486,7 @@ SProcOpenFont(ClientPtr client)
     return((* ProcVector[X_OpenFont])(client));
 }
 
-_X_EXPORT int
+int
 SProcListFonts(ClientPtr client)
 {
     char n;
@@ -498,7 +498,7 @@ SProcListFonts(ClientPtr client)
     return((* ProcVector[X_ListFonts])(client));
 }
 
-_X_EXPORT int
+int
 SProcListFontsWithInfo(ClientPtr client)
 {
     char n;
@@ -510,7 +510,7 @@ SProcListFontsWithInfo(ClientPtr client)
     return((* ProcVector[X_ListFontsWithInfo])(client));
 }
 
-_X_EXPORT int
+int
 SProcSetFontPath(ClientPtr client)
 {
     char n;
@@ -521,7 +521,7 @@ SProcSetFontPath(ClientPtr client)
     return((* ProcVector[X_SetFontPath])(client));
 }
 
-_X_EXPORT int
+int
 SProcCreatePixmap(ClientPtr client)
 {
     char n;
@@ -536,7 +536,7 @@ SProcCreatePixmap(ClientPtr client)
     return((* ProcVector[X_CreatePixmap])(client));
 }
 
-_X_EXPORT int
+int
 SProcCreateGC(ClientPtr client)
 {
     char n;
@@ -550,7 +550,7 @@ SProcCreateGC(ClientPtr client)
     return((* ProcVector[X_CreateGC])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangeGC(ClientPtr client)
 {
     char n;
@@ -563,7 +563,7 @@ SProcChangeGC(ClientPtr client)
     return((* ProcVector[X_ChangeGC])(client));
 }
 
-_X_EXPORT int
+int
 SProcCopyGC(ClientPtr client)
 {
     char n;
@@ -576,7 +576,7 @@ SProcCopyGC(ClientPtr client)
     return((* ProcVector[X_CopyGC])(client));
 }
 
-_X_EXPORT int
+int
 SProcSetDashes(ClientPtr client)
 {
     char n;
@@ -590,7 +590,7 @@ SProcSetDashes(ClientPtr client)
 
 }
 
-_X_EXPORT int
+int
 SProcSetClipRectangles(ClientPtr client)
 {
     char n;
@@ -604,7 +604,7 @@ SProcSetClipRectangles(ClientPtr client)
     return((* ProcVector[X_SetClipRectangles])(client));
 }
 
-_X_EXPORT int
+int
 SProcClearToBackground(ClientPtr client)
 {
     char n;
@@ -619,7 +619,7 @@ SProcClearToBackground(ClientPtr client)
     return((* ProcVector[X_ClearArea])(client));
 }
 
-_X_EXPORT int
+int
 SProcCopyArea(ClientPtr client)
 {
     char n;
@@ -638,7 +638,7 @@ SProcCopyArea(ClientPtr client)
     return((* ProcVector[X_CopyArea])(client));
 }
 
-_X_EXPORT int
+int
 SProcCopyPlane(ClientPtr client)
 {
     char n;
@@ -660,7 +660,7 @@ SProcCopyPlane(ClientPtr client)
 
 /* The following routine is used for all Poly drawing requests
    (except FillPoly, which uses a different request format) */
-_X_EXPORT int
+int
 SProcPoly(ClientPtr client)
 {
     char n;
@@ -677,7 +677,7 @@ SProcPoly(ClientPtr client)
 /* cannot use SProcPoly for this one, because xFillPolyReq
    is longer than xPolyPointReq, and we don't want to swap
    the difference as shorts! */
-_X_EXPORT int
+int
 SProcFillPoly(ClientPtr client)
 {
     char n;
@@ -691,7 +691,7 @@ SProcFillPoly(ClientPtr client)
     return((* ProcVector[X_FillPoly])(client));
 }
 
-_X_EXPORT int
+int
 SProcPutImage(ClientPtr client)
 {
     char n;
@@ -709,7 +709,7 @@ SProcPutImage(ClientPtr client)
 
 }
 
-_X_EXPORT int
+int
 SProcGetImage(ClientPtr client)
 {
     char n;
@@ -727,7 +727,7 @@ SProcGetImage(ClientPtr client)
 
 /* ProcPolyText used for both PolyText8 and PolyText16 */
 
-_X_EXPORT int
+int
 SProcPolyText(ClientPtr client)
 {
     char n;
@@ -743,7 +743,7 @@ SProcPolyText(ClientPtr client)
 
 /* ProcImageText used for both ImageText8 and ImageText16 */
 
-_X_EXPORT int
+int
 SProcImageText(ClientPtr client)
 {
     char n;
@@ -757,7 +757,7 @@ SProcImageText(ClientPtr client)
     return((* ProcVector[stuff->reqType])(client));
 }
 
-_X_EXPORT int
+int
 SProcCreateColormap(ClientPtr client)
 {
     char n;
@@ -771,7 +771,7 @@ SProcCreateColormap(ClientPtr client)
 }
 
 
-_X_EXPORT int
+int
 SProcCopyColormapAndFree(ClientPtr client)
 {
     char n;
@@ -784,7 +784,7 @@ SProcCopyColormapAndFree(ClientPtr client)
 
 }
 
-_X_EXPORT int
+int
 SProcAllocColor(ClientPtr client)
 {
     char n;
@@ -798,7 +798,7 @@ SProcAllocColor(ClientPtr client)
     return((* ProcVector[X_AllocColor])(client));
 }
 
-_X_EXPORT int
+int
 SProcAllocNamedColor(ClientPtr client)
 {
     char n;
@@ -811,7 +811,7 @@ SProcAllocNamedColor(ClientPtr client)
     return((* ProcVector[X_AllocNamedColor])(client));
 }
 
-_X_EXPORT int
+int
 SProcAllocColorCells(ClientPtr client)
 {
     char n;
@@ -824,7 +824,7 @@ SProcAllocColorCells(ClientPtr client)
     return((* ProcVector[X_AllocColorCells])(client));
 }
 
-_X_EXPORT int
+int
 SProcAllocColorPlanes(ClientPtr client)
 {
     char n;
@@ -839,7 +839,7 @@ SProcAllocColorPlanes(ClientPtr client)
     return((* ProcVector[X_AllocColorPlanes])(client));
 }
 
-_X_EXPORT int
+int
 SProcFreeColors(ClientPtr client)
 {
     char n;
@@ -853,7 +853,7 @@ SProcFreeColors(ClientPtr client)
 
 }
 
-_X_EXPORT void
+void
 SwapColorItem(xColorItem *pItem)
 {
     char n;
@@ -864,7 +864,7 @@ SwapColorItem(xColorItem *pItem)
     swaps(&pItem->blue, n);
 }
 
-_X_EXPORT int
+int
 SProcStoreColors(ClientPtr client)
 {
     char n;
@@ -881,7 +881,7 @@ SProcStoreColors(ClientPtr client)
     return((* ProcVector[X_StoreColors])(client));
 }
 
-_X_EXPORT int
+int
 SProcStoreNamedColor (ClientPtr client)
 {
     char n;
@@ -894,7 +894,7 @@ SProcStoreNamedColor (ClientPtr client)
     return((* ProcVector[X_StoreNamedColor])(client));
 }
 
-_X_EXPORT int
+int
 SProcQueryColors (ClientPtr client)
 {
     char n;
@@ -906,7 +906,7 @@ SProcQueryColors (ClientPtr client)
     return((* ProcVector[X_QueryColors])(client));
 } 
 
-_X_EXPORT int
+int
 SProcLookupColor (ClientPtr client)
 {
     char n;
@@ -918,7 +918,7 @@ SProcLookupColor (ClientPtr client)
     return((* ProcVector[X_LookupColor])(client));
 }
 
-_X_EXPORT int
+int
 SProcCreateCursor (ClientPtr client)
 {
     char n;
@@ -939,7 +939,7 @@ SProcCreateCursor (ClientPtr client)
     return((* ProcVector[X_CreateCursor])(client));
 }
 
-_X_EXPORT int
+int
 SProcCreateGlyphCursor (ClientPtr client)
 {
     char n;
@@ -961,7 +961,7 @@ SProcCreateGlyphCursor (ClientPtr client)
 }
 
 
-_X_EXPORT int
+int
 SProcRecolorCursor (ClientPtr client)
 {
     char n;
@@ -978,7 +978,7 @@ SProcRecolorCursor (ClientPtr client)
     return((* ProcVector[X_RecolorCursor])(client));
 }
 
-_X_EXPORT int
+int
 SProcQueryBestSize (ClientPtr client)
 {
     char n;
@@ -992,7 +992,7 @@ SProcQueryBestSize (ClientPtr client)
 
 }
 
-_X_EXPORT int
+int
 SProcQueryExtension (ClientPtr client)
 {
     char n;
@@ -1003,7 +1003,7 @@ SProcQueryExtension (ClientPtr client)
     return((* ProcVector[X_QueryExtension])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangeKeyboardMapping (ClientPtr client)
 {
     char n;
@@ -1015,7 +1015,7 @@ SProcChangeKeyboardMapping (ClientPtr client)
 }
 
 
-_X_EXPORT int
+int
 SProcChangeKeyboardControl (ClientPtr client)
 {
     char n;
@@ -1027,7 +1027,7 @@ SProcChangeKeyboardControl (ClientPtr client)
     return((* ProcVector[X_ChangeKeyboardControl])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangePointerControl (ClientPtr client)
 {
     char n;
@@ -1041,7 +1041,7 @@ SProcChangePointerControl (ClientPtr client)
 }
 
 
-_X_EXPORT int
+int
 SProcSetScreenSaver (ClientPtr client)
 {
     char n;
@@ -1053,7 +1053,7 @@ SProcSetScreenSaver (ClientPtr client)
     return((* ProcVector[X_SetScreenSaver])(client));
 }
 
-_X_EXPORT int
+int
 SProcChangeHosts (ClientPtr client)
 {
     char n;
@@ -1066,7 +1066,7 @@ SProcChangeHosts (ClientPtr client)
 
 }
 
-_X_EXPORT int SProcRotateProperties (ClientPtr client)
+int SProcRotateProperties (ClientPtr client)
 {
     char n;
     REQUEST(xRotatePropertiesReq);
@@ -1079,7 +1079,7 @@ _X_EXPORT int SProcRotateProperties (ClientPtr client)
     return ((* ProcVector[X_RotateProperties])(client));
 }
 
-_X_EXPORT int
+int
 SProcNoOperation(ClientPtr client)
 {
     char n;
@@ -1088,7 +1088,7 @@ SProcNoOperation(ClientPtr client)
     return ((* ProcVector[X_NoOperation])(client));
 }
 
-_X_EXPORT void
+void
 SwapConnClientPrefix(xConnClientPrefix *pCCP)
 {
     char n;
diff --git a/dix/tables.c b/dix/tables.c
index 3a1616d..e795ada 100644
--- a/dix/tables.c
+++ b/dix/tables.c
@@ -61,7 +61,7 @@ SOFTWARE.
 #include "swaprep.h"
 #include "swapreq.h"
 
-_X_EXPORT int (* InitialVector[3]) (
+int (* InitialVector[3]) (
 	ClientPtr /* client */
     ) =
 {
@@ -70,7 +70,7 @@ _X_EXPORT int (* InitialVector[3]) (
     ProcEstablishConnection
 };
 
-_X_EXPORT int (* ProcVector[256]) (
+int (* ProcVector[256]) (
 	ClientPtr /* client */
     ) =
 {
@@ -204,7 +204,7 @@ _X_EXPORT int (* ProcVector[256]) (
     ProcNoOperation    
 };
 
-_X_EXPORT int (* SwappedProcVector[256]) (
+int (* SwappedProcVector[256]) (
 	ClientPtr /* client */
     ) =
 {
@@ -338,7 +338,7 @@ _X_EXPORT int (* SwappedProcVector[256]) (
     SProcNoOperation
 };
 
-_X_EXPORT EventSwapPtr EventSwapVector[128] =
+EventSwapPtr EventSwapVector[128] =
 {
     (EventSwapPtr)SErrorEvent,
     NotImplemented,
@@ -378,7 +378,7 @@ _X_EXPORT EventSwapPtr EventSwapVector[128] =
 };
 
 
-_X_EXPORT ReplySwapPtr ReplySwapVector[256] =
+ReplySwapPtr ReplySwapVector[256] =
 {
     ReplyNotSwappd,
     ReplyNotSwappd,
diff --git a/dix/window.c b/dix/window.c
index 08afa45..c038799 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -150,12 +150,12 @@ WindowSeekDeviceCursor(WindowPtr pWin,
                        DevCursNodePtr* pNode, 
                        DevCursNodePtr* pPrev);
 
-_X_EXPORT int screenIsSaved = SCREEN_SAVER_OFF;
+int screenIsSaved = SCREEN_SAVER_OFF;
 
-_X_EXPORT ScreenSaverStuffRec savedScreenInfo[MAXSCREENS];
+ScreenSaverStuffRec savedScreenInfo[MAXSCREENS];
 
 static int FocusPrivatesKeyIndex;
-_X_EXPORT DevPrivateKey FocusPrivatesKey = &FocusPrivatesKeyIndex;
+DevPrivateKey FocusPrivatesKey = &FocusPrivatesKeyIndex;
 
 static Bool TileScreenSaver(int i, int kind);
 
@@ -221,7 +221,7 @@ PrintWindowTree(void)
 }
 #endif
 
-_X_EXPORT int
+int
 TraverseTree(WindowPtr pWin, VisitWindowProcPtr func, pointer data)
 {
     int result;
@@ -256,17 +256,17 @@ TraverseTree(WindowPtr pWin, VisitWindowProcPtr func, pointer data)
  *   exit WalkTree.  Does depth-first traverse.
  *****/
 
-_X_EXPORT int
+int
 WalkTree(ScreenPtr pScreen, VisitWindowProcPtr func, pointer data)
 {
     return(TraverseTree(WindowTable[pScreen->myNum], func, data));
 }
 
 /* hack for forcing backing store on all windows */
-_X_EXPORT int	defaultBackingStore = NotUseful;
+int	defaultBackingStore = NotUseful;
 /* hack to force no backing store */
-_X_EXPORT Bool	disableBackingStore = FALSE;
-_X_EXPORT Bool	enableBackingStore = FALSE;
+Bool	disableBackingStore = FALSE;
+Bool	enableBackingStore = FALSE;
 
 static void
 SetWindowToDefaults(WindowPtr pWin)
@@ -356,7 +356,7 @@ MakeRootTile(WindowPtr pWin)
  *    Makes a window at initialization time for specified screen
  *****/
 
-_X_EXPORT Bool
+Bool
 CreateRootWindow(ScreenPtr pScreen)
 {
     WindowPtr	pWin;
@@ -469,7 +469,7 @@ CreateRootWindow(ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 InitRootWindow(WindowPtr pWin)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -540,14 +540,14 @@ ClippedRegionFromBox(WindowPtr pWin, RegionPtr Rgn,
 
 static RealChildHeadProc realChildHeadProc = NULL;
 
-_X_EXPORT void
+void
 RegisterRealChildHeadProc (RealChildHeadProc proc)
 {
     realChildHeadProc = proc;
 }
 
 
-_X_EXPORT WindowPtr
+WindowPtr
 RealChildHead(WindowPtr pWin)
 {
     if (realChildHeadProc) {
@@ -567,7 +567,7 @@ RealChildHead(WindowPtr pWin)
  *    Makes a window in response to client request 
  *****/
 
-_X_EXPORT WindowPtr
+WindowPtr
 CreateWindow(Window wid, WindowPtr pParent, int x, int y, unsigned w,
              unsigned h, unsigned bw, unsigned class, Mask vmask, XID *vlist,
              int depth, ClientPtr client, VisualID visual, int *error)
@@ -933,7 +933,7 @@ CrushTree(WindowPtr pWin)
  *	 If wid is None, don't send any events
  *****/
 
-_X_EXPORT int
+int
 DeleteWindow(pointer value, XID wid)
  {
     WindowPtr pParent;
@@ -970,7 +970,7 @@ DeleteWindow(pointer value, XID wid)
     return Success;
 }
 
-_X_EXPORT int
+int
 DestroySubwindows(WindowPtr pWin, ClientPtr client)
 {
     /* XXX
@@ -1004,7 +1004,7 @@ DestroySubwindows(WindowPtr pWin, ClientPtr client)
  *  to most significant bit in the mask.  
  *****/
  
-_X_EXPORT int
+int
 ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client)
 {
     XID *pVlist;
@@ -1480,7 +1480,7 @@ PatchUp:
  *    Notice that this is different than ChangeWindowAttributes
  *****/
 
-_X_EXPORT void
+void
 GetWindowAttributes(WindowPtr pWin, ClientPtr client, xGetWindowAttributesReply *wa)
 {
     wa->type = X_Reply;
@@ -1516,7 +1516,7 @@ GetWindowAttributes(WindowPtr pWin, ClientPtr client, xGetWindowAttributesReply
 }
 
 
-_X_EXPORT WindowPtr
+WindowPtr
 MoveWindowInStack(WindowPtr pWin, WindowPtr pNextSib)
 {
     WindowPtr pParent = pWin->parent;
@@ -1600,7 +1600,7 @@ MoveWindowInStack(WindowPtr pWin, WindowPtr pNextSib)
     return( pFirstChange );
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 CreateUnclippedWinSize (WindowPtr pWin)
 {
     RegionPtr	pRgn;
@@ -1626,7 +1626,7 @@ CreateUnclippedWinSize (WindowPtr pWin)
     return pRgn;
 }
 
-_X_EXPORT void
+void
 SetWinSize (WindowPtr pWin)
 {
 #ifdef COMPOSITE
@@ -1667,7 +1667,7 @@ SetWinSize (WindowPtr pWin)
     }
 }
 
-_X_EXPORT void
+void
 SetBorderSize (WindowPtr pWin)
 {
     int	bw;
@@ -1721,7 +1721,7 @@ SetBorderSize (WindowPtr pWin)
  *  \param destx,desty  position relative to gravity
  */
 
-_X_EXPORT void
+void
 GravityTranslate (int x, int y, int oldx, int oldy,
                   int dw, int dh, unsigned gravity,
                   int *destx, int *desty)
@@ -1771,7 +1771,7 @@ GravityTranslate (int x, int y, int oldx, int oldy,
 }
 
 /* XXX need to retile border on each window with ParentRelative origin */
-_X_EXPORT void
+void
 ResizeChildrenWinSize(WindowPtr pWin, int dx, int dy, int dw, int dh)
 {
     ScreenPtr pScreen;
@@ -2165,7 +2165,7 @@ ReflectStackChange(
  * ConfigureWindow
  *****/
 
-_X_EXPORT int
+int
 ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
 {
 #define RESTACK_WIN    0
@@ -2427,7 +2427,7 @@ ActuallyDoSomething:
  *
  ******/
 
-_X_EXPORT int
+int
 CirculateWindow(WindowPtr pParent, int direction, ClientPtr client)
 {
     WindowPtr pWin, pHead, pFirst;
@@ -2499,7 +2499,7 @@ CompareWIDs(
  *  ReparentWindow
  *****/
 
-_X_EXPORT int
+int
 ReparentWindow(WindowPtr pWin, WindowPtr pParent,
                int x, int y, ClientPtr client)
 {
@@ -2622,7 +2622,7 @@ RealizeTree(WindowPtr pWin)
 
 static WindowPtr windowDisableMapUnmapEvents;
 
-_X_EXPORT void
+void
 DisableMapUnmapEvents(WindowPtr pWin)
 {
     assert (windowDisableMapUnmapEvents == NULL);
@@ -2630,7 +2630,7 @@ DisableMapUnmapEvents(WindowPtr pWin)
     windowDisableMapUnmapEvents = pWin;
 }
 
-_X_EXPORT void
+void
 EnableMapUnmapEvents(WindowPtr pWin)
 {
     assert (windowDisableMapUnmapEvents != NULL);
@@ -2652,7 +2652,7 @@ MapUnmapEventsEnabled(WindowPtr pWin)
  *    MapNotify event is generated.
  *****/
 
-_X_EXPORT int
+int
 MapWindow(WindowPtr pWin, ClientPtr client)
 {
     ScreenPtr pScreen;
@@ -2742,7 +2742,7 @@ MapWindow(WindowPtr pWin, ClientPtr client)
  *    to bottom stacking order.
  *****/
 
-_X_EXPORT void
+void
 MapSubwindows(WindowPtr pParent, ClientPtr client)
 {
     WindowPtr	pWin;
@@ -2874,7 +2874,7 @@ UnrealizeTree(
  *    generated.  Cannot unmap a root window.
  *****/
 
-_X_EXPORT int
+int
 UnmapWindow(WindowPtr pWin, Bool fromConfigure)
 {
     WindowPtr pParent;
@@ -2923,7 +2923,7 @@ UnmapWindow(WindowPtr pWin, Bool fromConfigure)
  *    children of the window, in bottom to top stacking order.
  *****/
 
-_X_EXPORT void
+void
 UnmapSubwindows(WindowPtr pWin)
 {
     WindowPtr pChild, pHead;
@@ -3001,7 +3001,7 @@ UnmapSubwindows(WindowPtr pWin)
 }
 
 
-_X_EXPORT void
+void
 HandleSaveSet(ClientPtr client)
 {
     WindowPtr pParent, pWin;
@@ -3051,7 +3051,7 @@ HandleSaveSet(ClientPtr client)
  *
  * \param x,y  in root
  */
-_X_EXPORT Bool
+Bool
 PointInWindowIsVisible(WindowPtr pWin, int x, int y)
 {
     BoxRec box;
@@ -3070,7 +3070,7 @@ PointInWindowIsVisible(WindowPtr pWin, int x, int y)
 }
 
 
-_X_EXPORT RegionPtr
+RegionPtr
 NotClippedByChildren(WindowPtr pWin)
 {
     ScreenPtr pScreen;
@@ -3087,7 +3087,7 @@ NotClippedByChildren(WindowPtr pWin)
     return(pReg);
 }
 
-_X_EXPORT void
+void
 SendVisibilityNotify(WindowPtr pWin)
 {
     xEvent event;
@@ -3165,7 +3165,7 @@ static void DrawLogo(
 );
 #endif
 
-_X_EXPORT int
+int
 dixSaveScreens(ClientPtr client, int on, int mode)
 {
     int rc, i, what, type;
@@ -3284,7 +3284,7 @@ dixSaveScreens(ClientPtr client, int on, int mode)
     return Success;
 }
 
-_X_EXPORT int
+int
 SaveScreens(int on, int mode)
 {
     return dixSaveScreens(serverClient, on, mode);
@@ -3409,7 +3409,7 @@ TileScreenSaver(int i, int kind)
  * contain the structure.
  */
 
-_X_EXPORT WindowPtr
+WindowPtr
 FindWindowWithOptional (WindowPtr w)
 {
     do
@@ -3426,7 +3426,7 @@ FindWindowWithOptional (WindowPtr w)
  * release the optional record
  */
 
-_X_EXPORT void
+void
 CheckWindowOptionalNeed (WindowPtr w)
 {
     WindowOptPtr optional;
@@ -3493,7 +3493,7 @@ CheckWindowOptionalNeed (WindowPtr w)
  * values.
  */
 
-_X_EXPORT Bool
+Bool
 MakeWindowOptional (WindowPtr pWin)
 {
     WindowOptPtr optional;
@@ -3565,7 +3565,7 @@ MakeWindowOptional (WindowPtr pWin)
  * Assumption: If there is a node for a device in the list, the device has a
  * cursor. If the cursor is set to None, it is inherited by the parent.
  */
-_X_EXPORT int
+int
 ChangeWindowDeviceCursor(WindowPtr pWin, 
                          DeviceIntPtr pDev, 
                          CursorPtr pCursor) 
@@ -3670,7 +3670,7 @@ ChangeWindowDeviceCursor(WindowPtr pWin,
 }
 
 /* Get device cursor for given device or None if none is set */
-_X_EXPORT CursorPtr 
+CursorPtr
 WindowGetDeviceCursor(WindowPtr pWin, DeviceIntPtr pDev)
 {
     DevCursorList pList;
diff --git a/exa/exa.c b/exa/exa.c
index f7eea73..6dfde4c 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -67,7 +67,7 @@ ExaGetPixmapAddress(PixmapPtr p)
  * support for having multiple card-accessible offscreen, such as an AGP memory
  * pool alongside the framebuffer pool.
  */
-_X_EXPORT unsigned long
+unsigned long
 exaGetPixmapOffset(PixmapPtr pPix)
 {
     ExaScreenPriv (pPix->drawable.pScreen);
@@ -76,7 +76,7 @@ exaGetPixmapOffset(PixmapPtr pPix)
 	    (unsigned long)pExaScr->info->memoryBase);
 }
 
-_X_EXPORT void *
+void *
 exaGetPixmapDriverPrivate(PixmapPtr pPix)
 {
     ExaPixmapPriv(pPix);
@@ -90,7 +90,7 @@ exaGetPixmapDriverPrivate(PixmapPtr pPix)
  * This is a helper to make driver code more obvious, due to the rather obscure
  * naming of the pitch field in the pixmap.
  */
-_X_EXPORT unsigned long
+unsigned long
 exaGetPixmapPitch(PixmapPtr pPix)
 {
     return pPix->devKind;
@@ -100,7 +100,7 @@ exaGetPixmapPitch(PixmapPtr pPix)
  * exaGetPixmapSize() returns the size in bytes of the given pixmap in video
  * memory. Only valid when the pixmap is currently in framebuffer.
  */
-_X_EXPORT unsigned long
+unsigned long
 exaGetPixmapSize(PixmapPtr pPix)
 {
     ExaPixmapPrivPtr pExaPixmap;
@@ -463,7 +463,7 @@ exaPixmapIsOffscreen(PixmapPtr p)
 /**
  * exaDrawableIsOffscreen() is a convenience wrapper for exaPixmapIsOffscreen().
  */
-_X_EXPORT Bool
+Bool
 exaDrawableIsOffscreen (DrawablePtr pDrawable)
 {
     return exaPixmapIsOffscreen (exaGetDrawablePixmap (pDrawable));
@@ -776,7 +776,7 @@ exaCloseScreen(int i, ScreenPtr pScreen)
  *
  * @return a newly allocated, zero-filled driver structure
  */
-_X_EXPORT ExaDriverPtr
+ExaDriverPtr
 exaDriverAlloc(void)
 {
     return xcalloc(1, sizeof(ExaDriverRec));
@@ -792,7 +792,7 @@ exaDriverAlloc(void)
  *
  * @return TRUE if EXA was successfully initialized.
  */
-_X_EXPORT Bool
+Bool
 exaDriverInit (ScreenPtr		pScreen,
                ExaDriverPtr	pScreenInfo)
 {
@@ -1012,7 +1012,7 @@ exaDriverInit (ScreenPtr		pScreen,
  *
  * @param pScreen screen being torn down.
  */
-_X_EXPORT void
+void
 exaDriverFini (ScreenPtr pScreen)
 {
     /*right now does nothing*/
@@ -1029,7 +1029,7 @@ exaDriverFini (ScreenPtr pScreen)
  * driver MarkSync() callback, the return value of which may be used to do partial
  * synchronization with the hardware in the future.
  */
-_X_EXPORT void exaMarkSync(ScreenPtr pScreen)
+void exaMarkSync(ScreenPtr pScreen)
 {
     ExaScreenPriv(pScreen);
 
@@ -1048,7 +1048,7 @@ _X_EXPORT void exaMarkSync(ScreenPtr pScreen)
  * It should always be called before relying on the framebuffer contents
  * reflecting previous drawing, from a CPU perspective.
  */
-_X_EXPORT void exaWaitSync(ScreenPtr pScreen)
+void exaWaitSync(ScreenPtr pScreen)
 {
     ExaScreenPriv(pScreen);
 
diff --git a/exa/exa.h b/exa/exa.h
index 5982e1a..21a0f1a 100644
--- a/exa/exa.h
+++ b/exa/exa.h
@@ -745,63 +745,63 @@ typedef struct _ExaDriver {
 /** @} */
 
 /* in exa.c */
-ExaDriverPtr
+extern _X_EXPORT ExaDriverPtr
 exaDriverAlloc(void);
 
-Bool
+extern _X_EXPORT Bool
 exaDriverInit(ScreenPtr      pScreen,
               ExaDriverPtr   pScreenInfo);
 
-void
+extern _X_EXPORT void
 exaDriverFini(ScreenPtr      pScreen);
 
-void
+extern _X_EXPORT void
 exaMarkSync(ScreenPtr pScreen);
-void
+extern _X_EXPORT void
 exaWaitSync(ScreenPtr pScreen);
 
-unsigned long
+extern _X_EXPORT unsigned long
 exaGetPixmapOffset(PixmapPtr pPix);
 
-unsigned long
+extern _X_EXPORT unsigned long
 exaGetPixmapPitch(PixmapPtr pPix);
 
-unsigned long
+extern _X_EXPORT unsigned long
 exaGetPixmapSize(PixmapPtr pPix);
 
-void *
+extern _X_EXPORT void *
 exaGetPixmapDriverPrivate(PixmapPtr p);
 
 
 /* in exa_offscreen.c */
-ExaOffscreenArea *
+extern _X_EXPORT ExaOffscreenArea *
 exaOffscreenAlloc(ScreenPtr pScreen, int size, int align,
                   Bool locked,
                   ExaOffscreenSaveProc save,
                   pointer privData);
 
-ExaOffscreenArea *
+extern _X_EXPORT ExaOffscreenArea *
 exaOffscreenFree(ScreenPtr pScreen, ExaOffscreenArea *area);
 
-void
+extern _X_EXPORT void
 ExaOffscreenMarkUsed (PixmapPtr pPixmap);
 
-void
+extern _X_EXPORT void
 exaEnableDisableFBAccess (int index, Bool enable);
 
-Bool
+extern _X_EXPORT Bool
 exaDrawableIsOffscreen (DrawablePtr pDrawable);
 
 /* in exa_migration.c */
-void
+extern _X_EXPORT void
 exaMoveInPixmap (PixmapPtr pPixmap);
 
-void
+extern _X_EXPORT void
 exaMoveOutPixmap (PixmapPtr pPixmap);
 
 
 /* in exa_unaccel.c */
-CARD32
+extern _X_EXPORT CARD32
 exaGetPixmapFirstPixel (PixmapPtr pPixmap);
 
 
diff --git a/exa/exa_migration.c b/exa/exa_migration.c
index f31cce3..571650c 100644
--- a/exa/exa_migration.c
+++ b/exa/exa_migration.c
@@ -348,7 +348,7 @@ exaDoMoveInPixmap (ExaMigrationPtr migrate)
     pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
 }
 
-_X_EXPORT void
+void
 exaMoveInPixmap (PixmapPtr pPixmap)
 {
     static ExaMigrationRec migrate = { .as_dst = FALSE, .as_src = TRUE,
@@ -389,7 +389,7 @@ exaDoMoveOutPixmap (ExaMigrationPtr migrate)
     }
 }
 
-_X_EXPORT void
+void
 exaMoveOutPixmap (PixmapPtr pPixmap)
 {
     static ExaMigrationRec migrate = { .as_dst = FALSE, .as_src = TRUE,
diff --git a/exa/exa_offscreen.c b/exa/exa_offscreen.c
index 95656bf..4aaa2c1 100644
--- a/exa/exa_offscreen.c
+++ b/exa/exa_offscreen.c
@@ -164,7 +164,7 @@ exaFindAreaToEvict(ExaScreenPrivPtr pExaScr, int size, int align)
  * requested version 2.1 or newer behavior.  In that case, the save callback is
  * still called.
  */
-_X_EXPORT ExaOffscreenArea *
+ExaOffscreenArea *
 exaOffscreenAlloc (ScreenPtr pScreen, int size, int align,
                    Bool locked,
                    ExaOffscreenSaveProc save,
@@ -365,7 +365,7 @@ ExaOffscreenSwapIn (ScreenPtr pScreen)
  * many drivers that could otherwise handle the lack of FB access while
  * swapped out.
  */
-_X_EXPORT void
+void
 exaEnableDisableFBAccess (int index, Bool enable)
 {
     ScreenPtr pScreen = screenInfo.screens[index];
@@ -412,7 +412,7 @@ ExaOffscreenMerge (ExaOffscreenArea *area)
  * @return pointer to the newly freed area. This behavior should not be relied
  * on.
  */
-_X_EXPORT ExaOffscreenArea *
+ExaOffscreenArea *
 exaOffscreenFree (ScreenPtr pScreen, ExaOffscreenArea *area)
 {
     ExaScreenPriv(pScreen);
@@ -453,7 +453,7 @@ exaOffscreenFree (ScreenPtr pScreen, ExaOffscreenArea *area)
     return area;
 }
 
-_X_EXPORT void
+void
 ExaOffscreenMarkUsed (PixmapPtr pPixmap)
 {
     ExaPixmapPriv (pPixmap);
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index 6e75d78..64c06c7 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -373,7 +373,7 @@ ExaCheckAddTraps (PicturePtr	pPicture,
  *
  * XXX This really belongs in fb, so it can be aware of tiling and etc.
  */
-_X_EXPORT CARD32
+CARD32
 exaGetPixmapFirstPixel (PixmapPtr pPixmap)
 {
     CARD32 pixel;
diff --git a/fb/Makefile.am b/fb/Makefile.am
index 3994269..64e49f3 100644
--- a/fb/Makefile.am
+++ b/fb/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = \
 AM_CFLAGS = $(DIX_CFLAGS)
 
 if XORG
-sdk_HEADERS = fb.h fbrop.h fboverlay.h wfbrename.h
+sdk_HEADERS = fb.h fbrop.h fboverlay.h wfbrename.h fbpict.h
 endif
 
 libfb_la_CFLAGS = $(AM_CFLAGS)
diff --git a/fb/fb.h b/fb/fb.h
index 9c39595..292dc42 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -167,9 +167,9 @@ typedef int		    FbStride;
 
 
 #ifdef FB_DEBUG
-extern void fbValidateDrawable(DrawablePtr d);
-extern void fbInitializeDrawable(DrawablePtr d);
-extern void fbSetBits (FbStip *bits, int stride, FbStip data);
+extern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
+extern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
+extern _X_EXPORT void fbSetBits (FbStip *bits, int stride, FbStip data);
 #define FB_HEAD_BITS   (FbStip) (0xbaadf00d)
 #define FB_TAIL_BITS   (FbStip) (0xbaddf0ad)
 #else
@@ -595,10 +595,10 @@ extern void fbSetBits (FbStip *bits, int stride, FbStip data);
     }							    \
 }
 
-extern DevPrivateKey fbGetGCPrivateKey(void);
-extern DevPrivateKey fbGetWinPrivateKey(void);
-extern const GCOps	fbGCOps;
-extern const GCFuncs	fbGCFuncs;
+extern _X_EXPORT DevPrivateKey fbGetGCPrivateKey(void);
+extern _X_EXPORT DevPrivateKey fbGetWinPrivateKey(void);
+extern _X_EXPORT const GCOps	fbGCOps;
+extern _X_EXPORT const GCFuncs	fbGCFuncs;
 
 #ifdef FB_24_32BIT
 #define FB_SCREEN_PRIVATE
@@ -631,7 +631,7 @@ typedef void (*FinishWrapProcPtr)(DrawablePtr pDraw);
 
 
 #ifdef FB_SCREEN_PRIVATE
-extern DevPrivateKey fbGetScreenPrivateKey(void);
+extern _X_EXPORT DevPrivateKey fbGetScreenPrivateKey(void);
 
 /* private field of a screen */
 typedef struct {
@@ -749,7 +749,7 @@ typedef struct {
 /*
  * fb24_32.c
  */
-void
+extern _X_EXPORT void
 fb24_32GetSpans(DrawablePtr	pDrawable, 
 		int		wMax, 
 		DDXPointPtr	ppt, 
@@ -757,7 +757,7 @@ fb24_32GetSpans(DrawablePtr	pDrawable,
 		int		nspans, 
 		char		*pchardstStart);
 
-void
+extern _X_EXPORT void
 fb24_32SetSpans (DrawablePtr	    pDrawable,
 		 GCPtr		    pGC,
 		 char		    *src,
@@ -766,7 +766,7 @@ fb24_32SetSpans (DrawablePtr	    pDrawable,
 		 int		    nspans,
 		 int		    fSorted);
 
-void
+extern _X_EXPORT void
 fb24_32PutZImage (DrawablePtr	pDrawable,
 		  RegionPtr	pClip,
 		  int		alu,
@@ -778,7 +778,7 @@ fb24_32PutZImage (DrawablePtr	pDrawable,
 		  CARD8		*src,
 		  FbStride	srcStride);
     
-void
+extern _X_EXPORT void
 fb24_32GetImage (DrawablePtr     pDrawable,
 		 int             x,
 		 int             y,
@@ -788,7 +788,7 @@ fb24_32GetImage (DrawablePtr     pDrawable,
 		 unsigned long   planeMask,
 		 char            *d);
 
-void
+extern _X_EXPORT void
 fb24_32CopyMtoN (DrawablePtr pSrcDrawable,
 		 DrawablePtr pDstDrawable,
 		 GCPtr       pGC,
@@ -801,13 +801,13 @@ fb24_32CopyMtoN (DrawablePtr pSrcDrawable,
 		 Pixel       bitplane,
 		 void        *closure);
 
-PixmapPtr
+extern _X_EXPORT PixmapPtr
 fb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
     
-Bool
+extern _X_EXPORT Bool
 fb24_32CreateScreenResources(ScreenPtr pScreen);
 
-Bool
+extern _X_EXPORT Bool
 fb24_32ModifyPixmapHeader (PixmapPtr   pPixmap,
 			   int         width,
 			   int         height,
@@ -819,14 +819,14 @@ fb24_32ModifyPixmapHeader (PixmapPtr   pPixmap,
 /*
  * fballpriv.c
  */
-Bool
+extern _X_EXPORT Bool
 fbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCIndex);
     
 /*
  * fbarc.c
  */
 
-void
+extern _X_EXPORT void
 fbPolyArc (DrawablePtr	pDrawable,
 	   GCPtr	pGC,
 	   int		narcs,
@@ -836,7 +836,7 @@ fbPolyArc (DrawablePtr	pDrawable,
  * fbbits.c
  */
 
-void	
+extern _X_EXPORT void
 fbBresSolid8(DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    dashOffset,
@@ -850,7 +850,7 @@ fbBresSolid8(DrawablePtr    pDrawable,
 	     int	    e3,
 	     int	    len);
 
-void	
+extern _X_EXPORT void
 fbBresDash8 (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    dashOffset,
@@ -864,7 +864,7 @@ fbBresDash8 (DrawablePtr    pDrawable,
 	     int	    e3,
 	     int	    len);
 
-void	
+extern _X_EXPORT void
 fbDots8 (FbBits	    *dst,
 	 FbStride   dstStride,
 	 int	    dstBpp,
@@ -878,7 +878,7 @@ fbDots8 (FbBits	    *dst,
 	 FbBits	    and,
 	 FbBits	    xor);
 
-void	
+extern _X_EXPORT void
 fbArc8 (FbBits	    *dst,
 	FbStride    dstStride,
 	int	    dstBpp,
@@ -888,7 +888,7 @@ fbArc8 (FbBits	    *dst,
 	FbBits	    and,
 	FbBits	    xor);
 
-void
+extern _X_EXPORT void
 fbGlyph8 (FbBits    *dstLine,
 	  FbStride  dstStride,
 	  int	    dstBpp,
@@ -897,20 +897,20 @@ fbGlyph8 (FbBits    *dstLine,
 	  int	    height,
 	  int	    shift);
 
-void
+extern _X_EXPORT void
 fbPolyline8 (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    mode,
 	     int	    npt,
 	     DDXPointPtr    ptsOrig);
 
-void
+extern _X_EXPORT void
 fbPolySegment8 (DrawablePtr pDrawable,
 		GCPtr	    pGC,
 		int	    nseg,
 		xSegment    *pseg);
 
-void	
+extern _X_EXPORT void
 fbBresSolid16(DrawablePtr   pDrawable,
 	      GCPtr	    pGC,
 	      int	    dashOffset,
@@ -924,7 +924,7 @@ fbBresSolid16(DrawablePtr   pDrawable,
 	      int	    e3,
 	      int	    len);
 
-void	
+extern _X_EXPORT void
 fbBresDash16(DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    dashOffset,
@@ -938,7 +938,7 @@ fbBresDash16(DrawablePtr    pDrawable,
 	     int	    e3,
 	     int	    len);
 
-void	
+extern _X_EXPORT void
 fbDots16(FbBits	    *dst,
 	 FbStride   dstStride,
 	 int	    dstBpp,
@@ -952,7 +952,7 @@ fbDots16(FbBits	    *dst,
 	 FbBits	    and,
 	 FbBits	    xor);
 
-void	
+extern _X_EXPORT void
 fbArc16(FbBits	    *dst,
 	FbStride    dstStride,
 	int	    dstBpp,
@@ -962,7 +962,7 @@ fbArc16(FbBits	    *dst,
 	FbBits	    and,
 	FbBits	    xor);
 
-void
+extern _X_EXPORT void
 fbGlyph16(FbBits    *dstLine,
 	  FbStride  dstStride,
 	  int	    dstBpp,
@@ -971,21 +971,21 @@ fbGlyph16(FbBits    *dstLine,
 	  int	    height,
 	  int	    shift);
 
-void
+extern _X_EXPORT void
 fbPolyline16 (DrawablePtr   pDrawable,
 	      GCPtr	    pGC,
 	      int	    mode,
 	      int	    npt,
 	      DDXPointPtr   ptsOrig);
 
-void
+extern _X_EXPORT void
 fbPolySegment16 (DrawablePtr	pDrawable,
 		 GCPtr		pGC,
 		 int		nseg,
 		 xSegment	*pseg);
 
 
-void	
+extern _X_EXPORT void
 fbBresSolid24(DrawablePtr   pDrawable,
 	      GCPtr	    pGC,
 	      int	    dashOffset,
@@ -999,7 +999,7 @@ fbBresSolid24(DrawablePtr   pDrawable,
 	      int	    e3,
 	      int	    len);
 
-void	
+extern _X_EXPORT void
 fbBresDash24(DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    dashOffset,
@@ -1013,7 +1013,7 @@ fbBresDash24(DrawablePtr    pDrawable,
 	     int	    e3,
 	     int	    len);
 
-void	
+extern _X_EXPORT void
 fbDots24(FbBits	    *dst,
 	 FbStride   dstStride,
 	 int	    dstBpp,
@@ -1027,7 +1027,7 @@ fbDots24(FbBits	    *dst,
 	 FbBits	    and,
 	 FbBits	    xor);
 
-void	
+extern _X_EXPORT void
 fbArc24(FbBits	    *dst,
 	FbStride    dstStride,
 	int	    dstBpp,
@@ -1037,7 +1037,7 @@ fbArc24(FbBits	    *dst,
 	FbBits	    and,
 	FbBits	    xor);
 
-void
+extern _X_EXPORT void
 fbGlyph24(FbBits    *dstLine,
 	  FbStride  dstStride,
 	  int	    dstBpp,
@@ -1046,21 +1046,21 @@ fbGlyph24(FbBits    *dstLine,
 	  int	    height,
 	  int	    shift);
 
-void
+extern _X_EXPORT void
 fbPolyline24 (DrawablePtr   pDrawable,
 	      GCPtr	    pGC,
 	      int	    mode,
 	      int	    npt,
 	      DDXPointPtr   ptsOrig);
 
-void
+extern _X_EXPORT void
 fbPolySegment24 (DrawablePtr	pDrawable,
 		 GCPtr		pGC,
 		 int		nseg,
 		 xSegment	*pseg);
 
 
-void	
+extern _X_EXPORT void
 fbBresSolid32(DrawablePtr   pDrawable,
 	      GCPtr	    pGC,
 	      int	    dashOffset,
@@ -1074,7 +1074,7 @@ fbBresSolid32(DrawablePtr   pDrawable,
 	      int	    e3,
 	      int	    len);
 
-void	
+extern _X_EXPORT void
 fbBresDash32(DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    dashOffset,
@@ -1088,7 +1088,7 @@ fbBresDash32(DrawablePtr    pDrawable,
 	     int	    e3,
 	     int	    len);
 
-void	
+extern _X_EXPORT void
 fbDots32(FbBits	    *dst,
 	 FbStride   dstStride,
 	 int	    dstBpp,
@@ -1102,7 +1102,7 @@ fbDots32(FbBits	    *dst,
 	 FbBits	    and,
 	 FbBits	    xor);
 
-void	
+extern _X_EXPORT void
 fbArc32(FbBits	    *dst,
 	FbStride    dstStride,
 	int	    dstBpp,
@@ -1112,7 +1112,7 @@ fbArc32(FbBits	    *dst,
 	FbBits	    and,
 	FbBits	    xor);
 
-void
+extern _X_EXPORT void
 fbGlyph32(FbBits    *dstLine,
 	  FbStride  dstStride,
 	  int	    dstBpp,
@@ -1120,14 +1120,14 @@ fbGlyph32(FbBits    *dstLine,
 	  FbBits    fg,
 	  int	    height,
 	  int	    shift);
-void
+extern _X_EXPORT void
 fbPolyline32 (DrawablePtr   pDrawable,
 	      GCPtr	    pGC,
 	      int	    mode,
 	      int	    npt,
 	      DDXPointPtr   ptsOrig);
 
-void
+extern _X_EXPORT void
 fbPolySegment32 (DrawablePtr	pDrawable,
 		 GCPtr		pGC,
 		 int		nseg,
@@ -1136,7 +1136,7 @@ fbPolySegment32 (DrawablePtr	pDrawable,
 /*
  * fbblt.c
  */
-void
+extern _X_EXPORT void
 fbBlt (FbBits   *src, 
        FbStride	srcStride,
        int	srcX,
@@ -1155,7 +1155,7 @@ fbBlt (FbBits   *src,
        Bool	reverse,
        Bool	upsidedown);
 
-void
+extern _X_EXPORT void
 fbBlt24 (FbBits	    *srcLine,
 	 FbStride   srcStride,
 	 int	    srcX,
@@ -1173,7 +1173,7 @@ fbBlt24 (FbBits	    *srcLine,
 	 Bool	    reverse,
 	 Bool	    upsidedown);
     
-void
+extern _X_EXPORT void
 fbBltStip (FbStip   *src,
 	   FbStride srcStride,	    /* in FbStip units, not FbBits units */
 	   int	    srcX,
@@ -1192,7 +1192,7 @@ fbBltStip (FbStip   *src,
 /*
  * fbbltone.c
  */
-void
+extern _X_EXPORT void
 fbBltOne (FbStip   *src,
 	  FbStride srcStride,
 	  int	   srcX,
@@ -1210,7 +1210,7 @@ fbBltOne (FbStip   *src,
 	  FbBits   bgxor);
  
 #ifdef FB_24BIT
-void
+extern _X_EXPORT void
 fbBltOne24 (FbStip    *src,
 	  FbStride  srcStride,	    /* FbStip units per scanline */
 	  int	    srcX,	    /* bit position of source */
@@ -1228,7 +1228,7 @@ fbBltOne24 (FbStip    *src,
 	  FbBits    bgxor);
 #endif
 
-void
+extern _X_EXPORT void
 fbBltPlane (FbBits	    *src,
 	    FbStride	    srcStride,
 	    int		    srcX,
@@ -1250,47 +1250,47 @@ fbBltPlane (FbBits	    *src,
 /*
  * fbcmap.c
  */
-int
+extern _X_EXPORT int
 fbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
 
-void
+extern _X_EXPORT void
 fbInstallColormap(ColormapPtr pmap);
 
-void
+extern _X_EXPORT void
 fbUninstallColormap(ColormapPtr pmap);
 
-void
+extern _X_EXPORT void
 fbResolveColor(unsigned short	*pred, 
 	       unsigned short	*pgreen, 
 	       unsigned short	*pblue,
 	       VisualPtr	pVisual);
 
-Bool
+extern _X_EXPORT Bool
 fbInitializeColormap(ColormapPtr pmap);
 
-int
+extern _X_EXPORT int
 fbExpandDirectColors (ColormapPtr   pmap, 
 		      int	    ndef,
 		      xColorItem    *indefs,
 		      xColorItem    *outdefs);
 
-Bool
+extern _X_EXPORT Bool
 fbCreateDefColormap(ScreenPtr pScreen);
 
-void
+extern _X_EXPORT void
 fbClearVisualTypes(void);
 
-Bool
+extern _X_EXPORT Bool
 fbHasVisualTypes (int depth);
 
-Bool
+extern _X_EXPORT Bool
 fbSetVisualTypes (int depth, int visuals, int bitsPerRGB);
 
-Bool
+extern _X_EXPORT Bool
 fbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
 			  Pixel redMask, Pixel greenMask, Pixel blueMask);
 
-Bool
+extern _X_EXPORT Bool
 fbInitVisuals (VisualPtr    *visualp, 
 	       DepthPtr	    *depthp,
 	       int	    *nvisualp,
@@ -1316,7 +1316,7 @@ typedef void	(*fbCopyProc) (DrawablePtr  pSrcDrawable,
 			       Pixel	    bitplane,
 			       void	    *closure);
 
-void
+extern _X_EXPORT void
 fbCopyNtoN (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -1329,7 +1329,7 @@ fbCopyNtoN (DrawablePtr	pSrcDrawable,
 	    Pixel	bitplane,
 	    void	*closure);
 
-void
+extern _X_EXPORT void
 fbCopy1toN (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -1342,7 +1342,7 @@ fbCopy1toN (DrawablePtr	pSrcDrawable,
 	    Pixel	bitplane,
 	    void	*closure);
 
-void
+extern _X_EXPORT void
 fbCopyNto1 (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -1355,7 +1355,7 @@ fbCopyNto1 (DrawablePtr	pSrcDrawable,
 	    Pixel	bitplane,
 	    void	*closure);
 
-void
+extern _X_EXPORT void
 fbCopyRegion (DrawablePtr   pSrcDrawable,
 	      DrawablePtr   pDstDrawable,
 	      GCPtr	    pGC,
@@ -1366,7 +1366,7 @@ fbCopyRegion (DrawablePtr   pSrcDrawable,
 	      Pixel	    bitPlane,
 	      void	    *closure);
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 fbDoCopy (DrawablePtr	pSrcDrawable,
 	  DrawablePtr	pDstDrawable,
 	  GCPtr		pGC,
@@ -1380,7 +1380,7 @@ fbDoCopy (DrawablePtr	pSrcDrawable,
 	  Pixel		bitplane,
 	  void		*closure);
 	  
-RegionPtr
+extern _X_EXPORT RegionPtr
 fbCopyArea (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -1391,7 +1391,7 @@ fbCopyArea (DrawablePtr	pSrcDrawable,
 	    int		xOut, 
 	    int		yOut);
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 fbCopyPlane (DrawablePtr    pSrcDrawable,
 	     DrawablePtr    pDstDrawable,
 	     GCPtr	    pGC,
@@ -1406,7 +1406,7 @@ fbCopyPlane (DrawablePtr    pSrcDrawable,
 /*
  * fbfill.c
  */
-void
+extern _X_EXPORT void
 fbFill (DrawablePtr pDrawable,
 	GCPtr	    pGC,
 	int	    x,
@@ -1414,7 +1414,7 @@ fbFill (DrawablePtr pDrawable,
 	int	    width,
 	int	    height);
 
-void
+extern _X_EXPORT void
 fbSolidBoxClipped (DrawablePtr	pDrawable,
 		   RegionPtr	pClip,
 		   int		xa,
@@ -1427,7 +1427,7 @@ fbSolidBoxClipped (DrawablePtr	pDrawable,
 /*
  * fbfillrect.c
  */
-void
+extern _X_EXPORT void
 fbPolyFillRect(DrawablePtr  pDrawable, 
 	       GCPtr	    pGC, 
 	       int	    nrectInit,
@@ -1440,7 +1440,7 @@ fbPolyFillRect(DrawablePtr  pDrawable,
 /*
  * fbfillsp.c
  */
-void
+extern _X_EXPORT void
 fbFillSpans (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    nInit,
@@ -1453,19 +1453,19 @@ fbFillSpans (DrawablePtr    pDrawable,
  * fbgc.c
  */
 
-Bool
+extern _X_EXPORT Bool
 fbCreateGC(GCPtr pGC);
 
-void
+extern _X_EXPORT void
 fbPadPixmap (PixmapPtr pPixmap);
     
-void
+extern _X_EXPORT void
 fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
 
 /*
  * fbgetsp.c
  */
-void
+extern _X_EXPORT void
 fbGetSpans(DrawablePtr	pDrawable, 
 	   int		wMax, 
 	   DDXPointPtr	ppt, 
@@ -1477,14 +1477,14 @@ fbGetSpans(DrawablePtr	pDrawable,
  * fbglyph.c
  */
 
-Bool
+extern _X_EXPORT Bool
 fbGlyphIn (RegionPtr	pRegion,
 	   int		x,
 	   int		y,
 	   int		width,
 	   int		height);
     
-void
+extern _X_EXPORT void
 fbPolyGlyphBlt (DrawablePtr	pDrawable,
 		GCPtr		pGC,
 		int		x, 
@@ -1493,7 +1493,7 @@ fbPolyGlyphBlt (DrawablePtr	pDrawable,
 		CharInfoPtr	*ppci,
 		pointer		pglyphBase);
 
-void
+extern _X_EXPORT void
 fbImageGlyphBlt (DrawablePtr	pDrawable,
 		 GCPtr		pGC,
 		 int		x,
@@ -1506,7 +1506,7 @@ fbImageGlyphBlt (DrawablePtr	pDrawable,
  * fbimage.c
  */
 
-void
+extern _X_EXPORT void
 fbPutImage (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		depth,
@@ -1518,7 +1518,7 @@ fbPutImage (DrawablePtr	pDrawable,
 	    int		format,
 	    char	*pImage);
 
-void
+extern _X_EXPORT void
 fbPutZImage (DrawablePtr	pDrawable,
 	     RegionPtr		pClip,
 	     int		alu,
@@ -1530,7 +1530,7 @@ fbPutZImage (DrawablePtr	pDrawable,
 	     FbStip		*src,
 	     FbStride		srcStride);
 
-void
+extern _X_EXPORT void
 fbPutXYImage (DrawablePtr	pDrawable,
 	      RegionPtr		pClip,
 	      FbBits		fg,
@@ -1548,7 +1548,7 @@ fbPutXYImage (DrawablePtr	pDrawable,
 	      FbStride		srcStride,
 	      int		srcX);
 
-void
+extern _X_EXPORT void
 fbGetImage (DrawablePtr	    pDrawable,
 	    int		    x,
 	    int		    y,
@@ -1561,31 +1561,31 @@ fbGetImage (DrawablePtr	    pDrawable,
  * fbline.c
  */
 
-void
+extern _X_EXPORT void
 fbZeroLine (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		mode,
 	    int		npt,
 	    DDXPointPtr	ppt);
 
-void
+extern _X_EXPORT void
 fbZeroSegment (DrawablePtr  pDrawable,
 	       GCPtr	    pGC,
 	       int	    nseg,
 	       xSegment	    *pSegs);
 
-void
+extern _X_EXPORT void
 fbPolyLine (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		mode,
 	    int		npt,
 	    DDXPointPtr	ppt);
 
-void
+extern _X_EXPORT void
 fbFixCoordModePrevious (int npt,
 			DDXPointPtr ppt);
 
-void
+extern _X_EXPORT void
 fbPolySegment (DrawablePtr  pDrawable,
 	       GCPtr	    pGC,
 	       int	    nseg,
@@ -1597,7 +1597,7 @@ fbPolySegment (DrawablePtr  pDrawable,
  * fbpict.c
  */
 
-Bool
+extern _X_EXPORT Bool
 fbPictureInit (ScreenPtr pScreen,
 	       PictFormatPtr formats,
 	       int nformats);
@@ -1606,25 +1606,25 @@ fbPictureInit (ScreenPtr pScreen,
  * fbpixmap.c
  */
 
-PixmapPtr
+extern _X_EXPORT PixmapPtr
 fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp,
 		   unsigned usage_hint);
 
-PixmapPtr
+extern _X_EXPORT PixmapPtr
 fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth,
 		unsigned usage_hint);
 
-Bool
+extern _X_EXPORT Bool
 fbDestroyPixmap (PixmapPtr pPixmap);
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 fbPixmapToRegion(PixmapPtr pPix);
 
 /*
  * fbpoint.c
  */
 
-void
+extern _X_EXPORT void
 fbDots (FbBits	    *dstOrig,
 	FbStride    dstStride,
 	int	    dstBpp,
@@ -1638,7 +1638,7 @@ fbDots (FbBits	    *dstOrig,
 	FbBits	    andOrig,
 	FbBits	    xorOrig);
 
-void
+extern _X_EXPORT void
 fbPolyPoint (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    mode,
@@ -1648,7 +1648,7 @@ fbPolyPoint (DrawablePtr    pDrawable,
 /*
  * fbpush.c
  */
-void
+extern _X_EXPORT void
 fbPushPattern (DrawablePtr  pDrawable,
 	       GCPtr	    pGC,
 	       
@@ -1662,7 +1662,7 @@ fbPushPattern (DrawablePtr  pDrawable,
 	       int	    width,
 	       int	    height);
 
-void
+extern _X_EXPORT void
 fbPushFill (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 
@@ -1675,7 +1675,7 @@ fbPushFill (DrawablePtr	pDrawable,
 	    int		width,
 	    int		height);
 
-void
+extern _X_EXPORT void
 fbPushImage (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     
@@ -1688,7 +1688,7 @@ fbPushImage (DrawablePtr    pDrawable,
 	     int	    width,
 	     int	    height);
 
-void
+extern _X_EXPORT void
 fbPushPixels (GCPtr	    pGC,
 	      PixmapPtr	    pBitmap,
 	      DrawablePtr   pDrawable,
@@ -1702,27 +1702,27 @@ fbPushPixels (GCPtr	    pGC,
  * fbscreen.c
  */
 
-Bool
+extern _X_EXPORT Bool
 fbCloseScreen (int indx, ScreenPtr pScreen);
 
-Bool
+extern _X_EXPORT Bool
 fbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
 
-Bool
+extern _X_EXPORT Bool
 fbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
 
-void
+extern _X_EXPORT void
 fbQueryBestSize (int class, 
 		 unsigned short *width, unsigned short *height,
 		 ScreenPtr pScreen);
 
-PixmapPtr
+extern _X_EXPORT PixmapPtr
 _fbGetWindowPixmap (WindowPtr pWindow);
 
-void
+extern _X_EXPORT void
 _fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap);
 
-Bool
+extern _X_EXPORT Bool
 fbSetupScreen(ScreenPtr	pScreen, 
 	      pointer	pbits,		/* pointer to screen bitmap */
 	      int	xsize, 		/* in pixels */
@@ -1732,7 +1732,7 @@ fbSetupScreen(ScreenPtr	pScreen,
 	      int	width,		/* pixel width of frame buffer */
 	      int	bpp);		/* bits per pixel of frame buffer */
 
-Bool
+extern _X_EXPORT Bool
 wfbFinishScreenInit(ScreenPtr	pScreen,
 		    pointer	pbits,
 		    int		xsize,
@@ -1744,7 +1744,7 @@ wfbFinishScreenInit(ScreenPtr	pScreen,
 		    SetupWrapProcPtr setupWrap,
 		    FinishWrapProcPtr finishWrap);
 
-Bool
+extern _X_EXPORT Bool
 wfbScreenInit(ScreenPtr	pScreen,
 	      pointer	pbits,
 	      int	xsize,
@@ -1756,7 +1756,7 @@ wfbScreenInit(ScreenPtr	pScreen,
 	      SetupWrapProcPtr setupWrap,
 	      FinishWrapProcPtr finishWrap);
 
-Bool
+extern _X_EXPORT Bool
 fbFinishScreenInit(ScreenPtr	pScreen,
 		   pointer	pbits,
 		   int		xsize,
@@ -1766,7 +1766,7 @@ fbFinishScreenInit(ScreenPtr	pScreen,
 		   int		width,
 		   int		bpp);
 
-Bool
+extern _X_EXPORT Bool
 fbScreenInit(ScreenPtr	pScreen,
 	     pointer	pbits,
 	     int	xsize,
@@ -1792,12 +1792,12 @@ typedef void	FbBres (DrawablePtr	pDrawable,
 			int		e3,
 			int		len);
 
-FbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
+extern _X_EXPORT FbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
 /*
  * fbsetsp.c
  */
 
-void
+extern _X_EXPORT void
 fbSetSpans (DrawablePtr	    pDrawable,
 	    GCPtr	    pGC,
 	    char	    *src,
@@ -1806,11 +1806,11 @@ fbSetSpans (DrawablePtr	    pDrawable,
 	    int		    nspans,
 	    int		    fSorted);
 
-FbBres *
+extern _X_EXPORT FbBres *
 fbSelectBres (DrawablePtr   pDrawable,
 	      GCPtr	    pGC);
 
-void
+extern _X_EXPORT void
 fbBres (DrawablePtr	pDrawable,
 	GCPtr		pGC,
 	int		dashOffset,
@@ -1824,7 +1824,7 @@ fbBres (DrawablePtr	pDrawable,
 	int		e3,
 	int		len);
 
-void
+extern _X_EXPORT void
 fbSegment (DrawablePtr	pDrawable,
 	   GCPtr	pGC,
 	   int		xa,
@@ -1839,7 +1839,7 @@ fbSegment (DrawablePtr	pDrawable,
  * fbsolid.c
  */
 
-void
+extern _X_EXPORT void
 fbSolid (FbBits	    *dst,
 	 FbStride   dstStride,
 	 int	    dstX,
@@ -1852,7 +1852,7 @@ fbSolid (FbBits	    *dst,
 	 FbBits	    xor);
 
 #ifdef FB_24BIT
-void
+extern _X_EXPORT void
 fbSolid24 (FbBits   *dst,
 	   FbStride dstStride,
 	   int	    dstX,
@@ -1868,13 +1868,13 @@ fbSolid24 (FbBits   *dst,
  * fbstipple.c
  */
 
-void
+extern _X_EXPORT void
 fbTransparentSpan (FbBits   *dst,
 		   FbBits   stip,
 		   FbBits   fgxor,
 		   int	    n);
 
-void
+extern _X_EXPORT void
 fbEvenStipple (FbBits   *dst,
 	       FbStride dstStride,
 	       int	dstX,
@@ -1895,7 +1895,7 @@ fbEvenStipple (FbBits   *dst,
 	       int	xRot,
 	       int	yRot);
 
-void
+extern _X_EXPORT void
 fbOddStipple (FbBits	*dst,
 	      FbStride	dstStride,
 	      int	dstX,
@@ -1917,7 +1917,7 @@ fbOddStipple (FbBits	*dst,
 	      int	xRot,
 	      int	yRot);
 
-void
+extern _X_EXPORT void
 fbStipple (FbBits   *dst,
 	   FbStride dstStride,
 	   int	    dstX,
@@ -1944,7 +1944,7 @@ fbStipple (FbBits   *dst,
  * fbtile.c
  */
 
-void
+extern _X_EXPORT void
 fbEvenTile (FbBits	*dst,
 	    FbStride	dstStride,
 	    int		dstX,
@@ -1961,7 +1961,7 @@ fbEvenTile (FbBits	*dst,
 	    int		xRot,
 	    int		yRot);
 
-void
+extern _X_EXPORT void
 fbOddTile (FbBits	*dst,
 	   FbStride	dstStride,
 	   int		dstX,
@@ -1981,7 +1981,7 @@ fbOddTile (FbBits	*dst,
 	   int		xRot,
 	   int		yRot);
 
-void
+extern _X_EXPORT void
 fbTile (FbBits	    *dst,
 	FbStride    dstStride,
 	int	    dstX,
@@ -2004,37 +2004,37 @@ fbTile (FbBits	    *dst,
 /*
  * fbutil.c
  */
-FbBits
+extern _X_EXPORT FbBits
 fbReplicatePixel (Pixel p, int bpp);
 
-void
+extern _X_EXPORT void
 fbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp);
 
 #ifdef FB_ACCESS_WRAPPER
-extern ReadMemoryProcPtr wfbReadMemory;
-extern WriteMemoryProcPtr wfbWriteMemory;
+extern _X_EXPORT ReadMemoryProcPtr wfbReadMemory;
+extern _X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
 #endif
 
 /*
  * fbwindow.c
  */
 
-Bool
+extern _X_EXPORT Bool
 fbCreateWindow(WindowPtr pWin);
 
-Bool
+extern _X_EXPORT Bool
 fbDestroyWindow(WindowPtr pWin);
 
-Bool
+extern _X_EXPORT Bool
 fbMapWindow(WindowPtr pWindow);
 
-Bool
+extern _X_EXPORT Bool
 fbPositionWindow(WindowPtr pWin, int x, int y);
 
-Bool 
+extern _X_EXPORT Bool
 fbUnmapWindow(WindowPtr pWindow);
     
-void
+extern _X_EXPORT void
 fbCopyWindowProc (DrawablePtr	pSrcDrawable,
 		  DrawablePtr	pDstDrawable,
 		  GCPtr		pGC,
@@ -2047,23 +2047,24 @@ fbCopyWindowProc (DrawablePtr	pSrcDrawable,
 		  Pixel		bitplane,
 		  void		*closure);
 
-void 
+extern _X_EXPORT void
 fbCopyWindow(WindowPtr	    pWin, 
 	     DDXPointRec    ptOldOrg, 
 	     RegionPtr	    prgnSrc);
 
-Bool
+extern _X_EXPORT Bool
 fbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
 
-void
+extern _X_EXPORT void
 fbFillRegionSolid (DrawablePtr	pDrawable,
 		   RegionPtr	pRegion,
 		   FbBits	and,
 		   FbBits	xor);
 
-pixman_image_t *image_from_pict (PicturePtr pict,
-				 Bool       has_clip);
-void free_pixman_pict (PicturePtr, pixman_image_t *);
+extern _X_EXPORT pixman_image_t *
+image_from_pict (PicturePtr pict,
+		 Bool       has_clip);
+extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
 
 #endif /* _FB_H_ */
 
diff --git a/fb/fb24_32.c b/fb/fb24_32.c
index 0f874f0..1ebd598 100644
--- a/fb/fb24_32.c
+++ b/fb/fb24_32.c
@@ -265,7 +265,7 @@ fb24_32BltUp (CARD8	    *srcLine,
 /*
  * Spans functions; probably unused.
  */
-_X_EXPORT void
+void
 fb24_32GetSpans(DrawablePtr	pDrawable, 
 		int		wMax, 
 		DDXPointPtr	ppt, 
@@ -308,7 +308,7 @@ fb24_32GetSpans(DrawablePtr	pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fb24_32SetSpans (DrawablePtr	    pDrawable,
 		 GCPtr		    pGC,
 		 char		    *src,
@@ -374,7 +374,7 @@ fb24_32SetSpans (DrawablePtr	    pDrawable,
 /*
  * Clip and put 32bpp Z-format images to a 24bpp drawable
  */
-_X_EXPORT void
+void
 fb24_32PutZImage (DrawablePtr	pDrawable,
 		  RegionPtr	pClip,
 		  int		alu,
@@ -436,7 +436,7 @@ fb24_32PutZImage (DrawablePtr	pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fb24_32GetImage (DrawablePtr     pDrawable,
 		 int             x,
 		 int             y,
@@ -472,7 +472,7 @@ fb24_32GetImage (DrawablePtr     pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fb24_32CopyMtoN (DrawablePtr pSrcDrawable,
 		 DrawablePtr pDstDrawable,
 		 GCPtr       pGC,
@@ -531,7 +531,7 @@ fb24_32CopyMtoN (DrawablePtr pSrcDrawable,
     fbFinishAccess (pDstDrawable);
 }
 
-_X_EXPORT PixmapPtr
+PixmapPtr
 fb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel)
 {
     ScreenPtr	pScreen = pOldTile->drawable.pScreen;
@@ -583,7 +583,7 @@ typedef struct {
     int width;   
 } miScreenInitParmsRec, *miScreenInitParmsPtr;
 
-_X_EXPORT Bool
+Bool
 fb24_32CreateScreenResources(ScreenPtr pScreen)
 {
     miScreenInitParmsPtr pScrInitParms;
@@ -604,7 +604,7 @@ fb24_32CreateScreenResources(ScreenPtr pScreen)
     return retval;
 }
 
-_X_EXPORT Bool
+Bool
 fb24_32ModifyPixmapHeader (PixmapPtr   pPixmap,
 			   int         width,
 			   int         height,
diff --git a/fb/fballpriv.c b/fb/fballpriv.c
index 4296006..c40796c 100644
--- a/fb/fballpriv.c
+++ b/fb/fballpriv.c
@@ -29,7 +29,7 @@
 #ifdef FB_SCREEN_PRIVATE
 static int fbScreenPrivateKeyIndex;
 static DevPrivateKey fbScreenPrivateKey = &fbScreenPrivateKeyIndex;
-_X_EXPORT DevPrivateKey fbGetScreenPrivateKey(void)
+DevPrivateKey fbGetScreenPrivateKey(void)
 {
     return fbScreenPrivateKey;
 }
@@ -37,19 +37,19 @@ _X_EXPORT DevPrivateKey fbGetScreenPrivateKey(void)
 
 static int fbGCPrivateKeyIndex;
 static DevPrivateKey fbGCPrivateKey = &fbGCPrivateKeyIndex;
-_X_EXPORT DevPrivateKey fbGetGCPrivateKey(void)
+DevPrivateKey fbGetGCPrivateKey(void)
 {
     return fbGCPrivateKey;
 }
 
 static int fbWinPrivateKeyIndex;
 static DevPrivateKey fbWinPrivateKey = &fbWinPrivateKeyIndex;
-_X_EXPORT DevPrivateKey fbGetWinPrivateKey(void)
+DevPrivateKey fbGetWinPrivateKey(void)
 {
     return fbWinPrivateKey;
 }
 
-_X_EXPORT Bool
+Bool
 fbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCKey)
 {
     if (pGCKey)
@@ -71,6 +71,6 @@ fbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCKey)
 }
 
 #ifdef FB_ACCESS_WRAPPER
-_X_EXPORT ReadMemoryProcPtr wfbReadMemory;
-_X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
+ReadMemoryProcPtr wfbReadMemory;
+WriteMemoryProcPtr wfbWriteMemory;
 #endif
diff --git a/fb/fbarc.c b/fb/fbarc.c
index 2597368..3a8a2c5 100644
--- a/fb/fbarc.c
+++ b/fb/fbarc.c
@@ -37,7 +37,7 @@ typedef void	(*FbArc) (FbBits    *dst,
 			  FbBits    and, 
 			  FbBits    xor);
 
-_X_EXPORT void
+void
 fbPolyArc (DrawablePtr	pDrawable,
 	   GCPtr	pGC,
 	   int		narcs,
diff --git a/fb/fbbits.h b/fb/fbbits.h
index 8733be8..44991f1 100644
--- a/fb/fbbits.h
+++ b/fb/fbbits.h
@@ -67,7 +67,7 @@
  */
 
 #ifdef BRESSOLID
-_X_EXPORT void
+void
 BRESSOLID (DrawablePtr	pDrawable,
 	   GCPtr	pGC,
 	   int		dashOffset,
@@ -123,7 +123,7 @@ BRESSOLID (DrawablePtr	pDrawable,
 #endif
 
 #ifdef BRESDASH
-_X_EXPORT void
+void
 BRESDASH (DrawablePtr	pDrawable,
 	  GCPtr		pGC,
 	  int		dashOffset,
@@ -269,7 +269,7 @@ onOffOdd:
 #endif
 
 #ifdef DOTS
-_X_EXPORT void
+void
 DOTS (FbBits	    *dst,
       FbStride	    dstStride,
       int	    dstBpp,
@@ -329,7 +329,7 @@ DOTS (FbBits	    *dst,
 #define ARCCOPY(d)  STORE(d,xorBits)
 #define ARCRROP(d)  RROP(d,andBits,xorBits)
 
-_X_EXPORT void
+void
 ARC (FbBits	*dst,
      FbStride	dstStride,
      int	dstBpp,
@@ -557,7 +557,7 @@ ARC (FbBits	*dst,
 # define WRITE4(d,n,fg)	    (WRITE2(d,n,fg), WRITE2(d,(n)+2,fg))
 #endif
 
-_X_EXPORT void
+void
 GLYPH (FbBits	*dstBits,
    FbStride	dstStride,
    int	dstBpp,
@@ -659,7 +659,7 @@ GLYPH (FbBits	*dstBits,
 #endif
 
 #ifdef POLYLINE
-_X_EXPORT void
+void
 POLYLINE (DrawablePtr	pDrawable,
 	  GCPtr		pGC,
 	  int		mode,
@@ -797,7 +797,7 @@ POLYLINE (DrawablePtr	pDrawable,
 #endif
 
 #ifdef POLYSEGMENT
-_X_EXPORT void
+void
 POLYSEGMENT (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    nseg,
diff --git a/fb/fbblt.c b/fb/fbblt.c
index 6c9d50c..38271c0 100644
--- a/fb/fbblt.c
+++ b/fb/fbblt.c
@@ -39,7 +39,7 @@
     } \
 }
 
-_X_EXPORT void
+void
 fbBlt (FbBits   *srcLine,
        FbStride	srcStride,
        int	srcX,
@@ -568,7 +568,7 @@ fbBlt24Line (FbBits	    *src,
 #endif
 }
 
-_X_EXPORT void
+void
 fbBlt24 (FbBits	    *srcLine,
 	 FbStride   srcStride,
 	 int	    srcX,
@@ -873,7 +873,7 @@ fbSetBltOdd (FbStip	*stip,
 }
 #endif
 
-_X_EXPORT void
+void
 fbBltStip (FbStip   *src,
 	   FbStride srcStride,	    /* in FbStip units, not FbBits units */
 	   int	    srcX,
diff --git a/fb/fbbltone.c b/fb/fbbltone.c
index ec9300f..ffe6977 100644
--- a/fb/fbbltone.c
+++ b/fb/fbbltone.c
@@ -78,7 +78,7 @@
 #endif
 							   
 #if FB_SHIFT == 6
-_X_EXPORT CARD8	fb8Lane[256] = {
+CARD8	fb8Lane[256] = {
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
@@ -95,33 +95,33 @@ _X_EXPORT CARD8	fb8Lane[256] = {
 242, 243, 244,245,246,247,248,249,250,251,252,253,254,255,
 };
 
-_X_EXPORT CARD8	fb16Lane[256] = {
+CARD8	fb16Lane[256] = {
     0x00, 0x03, 0x0c, 0x0f,
     0x30, 0x33, 0x3c, 0x3f,
     0xc0, 0xc3, 0xcc, 0xcf,
     0xf0, 0xf3, 0xfc, 0xff,
 };
 
-_X_EXPORT CARD8	fb32Lane[16] = {
+CARD8	fb32Lane[16] = {
     0x00, 0x0f, 0xf0, 0xff,
 };
 #endif
 
 #if FB_SHIFT == 5
-_X_EXPORT CARD8	fb8Lane[16] = {
+CARD8	fb8Lane[16] = {
     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
 };
 
-_X_EXPORT CARD8	fb16Lane[16] = {
+CARD8	fb16Lane[16] = {
     0, 3, 12, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
 };
 
-_X_EXPORT CARD8	fb32Lane[16] = {
+CARD8	fb32Lane[16] = {
     0, 15,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 };
 #endif
 
-_X_EXPORT CARD8	*fbLaneTable[33] = {
+CARD8	*fbLaneTable[33] = {
     0, 0, 0, 0, 0, 0, 0, 0,
     fb8Lane,  0, 0, 0, 0, 0, 0, 0, 
     fb16Lane, 0, 0, 0, 0, 0, 0, 0,
@@ -130,7 +130,7 @@ _X_EXPORT CARD8	*fbLaneTable[33] = {
 };
 #endif
 
-_X_EXPORT void
+void
 fbBltOne (FbStip    *src,
 	  FbStride  srcStride,	    /* FbStip units per scanline */
 	  int	    srcX,	    /* bit position of source */
@@ -457,7 +457,7 @@ fbBltOne (FbStip    *src,
 #define FbStip24New(rot)    (2 + (rot != 0))
 #define FbStip24Len	    4
 
-_X_EXPORT const FbBits	fbStipple24Bits[3][1 << FbStip24Len] = {
+const FbBits	fbStipple24Bits[3][1 << FbStip24Len] = {
     /* rotate 0 */
     {
 	C4_24( 0, 0), C4_24( 1, 0), C4_24( 2, 0), C4_24( 3, 0),
@@ -569,7 +569,7 @@ const FbBits	fbStipple24Bits[3][1 << FbStip24Len] = {
  * have no acceleration so this code is used for stipples, copyplane
  * and text
  */
-_X_EXPORT void
+void
 fbBltOne24 (FbStip	*srcLine,
 	    FbStride	srcStride,  /* FbStip units per scanline */
 	    int		srcX,	    /* bit position of source */
@@ -754,7 +754,7 @@ fbBltOne24 (FbStip	*srcLine,
  * from an N bit image to a 1 bit image
  */
  
-_X_EXPORT void
+void
 fbBltPlane (FbBits	    *src,
 	    FbStride	    srcStride,
 	    int		    srcX,
diff --git a/fb/fbcmap.c b/fb/fbcmap.c
index c01e379..c29a513 100644
--- a/fb/fbcmap.c
+++ b/fb/fbcmap.c
@@ -47,7 +47,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ColormapPtr FbInstalledMaps[MAXSCREENS];
 
-_X_EXPORT int
+int
 fbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
 {
     /* By the time we are processing requests, we can guarantee that there
@@ -57,7 +57,7 @@ fbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
 }
 
 
-_X_EXPORT void
+void
 fbInstallColormap(ColormapPtr pmap)
 {
     int index = pmap->pScreen->myNum;
@@ -75,7 +75,7 @@ fbInstallColormap(ColormapPtr pmap)
     }
 }
 
-_X_EXPORT void
+void
 fbUninstallColormap(ColormapPtr pmap)
 {
     int index = pmap->pScreen->myNum;
@@ -92,7 +92,7 @@ fbUninstallColormap(ColormapPtr pmap)
     }
 }
 
-_X_EXPORT void
+void
 fbResolveColor(unsigned short	*pred, 
 	       unsigned short	*pgreen, 
 	       unsigned short	*pblue,
@@ -116,7 +116,7 @@ fbResolveColor(unsigned short	*pred,
     }
 }
 
-_X_EXPORT Bool
+Bool
 fbInitializeColormap(ColormapPtr pmap)
 {
     register unsigned i;
@@ -216,7 +216,7 @@ fbInitializeColormap(ColormapPtr pmap)
     outdefs[i].blue = pmap->blue[blue >> pVisual->offsetBlue].co.local.blue; \
 }
 
-_X_EXPORT int
+int
 fbExpandDirectColors (ColormapPtr   pmap, 
 		      int	    ndef,
 		      xColorItem    *indefs,
@@ -278,7 +278,7 @@ fbExpandDirectColors (ColormapPtr   pmap,
     return nresult;
 }
 
-_X_EXPORT Bool
+Bool
 fbCreateDefColormap(ScreenPtr pScreen)
 {
     unsigned short	zero = 0, ones = 0xFFFF;
@@ -387,7 +387,7 @@ maskShift (Pixel p)
     return s;
 }
 
-_X_EXPORT Bool
+Bool
 fbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
 			  Pixel redMask, Pixel greenMask, Pixel blueMask)
 {
@@ -415,7 +415,7 @@ fbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbHasVisualTypes (int depth)
 {
     fbVisualsPtr    v;
@@ -426,7 +426,7 @@ fbHasVisualTypes (int depth)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 fbSetVisualTypes (int depth, int visuals, int bitsPerRGB)
 {
     return fbSetVisualTypesAndMasks (depth, visuals, bitsPerRGB,
@@ -439,7 +439,7 @@ fbSetVisualTypes (int depth, int visuals, int bitsPerRGB)
  * the set which can be used with this version of fb.
  */
 
-_X_EXPORT Bool
+Bool
 fbInitVisuals (VisualPtr    *visualp, 
 	       DepthPtr	    *depthp,
 	       int	    *nvisualp,
diff --git a/fb/fbcmap_mi.c b/fb/fbcmap_mi.c
index 269a555..188decd 100644
--- a/fb/fbcmap_mi.c
+++ b/fb/fbcmap_mi.c
@@ -49,19 +49,19 @@ fbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
     return miListInstalledColormaps(pScreen, pmaps);
 }
 
-_X_EXPORT void
+void
 fbInstallColormap(ColormapPtr pmap)
 {
     miInstallColormap(pmap);
 }
 
-_X_EXPORT void
+void
 fbUninstallColormap(ColormapPtr pmap)
 {
     miUninstallColormap(pmap);
 }
 
-_X_EXPORT void
+void
 fbResolveColor(unsigned short   *pred,
 	       unsigned short   *pgreen,
 	       unsigned short   *pblue,
@@ -70,7 +70,7 @@ fbResolveColor(unsigned short   *pred,
     miResolveColor(pred, pgreen, pblue, pVisual);
 }
 
-_X_EXPORT Bool
+Bool
 fbInitializeColormap(ColormapPtr pmap)
 {
     return miInitializeColormap(pmap);
@@ -85,25 +85,25 @@ fbExpandDirectColors (ColormapPtr   pmap,
     return miExpandDirectColors(pmap, ndef, indefs, outdefs);
 }
 
-_X_EXPORT Bool
+Bool
 fbCreateDefColormap(ScreenPtr pScreen)
 {
     return miCreateDefColormap(pScreen);
 }
 
-_X_EXPORT void
+void
 fbClearVisualTypes(void)
 {
     miClearVisualTypes();
 }
 
-_X_EXPORT Bool
+Bool
 fbSetVisualTypes (int depth, int visuals, int bitsPerRGB)
 {
     return miSetVisualTypes(depth, visuals, bitsPerRGB, -1);
 }
 
-_X_EXPORT Bool
+Bool
 fbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
                           Pixel redMask, Pixel greenMask, Pixel blueMask)
 {
@@ -116,7 +116,7 @@ fbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
  * of visuals and depths for the screen which coorespond to
  * the set which can be used with this version of fb.
  */
-_X_EXPORT Bool
+Bool
 fbInitVisuals (VisualPtr    *visualp, 
 	       DepthPtr	    *depthp,
 	       int	    *nvisualp,
diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 084fada..b8b0b6a 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -28,7 +28,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbCopyNtoN (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -100,7 +100,7 @@ fbCopyNtoN (DrawablePtr	pSrcDrawable,
     fbFinishAccess (pSrcDrawable);
 }
 
-_X_EXPORT void
+void
 fbCopy1toN (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -173,7 +173,7 @@ fbCopy1toN (DrawablePtr	pSrcDrawable,
     fbFinishAccess (pSrcDrawable);
 }
 
-_X_EXPORT void
+void
 fbCopyNto1 (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -289,7 +289,7 @@ fbCopyNto1 (DrawablePtr	pSrcDrawable,
     }
 }
 
-_X_EXPORT void
+void
 fbCopyRegion (DrawablePtr   pSrcDrawable,
 	      DrawablePtr   pDstDrawable,
 	      GCPtr	    pGC,
@@ -407,7 +407,7 @@ fbCopyRegion (DrawablePtr   pSrcDrawable,
 	xfree (pboxNew2);
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 fbDoCopy (DrawablePtr	pSrcDrawable,
 	  DrawablePtr	pDstDrawable,
 	  GCPtr		pGC,
@@ -612,7 +612,7 @@ fbDoCopy (DrawablePtr	pSrcDrawable,
     return prgnExposed;
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 fbCopyArea (DrawablePtr	pSrcDrawable,
 	    DrawablePtr	pDstDrawable,
 	    GCPtr	pGC,
@@ -635,7 +635,7 @@ fbCopyArea (DrawablePtr	pSrcDrawable,
 		     widthSrc, heightSrc, xOut, yOut, copy, 0, 0);
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 fbCopyPlane (DrawablePtr    pSrcDrawable,
 	     DrawablePtr    pDstDrawable,
 	     GCPtr	    pGC,
diff --git a/fb/fbfill.c b/fb/fbfill.c
index f31d1bb..831b1ce 100644
--- a/fb/fbfill.c
+++ b/fb/fbfill.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbFill (DrawablePtr pDrawable,
 	GCPtr	    pGC,
 	int	    x,
@@ -165,7 +165,7 @@ fbFill (DrawablePtr pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fbSolidBoxClipped (DrawablePtr	pDrawable,
 		   RegionPtr	pClip,
 		   int		x1,
diff --git a/fb/fbfillrect.c b/fb/fbfillrect.c
index a22e648..4e4edb3 100644
--- a/fb/fbfillrect.c
+++ b/fb/fbfillrect.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbPolyFillRect(DrawablePtr  pDrawable, 
 	       GCPtr	    pGC, 
 	       int	    nrect,
diff --git a/fb/fbfillsp.c b/fb/fbfillsp.c
index 60a7075..5d21472 100644
--- a/fb/fbfillsp.c
+++ b/fb/fbfillsp.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbFillSpans (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    n,
diff --git a/fb/fbgc.c b/fb/fbgc.c
index d638f16..fda391b 100644
--- a/fb/fbgc.c
+++ b/fb/fbgc.c
@@ -28,7 +28,7 @@
 
 #include "fb.h"
 
-_X_EXPORT const GCFuncs fbGCFuncs = {
+const GCFuncs fbGCFuncs = {
     fbValidateGC,
     miChangeGC,
     miCopyGC,
@@ -38,7 +38,7 @@ _X_EXPORT const GCFuncs fbGCFuncs = {
     miCopyClip,
 };
 
-_X_EXPORT const GCOps	fbGCOps = {
+const GCOps	fbGCOps = {
     fbFillSpans,
     fbSetSpans,
     fbPutImage,
@@ -61,7 +61,7 @@ _X_EXPORT const GCOps	fbGCOps = {
     fbPushPixels
 };
 
-_X_EXPORT Bool
+Bool
 fbCreateGC(GCPtr pGC)
 {
     pGC->clientClip = NULL;
@@ -84,7 +84,7 @@ fbCreateGC(GCPtr pGC)
 /*
  * Pad pixmap to FB_UNIT bits wide
  */
-_X_EXPORT void
+void
 fbPadPixmap (PixmapPtr pPixmap)
 {
     int	    width;
@@ -193,7 +193,7 @@ fbCanEvenStipple (PixmapPtr pStipple, int bpp)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
 {
     FbGCPrivPtr	pPriv = fbGetGCPrivate(pGC);
diff --git a/fb/fbgetsp.c b/fb/fbgetsp.c
index b939d69..6402c6c 100644
--- a/fb/fbgetsp.c
+++ b/fb/fbgetsp.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbGetSpans(DrawablePtr	pDrawable, 
 	   int		wMax, 
 	   DDXPointPtr	ppt, 
diff --git a/fb/fbglyph.c b/fb/fbglyph.c
index 9ea907d..2c19b74 100644
--- a/fb/fbglyph.c
+++ b/fb/fbglyph.c
@@ -31,7 +31,7 @@
 
 #define dummyScreen screenInfo.screens[0]
       
-_X_EXPORT Bool
+Bool
 fbGlyphIn (RegionPtr	pRegion,
 	   int		x,
 	   int		y,
@@ -129,7 +129,7 @@ fbGlyphIn (RegionPtr	pRegion,
 #define CASE(a,b,c,d)	(a | (b << 1) | (c << 2) | (d << 3))
 #endif
 
-_X_EXPORT void
+void
 fbGlyph24 (FbBits   *dstBits,
 	   FbStride dstStride,
 	   int	    dstBpp,
@@ -253,7 +253,7 @@ fbGlyph24 (FbBits   *dstBits,
 #endif
 #endif
 
-_X_EXPORT void
+void
 fbPolyGlyphBlt (DrawablePtr	pDrawable,
 		GCPtr		pGC,
 		int		x, 
@@ -343,7 +343,7 @@ fbPolyGlyphBlt (DrawablePtr	pDrawable,
 }
 
 
-_X_EXPORT void
+void
 fbImageGlyphBlt (DrawablePtr	pDrawable,
 		 GCPtr		pGC,
 		 int		x, 
diff --git a/fb/fbimage.c b/fb/fbimage.c
index 030a6a4..2b9ac27 100644
--- a/fb/fbimage.c
+++ b/fb/fbimage.c
@@ -28,7 +28,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbPutImage (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		depth,
@@ -112,7 +112,7 @@ fbPutImage (DrawablePtr	pDrawable,
     }
 }
 
-_X_EXPORT void
+void
 fbPutZImage (DrawablePtr	pDrawable,
 	     RegionPtr		pClip,
 	     int		alu,
@@ -172,7 +172,7 @@ fbPutZImage (DrawablePtr	pDrawable,
     fbFinishAccess (pDrawable);
 }
 	     
-_X_EXPORT void
+void
 fbPutXYImage (DrawablePtr	pDrawable,
 	      RegionPtr		pClip,
 	      FbBits		fg,
@@ -281,7 +281,7 @@ fbPutXYImage (DrawablePtr	pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fbGetImage (DrawablePtr	    pDrawable,
 	    int		    x,
 	    int		    y,
diff --git a/fb/fbline.c b/fb/fbline.c
index eddb6d5..2cee123 100644
--- a/fb/fbline.c
+++ b/fb/fbline.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbZeroLine (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		mode,
@@ -61,7 +61,7 @@ fbZeroLine (DrawablePtr	pDrawable,
     }
 }
 
-_X_EXPORT void
+void
 fbZeroSegment (DrawablePtr  pDrawable,
 	       GCPtr	    pGC,
 	       int	    nseg,
@@ -85,7 +85,7 @@ fbZeroSegment (DrawablePtr  pDrawable,
     }
 }
 
-_X_EXPORT void
+void
 fbFixCoordModePrevious (int	    npt,
 			DDXPointPtr ppt)
 {
@@ -102,7 +102,7 @@ fbFixCoordModePrevious (int	    npt,
     }
 }
 
-_X_EXPORT void
+void
 fbPolyLine (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		mode,
@@ -140,7 +140,7 @@ fbPolyLine (DrawablePtr	pDrawable,
     (*line) (pDrawable, pGC, mode, npt, ppt);
 }
 
-_X_EXPORT void
+void
 fbPolySegment (DrawablePtr  pDrawable,
 	       GCPtr	    pGC,
 	       int	    nseg,
diff --git a/fb/fboverlay.c b/fb/fboverlay.c
index cbfaace..1432cb6 100644
--- a/fb/fboverlay.c
+++ b/fb/fboverlay.c
@@ -36,7 +36,7 @@
 static int fbOverlayScreenPrivateKeyIndex;
 static DevPrivateKey fbOverlayScreenPrivateKey = &fbOverlayScreenPrivateKeyIndex;
 
-_X_EXPORT DevPrivateKey fbOverlayGetScreenPrivateKey(void)
+DevPrivateKey fbOverlayGetScreenPrivateKey(void)
 {
     return fbOverlayScreenPrivateKey;
 }
@@ -45,7 +45,7 @@ _X_EXPORT DevPrivateKey fbOverlayGetScreenPrivateKey(void)
  * Replace this if you want something supporting
  * multiple overlays with the same depth
  */
-_X_EXPORT Bool
+Bool
 fbOverlayCreateWindow(WindowPtr pWin)
 {
     FbOverlayScrPrivPtr	pScrPriv = fbOverlayGetScrPriv(pWin->drawable.pScreen);
@@ -84,7 +84,7 @@ fbOverlayCreateWindow(WindowPtr pWin)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 fbOverlayCloseScreen (int iScreen, ScreenPtr pScreen)
 {
     FbOverlayScrPrivPtr	pScrPriv = fbOverlayGetScrPriv(pScreen);
@@ -101,7 +101,7 @@ fbOverlayCloseScreen (int iScreen, ScreenPtr pScreen)
 /*
  * Return layer containing this window
  */
-_X_EXPORT int
+int
 fbOverlayWindowLayer(WindowPtr pWin)
 {
     FbOverlayScrPrivPtr pScrPriv = fbOverlayGetScrPriv(pWin->drawable.pScreen);
@@ -114,7 +114,7 @@ fbOverlayWindowLayer(WindowPtr pWin)
     return 0;
 }
 
-_X_EXPORT Bool
+Bool
 fbOverlayCreateScreenResources(ScreenPtr pScreen)
 {
     int			i;
@@ -153,7 +153,7 @@ fbOverlayCreateScreenResources(ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 fbOverlayPaintKey (DrawablePtr	pDrawable,
 		   RegionPtr	pRegion,
 		   CARD32	pixel,
@@ -166,7 +166,7 @@ fbOverlayPaintKey (DrawablePtr	pDrawable,
 /*
  * Track visible region for each layer
  */
-_X_EXPORT void
+void
 fbOverlayUpdateLayerRegion (ScreenPtr	pScreen,
 			    int		layer,
 			    RegionPtr	prgn)
@@ -213,7 +213,7 @@ fbOverlayUpdateLayerRegion (ScreenPtr	pScreen,
 /*
  * Copy only areas in each layer containing real bits
  */
-_X_EXPORT void
+void
 fbOverlayCopyWindow(WindowPtr	pWin,
 		    DDXPointRec	ptOldOrg,
 		    RegionPtr	prgnSrc)
@@ -267,7 +267,7 @@ fbOverlayCopyWindow(WindowPtr	pWin,
     REGION_UNINIT(pScreen, &rgnDst);
 }   
 
-_X_EXPORT void
+void
 fbOverlayWindowExposures (WindowPtr	pWin,
 			  RegionPtr	prgn,
 			  RegionPtr	other_exposed)
@@ -278,7 +278,7 @@ fbOverlayWindowExposures (WindowPtr	pWin,
     miWindowExposures(pWin, prgn, other_exposed);
 }
 
-_X_EXPORT Bool
+Bool
 fbOverlaySetupScreen(ScreenPtr	pScreen,
 		     pointer	pbits1,
 		     pointer	pbits2,
@@ -325,7 +325,7 @@ fb24_32OverlayCreateScreenResources(ScreenPtr pScreen)
     return retval;
 }
 
-_X_EXPORT Bool
+Bool
 fbOverlayFinishScreenInit(ScreenPtr	pScreen,
 			  pointer	pbits1,
 			  pointer	pbits2,
diff --git a/fb/fboverlay.h b/fb/fboverlay.h
index f3db0bb..ed355af 100644
--- a/fb/fboverlay.h
+++ b/fb/fboverlay.h
@@ -27,7 +27,7 @@
 
 #include "privates.h"
 
-extern DevPrivateKey fbOverlayGetScreenPrivateKey(void);
+extern _X_EXPORT DevPrivateKey fbOverlayGetScreenPrivateKey(void);
 
 #ifndef FB_OVERLAY_MAX
 #define FB_OVERLAY_MAX	2
@@ -59,40 +59,40 @@ typedef struct _fbOverlayScrPriv {
 
 #define fbOverlayGetScrPriv(s) \
     dixLookupPrivate(&(s)->devPrivates, fbOverlayGetScreenPrivateKey())
-Bool
+extern _X_EXPORT Bool
 fbOverlayCreateWindow(WindowPtr pWin);
 
-Bool
+extern _X_EXPORT Bool
 fbOverlayCloseScreen (int iScreen, ScreenPtr pScreen);
 
-int
+extern _X_EXPORT int
 fbOverlayWindowLayer(WindowPtr pWin);
 
-Bool
+extern _X_EXPORT Bool
 fbOverlayCreateScreenResources(ScreenPtr pScreen);
 
-void
+extern _X_EXPORT void
 fbOverlayPaintKey (DrawablePtr	pDrawable,
 		   RegionPtr	pRegion,
 		   CARD32	pixel,
 		   int		layer);
-void
+extern _X_EXPORT void
 fbOverlayUpdateLayerRegion (ScreenPtr	pScreen,
 			    int		layer,
 			    RegionPtr	prgn);
 
     
-void
+extern _X_EXPORT void
 fbOverlayCopyWindow(WindowPtr	pWin,
 		    DDXPointRec	ptOldOrg,
 		    RegionPtr	prgnSrc);
     
-void
+extern _X_EXPORT void
 fbOverlayWindowExposures (WindowPtr	pWin,
 			  RegionPtr	prgn,
 			  RegionPtr	other_exposed);
 
-Bool
+extern _X_EXPORT Bool
 fbOverlaySetupScreen(ScreenPtr	pScreen,
 		     pointer	pbits1,
 		     pointer	pbits2,
@@ -105,7 +105,7 @@ fbOverlaySetupScreen(ScreenPtr	pScreen,
 		     int	bpp1,
 		     int	bpp2);
 
-Bool
+extern _X_EXPORT Bool
 fbOverlayFinishScreenInit(ScreenPtr	pScreen,
 			  pointer	pbits1,
 			  pointer	pbits2,
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 5dff4e1..1355e90 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -39,7 +39,7 @@
 
 #define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b))
 
-_X_EXPORT void
+void
 fbWalkCompositeRegion (CARD8 op,
 		       PicturePtr pSrc,
 		       PicturePtr pMask,
@@ -143,7 +143,7 @@ fbWalkCompositeRegion (CARD8 op,
     REGION_UNINIT (pDst->pDrawable->pScreen, &region);
 }
 
-_X_EXPORT void
+void
 fbComposite (CARD8      op,
 	     PicturePtr pSrc,
 	     PicturePtr pMask,
@@ -192,7 +192,7 @@ fbComposite (CARD8      op,
     free_pixman_pict (pDst, dest);
 }
 
-_X_EXPORT void
+void
 fbCompositeGeneral (CARD8	op,
 		    PicturePtr	pSrc,
 		    PicturePtr	pMask,
@@ -400,7 +400,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
     pixman_image_set_source_clipping (image, TRUE);
 }
 
-_X_EXPORT pixman_image_t *
+pixman_image_t *
 image_from_pict (PicturePtr pict,
 		 Bool has_clip)
 {
@@ -440,14 +440,14 @@ image_from_pict (PicturePtr pict,
     return image;
 }
 
-_X_EXPORT void
+void
 free_pixman_pict (PicturePtr pict, pixman_image_t *image)
 {
     if (image && pixman_image_unref (image) && pict->pDrawable)
 	fbFinishAccess (pict->pDrawable);
 }
 
-_X_EXPORT Bool
+Bool
 fbPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
 {
 
diff --git a/fb/fbpict.h b/fb/fbpict.h
index b4c1dcf..0a8082e 100644
--- a/fb/fbpict.h
+++ b/fb/fbpict.h
@@ -383,7 +383,7 @@ typedef struct _FbComposeData {
     CARD16	height;
 } FbComposeData;
 
-void
+extern _X_EXPORT void
 fbCompositeRect (const FbComposeData *data, CARD32 *scanline_buffer);
 
 typedef FASTCALL void (*CombineMaskU) (CARD32 *src, const CARD32 *mask, int width);
@@ -398,7 +398,7 @@ typedef struct _FbComposeFunctions {
 
 /* fbcompose.c */
 
-void
+extern _X_EXPORT void
 fbCompositeGeneral (CARD8	op,
 		    PicturePtr	pSrc,
 		    PicturePtr	pMask,
@@ -413,7 +413,7 @@ fbCompositeGeneral (CARD8	op,
 		    CARD16	height);
 
 /* fbpict.c */
-void
+extern _X_EXPORT void
 fbComposite (CARD8      op,
 	     PicturePtr pSrc,
 	     PicturePtr pMask,
@@ -440,7 +440,7 @@ typedef void	(*CompositeFunc) (CARD8      op,
 				  CARD16     width,
 				  CARD16     height);
 
-void
+extern _X_EXPORT void
 fbWalkCompositeRegion (CARD8 op,
 		       PicturePtr pSrc,
 		       PicturePtr pMask,
@@ -459,20 +459,20 @@ fbWalkCompositeRegion (CARD8 op,
 
 /* fbtrap.c */
 
-void
+extern _X_EXPORT void
 fbAddTraps (PicturePtr	pPicture,
 	    INT16	xOff,
 	    INT16	yOff,
 	    int		ntrap,
 	    xTrap	*traps);
 
-void
+extern _X_EXPORT void
 fbRasterizeTrapezoid (PicturePtr    alpha,
 		      xTrapezoid    *trap,
 		      int	    x_off,
 		      int	    y_off);
 
-void
+extern _X_EXPORT void
 fbAddTriangles (PicturePtr  pPicture,
 		INT16	    xOff,
 		INT16	    yOff,
diff --git a/fb/fbpixmap.c b/fb/fbpixmap.c
index 96b3cf0..311da9e 100644
--- a/fb/fbpixmap.c
+++ b/fb/fbpixmap.c
@@ -28,7 +28,7 @@
 
 #include "fb.h"
 
-_X_EXPORT PixmapPtr
+PixmapPtr
 fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp,
 		   unsigned usage_hint)
 {
@@ -82,7 +82,7 @@ fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp,
     return pPixmap;
 }
 
-_X_EXPORT PixmapPtr
+PixmapPtr
 fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth,
 		unsigned usage_hint)
 {
@@ -95,7 +95,7 @@ fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth,
     return fbCreatePixmapBpp (pScreen, width, height, depth, bpp, usage_hint);
 }
 
-_X_EXPORT Bool
+Bool
 fbDestroyPixmap (PixmapPtr pPixmap)
 {
     if(--pPixmap->refcnt)
@@ -137,7 +137,7 @@ if (((rx1) < (rx2)) && ((ry1) < (ry2)) &&			\
  * Then it coalesces the current line with the previous if they have boxes
  * at the same X coordinates.
  */
-_X_EXPORT RegionPtr
+RegionPtr
 fbPixmapToRegion(PixmapPtr pPix)
 {
     register RegionPtr	pReg;
@@ -348,7 +348,7 @@ fbValidateBits (FbStip *bits, int stride, FbStip data)
     }
 }
 
-_X_EXPORT void
+void
 fbValidateDrawable (DrawablePtr pDrawable)
 {
     FbStip	*bits, *first, *last;
@@ -368,14 +368,14 @@ fbValidateDrawable (DrawablePtr pDrawable)
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fbSetBits (FbStip *bits, int stride, FbStip data)
 {
     while (stride--)
 	*bits++ = data;
 }
 
-_X_EXPORT void
+void
 fbInitializeDrawable (DrawablePtr pDrawable)
 {
     FbStip  *bits, *first, *last;
diff --git a/fb/fbpoint.c b/fb/fbpoint.c
index d6637d8..c0ea8ba 100644
--- a/fb/fbpoint.c
+++ b/fb/fbpoint.c
@@ -39,7 +39,7 @@ typedef void	(*FbDots)  (FbBits	*dst,
 			    FbBits	and,
 			    FbBits	xor);
 
-_X_EXPORT void
+void
 fbDots (FbBits	    *dstOrig,
 	FbStride    dstStride,
 	int	    dstBpp,
@@ -107,7 +107,7 @@ fbDots (FbBits	    *dstOrig,
     }
 }
 
-_X_EXPORT void
+void
 fbPolyPoint (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    mode,
diff --git a/fb/fbpush.c b/fb/fbpush.c
index 55be9b3..891572f 100644
--- a/fb/fbpush.c
+++ b/fb/fbpush.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbPushPattern (DrawablePtr  pDrawable,
 	       GCPtr	    pGC,
 	       
@@ -100,7 +100,7 @@ fbPushPattern (DrawablePtr  pDrawable,
     }
 }
 
-_X_EXPORT void
+void
 fbPushFill (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 
@@ -172,7 +172,7 @@ fbPushFill (DrawablePtr	pDrawable,
     }
 }
 	    
-_X_EXPORT void
+void
 fbPushImage (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     
@@ -223,7 +223,7 @@ fbPushImage (DrawablePtr    pDrawable,
     }
 }
 	     
-_X_EXPORT void
+void
 fbPushPixels (GCPtr	    pGC,
 	      PixmapPtr	    pBitmap,
 	      DrawablePtr   pDrawable,
diff --git a/fb/fbrop.h b/fb/fbrop.h
index 1685ee8..a01fdab 100644
--- a/fb/fbrop.h
+++ b/fb/fbrop.h
@@ -27,7 +27,7 @@ typedef struct _mergeRopBits {
     FbBits   ca1, cx1, ca2, cx2;
 } FbMergeRopRec, *FbMergeRopPtr;
 
-extern const FbMergeRopRec	FbMergeRopBits[16];
+extern _X_EXPORT const FbMergeRopRec	FbMergeRopBits[16];
 
 #define FbDeclareMergeRop() FbBits   _ca1, _cx1, _ca2, _cx2;
 #define FbDeclarePrebuiltMergeRop()	FbBits	_cca, _ccx;
@@ -95,14 +95,14 @@ extern const FbMergeRopRec	FbMergeRopBits[16];
  * Stippling operations; 
  */
 
-extern const FbBits	fbStipple16Bits[256];	/* half of table */
+extern _X_EXPORT const FbBits	fbStipple16Bits[256];	/* half of table */
 #define FbStipple16Bits(b) \
     (fbStipple16Bits[(b)&0xff] | fbStipple16Bits[(b) >> 8] << FB_HALFUNIT)
-extern const FbBits	fbStipple8Bits[256];
-extern const FbBits	fbStipple4Bits[16];
-extern const FbBits	fbStipple2Bits[4];
-extern const FbBits	fbStipple1Bits[2];
-extern const FbBits	*const fbStippleTable[];
+extern _X_EXPORT const FbBits	fbStipple8Bits[256];
+extern _X_EXPORT const FbBits	fbStipple4Bits[16];
+extern _X_EXPORT const FbBits	fbStipple2Bits[4];
+extern _X_EXPORT const FbBits	fbStipple1Bits[2];
+extern _X_EXPORT const FbBits	*const fbStippleTable[];
 
 #define FbStippleRRop(dst, b, fa, fx, ba, bx) \
     (FbDoRRop(dst, fa, fx) & b) | (FbDoRRop(dst, ba, bx) & ~b)
diff --git a/fb/fbscreen.c b/fb/fbscreen.c
index 483171c..24eadde 100644
--- a/fb/fbscreen.c
+++ b/fb/fbscreen.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT Bool
+Bool
 fbCloseScreen (int index, ScreenPtr pScreen)
 {
     int	    d;
@@ -43,19 +43,19 @@ fbCloseScreen (int index, ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbRealizeFont(ScreenPtr pScreen, FontPtr pFont)
 {
     return (TRUE);
 }
 
-_X_EXPORT Bool
+Bool
 fbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont)
 {
     return (TRUE);
 }
 
-_X_EXPORT void
+void
 fbQueryBestSize (int class, 
 		 unsigned short *width, unsigned short *height,
 		 ScreenPtr pScreen)
@@ -81,7 +81,7 @@ fbQueryBestSize (int class,
     }
 }
 
-_X_EXPORT PixmapPtr
+PixmapPtr
 _fbGetWindowPixmap (WindowPtr pWindow)
 {
     return fbGetWindowPixmap (pWindow);
@@ -93,7 +93,7 @@ _fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap)
     dixSetPrivate(&pWindow->devPrivates, fbGetWinPrivateKey(), pPixmap);
 }
 
-_X_EXPORT Bool
+Bool
 fbSetupScreen(ScreenPtr	pScreen, 
 	      pointer	pbits,		/* pointer to screen bitmap */
 	      int	xsize, 		/* in pixels */
@@ -140,7 +140,7 @@ fbSetupScreen(ScreenPtr	pScreen,
 }
 
 #ifdef FB_ACCESS_WRAPPER
-_X_EXPORT Bool
+Bool
 wfbFinishScreenInit(ScreenPtr		pScreen,
 		    pointer		pbits,
 		    int			xsize,
@@ -247,7 +247,7 @@ fbFinishScreenInit(ScreenPtr	pScreen,
 
 /* dts * (inch/dot) * (25.4 mm / inch) = mm */
 #ifdef FB_ACCESS_WRAPPER
-_X_EXPORT Bool
+Bool
 wfbScreenInit(ScreenPtr		pScreen,
 	      pointer		pbits,
 	      int		xsize,
@@ -267,7 +267,7 @@ wfbScreenInit(ScreenPtr		pScreen,
     return TRUE;
 }
 #else
-_X_EXPORT Bool
+Bool
 fbScreenInit(ScreenPtr	pScreen,
 	     pointer	pbits,
 	     int	xsize,
diff --git a/fb/fbseg.c b/fb/fbseg.c
index b260355..80ce740 100644
--- a/fb/fbseg.c
+++ b/fb/fbseg.c
@@ -33,7 +33,7 @@
 					((dir < 0) ? FbStipLeft(mask,bpp) : \
 					 FbStipRight(mask,bpp)))
 
-_X_EXPORT void
+void
 fbBresSolid (DrawablePtr    pDrawable,
 	     GCPtr	    pGC,
 	     int	    dashOffset,
@@ -117,7 +117,7 @@ fbBresSolid (DrawablePtr    pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fbBresDash (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		dashOffset,
@@ -203,7 +203,7 @@ fbBresDash (DrawablePtr	pDrawable,
     fbFinishAccess (pDrawable);
 }
 
-_X_EXPORT void
+void
 fbBresFill (DrawablePtr	pDrawable,
 	    GCPtr	pGC,
 	    int		dashOffset,
@@ -255,7 +255,7 @@ fbSetFg (DrawablePtr	pDrawable,
     }
 }
 
-_X_EXPORT void
+void
 fbBresFillDash (DrawablePtr pDrawable,
 		GCPtr	    pGC,
 		int	    dashOffset,
@@ -513,7 +513,7 @@ fbBresDash24RRop (DrawablePtr	pDrawable,
  * based on the contents of the specified GC.
  */
 
-_X_EXPORT FbBres *
+FbBres *
 fbSelectBres (DrawablePtr   pDrawable,
 	      GCPtr	    pGC)
 {
@@ -575,7 +575,7 @@ fbSelectBres (DrawablePtr   pDrawable,
     return bres;
 }
 
-_X_EXPORT void
+void
 fbBres (DrawablePtr	pDrawable,
 	GCPtr		pGC,
 	int		dashOffset,
@@ -594,7 +594,7 @@ fbBres (DrawablePtr	pDrawable,
 				      e, e1, e3, len);
 }
 
-_X_EXPORT void
+void
 fbSegment (DrawablePtr	pDrawable,
 	   GCPtr	pGC,
 	   int		x1,
diff --git a/fb/fbsetsp.c b/fb/fbsetsp.c
index f64622a..227ba4c 100644
--- a/fb/fbsetsp.c
+++ b/fb/fbsetsp.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbSetSpans (DrawablePtr	    pDrawable,
 	    GCPtr	    pGC,
 	    char	    *src,
diff --git a/fb/fbsolid.c b/fb/fbsolid.c
index cc3e728..53fcae0 100644
--- a/fb/fbsolid.c
+++ b/fb/fbsolid.c
@@ -28,7 +28,7 @@
 
 #include "fb.h"
 
-_X_EXPORT void
+void
 fbSolid (FbBits	    *dst,
 	 FbStride   dstStride,
 	 int	    dstX,
@@ -82,7 +82,7 @@ fbSolid (FbBits	    *dst,
 }
 
 #ifdef FB_24BIT
-_X_EXPORT void
+void
 fbSolid24 (FbBits   *dst,
 	   FbStride dstStride,
 	   int	    dstX,
diff --git a/fb/fbstipple.c b/fb/fbstipple.c
index 4ceab86..7d13263 100644
--- a/fb/fbstipple.c
+++ b/fb/fbstipple.c
@@ -56,7 +56,7 @@
  * Repeat a transparent stipple across a scanline n times
  */
 
-_X_EXPORT void
+void
 fbTransparentSpan (FbBits   *dst,
 		   FbBits   stip,
 		   FbBits   fgxor,
@@ -80,7 +80,7 @@ fbTransparentSpan (FbBits   *dst,
 }
 #endif
 
-_X_EXPORT void
+void
 fbEvenStipple (FbBits	*dst,
 	       FbStride	dstStride,
 	       int	dstX,
@@ -213,7 +213,7 @@ fbEvenStipple (FbBits	*dst,
     }
 }
 
-_X_EXPORT void
+void
 fbOddStipple (FbBits	*dst,
 	      FbStride	dstStride,
 	      int	dstX,
@@ -278,7 +278,7 @@ fbOddStipple (FbBits	*dst,
     }
 }
 
-_X_EXPORT void
+void
 fbStipple (FbBits	*dst,
 	   FbStride	dstStride,
 	   int		dstX,
diff --git a/fb/fbtile.c b/fb/fbtile.c
index 62d3266..05a27a1 100644
--- a/fb/fbtile.c
+++ b/fb/fbtile.c
@@ -31,7 +31,7 @@
  * than FB_UNIT
  */
 
-_X_EXPORT void
+void
 fbEvenTile (FbBits	*dst,
 	    FbStride	dstStride,
 	    int		dstX,
@@ -107,7 +107,7 @@ fbEvenTile (FbBits	*dst,
     }
 }
 	    
-_X_EXPORT void
+void
 fbOddTile(FbBits    *dst,
 	  FbStride  dstStride,
 	  int	    dstX,
@@ -172,7 +172,7 @@ fbOddTile(FbBits    *dst,
     }
 }
 
-_X_EXPORT void
+void
 fbTile (FbBits	    *dst,
 	FbStride    dstStride,
 	int	    dstX,
diff --git a/fb/fbtrap.c b/fb/fbtrap.c
index ab64701..830603a 100644
--- a/fb/fbtrap.c
+++ b/fb/fbtrap.c
@@ -33,7 +33,7 @@
 #include "renderedge.h"
 #include "fbpict.h"
 
-_X_EXPORT void
+void
 fbAddTraps (PicturePtr	pPicture,
 	    INT16	x_off,
 	    INT16	y_off,
@@ -50,7 +50,7 @@ fbAddTraps (PicturePtr	pPicture,
     free_pixman_pict (pPicture, image);
 }
 
-_X_EXPORT void
+void
 fbRasterizeTrapezoid (PicturePtr    pPicture,
 		      xTrapezoid  *trap,
 		      int	    x_off,
@@ -92,7 +92,7 @@ _Clockwise (xPointFixed *ref, xPointFixed *a, xPointFixed *b)
 }
 
 /* FIXME -- this could be made more efficient */
-_X_EXPORT void
+void
 fbAddTriangles (PicturePtr  pPicture,
 		INT16	    x_off,
 		INT16	    y_off,
diff --git a/fb/fbutil.c b/fb/fbutil.c
index db1f5a3..5e23297 100644
--- a/fb/fbutil.c
+++ b/fb/fbutil.c
@@ -26,7 +26,7 @@
 
 #include "fb.h"
 
-_X_EXPORT FbBits
+FbBits
 fbReplicatePixel (Pixel p, int bpp)
 {
     FbBits  b = p;
@@ -40,7 +40,7 @@ fbReplicatePixel (Pixel p, int bpp)
     return b;
 }
 
-_X_EXPORT void
+void
 fbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp)
 {
     FbBits	and, xor;
@@ -122,7 +122,7 @@ fbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp)
 #define O 0
 #define I FB_ALLONES
 
-_X_EXPORT const FbMergeRopRec FbMergeRopBits[16] = {
+const FbMergeRopRec FbMergeRopBits[16] = {
     { O,O,O,O },   /* clear	    0x0		0 */
     { I,O,O,O },   /* and	    0x1		src AND dst */
     { I,O,I,O },   /* andReverse    0x2		src AND NOT dst */
@@ -180,20 +180,20 @@ _X_EXPORT const FbMergeRopRec FbMergeRopBits[16] = {
 #if FB_UNIT == 16
 #define fbStipple16Bits 0
 #define fbStipple8Bits 0
-_X_EXPORT const FbBits fbStipple4Bits[16] = {
+const FbBits fbStipple4Bits[16] = {
     C4(  0,4), C4(  1,4), C4(  2,4), C4(  3,4), C4(  4,4), C4(  5,4),
     C4(  6,4), C4(  7,4), C4(  8,4), C4(  9,4), C4( 10,4), C4( 11,4),
     C4( 12,4), C4( 13,4), C4( 14,4), C4( 15,4),};
-_X_EXPORT const FbBits fbStipple2Bits[4] = {
+const FbBits fbStipple2Bits[4] = {
     C2(  0,8), C2(  1,8), C2(  2,8), C2(  3,8),
 };
-_X_EXPORT const FbBits fbStipple1Bits[2] = {
+const FbBits fbStipple1Bits[2] = {
     C1(  0,16), C1(  1,16),
 };
 #endif
 #if FB_UNIT == 32
 #define fbStipple16Bits 0
-_X_EXPORT const FbBits fbStipple8Bits[256] = {
+const FbBits fbStipple8Bits[256] = {
     C8(  0,4), C8(  1,4), C8(  2,4), C8(  3,4), C8(  4,4), C8(  5,4),
     C8(  6,4), C8(  7,4), C8(  8,4), C8(  9,4), C8( 10,4), C8( 11,4),
     C8( 12,4), C8( 13,4), C8( 14,4), C8( 15,4), C8( 16,4), C8( 17,4),
@@ -238,19 +238,19 @@ _X_EXPORT const FbBits fbStipple8Bits[256] = {
     C8(246,4), C8(247,4), C8(248,4), C8(249,4), C8(250,4), C8(251,4),
     C8(252,4), C8(253,4), C8(254,4), C8(255,4),
 };
-_X_EXPORT const FbBits fbStipple4Bits[16] = {
+const FbBits fbStipple4Bits[16] = {
     C4(  0,8), C4(  1,8), C4(  2,8), C4(  3,8), C4(  4,8), C4(  5,8),
     C4(  6,8), C4(  7,8), C4(  8,8), C4(  9,8), C4( 10,8), C4( 11,8),
     C4( 12,8), C4( 13,8), C4( 14,8), C4( 15,8),};
-_X_EXPORT const FbBits fbStipple2Bits[4] = {
+const FbBits fbStipple2Bits[4] = {
     C2(  0,16), C2(  1,16), C2(  2,16), C2(  3,16),
 };
-_X_EXPORT const FbBits fbStipple1Bits[2] = {
+const FbBits fbStipple1Bits[2] = {
     C1(  0,32), C1(  1,32),
 };
 #endif
 #if FB_UNIT == 64
-_X_EXPORT const FbBits fbStipple16Bits[256] = {
+const FbBits fbStipple16Bits[256] = {
     C8(  0,4), C8(  1,4), C8(  2,4), C8(  3,4), C8(  4,4), C8(  5,4),
     C8(  6,4), C8(  7,4), C8(  8,4), C8(  9,4), C8( 10,4), C8( 11,4),
     C8( 12,4), C8( 13,4), C8( 14,4), C8( 15,4), C8( 16,4), C8( 17,4),
@@ -295,7 +295,7 @@ _X_EXPORT const FbBits fbStipple16Bits[256] = {
     C8(246,4), C8(247,4), C8(248,4), C8(249,4), C8(250,4), C8(251,4),
     C8(252,4), C8(253,4), C8(254,4), C8(255,4),
 };
-_X_EXPORT const FbBits fbStipple8Bits[256] = {
+const FbBits fbStipple8Bits[256] = {
     C8(  0,8), C8(  1,8), C8(  2,8), C8(  3,8), C8(  4,8), C8(  5,8),
     C8(  6,8), C8(  7,8), C8(  8,8), C8(  9,8), C8( 10,8), C8( 11,8),
     C8( 12,8), C8( 13,8), C8( 14,8), C8( 15,8), C8( 16,8), C8( 17,8),
@@ -340,16 +340,16 @@ _X_EXPORT const FbBits fbStipple8Bits[256] = {
     C8(246,8), C8(247,8), C8(248,8), C8(249,8), C8(250,8), C8(251,8),
     C8(252,8), C8(253,8), C8(254,8), C8(255,8),
 };
-_X_EXPORT const FbBits fbStipple4Bits[16] = {
+const FbBits fbStipple4Bits[16] = {
     C4(  0,16), C4(  1,16), C4(  2,16), C4(  3,16), C4(  4,16), C4(  5,16),
     C4(  6,16), C4(  7,16), C4(  8,16), C4(  9,16), C4( 10,16), C4( 11,16),
     C4( 12,16), C4( 13,16), C4( 14,16), C4( 15,16),};
-_X_EXPORT const FbBits fbStipple2Bits[4] = {
+const FbBits fbStipple2Bits[4] = {
     C2(  0,32), C2(  1,32), C2(  2,32), C2(  3,32),
 };
 #define fbStipple1Bits 0
 #endif
-_X_EXPORT const FbBits	* const fbStippleTable[] = {
+const FbBits	* const fbStippleTable[] = {
     0,
     fbStipple1Bits,
     fbStipple2Bits,
diff --git a/fb/fbwindow.c b/fb/fbwindow.c
index 926ed45..022a16f 100644
--- a/fb/fbwindow.c
+++ b/fb/fbwindow.c
@@ -28,7 +28,7 @@
 
 #include "fb.h"
 
-_X_EXPORT Bool
+Bool
 fbCreateWindow(WindowPtr pWin)
 {
     dixSetPrivate(&pWin->devPrivates, fbGetWinPrivateKey(),
@@ -40,31 +40,31 @@ fbCreateWindow(WindowPtr pWin)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbDestroyWindow(WindowPtr pWin)
 {
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbMapWindow(WindowPtr pWindow)
 {
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbPositionWindow(WindowPtr pWin, int x, int y)
 {
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbUnmapWindow(WindowPtr pWindow)
 {
     return TRUE;
 }
 
-_X_EXPORT void
+void
 fbCopyWindowProc (DrawablePtr	pSrcDrawable,
 		  DrawablePtr	pDstDrawable,
 		  GCPtr		pGC,
@@ -115,7 +115,7 @@ fbCopyWindowProc (DrawablePtr	pSrcDrawable,
     fbFinishAccess (pSrcDrawable);
 }
 
-_X_EXPORT void 
+void
 fbCopyWindow(WindowPtr	    pWin, 
 	     DDXPointRec    ptOldOrg, 
 	     RegionPtr	    prgnSrc)
@@ -148,7 +148,7 @@ fbCopyWindow(WindowPtr	    pWin,
     fbValidateDrawable (&pWin->drawable);
 }
 
-_X_EXPORT Bool
+Bool
 fbChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
 {
     PixmapPtr	pPixmap;
@@ -201,7 +201,7 @@ fbChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 fbFillRegionSolid (DrawablePtr	pDrawable,
 		   RegionPtr	pRegion,
 		   FbBits	and,
diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am
index 77ab4c3..ca452c6 100644
--- a/hw/xfree86/common/Makefile.am
+++ b/hw/xfree86/common/Makefile.am
@@ -10,6 +10,10 @@ XVSOURCES = xf86xv.c xf86xvmc.c
 XVSDKINCS = xf86xv.h xf86xvmc.h
 endif
 
+if XF86VIDMODE
+XF86VMODE_SDK = vidmodeproc.h
+endif
+
 XISOURCES = xf86Xinput.c xisb.c
 XISDKINCS = xf86Xinput.h xisb.h
 RANDRSOURCES = xf86RandR.c
@@ -46,7 +50,7 @@ INCLUDES = $(XORG_INCS) -I$(srcdir)/../ddc -I$(srcdir)/../i2c \
 sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
               xf86PciInfo.h xf86Priv.h xf86Privstr.h xf86Resources.h \
               xf86cmap.h xf86fbman.h xf86str.h xf86RAC.h xf86Xinput.h xisb.h \
-              $(XVSDKINCS) xorgVersion.h \
+              $(XVSDKINCS) $(XF86VMODE_SDK) xorgVersion.h \
               xf86sbusBus.h xf86xv.h xf86xvmc.h xf86xvpriv.h
 
 DISTCLEANFILES = xf86Build.h
@@ -56,6 +60,7 @@ EXTRA_DIST = \
 	compiler.h \
 	fourcc.h \
 	scoasm.h \
+	vidmodeproc.h \
 	xf86.h \
 	xf86Bus.h \
 	xf86Config.h \
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 285d9a3..5a3d126 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -87,37 +87,37 @@
       && !(defined(__alpha__) && defined(linux)) \
       && !(defined(__ia64__) && defined(linux)) \
 
-extern void outb(unsigned short, unsigned char);
-extern void outw(unsigned short, unsigned short);
-extern void outl(unsigned short, unsigned int);
-extern unsigned int inb(unsigned short);
-extern unsigned int inw(unsigned short);
-extern unsigned int inl(unsigned short);
+extern _X_EXPORT void outb(unsigned short, unsigned char);
+extern _X_EXPORT void outw(unsigned short, unsigned short);
+extern _X_EXPORT void outl(unsigned short, unsigned int);
+extern _X_EXPORT unsigned int inb(unsigned short);
+extern _X_EXPORT unsigned int inw(unsigned short);
+extern _X_EXPORT unsigned int inl(unsigned short);
 
 #   else /* __sparc__,  __arm32__, __alpha__*/
 
-extern void outb(unsigned long, unsigned char);
-extern void outw(unsigned long, unsigned short);
-extern void outl(unsigned long, unsigned int);
-extern unsigned int inb(unsigned long);
-extern unsigned int inw(unsigned long);
-extern unsigned int inl(unsigned long);
+extern _X_EXPORT void outb(unsigned long, unsigned char);
+extern _X_EXPORT void outw(unsigned long, unsigned short);
+extern _X_EXPORT void outl(unsigned long, unsigned int);
+extern _X_EXPORT unsigned int inb(unsigned long);
+extern _X_EXPORT unsigned int inw(unsigned long);
+extern _X_EXPORT unsigned int inl(unsigned long);
 
 #   endif /* __sparc__,  __arm32__, __alpha__ */
 #  endif /* __arm__ */
 
-extern unsigned long ldq_u(unsigned long *);
-extern unsigned long ldl_u(unsigned int *);
-extern unsigned long ldw_u(unsigned short *);
-extern void stq_u(unsigned long, unsigned long *);
-extern void stl_u(unsigned long, unsigned int *);
-extern void stw_u(unsigned long, unsigned short *);
-extern void mem_barrier(void);
-extern void write_mem_barrier(void);
-extern void stl_brx(unsigned long, volatile unsigned char *, int);
-extern void stw_brx(unsigned short, volatile unsigned char *, int);
-extern unsigned long ldl_brx(volatile unsigned char *, int);
-extern unsigned short ldw_brx(volatile unsigned char *, int);
+extern _X_EXPORT unsigned long ldq_u(unsigned long *);
+extern _X_EXPORT unsigned long ldl_u(unsigned int *);
+extern _X_EXPORT unsigned long ldw_u(unsigned short *);
+extern _X_EXPORT void stq_u(unsigned long, unsigned long *);
+extern _X_EXPORT void stl_u(unsigned long, unsigned int *);
+extern _X_EXPORT void stw_u(unsigned long, unsigned short *);
+extern _X_EXPORT void mem_barrier(void);
+extern _X_EXPORT void write_mem_barrier(void);
+extern _X_EXPORT void stl_brx(unsigned long, volatile unsigned char *, int);
+extern _X_EXPORT void stw_brx(unsigned short, volatile unsigned char *, int);
+extern _X_EXPORT unsigned long ldl_brx(volatile unsigned char *, int);
+extern _X_EXPORT unsigned short ldw_brx(volatile unsigned char *, int);
 
 # endif
 
@@ -130,42 +130,42 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 /* note that the appropriate setup via "ioperm" needs to be done */
 /*  *before* any inx/outx is done. */
 
-extern void (*_alpha_outb)(char val, unsigned long port);
+extern _X_EXPORT void (*_alpha_outb)(char val, unsigned long port);
 static __inline__ void
 outb(unsigned long port, unsigned char val)
 {
     _alpha_outb(val, port);
 }
 
-extern void (*_alpha_outw)(short val, unsigned long port);
+extern _X_EXPORT void (*_alpha_outw)(short val, unsigned long port);
 static __inline__ void
 outw(unsigned long port, unsigned short val)
 {
     _alpha_outw(val, port);
 }
 
-extern void (*_alpha_outl)(int val, unsigned long port);
+extern _X_EXPORT void (*_alpha_outl)(int val, unsigned long port);
 static __inline__ void
 outl(unsigned long port, unsigned int val)
 {
     _alpha_outl(val, port);
 }
 
-extern unsigned int (*_alpha_inb)(unsigned long port);
+extern _X_EXPORT unsigned int (*_alpha_inb)(unsigned long port);
 static __inline__ unsigned int
 inb(unsigned long port)
 {
   return _alpha_inb(port);
 }
 
-extern unsigned int (*_alpha_inw)(unsigned long port);
+extern _X_EXPORT unsigned int (*_alpha_inw)(unsigned long port);
 static __inline__ unsigned int
 inw(unsigned long port)
 {
   return _alpha_inw(port);
 }
 
-extern unsigned int (*_alpha_inl)(unsigned long port);
+extern _X_EXPORT unsigned int (*_alpha_inl)(unsigned long port);
 static __inline__ unsigned int
 inl(unsigned long port)
 {
@@ -182,12 +182,12 @@ inl(unsigned long port)
 /* note that the appropriate setup via "ioperm" needs to be done */
 /*  *before* any inx/outx is done. */
 
-extern void outb(unsigned int port, unsigned char val);
-extern void outw(unsigned int port, unsigned short val);
-extern void outl(unsigned int port, unsigned int val);
-extern unsigned char inb(unsigned int port);
-extern unsigned short inw(unsigned int port);
-extern unsigned int inl(unsigned int port);
+extern _X_EXPORT void outb(unsigned int port, unsigned char val);
+extern _X_EXPORT void outw(unsigned int port, unsigned short val);
+extern _X_EXPORT void outl(unsigned int port, unsigned int val);
+extern _X_EXPORT unsigned char inb(unsigned int port);
+extern _X_EXPORT unsigned short inw(unsigned int port);
+extern _X_EXPORT unsigned int inl(unsigned int port);
 
 #    endif /* (__FreeBSD__ || __OpenBSD__ ) && !DO_PROTOTYPES */
 
@@ -458,12 +458,12 @@ __ustw (unsigned long r5, unsigned short * r11)
 #    undef inb
 #    undef inw
 #    undef inl
-extern void outb(unsigned long port, unsigned char val);
-extern void outw(unsigned long port, unsigned short val);
-extern void outl(unsigned long port, unsigned int val);
-extern unsigned int inb(unsigned long port);
-extern unsigned int inw(unsigned long port);
-extern unsigned int inl(unsigned long port);
+extern _X_EXPORT void outb(unsigned long port, unsigned char val);
+extern _X_EXPORT void outw(unsigned long port, unsigned short val);
+extern _X_EXPORT void outl(unsigned long port, unsigned int val);
+extern _X_EXPORT unsigned int inb(unsigned long port);
+extern _X_EXPORT unsigned int inw(unsigned long port);
+extern _X_EXPORT unsigned int inl(unsigned long port);
  
 #   elif defined(linux) && defined(__amd64__)
  
@@ -870,7 +870,7 @@ static __inline__ void stw_u(unsigned long val, unsigned short *p)
 #     define PORT_SIZE short
 #    endif
 
-unsigned int IOPortBase;  /* Memory mapped I/O port area */
+_X_EXPORT unsigned int IOPortBase;  /* Memory mapped I/O port area */
 
 static __inline__ void
 outb(unsigned PORT_SIZE port, unsigned char val)
@@ -1038,7 +1038,7 @@ xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
 #     define MAP_FAILED ((void *)-1)
 #    endif
 
-extern volatile unsigned char *ioBase;
+extern _X_EXPORT volatile unsigned char *ioBase;
 
 #if defined(linux) && defined(__powerpc64__)
 # include <linux/version.h>
@@ -1522,10 +1522,10 @@ inl(unsigned short port)
 
 # ifdef __alpha__
 /* entry points for Mmio memory access routines */
-extern int (*xf86ReadMmio8)(void *, unsigned long);
-extern int (*xf86ReadMmio16)(void *, unsigned long);
+extern _X_EXPORT int (*xf86ReadMmio8)(void *, unsigned long);
+extern _X_EXPORT int (*xf86ReadMmio16)(void *, unsigned long);
 #  ifndef STANDALONE_MMIO
-extern int (*xf86ReadMmio32)(void *, unsigned long);
+extern _X_EXPORT int (*xf86ReadMmio32)(void *, unsigned long);
 #  else
 /* Some DRI 3D drivers need MMIO_IN32. */
 static __inline__ int
@@ -1535,14 +1535,14 @@ xf86ReadMmio32(void *Base, unsigned long Offset)
 	return *(volatile unsigned int*)((unsigned long)Base+(Offset));
 }
 #  endif
-extern void (*xf86WriteMmio8)(int, void *, unsigned long);
-extern void (*xf86WriteMmio16)(int, void *, unsigned long);
-extern void (*xf86WriteMmio32)(int, void *, unsigned long);
-extern void (*xf86WriteMmioNB8)(int, void *, unsigned long);
-extern void (*xf86WriteMmioNB16)(int, void *, unsigned long);
-extern void (*xf86WriteMmioNB32)(int, void *, unsigned long);
-extern void xf86SlowBCopyFromBus(unsigned char *, unsigned char *, int);
-extern void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
+extern _X_EXPORT void (*xf86WriteMmio8)(int, void *, unsigned long);
+extern _X_EXPORT void (*xf86WriteMmio16)(int, void *, unsigned long);
+extern _X_EXPORT void (*xf86WriteMmio32)(int, void *, unsigned long);
+extern _X_EXPORT void (*xf86WriteMmioNB8)(int, void *, unsigned long);
+extern _X_EXPORT void (*xf86WriteMmioNB16)(int, void *, unsigned long);
+extern _X_EXPORT void (*xf86WriteMmioNB32)(int, void *, unsigned long);
+extern _X_EXPORT void xf86SlowBCopyFromBus(unsigned char *, unsigned char *, int);
+extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
 
 /* Some macros to hide the system dependencies for MMIO accesses */
 /* Changed to kill noise generated by gcc's -Wcast-align */
diff --git a/hw/xfree86/common/vidmodeproc.h b/hw/xfree86/common/vidmodeproc.h
new file mode 100644
index 0000000..da4d05e
--- /dev/null
+++ b/hw/xfree86/common/vidmodeproc.h
@@ -0,0 +1,77 @@
+
+/* Prototypes for DGA functions that the DDX must provide */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#ifndef _VIDMODEPROC_H_
+#define _VIDMODEPROC_H_
+
+
+typedef enum {
+    VIDMODE_H_DISPLAY,
+    VIDMODE_H_SYNCSTART,
+    VIDMODE_H_SYNCEND,
+    VIDMODE_H_TOTAL,
+    VIDMODE_H_SKEW,
+    VIDMODE_V_DISPLAY,
+    VIDMODE_V_SYNCSTART,
+    VIDMODE_V_SYNCEND,
+    VIDMODE_V_TOTAL,
+    VIDMODE_FLAGS,
+    VIDMODE_CLOCK
+} VidModeSelectMode;
+
+typedef enum {
+    VIDMODE_MON_VENDOR,
+    VIDMODE_MON_MODEL,
+    VIDMODE_MON_NHSYNC,
+    VIDMODE_MON_NVREFRESH,
+    VIDMODE_MON_HSYNC_LO,
+    VIDMODE_MON_HSYNC_HI,
+    VIDMODE_MON_VREFRESH_LO,
+    VIDMODE_MON_VREFRESH_HI
+} VidModeSelectMonitor;
+
+typedef union {
+  pointer ptr;
+  int i;
+  float f;
+} vidMonitorValue;
+
+extern _X_EXPORT void XFree86VidModeExtensionInit(void);
+
+extern _X_EXPORT Bool VidModeAvailable(int scrnIndex);
+extern _X_EXPORT Bool VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock);
+extern _X_EXPORT Bool VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock);
+extern _X_EXPORT Bool VidModeGetNextModeline(int scrnIndex, pointer *mode, int *dotClock);
+extern _X_EXPORT Bool VidModeDeleteModeline(int scrnIndex, pointer mode);
+extern _X_EXPORT Bool VidModeZoomViewport(int scrnIndex, int zoom);
+extern _X_EXPORT Bool VidModeGetViewPort(int scrnIndex, int *x, int *y);
+extern _X_EXPORT Bool VidModeSetViewPort(int scrnIndex, int x, int y);
+extern _X_EXPORT Bool VidModeSwitchMode(int scrnIndex, pointer mode);
+extern _X_EXPORT Bool VidModeLockZoom(int scrnIndex, Bool lock);
+extern _X_EXPORT Bool VidModeGetMonitor(int scrnIndex, pointer *monitor);
+extern _X_EXPORT int VidModeGetNumOfClocks(int scrnIndex, Bool *progClock);
+extern _X_EXPORT Bool VidModeGetClocks(int scrnIndex, int *Clocks);
+extern _X_EXPORT ModeStatus VidModeCheckModeForMonitor(int scrnIndex, pointer mode);
+extern _X_EXPORT ModeStatus VidModeCheckModeForDriver(int scrnIndex, pointer mode);
+extern _X_EXPORT void VidModeSetCrtcForMode(int scrnIndex, pointer mode);
+extern _X_EXPORT Bool VidModeAddModeline(int scrnIndex, pointer mode);
+extern _X_EXPORT int VidModeGetDotClock(int scrnIndex, int Clock);
+extern _X_EXPORT int VidModeGetNumOfModes(int scrnIndex);
+extern _X_EXPORT Bool VidModeSetGamma(int scrnIndex, float red, float green, float blue);
+extern _X_EXPORT Bool VidModeGetGamma(int scrnIndex, float *red, float *green, float *blue);
+extern _X_EXPORT pointer VidModeCreateMode(void);
+extern _X_EXPORT void VidModeCopyMode(pointer modefrom, pointer modeto);
+extern _X_EXPORT int VidModeGetModeValue(pointer mode, int valtyp);
+extern _X_EXPORT void VidModeSetModeValue(pointer mode, int valtyp, int val);
+extern _X_EXPORT vidMonitorValue VidModeGetMonitorValue(pointer monitor, int valtyp, int indx);
+extern _X_EXPORT Bool VidModeSetGammaRamp(int, int, CARD16 *, CARD16 *, CARD16 *);
+extern _X_EXPORT Bool VidModeGetGammaRamp(int, int, CARD16 *, CARD16 *, CARD16 *);
+extern _X_EXPORT int VidModeGetGammaRampSize(int scrnIndex);
+
+#endif
+
+
diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 90e8ff8..9573576 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -55,23 +55,25 @@
 #include "propertyst.h"
 
 /* General parameters */
-extern int xf86DoConfigure;
-extern int xf86DoShowOptions;
-extern Bool xf86DoModalias;
-extern Bool xf86DoConfigurePass1;
-extern DevPrivateKey xf86ScreenKey;
-extern DevPrivateKey xf86CreateRootWindowKey;
-extern DevPrivateKey xf86PixmapKey;
-extern ScrnInfoPtr *xf86Screens;	/* List of pointers to ScrnInfoRecs */
-extern const unsigned char byte_reversed[256];
-extern Bool pciSlotClaimed;
-extern Bool fbSlotClaimed;
+extern _X_EXPORT int xf86DoConfigure;
+extern _X_EXPORT int xf86DoShowOptions;
+extern _X_EXPORT Bool xf86DoModalias;
+extern _X_EXPORT Bool xf86DoConfigurePass1;
+extern _X_EXPORT DevPrivateKey xf86ScreenKey;
+extern _X_EXPORT DevPrivateKey xf86CreateRootWindowKey;
+extern _X_EXPORT DevPrivateKey xf86PixmapKey;
+extern _X_EXPORT ScrnInfoPtr *xf86Screens;	/* List of pointers to ScrnInfoRecs */
+extern _X_EXPORT const unsigned char byte_reversed[256];
+extern _X_EXPORT Bool pciSlotClaimed;
+extern _X_EXPORT Bool fbSlotClaimed;
 #if defined(__sparc__) || defined(__sparc)
-extern Bool sbusSlotClaimed;
+extern _X_EXPORT Bool sbusSlotClaimed;
 #endif
-extern confDRIRec xf86ConfigDRI;
-extern Bool xf86inSuspend;
-extern Bool xf86DRI2Enabled(void);
+extern _X_EXPORT confDRIRec xf86ConfigDRI;
+extern _X_EXPORT Bool xf86inSuspend;
+extern _X_EXPORT Bool xf86DRI2Enabled(void);
+
+extern _X_EXPORT Bool VTSwitchEnabled;	/* kbd driver */
 
 #define XF86SCRNINFO(p) ((ScrnInfoPtr)dixLookupPrivate(&(p)->devPrivates, \
 						       xf86ScreenKey))
@@ -93,282 +95,285 @@ extern Bool xf86DRI2Enabled(void);
 
 /* xf86Bus.c */
 
-Bool xf86CheckPciSlot( const struct pci_device * );
-int xf86ClaimPciSlot( struct pci_device *, DriverPtr drvp,
+extern _X_EXPORT Bool xf86CheckPciSlot( const struct pci_device * );
+extern _X_EXPORT int xf86ClaimPciSlot( struct pci_device *, DriverPtr drvp,
 		     int chipset, GDevPtr dev, Bool active);
-Bool xf86ParsePciBusString(const char *busID, int *bus, int *device,
+extern _X_EXPORT Bool xf86ParsePciBusString(const char *busID, int *bus, int *device,
 			   int *func);
-Bool xf86ComparePciBusString(const char *busID, int bus, int device, int func);
-void xf86FormatPciBusNumber(int busnum, char *buffer);
-resPtr xf86AddRangesToList(resPtr list, resRange *pRange, int entityIndex);
-int  xf86GetFbInfoForScreen(int scrnIndex);
-int xf86ClaimFbSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active);
-int xf86ClaimNoSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active);
-void xf86EnableAccess(ScrnInfoPtr pScrn);
-void xf86SetCurrentAccess(Bool Enable, ScrnInfoPtr pScrn);
-Bool xf86IsPrimaryPci(struct pci_device * pPci);
+extern _X_EXPORT Bool xf86ComparePciBusString(const char *busID, int bus, int device, int func);
+extern _X_EXPORT void xf86FormatPciBusNumber(int busnum, char *buffer);
+extern _X_EXPORT resPtr xf86AddRangesToList(resPtr list, resRange *pRange, int entityIndex);
+extern _X_EXPORT int  xf86GetFbInfoForScreen(int scrnIndex);
+extern _X_EXPORT int xf86ClaimFbSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active);
+extern _X_EXPORT int xf86ClaimNoSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active);
+extern _X_EXPORT void xf86EnableAccess(ScrnInfoPtr pScrn);
+extern _X_EXPORT void xf86SetCurrentAccess(Bool Enable, ScrnInfoPtr pScrn);
+extern _X_EXPORT Bool xf86IsPrimaryPci(struct pci_device * pPci);
 /* new RAC */
-resPtr xf86AddResToList(resPtr rlist, resRange *Range, int entityIndex);
-void xf86FreeResList(resPtr rlist);
-void xf86ClaimFixedResources(resList list, int entityIndex);
-Bool xf86DriverHasEntities(DriverPtr drvp);
-void xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex);
-void xf86SetEntityInstanceForScreen(ScrnInfoPtr pScrn, int entityIndex,
+extern _X_EXPORT resPtr xf86AddResToList(resPtr rlist, resRange *Range, int entityIndex);
+extern _X_EXPORT void xf86FreeResList(resPtr rlist);
+extern _X_EXPORT void xf86ClaimFixedResources(resList list, int entityIndex);
+extern _X_EXPORT Bool xf86DriverHasEntities(DriverPtr drvp);
+extern _X_EXPORT void xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex);
+extern _X_EXPORT void xf86SetEntityInstanceForScreen(ScrnInfoPtr pScrn, int entityIndex,
 				    int instance);
-int xf86GetNumEntityInstances(int entityIndex);
-GDevPtr xf86GetDevFromEntity(int entityIndex, int instance);
-void xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex);
-EntityInfoPtr xf86GetEntityInfo(int entityIndex);
-struct pci_device * xf86GetPciInfoForEntity(int entityIndex);
-Bool xf86SetEntityFuncs(int entityIndex, EntityProc init,
+extern _X_EXPORT int xf86GetNumEntityInstances(int entityIndex);
+extern _X_EXPORT GDevPtr xf86GetDevFromEntity(int entityIndex, int instance);
+extern _X_EXPORT void xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex);
+extern _X_EXPORT EntityInfoPtr xf86GetEntityInfo(int entityIndex);
+extern _X_EXPORT struct pci_device * xf86GetPciInfoForEntity(int entityIndex);
+extern _X_EXPORT Bool xf86SetEntityFuncs(int entityIndex, EntityProc init,
 			EntityProc enter, EntityProc leave, pointer);
-void xf86DeallocateResourcesForEntity(int entityIndex, unsigned long type);
-resPtr xf86RegisterResources(int entityIndex, resList list,
+extern _X_EXPORT void xf86DeallocateResourcesForEntity(int entityIndex, unsigned long type);
+extern _X_EXPORT resPtr xf86RegisterResources(int entityIndex, resList list,
 			     unsigned long Access);
-Bool xf86CheckPciMemBase(struct pci_device * pPci, memType base);
-void xf86SetAccessFuncs(EntityInfoPtr pEnt, xf86SetAccessFuncPtr funcs,
+extern _X_EXPORT Bool xf86CheckPciMemBase(struct pci_device * pPci, memType base);
+extern _X_EXPORT void xf86SetAccessFuncs(EntityInfoPtr pEnt, xf86SetAccessFuncPtr funcs,
 			xf86SetAccessFuncPtr oldFuncs);
-Bool xf86IsEntityPrimary(int entityIndex);
-resPtr xf86SetOperatingState(resList list, int entityIndex, int mask);
-void xf86EnterServerState(xf86State state);
-ScrnInfoPtr xf86FindScreenForEntity(int entityIndex);
-Bool xf86NoSharedResources(int screenIndex, resType res);
-resPtr xf86FindIntersectOfLists(resPtr l1, resPtr l2);
-void xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func, pointer arg);
-Bool xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func);
-
-int xf86GetLastScrnFlag(int entityIndex);
-void xf86SetLastScrnFlag(int entityIndex, int scrnIndex);
-Bool xf86IsEntityShared(int entityIndex);
-void xf86SetEntityShared(int entityIndex);
-Bool xf86IsEntitySharable(int entityIndex);
-void xf86SetEntitySharable(int entityIndex);
-Bool xf86IsPrimInitDone(int entityIndex);
-void xf86SetPrimInitDone(int entityIndex);
-void xf86ClearPrimInitDone(int entityIndex);
-int xf86AllocateEntityPrivateIndex(void);
-DevUnion *xf86GetEntityPrivate(int entityIndex, int privIndex);
+extern _X_EXPORT Bool xf86IsEntityPrimary(int entityIndex);
+extern _X_EXPORT resPtr xf86SetOperatingState(resList list, int entityIndex, int mask);
+extern _X_EXPORT void xf86EnterServerState(xf86State state);
+extern _X_EXPORT ScrnInfoPtr xf86FindScreenForEntity(int entityIndex);
+extern _X_EXPORT Bool xf86NoSharedResources(int screenIndex, resType res);
+extern _X_EXPORT resPtr xf86FindIntersectOfLists(resPtr l1, resPtr l2);
+extern _X_EXPORT void xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func, pointer arg);
+extern _X_EXPORT Bool xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func);
+
+extern _X_EXPORT int xf86GetLastScrnFlag(int entityIndex);
+extern _X_EXPORT void xf86SetLastScrnFlag(int entityIndex, int scrnIndex);
+extern _X_EXPORT Bool xf86IsEntityShared(int entityIndex);
+extern _X_EXPORT void xf86SetEntityShared(int entityIndex);
+extern _X_EXPORT Bool xf86IsEntitySharable(int entityIndex);
+extern _X_EXPORT void xf86SetEntitySharable(int entityIndex);
+extern _X_EXPORT Bool xf86IsPrimInitDone(int entityIndex);
+extern _X_EXPORT void xf86SetPrimInitDone(int entityIndex);
+extern _X_EXPORT void xf86ClearPrimInitDone(int entityIndex);
+extern _X_EXPORT int xf86AllocateEntityPrivateIndex(void);
+extern _X_EXPORT DevUnion *xf86GetEntityPrivate(int entityIndex, int privIndex);
 
 /* xf86Configure.c */
-GDevPtr xf86AddBusDeviceToConfigure(const char *driver, BusType bus,
+extern _X_EXPORT GDevPtr xf86AddBusDeviceToConfigure(const char *driver, BusType bus,
 				    void *busData, int chipset);
 
 /* xf86Cursor.c */
 
-void xf86LockZoom(ScreenPtr pScreen, int lock);
-void xf86InitViewport(ScrnInfoPtr pScr);
-void xf86SetViewport(ScreenPtr pScreen, int x, int y);
-void xf86ZoomViewport(ScreenPtr pScreen, int zoom);
-Bool xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode);
-void *xf86GetPointerScreenFuncs(void);
-void xf86InitOrigins(void);
-void xf86ReconfigureLayout(void);
+extern _X_EXPORT void xf86LockZoom(ScreenPtr pScreen, int lock);
+extern _X_EXPORT void xf86InitViewport(ScrnInfoPtr pScr);
+extern _X_EXPORT void xf86SetViewport(ScreenPtr pScreen, int x, int y);
+extern _X_EXPORT void xf86ZoomViewport(ScreenPtr pScreen, int zoom);
+extern _X_EXPORT Bool xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode);
+extern _X_EXPORT void *xf86GetPointerScreenFuncs(void);
+extern _X_EXPORT void xf86InitOrigins(void);
+extern _X_EXPORT void xf86ReconfigureLayout(void);
 
 /* xf86cvt.c */
-DisplayModePtr xf86CVTMode(int HDisplay, int VDisplay, float VRefresh,
+extern _X_EXPORT DisplayModePtr xf86CVTMode(int HDisplay, int VDisplay, float VRefresh,
                            Bool Reduced, Bool Interlaced);
 
 /* xf86DPMS.c */
 
-Bool xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags);
+extern _X_EXPORT Bool xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags);
+
+extern _X_EXPORT int DPMSSet(ClientPtr client, int level);	/* libextmod */
+
 
 /* xf86DGA.c */
 
-Bool DGAInit(ScreenPtr pScreen, DGAFunctionPtr funcs, DGAModePtr modes,
+extern _X_EXPORT Bool DGAInit(ScreenPtr pScreen, DGAFunctionPtr funcs, DGAModePtr modes,
 			int num);
-Bool DGAReInitModes(ScreenPtr pScreen, DGAModePtr modes, int num);
-xf86SetDGAModeProc xf86SetDGAMode;
+extern _X_EXPORT Bool DGAReInitModes(ScreenPtr pScreen, DGAModePtr modes, int num);
+extern _X_EXPORT xf86SetDGAModeProc xf86SetDGAMode;
 
 /* xf86Events.c */
 
-void SetTimeSinceLastInputEvent(void);
-pointer xf86AddInputHandler(int fd, InputHandlerProc proc, pointer data);
-int xf86RemoveInputHandler(pointer handler);
-void xf86DisableInputHandler(pointer handler);
-void xf86EnableInputHandler(pointer handler);
-pointer xf86AddGeneralHandler(int fd, InputHandlerProc proc, pointer data);
-int xf86RemoveGeneralHandler(pointer handler);
-void xf86DisableGeneralHandler(pointer handler);
-void xf86EnableGeneralHandler(pointer handler);
-void xf86InterceptSignals(int *signo);
-void xf86InterceptSigIll(void (*sigillhandler)(void));
-Bool xf86EnableVTSwitch(Bool new);
-void xf86ProcessActionEvent(ActionEvent action, void *arg);
-void xf86PrintBacktrace(void);
+extern _X_EXPORT void SetTimeSinceLastInputEvent(void);
+extern _X_EXPORT pointer xf86AddInputHandler(int fd, InputHandlerProc proc, pointer data);
+extern _X_EXPORT int xf86RemoveInputHandler(pointer handler);
+extern _X_EXPORT void xf86DisableInputHandler(pointer handler);
+extern _X_EXPORT void xf86EnableInputHandler(pointer handler);
+extern _X_EXPORT pointer xf86AddGeneralHandler(int fd, InputHandlerProc proc, pointer data);
+extern _X_EXPORT int xf86RemoveGeneralHandler(pointer handler);
+extern _X_EXPORT void xf86DisableGeneralHandler(pointer handler);
+extern _X_EXPORT void xf86EnableGeneralHandler(pointer handler);
+extern _X_EXPORT void xf86InterceptSignals(int *signo);
+extern _X_EXPORT void xf86InterceptSigIll(void (*sigillhandler)(void));
+extern _X_EXPORT Bool xf86EnableVTSwitch(Bool new);
+extern _X_EXPORT void xf86ProcessActionEvent(ActionEvent action, void *arg);
+extern _X_EXPORT void xf86PrintBacktrace(void);
 
 /* xf86Helper.c */
 
-void xf86AddDriver(DriverPtr driver, pointer module, int flags);
-void xf86DeleteDriver(int drvIndex);
-ScrnInfoPtr xf86AllocateScreen(DriverPtr drv, int flags);
-void xf86DeleteScreen(int scrnIndex, int flags);
-int xf86AllocateScrnInfoPrivateIndex(void);
-Bool xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad);
-Bool xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int bpp, int fbbpp,
+extern _X_EXPORT void xf86AddDriver(DriverPtr driver, pointer module, int flags);
+extern _X_EXPORT void xf86DeleteDriver(int drvIndex);
+extern _X_EXPORT ScrnInfoPtr xf86AllocateScreen(DriverPtr drv, int flags);
+extern _X_EXPORT void xf86DeleteScreen(int scrnIndex, int flags);
+extern _X_EXPORT int xf86AllocateScrnInfoPrivateIndex(void);
+extern _X_EXPORT Bool xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad);
+extern _X_EXPORT Bool xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int bpp, int fbbpp,
 		     int depth24flags);
-void xf86PrintDepthBpp(ScrnInfoPtr scrp);
-Bool xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask);
-Bool xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual);
-Bool xf86SetGamma(ScrnInfoPtr scrp, Gamma newGamma);
-void xf86SetDpi(ScrnInfoPtr pScrn, int x, int y);
-void xf86SetBlackWhitePixels(ScreenPtr pScreen);
-void xf86EnableDisableFBAccess(int scrnIndex, Bool enable);
-void xf86VDrvMsgVerb(int scrnIndex, MessageType type, int verb,
+extern _X_EXPORT void xf86PrintDepthBpp(ScrnInfoPtr scrp);
+extern _X_EXPORT Bool xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask);
+extern _X_EXPORT Bool xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual);
+extern _X_EXPORT Bool xf86SetGamma(ScrnInfoPtr scrp, Gamma newGamma);
+extern _X_EXPORT void xf86SetDpi(ScrnInfoPtr pScrn, int x, int y);
+extern _X_EXPORT void xf86SetBlackWhitePixels(ScreenPtr pScreen);
+extern _X_EXPORT void xf86EnableDisableFBAccess(int scrnIndex, Bool enable);
+extern _X_EXPORT void xf86VDrvMsgVerb(int scrnIndex, MessageType type, int verb,
 		     const char *format, va_list args);
-void xf86DrvMsgVerb(int scrnIndex, MessageType type, int verb,
+extern _X_EXPORT void xf86DrvMsgVerb(int scrnIndex, MessageType type, int verb,
 		    const char *format, ...) _printf_attribute(4,5);
-void xf86DrvMsg(int scrnIndex, MessageType type, const char *format, ...)
+extern _X_EXPORT void xf86DrvMsg(int scrnIndex, MessageType type, const char *format, ...)
 		_printf_attribute(3,4);
-void xf86MsgVerb(MessageType type, int verb, const char *format, ...)
+extern _X_EXPORT void xf86MsgVerb(MessageType type, int verb, const char *format, ...)
 		_printf_attribute(3,4);
-void xf86Msg(MessageType type, const char *format, ...) _printf_attribute(2,3);
-void xf86ErrorFVerb(int verb, const char *format, ...) _printf_attribute(2,3);
-void xf86ErrorF(const char *format, ...) _printf_attribute(1,2);
-const char *xf86TokenToString(SymTabPtr table, int token);
-int xf86StringToToken(SymTabPtr table, const char *string);
-void xf86ShowClocks(ScrnInfoPtr scrp, MessageType from);
-void xf86PrintChipsets(const char *drvname, const char *drvmsg,
+extern _X_EXPORT void xf86Msg(MessageType type, const char *format, ...) _printf_attribute(2,3);
+extern _X_EXPORT void xf86ErrorFVerb(int verb, const char *format, ...) _printf_attribute(2,3);
+extern _X_EXPORT void xf86ErrorF(const char *format, ...) _printf_attribute(1,2);
+extern _X_EXPORT const char *xf86TokenToString(SymTabPtr table, int token);
+extern _X_EXPORT int xf86StringToToken(SymTabPtr table, const char *string);
+extern _X_EXPORT void xf86ShowClocks(ScrnInfoPtr scrp, MessageType from);
+extern _X_EXPORT void xf86PrintChipsets(const char *drvname, const char *drvmsg,
 		       SymTabPtr chips);
-int xf86MatchDevice(const char *drivername, GDevPtr **driversectlist);
-int xf86MatchPciInstances(const char *driverName, int vendorID,
+extern _X_EXPORT int xf86MatchDevice(const char *drivername, GDevPtr **driversectlist);
+extern _X_EXPORT int xf86MatchPciInstances(const char *driverName, int vendorID,
 		      SymTabPtr chipsets, PciChipsets *PCIchipsets,
 		      GDevPtr *devList, int numDevs, DriverPtr drvp,
 		      int **foundEntities);
-void xf86GetClocks(ScrnInfoPtr pScrn, int num,
+extern _X_EXPORT void xf86GetClocks(ScrnInfoPtr pScrn, int num,
 		   Bool (*ClockFunc)(ScrnInfoPtr, int),
 		   void (*ProtectRegs)(ScrnInfoPtr, Bool),
 		   void (*BlankScreen)(ScrnInfoPtr, Bool),
 		   IOADDRESS vertsyncreg, int maskval,
 		   int knownclkindex, int knownclkvalue);
-void xf86SetPriority(Bool up);
-const char *xf86GetVisualName(int visual);
-int xf86GetVerbosity(void);
-Pix24Flags xf86GetPix24(void);
-int xf86GetDepth(void);
-rgb xf86GetWeight(void);
-Gamma xf86GetGamma(void);
-Bool xf86GetFlipPixels(void);
-const char *xf86GetServerName(void);
-Bool xf86ServerIsExiting(void);
-Bool xf86ServerIsResetting(void);
-Bool xf86ServerIsInitialising(void);
-Bool xf86ServerIsOnlyDetecting(void);
-Bool xf86ServerIsOnlyProbing(void);
-Bool xf86CaughtSignal(void);
-Bool xf86GetVidModeAllowNonLocal(void);
-Bool xf86GetVidModeEnabled(void);
-Bool xf86GetModInDevAllowNonLocal(void);
-Bool xf86GetModInDevEnabled(void);
-Bool xf86GetAllowMouseOpenFail(void);
-Bool xf86IsPc98(void);
-void xf86DisableRandR(void);
-CARD32 xorgGetVersion(void);
-CARD32 xf86GetModuleVersion(pointer module);
-pointer xf86LoadDrvSubModule(DriverPtr drv, const char *name);
-pointer xf86LoadSubModule(ScrnInfoPtr pScrn, const char *name);
-pointer xf86LoadOneModule(char *name, pointer optlist);
-void xf86UnloadSubModule(pointer mod);
-Bool xf86LoaderCheckSymbol(const char *name);
-void xf86LoaderReqSymLists(const char **, ...);
-void xf86LoaderReqSymbols(const char *, ...);
-void xf86LoaderRefSymLists(const char **, ...);
-void xf86LoaderRefSymbols(const char *, ...);
-void xf86SetBackingStore(ScreenPtr pScreen);
-void xf86SetSilkenMouse(ScreenPtr pScreen);
-pointer xf86FindXvOptions(int scrnIndex, int adapt_index, char *port_name,
+extern _X_EXPORT void xf86SetPriority(Bool up);
+extern _X_EXPORT const char *xf86GetVisualName(int visual);
+extern _X_EXPORT int xf86GetVerbosity(void);
+extern _X_EXPORT Pix24Flags xf86GetPix24(void);
+extern _X_EXPORT int xf86GetDepth(void);
+extern _X_EXPORT rgb xf86GetWeight(void);
+extern _X_EXPORT Gamma xf86GetGamma(void);
+extern _X_EXPORT Bool xf86GetFlipPixels(void);
+extern _X_EXPORT const char *xf86GetServerName(void);
+extern _X_EXPORT Bool xf86ServerIsExiting(void);
+extern _X_EXPORT Bool xf86ServerIsResetting(void);
+extern _X_EXPORT Bool xf86ServerIsInitialising(void);
+extern _X_EXPORT Bool xf86ServerIsOnlyDetecting(void);
+extern _X_EXPORT Bool xf86ServerIsOnlyProbing(void);
+extern _X_EXPORT Bool xf86CaughtSignal(void);
+extern _X_EXPORT Bool xf86GetVidModeAllowNonLocal(void);
+extern _X_EXPORT Bool xf86GetVidModeEnabled(void);
+extern _X_EXPORT Bool xf86GetModInDevAllowNonLocal(void);
+extern _X_EXPORT Bool xf86GetModInDevEnabled(void);
+extern _X_EXPORT Bool xf86GetAllowMouseOpenFail(void);
+extern _X_EXPORT Bool xf86IsPc98(void);
+extern _X_EXPORT void xf86DisableRandR(void);
+extern _X_EXPORT CARD32 xorgGetVersion(void);
+extern _X_EXPORT CARD32 xf86GetModuleVersion(pointer module);
+extern _X_EXPORT pointer xf86LoadDrvSubModule(DriverPtr drv, const char *name);
+extern _X_EXPORT pointer xf86LoadSubModule(ScrnInfoPtr pScrn, const char *name);
+extern _X_EXPORT pointer xf86LoadOneModule(char *name, pointer optlist);
+extern _X_EXPORT void xf86UnloadSubModule(pointer mod);
+extern _X_EXPORT Bool xf86LoaderCheckSymbol(const char *name);
+extern _X_EXPORT void xf86LoaderReqSymLists(const char **, ...);
+extern _X_EXPORT void xf86LoaderReqSymbols(const char *, ...);
+extern _X_EXPORT void xf86LoaderRefSymLists(const char **, ...);
+extern _X_EXPORT void xf86LoaderRefSymbols(const char *, ...);
+extern _X_EXPORT void xf86SetBackingStore(ScreenPtr pScreen);
+extern _X_EXPORT void xf86SetSilkenMouse(ScreenPtr pScreen);
+extern _X_EXPORT pointer xf86FindXvOptions(int scrnIndex, int adapt_index, char *port_name,
 			  char **adaptor_name, pointer *adaptor_options);
-void xf86GetOS(const char **name, int *major, int *minor, int *teeny);
-ScrnInfoPtr xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag,
+extern _X_EXPORT void xf86GetOS(const char **name, int *major, int *minor, int *teeny);
+extern _X_EXPORT ScrnInfoPtr xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag,
 				int entityIndex,PciChipsets *p_chip,
 				resList res, EntityProc init,
 				EntityProc enter, EntityProc leave,
 				pointer private);
-ScrnInfoPtr xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag,
+extern _X_EXPORT ScrnInfoPtr xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag,
 			       int entityIndex, EntityProc init,
 			       EntityProc enter, EntityProc leave,
 			       pointer private);
 /* Obsolete! don't use */
-Bool xf86ConfigActivePciEntity(ScrnInfoPtr pScrn,
+extern _X_EXPORT Bool xf86ConfigActivePciEntity(ScrnInfoPtr pScrn,
 				int entityIndex,PciChipsets *p_chip,
 				resList res, EntityProc init,
 				EntityProc enter, EntityProc leave,
 				pointer private);
 /* Obsolete! don't use */
-void xf86ConfigPciEntityInactive(EntityInfoPtr pEnt, PciChipsets *p_chip,
+extern _X_EXPORT void xf86ConfigPciEntityInactive(EntityInfoPtr pEnt, PciChipsets *p_chip,
 				 resList res, EntityProc init,
 				 EntityProc enter, EntityProc leave,
 				 pointer private);
-void xf86ConfigFbEntityInactive(EntityInfoPtr pEnt, EntityProc init,
+extern _X_EXPORT void xf86ConfigFbEntityInactive(EntityInfoPtr pEnt, EntityProc init,
 				EntityProc enter, EntityProc leave,
 				pointer private);
-Bool xf86IsScreenPrimary(int scrnIndex);
-int  xf86RegisterRootWindowProperty(int ScrnIndex, Atom	property, Atom type,
+extern _X_EXPORT Bool xf86IsScreenPrimary(int scrnIndex);
+extern _X_EXPORT int  xf86RegisterRootWindowProperty(int ScrnIndex, Atom	property, Atom type,
 				    int format, unsigned long len,
 				    pointer value);
-Bool xf86IsUnblank(int mode);
+extern _X_EXPORT Bool xf86IsUnblank(int mode);
 
-_X_DEPRECATED void xf86AddModuleInfo(pointer info, pointer module);
-_X_DEPRECATED void xf86DeleteModuleInfo(int idx);
+extern _X_EXPORT _X_DEPRECATED void xf86AddModuleInfo(pointer info, pointer module);
+extern _X_EXPORT _X_DEPRECATED void xf86DeleteModuleInfo(int idx);
 
 /* xf86Init.c */
 
-PixmapFormatPtr xf86GetPixFormat(ScrnInfoPtr pScrn, int depth);
-int xf86GetBppFromDepth(ScrnInfoPtr pScrn, int depth);
+extern _X_EXPORT PixmapFormatPtr xf86GetPixFormat(ScrnInfoPtr pScrn, int depth);
+extern _X_EXPORT int xf86GetBppFromDepth(ScrnInfoPtr pScrn, int depth);
 
 /* xf86Mode.c */
 
-int xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
+extern _X_EXPORT int xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
 			int DivFactor, int MulFactor, int *divider);
-const char *xf86ModeStatusToString(ModeStatus status);
-ModeStatus xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
+extern _X_EXPORT const char *xf86ModeStatusToString(ModeStatus status);
+extern _X_EXPORT ModeStatus xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
 			  ClockRangePtr clockRanges, LookupModeFlags strategy);
-ModeStatus xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor);
-ModeStatus xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
+extern _X_EXPORT ModeStatus xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor);
+extern _X_EXPORT ModeStatus xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
 					 ClockRangePtr clockRanges,
 					 LookupModeFlags strategy,
 					 int maxPitch, int virtualX,
 					 int virtualY);
-ModeStatus xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
+extern _X_EXPORT ModeStatus xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
 				  int flags);
-int xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
+extern _X_EXPORT int xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
 		      char **modeNames, ClockRangePtr clockRanges,
 		      int *linePitches, int minPitch, int maxPitch,
 		      int minHeight, int maxHeight, int pitchInc,
 		      int virtualX, int virtualY, int apertureSize,
 		      LookupModeFlags strategy);
-void xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode);
-void xf86PruneDriverModes(ScrnInfoPtr scrp);
-void xf86SetCrtcForModes(ScrnInfoPtr scrp, int adjustFlags);
-void xf86PrintModes(ScrnInfoPtr scrp);
-void xf86ShowClockRanges(ScrnInfoPtr scrp, ClockRangePtr clockRanges);
-double xf86ModeHSync(const DisplayModeRec *mode);
-double xf86ModeVRefresh(const DisplayModeRec *mode);
-void xf86SetModeDefaultName(DisplayModePtr mode);
-void xf86SetModeCrtc(DisplayModePtr p, int adjustFlags);
-DisplayModePtr xf86DuplicateMode(const DisplayModeRec *pMode);
-DisplayModePtr xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList);
-Bool xf86ModesEqual(const DisplayModeRec *pMode1,
+extern _X_EXPORT void xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode);
+extern _X_EXPORT void xf86PruneDriverModes(ScrnInfoPtr scrp);
+extern _X_EXPORT void xf86SetCrtcForModes(ScrnInfoPtr scrp, int adjustFlags);
+extern _X_EXPORT void xf86PrintModes(ScrnInfoPtr scrp);
+extern _X_EXPORT void xf86ShowClockRanges(ScrnInfoPtr scrp, ClockRangePtr clockRanges);
+extern _X_EXPORT double xf86ModeHSync(const DisplayModeRec *mode);
+extern _X_EXPORT double xf86ModeVRefresh(const DisplayModeRec *mode);
+extern _X_EXPORT void xf86SetModeDefaultName(DisplayModePtr mode);
+extern _X_EXPORT void xf86SetModeCrtc(DisplayModePtr p, int adjustFlags);
+extern _X_EXPORT DisplayModePtr xf86DuplicateMode(const DisplayModeRec *pMode);
+extern _X_EXPORT DisplayModePtr xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList);
+extern _X_EXPORT Bool xf86ModesEqual(const DisplayModeRec *pMode1,
 		    const DisplayModeRec *pMode2);
-void xf86PrintModeline(int scrnIndex,DisplayModePtr mode);
-DisplayModePtr xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new);
+extern _X_EXPORT void xf86PrintModeline(int scrnIndex,DisplayModePtr mode);
+extern _X_EXPORT DisplayModePtr xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new);
 
 /* xf86Option.c */
 
-void xf86CollectOptions(ScrnInfoPtr pScrn, pointer extraOpts);
+extern _X_EXPORT void xf86CollectOptions(ScrnInfoPtr pScrn, pointer extraOpts);
 
 
 /* xf86RandR.c */
 #ifdef RANDR
-Bool xf86RandRInit (ScreenPtr    pScreen);
-Rotation xf86GetRotation(ScreenPtr pScreen);
-Bool xf86RandRSetNewVirtualAndDimensions(ScreenPtr pScreen,
+extern _X_EXPORT Bool xf86RandRInit (ScreenPtr    pScreen);
+extern _X_EXPORT Rotation xf86GetRotation(ScreenPtr pScreen);
+extern _X_EXPORT Bool xf86RandRSetNewVirtualAndDimensions(ScreenPtr pScreen,
 			int newvirtX, int newvirtY,
 			int newmmWidth, int newmmHeight, Bool resetMode);
 #endif
 
 /* xf86VidModeExtentionInit.c */
 
-Bool VidModeExtensionInit(ScreenPtr pScreen);
+extern _X_EXPORT Bool VidModeExtensionInit(ScreenPtr pScreen);
 
 #endif /* _NO_XF86_PROTOTYPES */
 
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index c825d23..e0e3cb4 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -64,7 +64,7 @@ noopEnableDisable(void *arg) { }
 
 xf86AccessRec AccessNULL = { noopEnableDisable, noopEnableDisable, NULL };
 
-_X_EXPORT xf86CurrentAccessRec xf86CurrentAccess = {NULL,NULL};
+xf86CurrentAccessRec xf86CurrentAccess = {NULL,NULL};
 
 BusRec primaryBus = { BUS_NONE, {{0}}};
 
@@ -75,16 +75,16 @@ static Bool xf86ResAccessEnter = FALSE;
 resPtr Acc = NULL;
 
 /* predefined special resources */
-_X_EXPORT resRange resVgaExclusive[] = {_VGA_EXCLUSIVE, _END};
-_X_EXPORT resRange resVgaShared[] = {_VGA_SHARED, _END};
-_X_EXPORT resRange resVgaMemShared[] = {_VGA_SHARED_MEM,_END};
-_X_EXPORT resRange resVgaIoShared[] = {_VGA_SHARED_IO,_END};
-_X_EXPORT resRange resVgaUnusedExclusive[] = {_VGA_EXCLUSIVE_UNUSED, _END};
-_X_EXPORT resRange resVgaUnusedShared[] = {_VGA_SHARED_UNUSED, _END};
-_X_EXPORT resRange resVgaSparseExclusive[] = {_VGA_EXCLUSIVE_SPARSE, _END};
-_X_EXPORT resRange resVgaSparseShared[] = {_VGA_SHARED_SPARSE, _END};
-_X_EXPORT resRange res8514Exclusive[] = {_8514_EXCLUSIVE, _END};
-_X_EXPORT resRange res8514Shared[] = {_8514_SHARED, _END};
+resRange resVgaExclusive[] = {_VGA_EXCLUSIVE, _END};
+resRange resVgaShared[] = {_VGA_SHARED, _END};
+resRange resVgaMemShared[] = {_VGA_SHARED_MEM,_END};
+resRange resVgaIoShared[] = {_VGA_SHARED_IO,_END};
+resRange resVgaUnusedExclusive[] = {_VGA_EXCLUSIVE_UNUSED, _END};
+resRange resVgaUnusedShared[] = {_VGA_SHARED_UNUSED, _END};
+resRange resVgaSparseExclusive[] = {_VGA_EXCLUSIVE_SPARSE, _END};
+resRange resVgaSparseShared[] = {_VGA_SHARED_SPARSE, _END};
+resRange res8514Exclusive[] = {_8514_EXCLUSIVE, _END};
+resRange res8514Shared[] = {_8514_SHARED, _END};
 
 /* Flag: do we need RAC ? */
 static Bool needRAC = FALSE;
@@ -100,7 +100,7 @@ static void notifyStateChange(xf86NotifyState state);
  * The only one available so far is for PCI and SBUS.
  */
 
-_X_EXPORT void
+void
 xf86BusProbe(void)
 {
     xf86PciProbe();
@@ -148,7 +148,7 @@ StringToBusType(const char* busID, const char **retID)
  * Entity related code.
  */
 
-_X_EXPORT void
+void
 xf86EntityInit(void)
 {
     int i;
@@ -214,7 +214,7 @@ EntityLeave(void)
 	}
 }
 
-_X_EXPORT Bool
+Bool
 xf86IsEntityPrimary(int entityIndex)
 {
     EntityPtr pEnt = xf86Entities[entityIndex];
@@ -231,7 +231,7 @@ xf86IsEntityPrimary(int entityIndex)
     }
 }
 	
-_X_EXPORT Bool
+Bool
 xf86SetEntityFuncs(int entityIndex, EntityProc init, EntityProc enter,
 		   EntityProc leave, pointer private)
 {
@@ -244,7 +244,7 @@ xf86SetEntityFuncs(int entityIndex, EntityProc init, EntityProc enter,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86DriverHasEntities(DriverPtr drvp)
 {
     int i;
@@ -255,7 +255,7 @@ xf86DriverHasEntities(DriverPtr drvp)
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex)
 {
     if (entityIndex == -1)
@@ -279,7 +279,7 @@ xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex)
     pScrn->domainIOBase = xf86Entities[entityIndex]->domainIO;
 }
 
-_X_EXPORT void
+void
 xf86SetEntityInstanceForScreen(ScrnInfoPtr pScrn, int entityIndex, int instance)
 {
     int i;
@@ -299,7 +299,7 @@ xf86SetEntityInstanceForScreen(ScrnInfoPtr pScrn, int entityIndex, int instance)
  * XXX  This needs to be updated for the case where a single entity may have
  * instances associated with more than one screen.
  */
-_X_EXPORT ScrnInfoPtr
+ScrnInfoPtr
 xf86FindScreenForEntity(int entityIndex)
 {
     int i,j;
@@ -317,7 +317,7 @@ xf86FindScreenForEntity(int entityIndex)
     return NULL;
 }
 
-_X_EXPORT void
+void
 xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex)
 {
     int i;
@@ -348,7 +348,7 @@ xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex)
  * xf86ClearEntitiesForScreen() - called when a screen is deleted
  * to mark it's entities unused. Called by xf86DeleteScreen().
  */
-_X_EXPORT void
+void
 xf86ClearEntityListForScreen(int scrnIndex)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -380,7 +380,7 @@ xf86ClearEntityListForScreen(int scrnIndex)
     pScrn->entityInstanceList = NULL;
 }
 
-_X_EXPORT void
+void
 xf86DeallocateResourcesForEntity(int entityIndex, unsigned long type)
 {
     resPtr *pprev_next = &Acc;
@@ -402,7 +402,7 @@ xf86DeallocateResourcesForEntity(int entityIndex, unsigned long type)
  * Add an extra device section (GDevPtr) to an entity.
  */
 
-_X_EXPORT void
+void
 xf86AddDevToEntity(int entityIndex, GDevPtr dev)
 {
     EntityPtr pEnt;
@@ -423,7 +423,7 @@ xf86AddDevToEntity(int entityIndex, GDevPtr dev)
  * EntityRec struct to the drivers. The EntityRec structure itself
  * remains invisible to the driver.
  */
-_X_EXPORT EntityInfoPtr
+EntityInfoPtr
 xf86GetEntityInfo(int entityIndex)
 {
     EntityInfoPtr pEnt;
@@ -451,7 +451,7 @@ xf86GetEntityInfo(int entityIndex)
     return pEnt;
 }
 
-_X_EXPORT int
+int
 xf86GetNumEntityInstances(int entityIndex)
 {
     if (entityIndex >= xf86NumEntities)
@@ -460,7 +460,7 @@ xf86GetNumEntityInstances(int entityIndex)
     return xf86Entities[entityIndex]->numInstances;
 }
 
-_X_EXPORT GDevPtr
+GDevPtr
 xf86GetDevFromEntity(int entityIndex, int instance)
 {
     int i;
@@ -539,7 +539,7 @@ clearAccess(void)
  * xf86AccessInit() - set up everything needed for access control
  * called only once on first server generation.
  */
-_X_EXPORT void
+void
 xf86AccessInit(void)
 {
     initPciState();
@@ -554,7 +554,7 @@ xf86AccessInit(void)
  * xf86AccessEnter() -- gets called to save the text mode VGA IO 
  * resources when reentering the server after a VT switch.
  */
-_X_EXPORT void
+void
 xf86AccessEnter(void)
 {
     if (xf86ResAccessEnter) 
@@ -583,7 +583,7 @@ xf86AccessEnter(void)
  * This was split to call xf86AccessLeaveState() from
  * ddxGiveUp().
  */
-_X_EXPORT void
+void
 xf86AccessLeave(void)
 {
     if (!xf86ResAccessEnter)
@@ -594,7 +594,7 @@ xf86AccessLeave(void)
     EntityLeave();
 }
 
-_X_EXPORT void
+void
 xf86AccessLeaveState(void)
 {
     if (!xf86ResAccessEnter)
@@ -632,7 +632,7 @@ xf86AccessRestoreState(void)
  * by other resources!
  */
 
-_X_EXPORT void
+void
 xf86EnableAccess(ScrnInfoPtr pScrn)
 {
     register EntityAccessPtr peAcc = (EntityAccessPtr) pScrn->access;
@@ -753,7 +753,7 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
     }
 }
 
-_X_EXPORT void
+void
 xf86SetCurrentAccess(Bool Enable, ScrnInfoPtr pScrn)
 {
     EntityAccessPtr pceAcc2 = NULL;
@@ -793,7 +793,7 @@ xf86SetCurrentAccess(Bool Enable, ScrnInfoPtr pScrn)
     }
 }
 
-_X_EXPORT void
+void
 xf86SetAccessFuncs(EntityInfoPtr pEnt, xf86SetAccessFuncPtr funcs,
 		   xf86SetAccessFuncPtr oldFuncs)
 {
@@ -1098,7 +1098,7 @@ xf86JoinResLists(resPtr rlist1, resPtr rlist2)
     return rlist1;
 }
 
-_X_EXPORT resPtr
+resPtr
 xf86AddResToList(resPtr rlist, resRange *range, int entityIndex)
 {
     resPtr new;
@@ -1135,7 +1135,7 @@ xf86AddResToList(resPtr rlist, resRange *range, int entityIndex)
     return new;
 }
 
-_X_EXPORT void
+void
 xf86FreeResList(resPtr rlist)
 {
     resPtr pRes;
@@ -1267,7 +1267,7 @@ xf86PrintResList(int verb, resPtr list)
     }
 }
 
-_X_EXPORT resPtr
+resPtr
 xf86AddRangesToList(resPtr list, resRange *pRange, int entityIndex)
 {
     while(pRange && pRange->type != ResEnd) {
@@ -1277,7 +1277,7 @@ xf86AddRangesToList(resPtr list, resRange *pRange, int entityIndex)
     return list;
 }
 
-_X_EXPORT void
+void
 xf86ResourceBrokerInit(void)
 {
     Acc = NULL;
@@ -1323,7 +1323,7 @@ xf86ConvertListToHost(int entityIndex, resPtr list)
  * which we mean, NULL.
  */
 
-_X_EXPORT resPtr
+resPtr
 xf86RegisterResources(int entityIndex, resList list, unsigned long access)
 {
     resRange range;
@@ -1543,7 +1543,7 @@ SetSIGIOForState(xf86State state)
     }
 }
 
-_X_EXPORT void
+void
 xf86EnterServerState(xf86State state)
 {
     EntityPtr pEnt;
@@ -1649,7 +1649,7 @@ xf86EnterServerState(xf86State state)
 /*
  * xf86SetOperatingState() -- Set ResOperMask for resources listed.
  */
-_X_EXPORT resPtr
+resPtr
 xf86SetOperatingState(resList list, int entityIndex, int mask)
 {
     resPtr acc;
@@ -1690,7 +1690,7 @@ xf86SetOperatingState(resList list, int entityIndex, int mask)
  * xf86ClaimFixedResources() is used to allocate non-relocatable resources.
  * This should only be done by a driver's Probe() function.
  */
-_X_EXPORT void
+void
 xf86ClaimFixedResources(resList list, int entityIndex)
 {
     resPtr ptr = NULL;
@@ -1820,7 +1820,7 @@ checkRoutingForScreens(xf86State state)
  * xf86PostProbe() -- Allocate all non conflicting resources
  * This function gets called by xf86Init().
  */
-_X_EXPORT void
+void
 xf86PostProbe(void)
 {
     memType val;
@@ -1935,7 +1935,7 @@ checkRequiredResources(int entityIndex)
 	pEnt->entityProp &= ~(unsigned long)NEED_IO_SHARED;
 }
 
-_X_EXPORT void
+void
 xf86PostPreInit()
 {
   if (doFramebufferMode) return;
@@ -1955,7 +1955,7 @@ xf86PostPreInit()
     xf86PrintResList(3, Acc);
 }
 
-_X_EXPORT void
+void
 xf86PostScreenInit(void)
 {
     int i,j;
@@ -2304,7 +2304,7 @@ findIntersect(resRange Range, resPtr list)
     return new;
 }
     
-_X_EXPORT resPtr
+resPtr
 xf86FindIntersectOfLists(resPtr l1, resPtr l2)
 {
     resPtr ret = NULL;
@@ -2369,7 +2369,7 @@ xf86ExtractTypeFromList(resPtr list, unsigned long type)
  * xf86FindPrimaryDevice() - Find the display device which
  * was active when the server was started.
  */
-_X_EXPORT void
+void
 xf86FindPrimaryDevice()
 {
     if (primaryBus.type != BUS_NONE) {
@@ -2398,7 +2398,7 @@ xf86FindPrimaryDevice()
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86NoSharedResources(int screenIndex,resType res)
 {
     int j;
@@ -2430,7 +2430,7 @@ xf86NoSharedResources(int screenIndex,resType res)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func, pointer arg)
 {
     StateChangeNotificationPtr ptr =
@@ -2442,7 +2442,7 @@ xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackF
     StateChangeNotificationList = ptr;
 }
 
-_X_EXPORT Bool
+Bool
 xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func)
 {
     StateChangeNotificationPtr *ptr = &StateChangeNotificationList;
@@ -2472,7 +2472,7 @@ notifyStateChange(xf86NotifyState state)
 
 /* Multihead accel sharing accessor functions and entity Private handling */
 
-_X_EXPORT int
+int
 xf86GetLastScrnFlag(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2482,7 +2482,7 @@ xf86GetLastScrnFlag(int entityIndex)
     }
 }
 
-_X_EXPORT void
+void
 xf86SetLastScrnFlag(int entityIndex, int scrnIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2490,7 +2490,7 @@ xf86SetLastScrnFlag(int entityIndex, int scrnIndex)
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86IsEntityShared(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2501,7 +2501,7 @@ xf86IsEntityShared(int entityIndex)
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86SetEntityShared(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2509,7 +2509,7 @@ xf86SetEntityShared(int entityIndex)
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86IsEntitySharable(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2520,7 +2520,7 @@ xf86IsEntitySharable(int entityIndex)
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86SetEntitySharable(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2528,7 +2528,7 @@ xf86SetEntitySharable(int entityIndex)
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86IsPrimInitDone(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2539,7 +2539,7 @@ xf86IsPrimInitDone(int entityIndex)
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86SetPrimInitDone(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2547,7 +2547,7 @@ xf86SetPrimInitDone(int entityIndex)
     }
 }
 
-_X_EXPORT void
+void
 xf86ClearPrimInitDone(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
@@ -2560,7 +2560,7 @@ xf86ClearPrimInitDone(int entityIndex)
  * Allocate a private in the entities.
  */
 
-_X_EXPORT int
+int
 xf86AllocateEntityPrivateIndex(void)
 {
     int idx, i;
@@ -2579,7 +2579,7 @@ xf86AllocateEntityPrivateIndex(void)
     return idx;
 }
 
-_X_EXPORT DevUnion *
+DevUnion *
 xf86GetEntityPrivate(int entityIndex, int privIndex)
 {
     if (entityIndex >= xf86NumEntities || privIndex >= xf86EntityPrivateCount)
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 9bf18b5..5a5a7f2 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -1118,7 +1118,7 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
     return TRUE;
 }
 
-_X_EXPORT Bool xf86DRI2Enabled(void)
+Bool xf86DRI2Enabled(void)
 {
     return xf86Info.dri2;
 }
@@ -2608,7 +2608,7 @@ xf86HandleConfigFile(Bool autoconfig)
     return CONFIG_OK;
 }
 
-_X_EXPORT Bool
+Bool
 xf86PathIsSafe(const char *path)
 {
     return (xf86pathIsSafe(path) != 0);
diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c
index 1430cda..b803b49 100644
--- a/hw/xfree86/common/xf86Configure.c
+++ b/hw/xfree86/common/xf86Configure.c
@@ -67,8 +67,8 @@ typedef struct _DevToConfig {
 static DevToConfigPtr DevToConfig = NULL;
 static int nDevToConfig = 0, CurrentDriver;
 
-_X_EXPORT xf86MonPtr ConfiguredMonitor;
-_X_EXPORT Bool xf86DoConfigurePass1 = TRUE;
+xf86MonPtr ConfiguredMonitor;
+Bool xf86DoConfigurePass1 = TRUE;
 static Bool foundMouse = FALSE;
 
 #if defined(__SCO__)
@@ -92,7 +92,7 @@ static char *DFLT_MOUSE_PROTO = "auto";
  * directly.  We allocate a GDevRec and fill it in as much as we can, letting
  * the caller fill in the rest and/or change it as it sees fit.
  */
-_X_EXPORT GDevPtr
+GDevPtr
 xf86AddBusDeviceToConfigure(const char *driver, BusType bus, void *busData, int chipset)
 {
     int i, j;
@@ -614,7 +614,7 @@ configureDDCMonitorSection (int screennum)
 # define PATH_MAX 1024
 #endif
 
-_X_EXPORT void
+void
 DoConfigure(void)
 {
     int i,j, screennum = -1;
diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c
index f7a469f..1203aad 100644
--- a/hw/xfree86/common/xf86Cursor.c
+++ b/hw/xfree86/common/xf86Cursor.c
@@ -89,7 +89,7 @@ static Bool HardEdges;
  *      is valid if specified.
  */
 
-_X_EXPORT void
+void
 xf86InitViewport(ScrnInfoPtr pScr)
 {
 
@@ -133,7 +133,7 @@ xf86InitViewport(ScrnInfoPtr pScr)
  *      Scroll the visual part of the screen so the pointer is visible.
  */
 
-_X_EXPORT void
+void
 xf86SetViewport(ScreenPtr pScreen, int x, int y)
 {
   ScrnInfoPtr   pScr = XF86SCRNINFO(pScreen);
@@ -185,7 +185,7 @@ xf86PointerMoved(int scrnIndex, int x, int y)
  *	Enable/disable ZoomViewport
  */
 
-_X_EXPORT void
+void
 xf86LockZoom(ScreenPtr pScreen, Bool lock)
 {
   XF86SCRNINFO(pScreen)->zoomLocked = lock;
@@ -197,7 +197,7 @@ xf86LockZoom(ScreenPtr pScreen, Bool lock)
  *	set a new mode.
  */
 
-_X_EXPORT Bool
+Bool
 xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
 {
   ScrnInfoPtr pScr = XF86SCRNINFO(pScreen);
@@ -322,7 +322,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
  *      Reinitialize the visual part of the screen for another mode.
  */
 
-_X_EXPORT void
+void
 xf86ZoomViewport(ScreenPtr pScreen, int zoom)
 {
   ScrnInfoPtr    pScr = XF86SCRNINFO(pScreen);
@@ -480,7 +480,7 @@ xf86WarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
 }
 
 
-_X_EXPORT void *
+void *
 xf86GetPointerScreenFuncs(void)
 {
     return (void *)&xf86PointerScreenFuncs;
@@ -579,7 +579,7 @@ FillOutEdge(xf86EdgePtr pEdge, int limit)
  * on 32 bit architectures, 64 on 64 bit architectures.
  */
 
-_X_EXPORT void
+void
 xf86InitOrigins(void)
 {
     unsigned long screensLeft, prevScreensLeft, mask;
@@ -845,7 +845,7 @@ xf86InitOrigins(void)
     }
 }
 
-_X_EXPORT void
+void
 xf86ReconfigureLayout(void)
 {
     int i;
diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
index f378c13..bbb8792 100644
--- a/hw/xfree86/common/xf86DGA.c
+++ b/hw/xfree86/common/xf86DGA.c
@@ -68,7 +68,7 @@ DGACopyModeInfo(
    XDGAModePtr xmode
 );
 
-_X_EXPORT int *XDGAEventBase = NULL;
+int *XDGAEventBase = NULL;
 
 #define DGA_GET_SCREEN_PRIV(pScreen) ((DGAScreenPtr) \
     dixLookupPrivate(&(pScreen)->devPrivates, DGAScreenKey))
@@ -101,7 +101,7 @@ typedef struct {
    Bool			grabKeyboard;
 } DGAScreenRec, *DGAScreenPtr;
 
-_X_EXPORT Bool
+Bool
 DGAInit(
    ScreenPtr pScreen,
    DGAFunctionPtr funcs, 
@@ -164,7 +164,7 @@ DGAInit(
  * the DGA mode list.
  */
 
-_X_EXPORT Bool
+Bool
 DGAReInitModes(
    ScreenPtr pScreen,
    DGAModePtr modes,
@@ -334,7 +334,7 @@ DGAUninstallColormap(ColormapPtr pmap)
     pScreen->UninstallColormap = DGAUninstallColormap;
 }
 
-_X_EXPORT int
+int
 xf86SetDGAMode(
    int index,
    int num,
@@ -453,7 +453,7 @@ xf86SetDGAMode(
 
 /*********** exported ones ***************/
 
-_X_EXPORT void
+void
 DGASetInputMode(int index, Bool keyboard, Bool mouse)
 {
    ScreenPtr pScreen = screenInfo.screens[index];
@@ -475,7 +475,7 @@ DGASetInputMode(int index, Bool keyboard, Bool mouse)
    }
 }
 
-_X_EXPORT Bool
+Bool
 DGAChangePixmapMode(int index, int *x, int *y, int mode)
 {
    DGAScreenPtr pScreenPriv;
@@ -530,7 +530,7 @@ DGAChangePixmapMode(int index, int *x, int *y, int mode)
    return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DGAAvailable(int index) 
 {
    if(DGAScreenKey == NULL)
@@ -547,7 +547,7 @@ DGAAvailable(int index)
    return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 DGAActive(int index) 
 {
    DGAScreenPtr pScreenPriv;
@@ -567,7 +567,7 @@ DGAActive(int index)
 
 /* Called by the event code in case the server is abruptly terminated */
 
-_X_EXPORT void 
+void
 DGAShutdown()
 {
     ScrnInfoPtr pScrn;
@@ -585,7 +585,7 @@ DGAShutdown()
 
 /* Called by the extension to initialize a mode */
 
-_X_EXPORT int
+int
 DGASetMode(
    int index,
    int num,
@@ -609,7 +609,7 @@ DGASetMode(
 
 /* Called from the extension to let the DDX know which events are requested */
 
-_X_EXPORT void
+void
 DGASelectInput(
    int index,
    ClientPtr client,
@@ -622,7 +622,7 @@ DGASelectInput(
    pScreenPriv->input = mask;
 }
 
-_X_EXPORT int 
+int
 DGAGetViewportStatus(int index) 
 {
    DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]);
@@ -635,7 +635,7 @@ DGAGetViewportStatus(int index)
    return (*pScreenPriv->funcs->GetViewport)(pScreenPriv->pScrn);
 }
 
-_X_EXPORT int
+int
 DGASetViewport(
    int index,
    int x, int y,
@@ -663,7 +663,7 @@ BitsClear(CARD32 data)
    return bits;
 }
 
-_X_EXPORT int
+int
 DGACreateColormap(int index, ClientPtr client, int id, int mode, int alloc)
 {
    ScreenPtr pScreen = screenInfo.screens[index];
@@ -732,7 +732,7 @@ DGACreateColormap(int index, ClientPtr client, int id, int mode, int alloc)
 
 /*  Called by the extension to install a colormap on DGA active screens */
 
-_X_EXPORT void
+void
 DGAInstallCmap(ColormapPtr cmap)
 {
     ScreenPtr pScreen = cmap->pScreen;
@@ -748,7 +748,7 @@ DGAInstallCmap(ColormapPtr cmap)
     (*pScreen->InstallColormap)(cmap);
 }
 
-_X_EXPORT int
+int
 DGASync(int index)
 {
    DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]);
@@ -761,7 +761,7 @@ DGASync(int index)
    return Success;
 }
 
-_X_EXPORT int
+int
 DGAFillRect(
    int index,
    int x, int y, int w, int h,
@@ -780,7 +780,7 @@ DGAFillRect(
    return BadMatch;
 }
 
-_X_EXPORT int
+int
 DGABlitRect(
    int index,
    int srcx, int srcy, 
@@ -801,7 +801,7 @@ DGABlitRect(
    return BadMatch;
 }
 
-_X_EXPORT int
+int
 DGABlitTransRect(
    int index,
    int srcx, int srcy, 
@@ -824,7 +824,7 @@ DGABlitTransRect(
 }
 
 
-_X_EXPORT int
+int
 DGAGetModes(int index)
 {
    DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]);
@@ -834,7 +834,7 @@ DGAGetModes(int index)
 }
 
 
-_X_EXPORT int
+int
 DGAGetModeInfo(
   int index,
   XDGAModePtr mode,
@@ -892,7 +892,7 @@ DGACopyModeInfo(
 }
 
 
-_X_EXPORT Bool 
+Bool
 DGAVTSwitch(void)
 {
     ScreenPtr pScreen;
@@ -914,7 +914,7 @@ DGAVTSwitch(void)
    return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DGAStealKeyEvent(DeviceIntPtr dev, int index, int key_code, int is_down)
 {
    DGAScreenPtr pScreenPriv;
@@ -941,7 +941,7 @@ DGAStealKeyEvent(DeviceIntPtr dev, int index, int key_code, int is_down)
 
 static int  DGAMouseX, DGAMouseY;
 
-_X_EXPORT Bool
+Bool
 DGAStealMotionEvent(DeviceIntPtr dev, int index, int dx, int dy)
 {
    DGAScreenPtr pScreenPriv;
@@ -976,7 +976,7 @@ DGAStealMotionEvent(DeviceIntPtr dev, int index, int dx, int dy)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DGAStealButtonEvent(DeviceIntPtr dev, int index, int button, int is_down)
 {
     DGAScreenPtr pScreenPriv;
@@ -1004,7 +1004,7 @@ DGAStealButtonEvent(DeviceIntPtr dev, int index, int button, int is_down)
 
 /* We have the power to steal or modify events that are about to get queued */
 
-_X_EXPORT Bool
+Bool
 DGAIsDgaEvent (xEvent *e)
 {
     int	    coreEquiv;
@@ -1125,7 +1125,7 @@ DGAProcessPointerEvent (ScreenPtr pScreen, dgaEvent *de, DeviceIntPtr mouse)
     }
 }
 
-_X_EXPORT Bool 
+Bool
 DGAOpenFramebuffer(
    int index,
    char **name,
@@ -1142,7 +1142,7 @@ DGAOpenFramebuffer(
 				name, mem, size, offset, flags);
 }
 
-_X_EXPORT void
+void
 DGACloseFramebuffer(int index)
 {
    DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]);
@@ -1154,7 +1154,7 @@ DGACloseFramebuffer(int index)
 
 /*  For DGA 1.0 backwards compatibility only */
 
-_X_EXPORT int 
+int
 DGAGetOldDGAMode(int index)
 {
    DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]);
diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c
index 5ee5e24..baa093f 100644
--- a/hw/xfree86/common/xf86DPMS.c
+++ b/hw/xfree86/common/xf86DPMS.c
@@ -54,7 +54,7 @@ static int DPMSCount = 0;
 #endif
 
 
-_X_EXPORT Bool
+Bool
 xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags)
 {
 #ifdef DPMSExtension
@@ -144,7 +144,7 @@ DPMSClose(int i, ScreenPtr pScreen)
  *	Device dependent DPMS mode setting hook.  This is called whenever
  *	the DPMS mode is to be changed.
  */
-_X_EXPORT int
+int
 DPMSSet(ClientPtr client, int level)
 {
     int rc, i;
@@ -180,7 +180,7 @@ DPMSSet(ClientPtr client, int level)
  * DPMSSupported --
  *	Return TRUE if any screen supports DPMS.
  */
-_X_EXPORT Bool
+Bool
 DPMSSupported(void)
 {
     int i;
@@ -217,7 +217,7 @@ DPMSSupported(void)
  *	 2. It isn't clear that this function is ever used or what it should
  *	    return.
  */
-_X_EXPORT int
+int
 DPMSGet(int *level)
 {
     return DPMSPowerLevel;
diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index aec43e6..c7f6c88 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -102,7 +102,7 @@
  * This has been generalised to work with Linux and *BSD+syscons (DHD)
  */
 
-_X_EXPORT Bool VTSwitchEnabled = TRUE;	/* Allows run-time disabling for
+Bool VTSwitchEnabled = TRUE;		/* Allows run-time disabling for
                                          *BSD and for avoiding VT
                                          switches when using the DRI
                                          automatic full screen mode.*/
@@ -130,7 +130,7 @@ typedef struct x_IHRec {
 static IHPtr InputHandlers = NULL;
 
 
-_X_EXPORT Bool
+Bool
 LegalModifier(unsigned int key, DeviceIntPtr pDev)
 {
     return TRUE;
@@ -141,7 +141,7 @@ LegalModifier(unsigned int key, DeviceIntPtr pDev)
  *      Function used for screensaver purposes by the os module. Returns the
  *      time in milliseconds since there last was any input.
  */
-_X_EXPORT int
+int
 TimeSinceLastInputEvent()
 {
   if (xf86Info.lastEventTime == 0) {
@@ -154,7 +154,7 @@ TimeSinceLastInputEvent()
  * SetTimeSinceLastInputEvent --
  *      Set the lastEventTime to now.
  */
-_X_EXPORT void
+void
 SetTimeSinceLastInputEvent()
 {
   xf86Info.lastEventTime = GetTimeInMillis();
@@ -166,7 +166,7 @@ SetTimeSinceLastInputEvent()
  *      correct chronological order. Only reads from the system pointer
  *      and keyboard.
  */
-_X_EXPORT void
+void
 ProcessInputEvents ()
 {
   int x, y;
@@ -182,7 +182,7 @@ ProcessInputEvents ()
  * Handle keyboard events that cause some kind of "action"
  * (i.e., server termination, video mode changes, VT switches, etc.)
  */
-_X_EXPORT void
+void
 xf86ProcessActionEvent(ActionEvent action, void *arg)
 {
 #ifdef DEBUG
@@ -251,7 +251,7 @@ xf86ProcessActionEvent(ActionEvent action, void *arg)
  */
 
 /* ARGSUSED */
-_X_EXPORT void
+void
 xf86Wakeup(pointer blockData, int err, pointer pReadmask)
 {
     fd_set* LastSelectMask = (fd_set*)pReadmask;
@@ -318,7 +318,7 @@ xf86SigioReadInput(int fd,
  * xf86AddEnabledDevice --
  *
  */
-_X_EXPORT void
+void
 xf86AddEnabledDevice(InputInfoPtr pInfo)
 {
     if (!xf86InstallSIGIOHandler (pInfo->fd, xf86SigioReadInput, pInfo)) {
@@ -330,7 +330,7 @@ xf86AddEnabledDevice(InputInfoPtr pInfo)
  * xf86RemoveEnabledDevice --
  *
  */
-_X_EXPORT void
+void
 xf86RemoveEnabledDevice(InputInfoPtr pInfo)
 {
     if (!xf86RemoveSIGIOHandler (pInfo->fd)) {
@@ -340,7 +340,7 @@ xf86RemoveEnabledDevice(InputInfoPtr pInfo)
 
 static int *xf86SignalIntercept = NULL;
 
-_X_EXPORT void
+void
 xf86InterceptSignals(int *signo)
 {
     if ((xf86SignalIntercept = signo))
@@ -349,7 +349,7 @@ xf86InterceptSignals(int *signo)
 
 static void (*xf86SigIllHandler)(void) = NULL;
 
-_X_EXPORT void
+void
 xf86InterceptSigIll(void (*sigillhandler)(void))
 {
     xf86SigIllHandler = sigillhandler;
@@ -359,7 +359,7 @@ xf86InterceptSigIll(void (*sigillhandler)(void))
  * xf86SigHandler --
  *    Catch unexpected signals and exit or continue cleanly.
  */
-_X_EXPORT void
+void
 xf86SigHandler(int signo)
 {
   if ((signo == SIGILL) && xf86SigIllHandler) {
@@ -391,7 +391,7 @@ xf86SigHandler(int signo)
  * xf86PrintBacktrace --
  *    Print a stack backtrace for debugging purposes.
  */
-_X_EXPORT void
+void
 xf86PrintBacktrace(void)
 {
     xorg_backtrace();
@@ -650,7 +650,7 @@ addInputHandler(int fd, InputHandlerProc proc, pointer data)
     return ih;
 }
 
-_X_EXPORT pointer
+pointer
 xf86AddInputHandler(int fd, InputHandlerProc proc, pointer data)
 {
     IHPtr ih = addInputHandler(fd, proc, data);
@@ -660,7 +660,7 @@ xf86AddInputHandler(int fd, InputHandlerProc proc, pointer data)
     return ih;
 }
 
-_X_EXPORT pointer
+pointer
 xf86AddGeneralHandler(int fd, InputHandlerProc proc, pointer data)
 {
     IHPtr ih = addInputHandler(fd, proc, data);
@@ -687,7 +687,7 @@ removeInputHandler(IHPtr ih)
     xfree(ih);
 }
 
-_X_EXPORT int
+int
 xf86RemoveInputHandler(pointer handler)
 {
     IHPtr ih;
@@ -706,7 +706,7 @@ xf86RemoveInputHandler(pointer handler)
     return fd;
 }
 
-_X_EXPORT int
+int
 xf86RemoveGeneralHandler(pointer handler)
 {
     IHPtr ih;
@@ -725,7 +725,7 @@ xf86RemoveGeneralHandler(pointer handler)
     return fd;
 }
 
-_X_EXPORT void
+void
 xf86DisableInputHandler(pointer handler)
 {
     IHPtr ih;
@@ -739,7 +739,7 @@ xf86DisableInputHandler(pointer handler)
 	RemoveEnabledDevice(ih->fd);
 }
 
-_X_EXPORT void
+void
 xf86DisableGeneralHandler(pointer handler)
 {
     IHPtr ih;
@@ -753,7 +753,7 @@ xf86DisableGeneralHandler(pointer handler)
 	RemoveGeneralSocket(ih->fd);
 }
 
-_X_EXPORT void
+void
 xf86EnableInputHandler(pointer handler)
 {
     IHPtr ih;
@@ -767,7 +767,7 @@ xf86EnableInputHandler(pointer handler)
 	AddEnabledDevice(ih->fd);
 }
 
-_X_EXPORT void
+void
 xf86EnableGeneralHandler(pointer handler)
 {
     IHPtr ih;
@@ -784,7 +784,7 @@ xf86EnableGeneralHandler(pointer handler)
 /*
  * As used currently by the DRI, the return value is ignored.
  */
-_X_EXPORT Bool
+Bool
 xf86EnableVTSwitch(Bool new)
 {
     static Bool def = TRUE;
@@ -802,7 +802,7 @@ xf86EnableVTSwitch(Bool new)
     return old;
 }
 
-_X_EXPORT void
+void
 xf86ReloadInputDevs(int sig)
 {
   InputInfoPtr pInfo;
@@ -819,7 +819,7 @@ xf86ReloadInputDevs(int sig)
   return;
 }
 
-_X_EXPORT void
+void
 DDXRingBell(int volume, int pitch, int duration) {
     xf86OSRingBell(volume, pitch, duration);
 }
diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
index c01f485..c277369 100644
--- a/hw/xfree86/common/xf86Globals.c
+++ b/hw/xfree86/common/xf86Globals.c
@@ -48,14 +48,14 @@
 
 /* Index into pScreen.devPrivates */
 static int xf86CreateRootWindowKeyIndex;
-_X_EXPORT DevPrivateKey xf86CreateRootWindowKey = &xf86CreateRootWindowKeyIndex;
+DevPrivateKey xf86CreateRootWindowKey = &xf86CreateRootWindowKeyIndex;
 /* Index of ScrnInfo in pScreen.devPrivates */
 static int xf86ScreenKeyIndex;
-_X_EXPORT DevPrivateKey xf86ScreenKey = &xf86ScreenKeyIndex;
+DevPrivateKey xf86ScreenKey = &xf86ScreenKeyIndex;
 static int xf86PixmapKeyIndex;
-_X_EXPORT DevPrivateKey xf86PixmapKey = &xf86PixmapKeyIndex;
-_X_EXPORT ScrnInfoPtr *xf86Screens = NULL;	/* List of ScrnInfos */
-_X_EXPORT const unsigned char byte_reversed[256] =
+DevPrivateKey xf86PixmapKey = &xf86PixmapKeyIndex;
+ScrnInfoPtr *xf86Screens = NULL;	/* List of ScrnInfos */
+const unsigned char byte_reversed[256] =
 {
     0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
     0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
@@ -92,12 +92,12 @@ _X_EXPORT const unsigned char byte_reversed[256] =
 };
 
 /* Globals that input drivers may access */
-_X_EXPORT InputInfoPtr xf86InputDevs = NULL;
+InputInfoPtr xf86InputDevs = NULL;
 
 
 /* Globals that video drivers may not access */
 
-_X_EXPORT xf86InfoRec xf86Info = {
+xf86InfoRec xf86Info = {
     .consoleFd                  = -1,
     .vtno                       = -1,
     .vtSysreq                   = FALSE,
@@ -138,29 +138,29 @@ _X_EXPORT xf86InfoRec xf86Info = {
     .autoEnableDevices          = FALSE
 #endif
 };
-_X_EXPORT const char *xf86ConfigFile = NULL;
-_X_EXPORT const char *xf86InputDeviceList = NULL;
-_X_EXPORT const char *xf86ModulePath = DEFAULT_MODULE_PATH;
-_X_EXPORT MessageType xf86ModPathFrom = X_DEFAULT;
-_X_EXPORT const char *xf86LogFile = DEFAULT_LOGPREFIX;
-_X_EXPORT MessageType xf86LogFileFrom = X_DEFAULT;
-_X_EXPORT Bool xf86LogFileWasOpened = FALSE;
-_X_EXPORT serverLayoutRec xf86ConfigLayout = {NULL, };
-_X_EXPORT confDRIRec xf86ConfigDRI = {0, };
+const char *xf86ConfigFile = NULL;
+const char *xf86InputDeviceList = NULL;
+const char *xf86ModulePath = DEFAULT_MODULE_PATH;
+MessageType xf86ModPathFrom = X_DEFAULT;
+const char *xf86LogFile = DEFAULT_LOGPREFIX;
+MessageType xf86LogFileFrom = X_DEFAULT;
+Bool xf86LogFileWasOpened = FALSE;
+serverLayoutRec xf86ConfigLayout = {NULL, };
+confDRIRec xf86ConfigDRI = {0, };
 XF86ConfigPtr xf86configptr = NULL;
-_X_EXPORT Bool xf86Resetting = FALSE;
-_X_EXPORT Bool xf86Initialising = FALSE;
-_X_EXPORT Bool xf86DoProbe = FALSE;
-_X_EXPORT Bool xf86DoConfigure = FALSE;
-_X_EXPORT Bool xf86DoShowOptions = FALSE;
-_X_EXPORT Bool xf86DoModalias = FALSE;
-_X_EXPORT DriverPtr *xf86DriverList = NULL;
-_X_EXPORT int xf86NumDrivers = 0;
+Bool xf86Resetting = FALSE;
+Bool xf86Initialising = FALSE;
+Bool xf86DoProbe = FALSE;
+Bool xf86DoConfigure = FALSE;
+Bool xf86DoShowOptions = FALSE;
+Bool xf86DoModalias = FALSE;
+DriverPtr *xf86DriverList = NULL;
+int xf86NumDrivers = 0;
 InputDriverPtr *xf86InputDriverList = NULL;
 int xf86NumInputDrivers = 0;
-_X_EXPORT int xf86NumScreens = 0;
+int xf86NumScreens = 0;
 
-_X_EXPORT const char *xf86VisualNames[] = {
+const char *xf86VisualNames[] = {
 	"StaticGray",
 	"GrayScale",
 	"StaticColor",
@@ -171,36 +171,36 @@ _X_EXPORT const char *xf86VisualNames[] = {
 
 /* Parameters set only from the command line */
 char *xf86ServerName = "no-name";
-_X_EXPORT Bool xf86fpFlag = FALSE;
-_X_EXPORT Bool xf86sFlag = FALSE;
-_X_EXPORT Bool xf86bsEnableFlag = FALSE;
-_X_EXPORT Bool xf86bsDisableFlag = FALSE;
-_X_EXPORT Bool xf86silkenMouseDisableFlag = FALSE;
+Bool xf86fpFlag = FALSE;
+Bool xf86sFlag = FALSE;
+Bool xf86bsEnableFlag = FALSE;
+Bool xf86bsDisableFlag = FALSE;
+Bool xf86silkenMouseDisableFlag = FALSE;
 #ifdef HAVE_ACPI
-_X_EXPORT Bool xf86acpiDisableFlag = FALSE;
+Bool xf86acpiDisableFlag = FALSE;
 #endif
-_X_EXPORT char *xf86LayoutName = NULL;
-_X_EXPORT char *xf86ScreenName = NULL;
-_X_EXPORT char *xf86PointerName = NULL;
-_X_EXPORT char *xf86KeyboardName = NULL;
-_X_EXPORT Bool xf86ProbeOnly = FALSE;
-_X_EXPORT int xf86Verbose = DEFAULT_VERBOSE;
-_X_EXPORT int xf86LogVerbose = DEFAULT_LOG_VERBOSE;
-_X_EXPORT int xf86FbBpp = -1;
-_X_EXPORT Pix24Flags xf86Pix24 = Pix24DontCare;
-_X_EXPORT int xf86Depth = -1;
-_X_EXPORT rgb xf86Weight = {0, 0, 0};
-_X_EXPORT Bool xf86FlipPixels = FALSE;
-_X_EXPORT Gamma xf86Gamma = {0.0, 0.0, 0.0};
-_X_EXPORT Bool xf86AllowMouseOpenFail = FALSE;
+char *xf86LayoutName = NULL;
+char *xf86ScreenName = NULL;
+char *xf86PointerName = NULL;
+char *xf86KeyboardName = NULL;
+Bool xf86ProbeOnly = FALSE;
+int xf86Verbose = DEFAULT_VERBOSE;
+int xf86LogVerbose = DEFAULT_LOG_VERBOSE;
+int xf86FbBpp = -1;
+Pix24Flags xf86Pix24 = Pix24DontCare;
+int xf86Depth = -1;
+rgb xf86Weight = {0, 0, 0};
+Bool xf86FlipPixels = FALSE;
+Gamma xf86Gamma = {0.0, 0.0, 0.0};
+Bool xf86AllowMouseOpenFail = FALSE;
 #ifdef XF86VIDMODE
-_X_EXPORT Bool xf86VidModeDisabled = FALSE;
-_X_EXPORT Bool xf86VidModeAllowNonLocal = FALSE;
+Bool xf86VidModeDisabled = FALSE;
+Bool xf86VidModeAllowNonLocal = FALSE;
 #endif
-_X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
-_X_EXPORT Bool xf86inSuspend = FALSE;
-_X_EXPORT Bool xorgHWAccess = FALSE;
+RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
+Bool xf86inSuspend = FALSE;
+Bool xorgHWAccess = FALSE;
 
-_X_EXPORT struct pci_slot_match xf86IsolateDevice = {
+struct pci_slot_match xf86IsolateDevice = {
     PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0
 };
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 2c550fe..0a66f80 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -72,7 +72,7 @@ static int xf86ScrnInfoPrivateCount = 0;
 
 /* Add a pointer to a new DriverRec to xf86DriverList */
 
-_X_EXPORT void
+void
 xf86AddDriver(DriverPtr driver, pointer module, int flags)
 {
     /* Don't add null entries */
@@ -99,7 +99,7 @@ xf86AddDriver(DriverPtr driver, pointer module, int flags)
     xf86DriverList[xf86NumDrivers - 1]->refCount = 0;
 }
 
-_X_EXPORT void
+void
 xf86DeleteDriver(int drvIndex)
 {
     if (xf86DriverList[drvIndex]
@@ -113,7 +113,7 @@ xf86DeleteDriver(int drvIndex)
 
 /* Add a pointer to a new InputDriverRec to xf86InputDriverList */
 
-_X_EXPORT void
+void
 xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags)
 {
     /* Don't add null entries */
@@ -133,7 +133,7 @@ xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags)
     xf86InputDriverList[xf86NumInputDrivers - 1]->refCount = 0;
 }
 
-_X_EXPORT void
+void
 xf86DeleteInputDriver(int drvIndex)
 {
     if (xf86InputDriverList[drvIndex] && xf86InputDriverList[drvIndex]->module)
@@ -142,7 +142,7 @@ xf86DeleteInputDriver(int drvIndex)
     xf86InputDriverList[drvIndex] = NULL;
 }
 
-_X_EXPORT InputDriverPtr
+InputDriverPtr
 xf86LookupInputDriver(const char *name)
 {
     int i;
@@ -155,7 +155,7 @@ xf86LookupInputDriver(const char *name)
     return NULL;
 }
 
-_X_EXPORT InputInfoPtr
+InputInfoPtr
 xf86LookupInput(const char *name)
 {
     InputInfoPtr p;
@@ -169,19 +169,19 @@ xf86LookupInput(const char *name)
 }
 
 /* ABI stubs of despair */
-_X_EXPORT void
+void
 xf86AddModuleInfo(pointer info, pointer module)
 {
 }
 
-_X_EXPORT void
+void
 xf86DeleteModuleInfo(int idx)
 {
 }
 
 /* Allocate a new ScrnInfoRec in xf86Screens */
 
-_X_EXPORT ScrnInfoPtr
+ScrnInfoPtr
 xf86AllocateScreen(DriverPtr drv, int flags)
 {
     int i;
@@ -232,7 +232,7 @@ xf86AllocateScreen(DriverPtr drv, int flags)
  * data.  To do this properly may require a driver hook.
  */
 
-_X_EXPORT void
+void
 xf86DeleteScreen(int scrnIndex, int flags)
 {
     ScrnInfoPtr pScrn;
@@ -288,7 +288,7 @@ xf86DeleteScreen(int scrnIndex, int flags)
  * Allocate a private in ScrnInfoRec.
  */
 
-_X_EXPORT int
+int
 xf86AllocateScrnInfoPrivateIndex(void)
 {
     int idx, i;
@@ -308,7 +308,7 @@ xf86AllocateScrnInfoPrivateIndex(void)
 }
 
 /* Allocate a new InputInfoRec and append it to the tail of xf86InputDevs. */
-_X_EXPORT InputInfoPtr
+InputInfoPtr
 xf86AllocateInput(InputDriverPtr drv, int flags)
 {
     InputInfoPtr new, *prev = NULL;
@@ -335,7 +335,7 @@ xf86AllocateInput(InputDriverPtr drv, int flags)
  * data.  To do this properly may require a driver hook.
  */
 
-_X_EXPORT void
+void
 xf86DeleteInput(InputInfoPtr pInp, int flags)
 {
     InputInfoPtr p;
@@ -376,7 +376,7 @@ xf86DeleteInput(InputInfoPtr pInp, int flags)
     xfree(pInp);
 }
 
-_X_EXPORT Bool
+Bool
 xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad)
 {
     int i;
@@ -447,7 +447,7 @@ xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad)
 #define GLOBAL_DEFAULT_DEPTH 24
 #endif
 
-_X_EXPORT Bool
+Bool
 xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
 		int depth24flags)
 {
@@ -764,7 +764,7 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
 /*
  * Print out the selected depth and bpp.
  */
-_X_EXPORT void
+void
 xf86PrintDepthBpp(ScrnInfoPtr scrp)
 {
     xf86DrvMsg(scrp->scrnIndex, scrp->depthFrom, "Depth %d, ", scrp->depth);
@@ -775,7 +775,7 @@ xf86PrintDepthBpp(ScrnInfoPtr scrp)
  * xf86SetWeight sets scrp->weight, scrp->mask, scrp->offset, and for depths
  * greater than MAX_PSEUDO_DEPTH also scrp->rgbBits.
  */
-_X_EXPORT Bool
+Bool
 xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask)
 {
     MessageType weightFrom = X_DEFAULT;
@@ -867,7 +867,7 @@ xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual)
 {
     MessageType visualFrom = X_DEFAULT;
@@ -914,7 +914,7 @@ xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual)
 #define SET_GAMMA(g) \
 	(g) > GAMMA_ZERO ? (g) : 1.0
 
-_X_EXPORT Bool
+Bool
 xf86SetGamma(ScrnInfoPtr scrp, Gamma gamma)
 {
     MessageType from = X_DEFAULT;
@@ -968,7 +968,7 @@ xf86SetGamma(ScrnInfoPtr scrp, Gamma gamma)
 #undef MMPERINCH
 #define MMPERINCH 25.4
 
-_X_EXPORT void
+void
 xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
 {
     MessageType from = X_DEFAULT;
@@ -1065,7 +1065,7 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
 #undef MMPERINCH
 
 
-_X_EXPORT void
+void
 xf86SetBlackWhitePixels(ScreenPtr pScreen)
 {
     if (xf86FlipPixels) {
@@ -1196,7 +1196,7 @@ xf86SetRootClip (ScreenPtr pScreen, Bool enable)
  * whether they are switched in or out by keeping track of the root pixmap's
  * private data, and therefore don't need to access pScrnInfo->vtSema.
  */
-_X_EXPORT void
+void
 xf86EnableDisableFBAccess(int scrnIndex, Bool enable)
 {
     ScrnInfoPtr pScrnInfo = xf86Screens[scrnIndex];
@@ -1238,7 +1238,7 @@ xf86EnableDisableFBAccess(int scrnIndex, Bool enable)
 #undef PREFIX_SIZE
 #define PREFIX_SIZE 14
 
-_X_EXPORT void
+void
 xf86VDrvMsgVerb(int scrnIndex, MessageType type, int verb, const char *format,
 		va_list args)
 {
@@ -1265,7 +1265,7 @@ xf86VDrvMsgVerb(int scrnIndex, MessageType type, int verb, const char *format,
 #undef PREFIX_SIZE
 
 /* Print driver messages, with verbose level specified directly */
-_X_EXPORT void
+void
 xf86DrvMsgVerb(int scrnIndex, MessageType type, int verb, const char *format,
 	       ...)
 {
@@ -1277,7 +1277,7 @@ xf86DrvMsgVerb(int scrnIndex, MessageType type, int verb, const char *format,
 }
 
 /* Print driver messages, with verbose level of 1 (default) */
-_X_EXPORT void
+void
 xf86DrvMsg(int scrnIndex, MessageType type, const char *format, ...)
 {
     va_list ap;
@@ -1288,7 +1288,7 @@ xf86DrvMsg(int scrnIndex, MessageType type, const char *format, ...)
 }
 
 /* Print non-driver messages with verbose level specified directly */
-_X_EXPORT void
+void
 xf86MsgVerb(MessageType type, int verb, const char *format, ...)
 {
     va_list ap;
@@ -1299,7 +1299,7 @@ xf86MsgVerb(MessageType type, int verb, const char *format, ...)
 }
 
 /* Print non-driver messages with verbose level of 1 (default) */
-_X_EXPORT void
+void
 xf86Msg(MessageType type, const char *format, ...)
 {
     va_list ap;
@@ -1310,7 +1310,7 @@ xf86Msg(MessageType type, const char *format, ...)
 }
 
 /* Just like ErrorF, but with the verbose level checked */
-_X_EXPORT void
+void
 xf86ErrorFVerb(int verb, const char *format, ...)
 {
     va_list ap;
@@ -1322,7 +1322,7 @@ xf86ErrorFVerb(int verb, const char *format, ...)
 }
 
 /* Like xf86ErrorFVerb, but with an implied verbose level of 1 */
-_X_EXPORT void
+void
 xf86ErrorF(const char *format, ...)
 {
     va_list ap;
@@ -1334,7 +1334,7 @@ xf86ErrorF(const char *format, ...)
 }
 
 
-_X_EXPORT void
+void
 xf86LogInit()
 {
     char *lf = NULL;
@@ -1365,7 +1365,7 @@ xf86LogInit()
     free(lf);
 }
 
-_X_EXPORT void
+void
 xf86CloseLog()
 {
     LogClose();
@@ -1376,7 +1376,7 @@ xf86CloseLog()
  * Drivers can use these for using their own SymTabRecs.
  */
 
-_X_EXPORT const char *
+const char *
 xf86TokenToString(SymTabPtr table, int token)
 {
     int i;
@@ -1390,7 +1390,7 @@ xf86TokenToString(SymTabPtr table, int token)
 	return(table[i].name);
 }
 
-_X_EXPORT int
+int
 xf86StringToToken(SymTabPtr table, const char *string)
 {
     int i;
@@ -1407,7 +1407,7 @@ xf86StringToToken(SymTabPtr table, const char *string)
 /*
  * helper to display the clocks found on a card
  */
-_X_EXPORT void
+void
 xf86ShowClocks(ScrnInfoPtr scrp, MessageType from)
 {
     int j;
@@ -1431,7 +1431,7 @@ xf86ShowClocks(ScrnInfoPtr scrp, MessageType from)
  * XXX This makes assumptions about the line width, etc.  Maybe we could
  * use a more general "pretty print" function for messages.
  */
-_X_EXPORT void
+void
 xf86PrintChipsets(const char *drvname, const char *drvmsg, SymTabPtr chips)
 {
     int len, i;
@@ -1457,7 +1457,7 @@ xf86PrintChipsets(const char *drvname, const char *drvmsg, SymTabPtr chips)
 }
 
 
-_X_EXPORT int
+int
 xf86MatchDevice(const char *drivername, GDevPtr **sectlist)
 {
     GDevPtr       gdp, *pgdp = NULL;
@@ -1590,7 +1590,7 @@ struct Inst {
  * \c DriverRec::driverName.  In a future version of this function, remove
  * that parameter.
  */
-_X_EXPORT int
+int
 xf86MatchPciInstances(const char *driverName, int vendorID,
 		      SymTabPtr chipsets, PciChipsets *PCIchipsets,
 		      GDevPtr *devList, int numDevs, DriverPtr drvp,
@@ -1956,7 +1956,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
 /*
  * xf86GetClocks -- get the dot-clocks via a BIG BAD hack ...
  */
-_X_EXPORT void
+void
 xf86GetClocks(ScrnInfoPtr pScrn, int num, Bool (*ClockFunc)(ScrnInfoPtr, int),
 	      void (*ProtectRegs)(ScrnInfoPtr, Bool),
 	      void (*BlankScreen)(ScrnInfoPtr, Bool), IOADDRESS vertsyncreg,
@@ -2047,7 +2047,7 @@ finish:
     (*ClockFunc)(pScrn, CLK_REG_RESTORE);
 }
 
-_X_EXPORT void
+void
 xf86SetPriority(Bool up)
 {
     static int saved_nice;
@@ -2071,7 +2071,7 @@ xf86SetPriority(Bool up)
     }
 }
 
-_X_EXPORT const char *
+const char *
 xf86GetVisualName(int visual)
 {
     if (visual < 0 || visual > DirectColor)
@@ -2081,131 +2081,131 @@ xf86GetVisualName(int visual)
 }
 
 
-_X_EXPORT int
+int
 xf86GetVerbosity()
 {
     return max(xf86Verbose, xf86LogVerbose);
 }
 
-_X_EXPORT Pix24Flags
+Pix24Flags
 xf86GetPix24()
 {
     return xf86Info.pixmap24;
 }
 
 
-_X_EXPORT int
+int
 xf86GetDepth()
 {
     return xf86Depth;
 }
 
 
-_X_EXPORT rgb
+rgb
 xf86GetWeight()
 {
     return xf86Weight;
 }
 
 
-_X_EXPORT Gamma
+Gamma
 xf86GetGamma()
 {
     return xf86Gamma;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetFlipPixels()
 {
     return xf86FlipPixels;
 }
 
 
-_X_EXPORT const char *
+const char *
 xf86GetServerName()
 {
     return xf86ServerName;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ServerIsExiting()
 {
     return (dispatchException & DE_TERMINATE) == DE_TERMINATE;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ServerIsResetting()
 {
     return xf86Resetting;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ServerIsInitialising()
 {
     return xf86Initialising;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ServerIsOnlyDetecting(void)
 {
     return xf86DoProbe || xf86DoConfigure;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ServerIsOnlyProbing(void)
 {
     return xf86ProbeOnly;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86CaughtSignal()
 {
     return xf86Info.caughtSignal;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetVidModeAllowNonLocal()
 {
     return xf86Info.vidModeAllowNonLocal;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetVidModeEnabled()
 {
     return xf86Info.vidModeEnabled;
 }
 
-_X_EXPORT Bool
+Bool
 xf86GetModInDevAllowNonLocal()
 {
     return xf86Info.miscModInDevAllowNonLocal;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetModInDevEnabled()
 {
     return xf86Info.miscModInDevEnabled;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetAllowMouseOpenFail()
 {
     return xf86Info.allowMouseOpenFail;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86IsPc98()
 {
 #ifdef __i386__
@@ -2215,20 +2215,20 @@ xf86IsPc98()
 #endif
 }
 
-_X_EXPORT void
+void
 xf86DisableRandR()
 {
     xf86Info.disableRandR = TRUE;
     xf86Info.randRFrom = X_PROBED;
 }
 
-_X_EXPORT CARD32
+CARD32
 xf86GetModuleVersion(pointer module)
 {
     return (CARD32)LoaderGetModuleVersion(module);
 }
 
-_X_EXPORT pointer
+pointer
 xf86LoadDrvSubModule(DriverPtr drv, const char *name)
 {
     pointer ret;
@@ -2241,7 +2241,7 @@ xf86LoadDrvSubModule(DriverPtr drv, const char *name)
     return ret;
 }
 
-_X_EXPORT pointer
+pointer
 xf86LoadSubModule(ScrnInfoPtr pScrn, const char *name)
 {
     pointer ret;
@@ -2257,7 +2257,7 @@ xf86LoadSubModule(ScrnInfoPtr pScrn, const char *name)
 /*
  * xf86LoadOneModule loads a single module.
  */
-_X_EXPORT pointer
+pointer
 xf86LoadOneModule(char *name, pointer opt)
 {
     int errmaj, errmin;
@@ -2285,7 +2285,7 @@ xf86LoadOneModule(char *name, pointer opt)
     return mod;
 }
 
-_X_EXPORT void
+void
 xf86UnloadSubModule(pointer mod)
 {
     /*
@@ -2297,29 +2297,29 @@ xf86UnloadSubModule(pointer mod)
 #endif
 }
 
-_X_EXPORT Bool
+Bool
 xf86LoaderCheckSymbol(const char *name)
 {
     return LoaderSymbol(name) != NULL;
 }
 
 /* These two are just ABI stubs, they don't do anything in dlloader world */
-_X_EXPORT void
+void
 xf86LoaderReqSymLists(const char **list0, ...)
 {
 }
 
-_X_EXPORT void
+void
 xf86LoaderReqSymbols(const char *sym0, ...)
 {
 }
 
-_X_EXPORT void
+void
 xf86LoaderRefSymLists(const char **list0, ...)
 {
 }
 
-_X_EXPORT void
+void
 xf86LoaderRefSymbols(const char *sym0, ...)
 {
 }
@@ -2334,7 +2334,7 @@ static const OptionInfoRec BSOptions[] = {
    { -1,                   NULL,           OPTV_NONE,    {0}, FALSE }
 };
 
-_X_EXPORT void
+void
 xf86SetBackingStore(ScreenPtr pScreen)
 {
     Bool useBS = FALSE;
@@ -2374,7 +2374,7 @@ static const OptionInfoRec SMOptions[] = {
    { -1,                   NULL,           OPTV_NONE,    {0}, FALSE }
 };
 
-_X_EXPORT void
+void
 xf86SetSilkenMouse (ScreenPtr pScreen)
 {
     Bool useSM = TRUE;
@@ -2415,7 +2415,7 @@ xf86SetSilkenMouse (ScreenPtr pScreen)
 
 /* Wrote this function for the PM2 Xv driver, preliminary. */
 
-_X_EXPORT pointer
+pointer
 xf86FindXvOptions(int scrnIndex, int adaptor_index, char *port_name,
 		  char **adaptor_name, pointer *adaptor_options)
 {
@@ -2446,7 +2446,7 @@ xf86FindXvOptions(int scrnIndex, int adaptor_index, char *port_name,
 
 /* new RAC */
 
-_X_EXPORT ScrnInfoPtr
+ScrnInfoPtr
 xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
 			  PciChipsets *p_chip, resList res, EntityProc init,
 			  EntityProc enter, EntityProc leave, pointer private)
@@ -2490,7 +2490,7 @@ xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
     return pScrn;
 }
 
-_X_EXPORT ScrnInfoPtr
+ScrnInfoPtr
 xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
 		   EntityProc init, EntityProc enter, EntityProc leave,
 		   pointer private)
@@ -2524,7 +2524,7 @@ xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
  *             It is likely to be removed. Don't use!
  */
 
-_X_EXPORT Bool
+Bool
 xf86ConfigActivePciEntity(ScrnInfoPtr pScrn, int entityIndex,
                           PciChipsets *p_chip, resList res, EntityProc init,
                           EntityProc enter, EntityProc leave, pointer private)
@@ -2561,7 +2561,7 @@ xf86ConfigActivePciEntity(ScrnInfoPtr pScrn, int entityIndex,
  * assigned to a screen before it will be removed. If p_chip is
  * non-NULL all static resources listed there will be registered.
  */
-_X_EXPORT void
+void
 xf86ConfigPciEntityInactive(EntityInfoPtr pEnt, PciChipsets *p_chip,
 			    resList res, EntityProc init, EntityProc enter,
 			    EntityProc leave, pointer private)
@@ -2583,7 +2583,7 @@ xf86ConfigPciEntityInactive(EntityInfoPtr pEnt, PciChipsets *p_chip,
     xf86SetEntityFuncs(pEnt->index,init,enter,leave,private);
 }
 
-_X_EXPORT void
+void
 xf86ConfigFbEntityInactive(EntityInfoPtr pEnt, EntityProc init,
 			   EntityProc enter, EntityProc leave, pointer private)
 {
@@ -2594,7 +2594,7 @@ xf86ConfigFbEntityInactive(EntityInfoPtr pEnt, EntityProc init,
     xf86SetEntityFuncs(pEnt->index,init,enter,leave,private);
 }
 
-_X_EXPORT Bool
+Bool
 xf86IsScreenPrimary(int scrnIndex)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -2607,7 +2607,7 @@ xf86IsScreenPrimary(int scrnIndex)
     return FALSE;
 }
 
-_X_EXPORT int
+int
 xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
 			       int format, unsigned long len, pointer value )
 {
@@ -2698,7 +2698,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
     return(Success);
 }
 
-_X_EXPORT Bool
+Bool
 xf86IsUnblank(int mode)
 {
     switch(mode) {
@@ -2714,13 +2714,13 @@ xf86IsUnblank(int mode)
     }
 }
 
-_X_EXPORT void
+void
 xf86MotionHistoryAllocate(LocalDevicePtr local)
 {
     AllocateMotionHistory(local->dev);
 }
 
-_X_EXPORT int
+int
 xf86GetMotionEvents(DeviceIntPtr pDev, xTimecoord *buff, unsigned long start,
                     unsigned long stop, ScreenPtr pScreen, BOOL core)
 {
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index e8095e5..eacf344 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -613,7 +613,7 @@ check_for_matching_devices(DriverPtr drvp)
  * If a device can be successfully probed by the driver, \c TRUE is
  * returned.  Otherwise, \c FALSE is returned.
  */
-_X_EXPORT Bool
+Bool
 xf86CallDriverProbe( DriverPtr drv, Bool detect_only )
 {
     Bool     foundScreen = FALSE;
@@ -719,7 +719,7 @@ DoProbe(void)
  *      That includes vt-manager setup, querying all possible devices and
  *      collecting the pixmap formats.
  */
-_X_EXPORT void
+void
 InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
 {
   int                    i, j, k, scr_index;
@@ -1305,7 +1305,7 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
  *      Initialize all supported input devices.
  */
 
-_X_EXPORT void
+void
 InitInput(argc, argv)
      int	  argc;
      char	  **argv;
@@ -1336,7 +1336,7 @@ InitInput(argc, argv)
  *      is called by dix before establishing the well known sockets.
  */
 
-_X_EXPORT void
+void
 OsVendorInit()
 {
   static Bool beenHere = FALSE;
@@ -1381,7 +1381,7 @@ OsVendorInit()
  *      checking here, since there should be restored as much as possible.
  */
 
-_X_EXPORT void
+void
 ddxGiveUp()
 {
     int i;
@@ -1426,7 +1426,7 @@ ddxGiveUp()
  *      are closed.
  */
 
-_X_EXPORT void
+void
 AbortDDX()
 {
   int i;
@@ -1462,7 +1462,7 @@ AbortDDX()
   ddxGiveUp();
 }
 
-_X_EXPORT void
+void
 OsVendorFatalError()
 {
 #ifdef VENDORSUPPORT
@@ -1478,7 +1478,7 @@ OsVendorFatalError()
     ErrorF("\n");
 }
 
-_X_EXPORT int
+int
 xf86SetVerbosity(int verb)
 {
     int save = xf86Verbose;
@@ -1488,7 +1488,7 @@ xf86SetVerbosity(int verb)
     return save;
 }
 
-_X_EXPORT int
+int
 xf86SetLogVerbosity(int verb)
 {
     int save = xf86LogVerbose;
@@ -1519,7 +1519,7 @@ xf86PrintDefaultLibraryPath(void)
  */
 
 /* ARGSUSED */
-_X_EXPORT int
+int
 ddxProcessArgument(int argc, char **argv, int i)
 {
   /*
@@ -1854,7 +1854,7 @@ ddxProcessArgument(int argc, char **argv, int i)
  *      Maybe the user now knows what really to do ...
  */
 
-_X_EXPORT void
+void
 ddxUseMsg()
 {
   ErrorF("\n");
@@ -1908,7 +1908,7 @@ ddxUseMsg()
 /*
  * xf86LoadModules iterates over a list that is being passed in.
  */
-_X_EXPORT Bool
+Bool
 xf86LoadModules(char **list, pointer *optlist)
 {
     int errmaj, errmin;
@@ -1950,7 +1950,7 @@ xf86LoadModules(char **list, pointer *optlist)
 
 /* Pixmap format stuff */
 
-_X_EXPORT PixmapFormatPtr
+PixmapFormatPtr
 xf86GetPixFormat(ScrnInfoPtr pScrn, int depth)
 {
     int i;
@@ -1995,7 +1995,7 @@ xf86GetPixFormat(ScrnInfoPtr pScrn, int depth)
     return NULL;
 }
 
-_X_EXPORT int
+int
 xf86GetBppFromDepth(ScrnInfoPtr pScrn, int depth)
 {
     PixmapFormatPtr format;
diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c
index 24a431d..522d3c2 100644
--- a/hw/xfree86/common/xf86Mode.c
+++ b/hw/xfree86/common/xf86Mode.c
@@ -71,7 +71,7 @@ printModeRejectMessage(int index, DisplayModePtr p, int status)
  *	Find closest clock to given frequency (in kHz).  This assumes the
  *	number of clocks is greater than zero.
  */
-_X_EXPORT int
+int
 xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
     int DivFactor, int MulFactor, int *divider)
 {
@@ -110,7 +110,7 @@ xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
  * Convert a ModeStatus value to a printable message
  */
 
-_X_EXPORT const char *
+const char *
 xf86ModeStatusToString(ModeStatus status)
 {
     switch (status) {
@@ -199,7 +199,7 @@ xf86ModeStatusToString(ModeStatus status)
  * xf86ShowClockRanges() -- Print the clock ranges allowed
  * and the clock values scaled by ClockMulFactor and ClockDivFactor
  */
-_X_EXPORT void
+void
 xf86ShowClockRanges(ScrnInfoPtr scrp, ClockRangePtr clockRanges)
 {
     ClockRangePtr cp;
@@ -399,7 +399,7 @@ xf86HandleBuiltinMode(ScrnInfoPtr scrp,
  * reason.
  */
 
-_X_EXPORT ModeStatus
+ModeStatus
 xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
 	       ClockRangePtr clockRanges, LookupModeFlags strategy)
 {
@@ -643,7 +643,7 @@ xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
  * This function takes a mode and monitor description, and determines
  * if the mode is valid for the monitor.
  */
-_X_EXPORT ModeStatus
+ModeStatus
 xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor)
 {
     int i;
@@ -790,7 +790,7 @@ xf86CheckModeSize(ScrnInfoPtr scrp, int w, int x, int y)
  *    maxVValue    maximum vertical timing value
  */
 
-_X_EXPORT ModeStatus
+ModeStatus
 xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
 			      ClockRangePtr clockRanges,
 			      LookupModeFlags strategy,
@@ -938,7 +938,7 @@ xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
  *    clockRanges  allowable clock ranges
  */
 
-_X_EXPORT ModeStatus
+ModeStatus
 xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags)
 {
     ClockRangesPtr cp;
@@ -1185,7 +1185,7 @@ found:
  * if an unrecoverable error was encountered.
  */
 
-_X_EXPORT int
+int
 xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
 		  char **modeNames, ClockRangePtr clockRanges,
 		  int *linePitches, int minPitch, int maxPitch, int pitchInc,
@@ -1771,7 +1771,7 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
  *
  */
  
-_X_EXPORT void
+void
 xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode)
 {
     /* Catch the easy/insane cases */
@@ -1803,7 +1803,7 @@ xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode)
  * invalid.
  */
 
-_X_EXPORT void
+void
 xf86PruneDriverModes(ScrnInfoPtr scrp)
 {
     DisplayModePtr first, p, n;
@@ -1843,7 +1843,7 @@ xf86PruneDriverModes(ScrnInfoPtr scrp)
  * parameters for each mode.  The initialisation includes adjustments
  * for interlaced and double scan modes.
  */
-_X_EXPORT void
+void
 xf86SetCrtcForModes(ScrnInfoPtr scrp, int adjustFlags)
 {
     DisplayModePtr p;
@@ -1883,7 +1883,7 @@ add(char **p, char *new)
     strcat(*p, new);
 }
 
-_X_EXPORT void
+void
 xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
 {
     char tmp[256];
@@ -1920,7 +1920,7 @@ xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
 }
 #endif
 
-_X_EXPORT void
+void
 xf86PrintModes(ScrnInfoPtr scrp)
 {
     DisplayModePtr p;
@@ -1995,7 +1995,7 @@ xf86PrintModes(ScrnInfoPtr scrp)
  *
  * \param modes doubly-linked mode list.
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new)
 {
     if (modes == NULL)
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index f4ce387..7557bc5 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -181,31 +181,28 @@ typedef struct {
     const char **	initDependencies;
 } ExtensionModule;
 
-extern ExtensionModule *ExtensionModuleList;
+extern _X_EXPORT ExtensionModule *ExtensionModuleList;
 
 /* Prototypes for Loader functions that are exported to modules */
-#ifndef IN_LOADER
-/* Prototypes with opaque pointers for use by modules */
-pointer LoadSubModule(pointer, const char *, const char **,
+extern _X_EXPORT pointer LoadSubModule(pointer, const char *, const char **,
 		      const char **, pointer, const XF86ModReqInfo *,
 		      int *, int *);
-void UnloadSubModule(pointer);
-void UnloadModule (pointer);
-#endif
-pointer LoaderSymbol(const char *);
-pointer LoaderSymbolLocal(pointer module, const char *);
-char **LoaderListDirs(const char **, const char **);
-void LoaderFreeDirList(char **);
-void LoaderErrorMsg(const char *, const char *, int, int);
-void LoadExtension(ExtensionModule *, Bool);
-void LoaderRefSymLists(const char **, ...);
-void LoaderRefSymbols(const char *, ...);
-void LoaderReqSymLists(const char **, ...);
-void LoaderReqSymbols(const char *, ...);
-int LoaderCheckUnresolved(int);
-void LoaderGetOS(const char **name, int *major, int *minor, int *teeny);
-Bool LoaderShouldIgnoreABI(void);
-int LoaderGetABIVersion(const char *abiclass);
+extern _X_EXPORT void UnloadSubModule(pointer);
+extern _X_EXPORT void UnloadModule (pointer);
+extern _X_EXPORT pointer LoaderSymbol(const char *);
+extern _X_EXPORT pointer LoaderSymbolLocal(pointer module, const char *);
+extern _X_EXPORT char **LoaderListDirs(const char **, const char **);
+extern _X_EXPORT void LoaderFreeDirList(char **);
+extern _X_EXPORT void LoaderErrorMsg(const char *, const char *, int, int);
+extern _X_EXPORT void LoadExtension(ExtensionModule *, Bool);
+extern _X_EXPORT void LoaderRefSymLists(const char **, ...);
+extern _X_EXPORT void LoaderRefSymbols(const char *, ...);
+extern _X_EXPORT void LoaderReqSymLists(const char **, ...);
+extern _X_EXPORT void LoaderReqSymbols(const char *, ...);
+extern _X_EXPORT int LoaderCheckUnresolved(int);
+extern _X_EXPORT void LoaderGetOS(const char **name, int *major, int *minor, int *teeny);
+extern _X_EXPORT Bool LoaderShouldIgnoreABI(void);
+extern _X_EXPORT int LoaderGetABIVersion(const char *abiclass);
 
 typedef pointer (*ModuleSetupProc)(pointer, pointer, int *, int *);
 typedef void (*ModuleTearDownProc)(pointer);
diff --git a/hw/xfree86/common/xf86Opt.h b/hw/xfree86/common/xf86Opt.h
index dbb98da..ce3d767 100644
--- a/hw/xfree86/common/xf86Opt.h
+++ b/hw/xfree86/common/xf86Opt.h
@@ -68,46 +68,46 @@ typedef struct {
     Bool                found;
 } OptionInfoRec, *OptionInfoPtr;
 
-int xf86SetIntOption(pointer optlist, const char *name, int deflt);
-double xf86SetRealOption(pointer optlist, const char *name, double deflt);
-char *xf86SetStrOption(pointer optlist, const char *name, char *deflt);
-int xf86SetBoolOption(pointer list, const char *name, int deflt );
-int xf86CheckIntOption(pointer optlist, const char *name, int deflt);
-double xf86CheckRealOption(pointer optlist, const char *name, double deflt);
-char *xf86CheckStrOption(pointer optlist, const char *name, char *deflt);
-int xf86CheckBoolOption(pointer list, const char *name, int deflt );
-pointer xf86AddNewOption(pointer head, const char *name, const char *val );
-pointer xf86NewOption(char *name, char *value );
-pointer xf86NextOption(pointer list );
-pointer xf86OptionListCreate(const char **options, int count, int used);
-pointer xf86OptionListMerge(pointer head, pointer tail);
-void xf86OptionListFree(pointer opt);
-char *xf86OptionName(pointer opt);
-char *xf86OptionValue(pointer opt);
-void xf86OptionListReport(pointer parm);
-pointer xf86FindOption(pointer options, const char *name);
-char *xf86FindOptionValue(pointer options, const char *name);
-void xf86MarkOptionUsed(pointer option);
-void xf86MarkOptionUsedByName(pointer options, const char *name);
-Bool xf86CheckIfOptionUsed(pointer option);
-Bool xf86CheckIfOptionUsedByName(pointer options, const char *name);
-void xf86ShowUnusedOptions(int scrnIndex, pointer options);
-void xf86ProcessOptions(int scrnIndex, pointer options, OptionInfoPtr optinfo);
-OptionInfoPtr xf86TokenToOptinfo(const OptionInfoRec *table, int token);
-const char *xf86TokenToOptName(const OptionInfoRec *table, int token);
-Bool xf86IsOptionSet(const OptionInfoRec *table, int token);
-char *xf86GetOptValString(const OptionInfoRec *table, int token);
-Bool xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value);
-Bool xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value);
-Bool xf86GetOptValReal(const OptionInfoRec *table, int token, double *value);
-Bool xf86GetOptValFreq(const OptionInfoRec *table, int token,
+extern _X_EXPORT int xf86SetIntOption(pointer optlist, const char *name, int deflt);
+extern _X_EXPORT double xf86SetRealOption(pointer optlist, const char *name, double deflt);
+extern _X_EXPORT char *xf86SetStrOption(pointer optlist, const char *name, char *deflt);
+extern _X_EXPORT int xf86SetBoolOption(pointer list, const char *name, int deflt );
+extern _X_EXPORT int xf86CheckIntOption(pointer optlist, const char *name, int deflt);
+extern _X_EXPORT double xf86CheckRealOption(pointer optlist, const char *name, double deflt);
+extern _X_EXPORT char *xf86CheckStrOption(pointer optlist, const char *name, char *deflt);
+extern _X_EXPORT int xf86CheckBoolOption(pointer list, const char *name, int deflt );
+extern _X_EXPORT pointer xf86AddNewOption(pointer head, const char *name, const char *val );
+extern _X_EXPORT pointer xf86NewOption(char *name, char *value );
+extern _X_EXPORT pointer xf86NextOption(pointer list );
+extern _X_EXPORT pointer xf86OptionListCreate(const char **options, int count, int used);
+extern _X_EXPORT pointer xf86OptionListMerge(pointer head, pointer tail);
+extern _X_EXPORT void xf86OptionListFree(pointer opt);
+extern _X_EXPORT char *xf86OptionName(pointer opt);
+extern _X_EXPORT char *xf86OptionValue(pointer opt);
+extern _X_EXPORT void xf86OptionListReport(pointer parm);
+extern _X_EXPORT pointer xf86FindOption(pointer options, const char *name);
+extern _X_EXPORT char *xf86FindOptionValue(pointer options, const char *name);
+extern _X_EXPORT void xf86MarkOptionUsed(pointer option);
+extern _X_EXPORT void xf86MarkOptionUsedByName(pointer options, const char *name);
+extern _X_EXPORT Bool xf86CheckIfOptionUsed(pointer option);
+extern _X_EXPORT Bool xf86CheckIfOptionUsedByName(pointer options, const char *name);
+extern _X_EXPORT void xf86ShowUnusedOptions(int scrnIndex, pointer options);
+extern _X_EXPORT void xf86ProcessOptions(int scrnIndex, pointer options, OptionInfoPtr optinfo);
+extern _X_EXPORT OptionInfoPtr xf86TokenToOptinfo(const OptionInfoRec *table, int token);
+extern _X_EXPORT const char *xf86TokenToOptName(const OptionInfoRec *table, int token);
+extern _X_EXPORT Bool xf86IsOptionSet(const OptionInfoRec *table, int token);
+extern _X_EXPORT char *xf86GetOptValString(const OptionInfoRec *table, int token);
+extern _X_EXPORT Bool xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value);
+extern _X_EXPORT Bool xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value);
+extern _X_EXPORT Bool xf86GetOptValReal(const OptionInfoRec *table, int token, double *value);
+extern _X_EXPORT Bool xf86GetOptValFreq(const OptionInfoRec *table, int token,
 			OptFreqUnits expectedUnits, double *value);
-Bool xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value);
-Bool xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def);
-int xf86NameCmp(const char *s1, const char *s2);
-char *xf86NormalizeName(const char *s);
-pointer xf86ReplaceIntOption(pointer optlist,  const char *name, const int val);
-pointer xf86ReplaceRealOption(pointer optlist,  const char *name, const double val);
-pointer xf86ReplaceBoolOption(pointer optlist, const char *name, const Bool val);
-pointer xf86ReplaceStrOption(pointer optlist,  const char *name, const char* val);        
+extern _X_EXPORT Bool xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value);
+extern _X_EXPORT Bool xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def);
+extern _X_EXPORT int xf86NameCmp(const char *s1, const char *s2);
+extern _X_EXPORT char *xf86NormalizeName(const char *s);
+extern _X_EXPORT pointer xf86ReplaceIntOption(pointer optlist,  const char *name, const int val);
+extern _X_EXPORT pointer xf86ReplaceRealOption(pointer optlist,  const char *name, const double val);
+extern _X_EXPORT pointer xf86ReplaceBoolOption(pointer optlist, const char *name, const Bool val);
+extern _X_EXPORT pointer xf86ReplaceStrOption(pointer optlist,  const char *name, const char* val);
 #endif
diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c
index f4d35fc..ad8d1c4 100644
--- a/hw/xfree86/common/xf86Option.c
+++ b/hw/xfree86/common/xf86Option.c
@@ -64,7 +64,7 @@ static Bool ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p,
  *   extraOpts, display, confScreen, monitor, device
  */
 
-_X_EXPORT void
+void
 xf86CollectOptions(ScrnInfoPtr pScrn, pointer extraOpts)
 {
     XF86OptionPtr tmp;
@@ -131,7 +131,7 @@ xf86CollectOptions(ScrnInfoPtr pScrn, pointer extraOpts)
  *   pInfo->conf_idev->commonOptions, defaultOpts
  */
 
-_X_EXPORT void
+void
 xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts,
 			pointer extraOpts)
 {
@@ -224,28 +224,28 @@ LookupBoolOption(pointer optlist, const char *name, int deflt, Bool markUsed)
 
 /* These xf86Set* functions are intended for use by non-screen specific code */
 
-_X_EXPORT int
+int
 xf86SetIntOption(pointer optlist, const char *name, int deflt)
 {
     return LookupIntOption(optlist, name, deflt, TRUE);
 }
 
 
-_X_EXPORT double
+double
 xf86SetRealOption(pointer optlist, const char *name, double deflt)
 {
     return LookupRealOption(optlist, name, deflt, TRUE);
 }
 
 
-_X_EXPORT char *
+char *
 xf86SetStrOption(pointer optlist, const char *name, char *deflt)
 {
     return LookupStrOption(optlist, name, deflt, TRUE);
 }
 
 
-_X_EXPORT int
+int
 xf86SetBoolOption(pointer optlist, const char *name, int deflt)
 {
     return LookupBoolOption(optlist, name, deflt, TRUE);
@@ -255,28 +255,28 @@ xf86SetBoolOption(pointer optlist, const char *name, int deflt)
  * These are like the Set*Option functions, but they don't mark the options
  * as used.
  */
-_X_EXPORT int
+int
 xf86CheckIntOption(pointer optlist, const char *name, int deflt)
 {
     return LookupIntOption(optlist, name, deflt, FALSE);
 }
 
 
-_X_EXPORT double
+double
 xf86CheckRealOption(pointer optlist, const char *name, double deflt)
 {
     return LookupRealOption(optlist, name, deflt, FALSE);
 }
 
 
-_X_EXPORT char *
+char *
 xf86CheckStrOption(pointer optlist, const char *name, char *deflt)
 {
     return LookupStrOption(optlist, name, deflt, FALSE);
 }
 
 
-_X_EXPORT int
+int
 xf86CheckBoolOption(pointer optlist, const char *name, int deflt)
 {
     return LookupBoolOption(optlist, name, deflt, FALSE);
@@ -286,7 +286,7 @@ xf86CheckBoolOption(pointer optlist, const char *name, int deflt)
  * addNewOption() has the required property of replacing the option value
  * if the option is already present.
  */
-_X_EXPORT pointer
+pointer
 xf86ReplaceIntOption(pointer optlist, const char *name, const int val)
 {
     char tmp[16];
@@ -294,7 +294,7 @@ xf86ReplaceIntOption(pointer optlist, const char *name, const int val)
     return xf86AddNewOption(optlist,name,tmp);
 }
 
-_X_EXPORT pointer
+pointer
 xf86ReplaceRealOption(pointer optlist, const char *name, const double val)
 {
     char tmp[32];
@@ -302,19 +302,19 @@ xf86ReplaceRealOption(pointer optlist, const char *name, const double val)
     return xf86AddNewOption(optlist,name,tmp);
 }
 
-_X_EXPORT pointer
+pointer
 xf86ReplaceBoolOption(pointer optlist, const char *name, const Bool val)
 {
     return xf86AddNewOption(optlist,name,val?"True":"False");
 }
 
-_X_EXPORT pointer
+pointer
 xf86ReplaceStrOption(pointer optlist, const char *name, const char* val)
 {
       return xf86AddNewOption(optlist,name,val);
 }
 
-_X_EXPORT pointer
+pointer
 xf86AddNewOption(pointer head, const char *name, const char *val)
 {
     /* XXX These should actually be allocated in the parser library. */
@@ -325,50 +325,50 @@ xf86AddNewOption(pointer head, const char *name, const char *val)
 }
 
 
-_X_EXPORT pointer
+pointer
 xf86NewOption(char *name, char *value)
 {
     return xf86newOption(name, value);
 }
 
 
-_X_EXPORT pointer
+pointer
 xf86NextOption(pointer list)
 {
     return xf86nextOption(list);
 }
 
-_X_EXPORT pointer
+pointer
 xf86OptionListCreate(const char **options, int count, int used)
 {
 	return xf86optionListCreate(options, count, used);
 }
 
-_X_EXPORT pointer
+pointer
 xf86OptionListMerge(pointer head, pointer tail)
 {
 	return xf86optionListMerge(head, tail);
 }
 
-_X_EXPORT void
+void
 xf86OptionListFree(pointer opt)
 {
 	xf86optionListFree(opt);
 }
 
-_X_EXPORT char *
+char *
 xf86OptionName(pointer opt)
 {
 	return xf86optionName(opt);
 }
 
-_X_EXPORT char *
+char *
 xf86OptionValue(pointer opt)
 {
 	return xf86optionValue(opt);
 }
 
-_X_EXPORT void
+void
 xf86OptionListReport(pointer parm)
 {
     XF86OptionPtr opts = parm;
@@ -385,21 +385,21 @@ xf86OptionListReport(pointer parm)
 
 /* End of XInput-caused section	*/
 
-_X_EXPORT pointer
+pointer
 xf86FindOption(pointer options, const char *name)
 {
     return xf86findOption(options, name);
 }
 
 
-_X_EXPORT char *
+char *
 xf86FindOptionValue(pointer options, const char *name)
 {
     return xf86findOptionValue(options, name);
 }
 
 
-_X_EXPORT void
+void
 xf86MarkOptionUsed(pointer option)
 {
     if (option != NULL)
@@ -407,7 +407,7 @@ xf86MarkOptionUsed(pointer option)
 }
 
 
-_X_EXPORT void
+void
 xf86MarkOptionUsedByName(pointer options, const char *name)
 {
     XF86OptionPtr opt;
@@ -417,7 +417,7 @@ xf86MarkOptionUsedByName(pointer options, const char *name)
 	opt->opt_used = TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86CheckIfOptionUsed(pointer option)
 {
     if (option != NULL)
@@ -426,7 +426,7 @@ xf86CheckIfOptionUsed(pointer option)
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86CheckIfOptionUsedByName(pointer options, const char *name)
 {
     XF86OptionPtr opt;
@@ -438,7 +438,7 @@ xf86CheckIfOptionUsedByName(pointer options, const char *name)
 	return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86ShowUnusedOptions(int scrnIndex, pointer options)
 {
     XF86OptionPtr opt = options;
@@ -661,7 +661,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p,
 }
 
 
-_X_EXPORT void
+void
 xf86ProcessOptions(int scrnIndex, pointer options, OptionInfoPtr optinfo)
 {
     OptionInfoPtr p;
@@ -672,7 +672,7 @@ xf86ProcessOptions(int scrnIndex, pointer options, OptionInfoPtr optinfo)
 }
 
 
-_X_EXPORT OptionInfoPtr
+OptionInfoPtr
 xf86TokenToOptinfo(const OptionInfoRec *table, int token)
 {
     const OptionInfoRec *p, *match = NULL, *set = NULL;
@@ -699,7 +699,7 @@ xf86TokenToOptinfo(const OptionInfoRec *table, int token)
 }
 
 
-_X_EXPORT const char *
+const char *
 xf86TokenToOptName(const OptionInfoRec *table, int token)
 {
     const OptionInfoRec *p;
@@ -709,7 +709,7 @@ xf86TokenToOptName(const OptionInfoRec *table, int token)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86IsOptionSet(const OptionInfoRec *table, int token)
 {
     OptionInfoPtr p;
@@ -719,7 +719,7 @@ xf86IsOptionSet(const OptionInfoRec *table, int token)
 }
 
 
-_X_EXPORT char *
+char *
 xf86GetOptValString(const OptionInfoRec *table, int token)
 {
     OptionInfoPtr p;
@@ -732,7 +732,7 @@ xf86GetOptValString(const OptionInfoRec *table, int token)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value)
 {
     OptionInfoPtr p;
@@ -746,7 +746,7 @@ xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value)
 {
     OptionInfoPtr p;
@@ -760,7 +760,7 @@ xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetOptValReal(const OptionInfoRec *table, int token, double *value)
 {
     OptionInfoPtr p;
@@ -774,7 +774,7 @@ xf86GetOptValReal(const OptionInfoRec *table, int token, double *value)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetOptValFreq(const OptionInfoRec *table, int token,
 		  OptFreqUnits expectedUnits, double *value)
 {
@@ -822,7 +822,7 @@ xf86GetOptValFreq(const OptionInfoRec *table, int token,
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value)
 {
     OptionInfoPtr p;
@@ -836,7 +836,7 @@ xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def)
 {
     OptionInfoPtr p;
@@ -849,13 +849,13 @@ xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def)
 }
 
 
-_X_EXPORT int
+int
 xf86NameCmp(const char *s1, const char *s2)
 {
     return xf86nameCompare(s1, s2);
 }
 
-_X_EXPORT char *
+char *
 xf86NormalizeName(const char *s)
 {
     char *ret, *q;
diff --git a/hw/xfree86/common/xf86PM.c b/hw/xfree86/common/xf86PM.c
index 87b9fa8..7c8320d 100644
--- a/hw/xfree86/common/xf86PM.c
+++ b/hw/xfree86/common/xf86PM.c
@@ -34,8 +34,8 @@
 #include "xf86Priv.h"
 #include "xf86Xinput.h"
 
-_X_EXPORT int (*xf86PMGetEventFromOs)(int fd,pmEvent *events,int num) = NULL;
-_X_EXPORT pmWait (*xf86PMConfirmEventToOs)(int fd,pmEvent event) = NULL;
+int (*xf86PMGetEventFromOs)(int fd,pmEvent *events,int num) = NULL;
+pmWait (*xf86PMConfirmEventToOs)(int fd,pmEvent event) = NULL;
 
 static Bool suspended = FALSE;
 
@@ -178,7 +178,7 @@ DoApmEvent(pmEvent event, Bool undo)
 
 #define MAX_NO_EVENTS 8
 
-_X_EXPORT void
+void
 xf86HandlePMEvents(int fd, pointer data)
 {
     pmEvent events[MAX_NO_EVENTS];
diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
index d2d806f..50f5f7c 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
@@ -41,60 +41,64 @@
 #include "propertyst.h"
 #include "input.h"
 
+#ifdef XF86VIDMODE
+# include "vidmodeproc.h"
+#endif
+
 /*
  * Parameters set ONLY from the command line options
  * The global state of these things is held in xf86InfoRec (when appropriate).
  */
-extern const char *xf86ConfigFile;
-extern Bool xf86AllowMouseOpenFail;
+extern _X_EXPORT const char *xf86ConfigFile;
+extern _X_EXPORT  Bool xf86AllowMouseOpenFail;
 #ifdef XF86VIDMODE
-extern Bool xf86VidModeDisabled;
-extern Bool xf86VidModeAllowNonLocal; 
+extern _X_EXPORT  Bool xf86VidModeDisabled;
+extern _X_EXPORT  Bool xf86VidModeAllowNonLocal;
 #endif 
-extern Bool xf86fpFlag;
-extern Bool xf86sFlag;
-extern Bool xf86bsEnableFlag;
-extern Bool xf86bsDisableFlag;
-extern Bool xf86silkenMouseDisableFlag;
-extern Bool xf86acpiDisableFlag;
-extern char *xf86LayoutName;
-extern char *xf86ScreenName;
-extern char *xf86PointerName;
-extern char *xf86KeyboardName;
-extern int xf86FbBpp;
-extern int xf86Depth;
-extern Pix24Flags xf86Pix24;
-extern rgb xf86Weight;
-extern Bool xf86FlipPixels;
-extern Gamma xf86Gamma;
-extern char *xf86ServerName;
-extern struct pci_slot_match xf86IsolateDevice;
+extern _X_EXPORT  Bool xf86fpFlag;
+extern _X_EXPORT  Bool xf86sFlag;
+extern _X_EXPORT  Bool xf86bsEnableFlag;
+extern _X_EXPORT  Bool xf86bsDisableFlag;
+extern _X_EXPORT  Bool xf86silkenMouseDisableFlag;
+extern _X_EXPORT  Bool xf86acpiDisableFlag;
+extern _X_EXPORT  char *xf86LayoutName;
+extern _X_EXPORT  char *xf86ScreenName;
+extern _X_EXPORT  char *xf86PointerName;
+extern _X_EXPORT  char *xf86KeyboardName;
+extern _X_EXPORT  int xf86FbBpp;
+extern _X_EXPORT  int xf86Depth;
+extern _X_EXPORT  Pix24Flags xf86Pix24;
+extern _X_EXPORT  rgb xf86Weight;
+extern _X_EXPORT  Bool xf86FlipPixels;
+extern _X_EXPORT  Gamma xf86Gamma;
+extern _X_EXPORT  char *xf86ServerName;
+extern _X_EXPORT  struct pci_slot_match xf86IsolateDevice;
 
 /* Other parameters */
 
-extern xf86InfoRec xf86Info;
-extern const char *xf86InputDeviceList;
-extern const char *xf86ModulePath;
-extern MessageType xf86ModPathFrom;
-extern const char *xf86LogFile;
-extern MessageType xf86LogFileFrom;
-extern Bool xf86LogFileWasOpened;
-extern serverLayoutRec xf86ConfigLayout;
-
-extern DriverPtr *xf86DriverList;
-extern int xf86NumDrivers;
-extern Bool xf86Resetting;
-extern Bool xf86Initialising;
-extern int xf86NumScreens;
-extern xf86CurrentAccessRec xf86CurrentAccess;
-extern const char *xf86VisualNames[];
-extern int xf86Verbose;                 /* verbosity level */
-extern int xf86LogVerbose;		/* log file verbosity level */
-extern Bool xf86ProbeOnly;
-extern Bool xf86DoProbe;
-extern Bool xorgHWAccess;
-
-extern RootWinPropPtr *xf86RegisteredPropertiesTable;
+extern _X_EXPORT  xf86InfoRec xf86Info;
+extern _X_EXPORT  const char *xf86InputDeviceList;
+extern _X_EXPORT  const char *xf86ModulePath;
+extern _X_EXPORT  MessageType xf86ModPathFrom;
+extern _X_EXPORT  const char *xf86LogFile;
+extern _X_EXPORT  MessageType xf86LogFileFrom;
+extern _X_EXPORT  Bool xf86LogFileWasOpened;
+extern _X_EXPORT  serverLayoutRec xf86ConfigLayout;
+
+extern _X_EXPORT  DriverPtr *xf86DriverList;
+extern _X_EXPORT  int xf86NumDrivers;
+extern _X_EXPORT  Bool xf86Resetting;
+extern _X_EXPORT  Bool xf86Initialising;
+extern _X_EXPORT  int xf86NumScreens;
+extern _X_EXPORT  xf86CurrentAccessRec xf86CurrentAccess;
+extern _X_EXPORT  const char *xf86VisualNames[];
+extern _X_EXPORT  int xf86Verbose;                 /* verbosity level */
+extern _X_EXPORT  int xf86LogVerbose;		/* log file verbosity level */
+extern _X_EXPORT  Bool xf86ProbeOnly;
+extern _X_EXPORT  Bool xf86DoProbe;
+extern _X_EXPORT  Bool xorgHWAccess;
+
+extern _X_EXPORT  RootWinPropPtr *xf86RegisteredPropertiesTable;
 
 #ifndef DEFAULT_VERBOSE
 #define DEFAULT_VERBOSE		0
@@ -114,57 +118,57 @@ extern RootWinPropPtr *xf86RegisteredPropertiesTable;
 
 /* xf86Bus.c */
 
-void xf86BusProbe(void);
-void xf86AccessInit(void);
-void xf86AccessEnter(void);
-void xf86AccessLeave(void);
-void xf86EntityInit(void);
-void xf86AccessLeaveState(void);
+extern _X_EXPORT void xf86BusProbe(void);
+extern _X_EXPORT void xf86AccessInit(void);
+extern _X_EXPORT void xf86AccessEnter(void);
+extern _X_EXPORT void xf86AccessLeave(void);
+extern _X_EXPORT void xf86EntityInit(void);
+extern _X_EXPORT void xf86AccessLeaveState(void);
 
-void xf86FindPrimaryDevice(void);
+extern _X_EXPORT void xf86FindPrimaryDevice(void);
 /* new RAC */
-void xf86ResourceBrokerInit(void);
-void xf86PostProbe(void);
-void xf86ClearEntityListForScreen(int scrnIndex);
-void xf86AddDevToEntity(int entityIndex, GDevPtr dev);
-extern void xf86PostPreInit(void);
-extern void xf86PostScreenInit(void);
+extern _X_EXPORT void xf86ResourceBrokerInit(void);
+extern _X_EXPORT void xf86PostProbe(void);
+extern _X_EXPORT void xf86ClearEntityListForScreen(int scrnIndex);
+extern _X_EXPORT void xf86AddDevToEntity(int entityIndex, GDevPtr dev);
+extern _X_EXPORT void xf86PostPreInit(void);
+extern _X_EXPORT void xf86PostScreenInit(void);
 
 /* xf86Config.c */
 
-Bool xf86PathIsSafe(const char *path);
+extern _X_EXPORT Bool xf86PathIsSafe(const char *path);
 
 /* xf86DefaultModes */
 
-extern const DisplayModeRec xf86DefaultModes[];
-extern const int xf86NumDefaultModes;
+extern _X_EXPORT const DisplayModeRec xf86DefaultModes[];
+extern _X_EXPORT const int xf86NumDefaultModes;
 
 /* xf86Configure.c */
-void DoConfigure(void);
+extern _X_EXPORT void DoConfigure(void);
 
 /* xf86ShowOpts.c */
-void DoShowOptions(void);
+extern _X_EXPORT void DoShowOptions(void);
 
 /* xf86Events.c */
 
-void xf86Wakeup(pointer blockData, int err, pointer pReadmask);
-void xf86SigHandler(int signo);
-void xf86HandlePMEvents(int fd, pointer data);
-extern int (*xf86PMGetEventFromOs)(int fd,pmEvent *events,int num);
-extern pmWait (*xf86PMConfirmEventToOs)(int fd,pmEvent event);
+extern _X_EXPORT void xf86Wakeup(pointer blockData, int err, pointer pReadmask);
+extern _X_EXPORT void xf86SigHandler(int signo);
+extern _X_EXPORT void xf86HandlePMEvents(int fd, pointer data);
+extern _X_EXPORT int (*xf86PMGetEventFromOs)(int fd,pmEvent *events,int num);
+extern _X_EXPORT pmWait (*xf86PMConfirmEventToOs)(int fd,pmEvent event);
 
 /* xf86Helper.c */
-void xf86LogInit(void);
-void xf86CloseLog(void);
+extern _X_EXPORT void xf86LogInit(void);
+extern _X_EXPORT void xf86CloseLog(void);
 
 /* xf86Init.c */
-Bool xf86LoadModules(char **list, pointer *optlist);
-int xf86SetVerbosity(int verb);
-int xf86SetLogVerbosity(int verb);
-Bool xf86CallDriverProbe( struct _DriverRec * drv, Bool detect_only );
+extern _X_EXPORT Bool xf86LoadModules(char **list, pointer *optlist);
+extern _X_EXPORT int xf86SetVerbosity(int verb);
+extern _X_EXPORT int xf86SetLogVerbosity(int verb);
+extern _X_EXPORT Bool xf86CallDriverProbe( struct _DriverRec * drv, Bool detect_only );
 
 /* xf86Xinput.c */
-extern EventList *xf86Events;
+extern _X_EXPORT EventList *xf86Events;
 
 #endif /* _NO_XF86_PROTOTYPES */
 
diff --git a/hw/xfree86/common/xf86RAC.c b/hw/xfree86/common/xf86RAC.c
index 1ee5e57..2eed8c7 100644
--- a/hw/xfree86/common/xf86RAC.c
+++ b/hw/xfree86/common/xf86RAC.c
@@ -262,7 +262,7 @@ static int RACGCKeyIndex;
 static DevPrivateKey RACGCKey = &RACGCKeyIndex;
 
 
-_X_EXPORT Bool 
+Bool
 xf86RACInit(ScreenPtr pScreen, unsigned int flag)
 {
     ScrnInfoPtr pScrn;
diff --git a/hw/xfree86/common/xf86RAC.h b/hw/xfree86/common/xf86RAC.h
index 366c214..881d004 100644
--- a/hw/xfree86/common/xf86RAC.h
+++ b/hw/xfree86/common/xf86RAC.h
@@ -6,7 +6,7 @@
 #include "misc.h"
 #include "xf86.h"
 
-Bool xf86RACInit(ScreenPtr pScreen, unsigned int flag);
+extern _X_EXPORT Bool xf86RACInit(ScreenPtr pScreen, unsigned int flag);
 
 /* flags */
 #define RAC_FB       0x01
diff --git a/hw/xfree86/common/xf86RandR.c b/hw/xfree86/common/xf86RandR.c
index 2d1ec5d..0e06de6 100644
--- a/hw/xfree86/common/xf86RandR.c
+++ b/hw/xfree86/common/xf86RandR.c
@@ -364,7 +364,7 @@ xf86RandRCloseScreen (int index, ScreenPtr pScreen)
     return (*pScreen->CloseScreen) (index, pScreen);
 }
 
-_X_EXPORT Rotation
+Rotation
 xf86GetRotation(ScreenPtr pScreen)
 {
     if (xf86RandRKey == NULL)
@@ -374,7 +374,7 @@ xf86GetRotation(ScreenPtr pScreen)
 }
 
 /* Function to change RandR's idea of the virtual screen size */
-_X_EXPORT Bool
+Bool
 xf86RandRSetNewVirtualAndDimensions(ScreenPtr pScreen,
 	int newvirtX, int newvirtY, int newmmWidth, int newmmHeight,
 	Bool resetMode)
@@ -411,7 +411,7 @@ xf86RandRSetNewVirtualAndDimensions(ScreenPtr pScreen,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86RandRInit (ScreenPtr    pScreen)
 {
     rrScrPrivPtr	rp;
diff --git a/hw/xfree86/common/xf86Resources.h b/hw/xfree86/common/xf86Resources.h
index 15bd32c..012fa69 100644
--- a/hw/xfree86/common/xf86Resources.h
+++ b/hw/xfree86/common/xf86Resources.h
@@ -106,16 +106,16 @@
 	{ResShrIoSparse | ResBios | ResBus, 0x02E8, 0x03F8}
 
 /* Predefined resources */
-extern resRange resVgaExclusive[];
-extern resRange resVgaShared[];
-extern resRange resVgaIoShared[];
-extern resRange resVgaMemShared[];
-extern resRange resVgaUnusedExclusive[];
-extern resRange resVgaUnusedShared[];
-extern resRange resVgaSparseExclusive[];
-extern resRange resVgaSparseShared[];
-extern resRange res8514Exclusive[];
-extern resRange res8514Shared[];
+extern _X_EXPORT resRange resVgaExclusive[];
+extern _X_EXPORT resRange resVgaShared[];
+extern _X_EXPORT resRange resVgaIoShared[];
+extern _X_EXPORT resRange resVgaMemShared[];
+extern _X_EXPORT resRange resVgaUnusedExclusive[];
+extern _X_EXPORT resRange resVgaUnusedShared[];
+extern _X_EXPORT resRange resVgaSparseExclusive[];
+extern _X_EXPORT resRange resVgaSparseShared[];
+extern _X_EXPORT resRange res8514Exclusive[];
+extern _X_EXPORT resRange res8514Shared[];
 
 /* Less misleading aliases for xf86SetOperatingState() */
 #define resVgaMem resVgaMemShared
diff --git a/hw/xfree86/common/xf86ShowOpts.c b/hw/xfree86/common/xf86ShowOpts.c
index 077d936..b8efa73 100644
--- a/hw/xfree86/common/xf86ShowOpts.c
+++ b/hw/xfree86/common/xf86ShowOpts.c
@@ -76,7 +76,7 @@ optionTypeToSting(OptionValueType type)
     }
 }
 
-_X_EXPORT void DoShowOptions (void) {
+void DoShowOptions (void) {
 	int  i = 0;
 	char **vlist  = 0;
 	char *pSymbol = 0;
diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c
index 24fccd3..d855bd1 100644
--- a/hw/xfree86/common/xf86VidMode.c
+++ b/hw/xfree86/common/xf86VidMode.c
@@ -62,7 +62,7 @@ static Bool VidModeClose(int i, ScreenPtr pScreen);
 # define DEBUG_P(x) /**/
 #endif
 
-_X_EXPORT Bool
+Bool
 VidModeExtensionInit(ScreenPtr pScreen)
 {
 #ifdef XF86VIDMODE
@@ -142,7 +142,7 @@ VidModeAvailable(int scrnIndex)
     }
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock)
 {
     ScrnInfoPtr pScrn;
@@ -161,7 +161,7 @@ VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock)
     return FALSE;
 }
 
-_X_EXPORT int
+int
 VidModeGetDotClock(int scrnIndex, int Clock)
 {
     ScrnInfoPtr pScrn;
@@ -176,7 +176,7 @@ VidModeGetDotClock(int scrnIndex, int Clock)
 	return pScrn->clock[Clock];
 }
 
-_X_EXPORT int
+int
 VidModeGetNumOfClocks(int scrnIndex, Bool *progClock)
 {
     ScrnInfoPtr pScrn;
@@ -194,7 +194,7 @@ VidModeGetNumOfClocks(int scrnIndex, Bool *progClock)
     }
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetClocks(int scrnIndex, int *Clocks)
 {
     ScrnInfoPtr pScrn;
@@ -215,7 +215,7 @@ VidModeGetClocks(int scrnIndex, int *Clocks)
 }
 
 
-_X_EXPORT Bool
+Bool
 VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock)
 {
     ScrnInfoPtr pScrn;
@@ -238,7 +238,7 @@ VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock)
     return VidModeGetNextModeline(scrnIndex, mode, dotClock);
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetNextModeline(int scrnIndex, pointer *mode, int *dotClock)
 {
     ScrnInfoPtr pScrn;
@@ -263,7 +263,7 @@ VidModeGetNextModeline(int scrnIndex, pointer *mode, int *dotClock)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeDeleteModeline(int scrnIndex, pointer mode)
 {
     ScrnInfoPtr pScrn;
@@ -276,7 +276,7 @@ VidModeDeleteModeline(int scrnIndex, pointer mode)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeZoomViewport(int scrnIndex, int zoom)
 {
     ScrnInfoPtr pScrn;
@@ -289,7 +289,7 @@ VidModeZoomViewport(int scrnIndex, int zoom)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeSetViewPort(int scrnIndex, int x, int y)
 {
     ScrnInfoPtr pScrn;
@@ -310,7 +310,7 @@ VidModeSetViewPort(int scrnIndex, int x, int y)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetViewPort(int scrnIndex, int *x, int *y)
 {
     ScrnInfoPtr pScrn;
@@ -324,7 +324,7 @@ VidModeGetViewPort(int scrnIndex, int *x, int *y)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeSwitchMode(int scrnIndex, pointer mode)
 {
     ScrnInfoPtr pScrn;
@@ -346,7 +346,7 @@ VidModeSwitchMode(int scrnIndex, pointer mode)
     return retval;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeLockZoom(int scrnIndex, Bool lock)
 {
     ScrnInfoPtr pScrn;
@@ -363,7 +363,7 @@ VidModeLockZoom(int scrnIndex, Bool lock)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetMonitor(int scrnIndex, pointer *monitor)
 {
     ScrnInfoPtr pScrn;
@@ -377,7 +377,7 @@ VidModeGetMonitor(int scrnIndex, pointer *monitor)
     return TRUE;
 }
 
-_X_EXPORT ModeStatus
+ModeStatus
 VidModeCheckModeForMonitor(int scrnIndex, pointer mode)
 {
     ScrnInfoPtr pScrn;
@@ -390,7 +390,7 @@ VidModeCheckModeForMonitor(int scrnIndex, pointer mode)
     return xf86CheckModeForMonitor((DisplayModePtr)mode, pScrn->monitor);
 }
 
-_X_EXPORT ModeStatus
+ModeStatus
 VidModeCheckModeForDriver(int scrnIndex, pointer mode)
 {
     ScrnInfoPtr pScrn;
@@ -403,7 +403,7 @@ VidModeCheckModeForDriver(int scrnIndex, pointer mode)
     return xf86CheckModeForDriver(pScrn, (DisplayModePtr)mode, 0);
 }
 
-_X_EXPORT void
+void
 VidModeSetCrtcForMode(int scrnIndex, pointer mode)
 {
     ScrnInfoPtr pScrn;
@@ -422,7 +422,7 @@ VidModeSetCrtcForMode(int scrnIndex, pointer mode)
     return;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeAddModeline(int scrnIndex, pointer mode)
 {
     ScrnInfoPtr pScrn;
@@ -443,7 +443,7 @@ VidModeAddModeline(int scrnIndex, pointer mode)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 VidModeGetNumOfModes(int scrnIndex)
 {
     pointer mode = NULL;
@@ -459,7 +459,7 @@ VidModeGetNumOfModes(int scrnIndex)
     } while (TRUE);
 }
 
-_X_EXPORT Bool
+Bool
 VidModeSetGamma(int scrnIndex, float red, float green, float blue)
 {
     ScrnInfoPtr pScrn;
@@ -478,7 +478,7 @@ VidModeSetGamma(int scrnIndex, float red, float green, float blue)
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetGamma(int scrnIndex, float *red, float *green, float *blue)
 {
     ScrnInfoPtr pScrn;
@@ -493,7 +493,7 @@ VidModeGetGamma(int scrnIndex, float *red, float *green, float *blue)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeSetGammaRamp(int scrnIndex, int size, CARD16 *r, CARD16 *g, CARD16 *b)
 {
     ScrnInfoPtr pScrn;
@@ -506,7 +506,7 @@ VidModeSetGammaRamp(int scrnIndex, int size, CARD16 *r, CARD16 *g, CARD16 *b)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VidModeGetGammaRamp(int scrnIndex, int size, CARD16 *r, CARD16 *g, CARD16 *b)
 {
     ScrnInfoPtr pScrn;
@@ -519,7 +519,7 @@ VidModeGetGammaRamp(int scrnIndex, int size, CARD16 *r, CARD16 *g, CARD16 *b)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 VidModeGetGammaRampSize(int scrnIndex)
 {
     if (!VidModeAvailable(scrnIndex))
@@ -528,7 +528,7 @@ VidModeGetGammaRampSize(int scrnIndex)
     return xf86GetGammaRampSize(xf86Screens[scrnIndex]->pScreen);
 }
 
-_X_EXPORT pointer
+pointer
 VidModeCreateMode(void)
 {
     DisplayModePtr mode;
@@ -544,14 +544,14 @@ VidModeCreateMode(void)
     return mode;
 }
 
-_X_EXPORT void
+void
 VidModeCopyMode(pointer modefrom, pointer modeto)
 {
   memcpy(modeto, modefrom, sizeof(DisplayModeRec));
 }
 
 
-_X_EXPORT int
+int
 VidModeGetModeValue(pointer mode, int valtyp)
 {
   int ret = 0;
@@ -594,7 +594,7 @@ VidModeGetModeValue(pointer mode, int valtyp)
   return ret;
 }
 
-_X_EXPORT void
+void
 VidModeSetModeValue(pointer mode, int valtyp, int val)
 {
   switch (valtyp) {
@@ -635,7 +635,7 @@ VidModeSetModeValue(pointer mode, int valtyp, int val)
   return;
 }
 
-_X_EXPORT vidMonitorValue
+vidMonitorValue
 VidModeGetMonitorValue(pointer monitor, int valtyp, int indx)
 {
   vidMonitorValue ret;
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 89a27c7..38fd1ec 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -96,7 +96,7 @@
 
 #include "os.h"
 
-_X_EXPORT EventListPtr xf86Events = NULL;
+EventListPtr xf86Events = NULL;
 
 /**
  * Eval config and modify DeviceVelocityRec accordingly
@@ -255,7 +255,7 @@ xf86SendDragEvents(DeviceIntPtr	device)
  *
  ***********************************************************************
  */
-_X_EXPORT void
+void
 xf86ProcessCommonOptions(LocalDevicePtr local,
                          pointer	list)
 {
@@ -293,7 +293,7 @@ xf86ProcessCommonOptions(LocalDevicePtr local,
  * Returns TRUE on success, or FALSE otherwise.
  ***********************************************************************
  */
-_X_EXPORT int
+int
 xf86ActivateDevice(LocalDevicePtr local)
 {
     DeviceIntPtr	dev;
@@ -368,7 +368,7 @@ xf86ActivateDevice(LocalDevicePtr local)
  ***********************************************************************
  */
 
-_X_EXPORT void
+void
 OpenInputDevice(DeviceIntPtr	dev,
                 ClientPtr	client,
                 int		*status)
@@ -379,7 +379,7 @@ OpenInputDevice(DeviceIntPtr	dev,
     *status = Success;
 }
 
-_X_EXPORT void
+void
 CloseInputDevice(DeviceIntPtr dev,
                  ClientPtr client)
 {
@@ -398,7 +398,7 @@ CloseInputDevice(DeviceIntPtr dev,
  ***********************************************************************
  */
 
-_X_EXPORT int
+int
 SetDeviceMode (ClientPtr client, DeviceIntPtr dev, int mode)
 {
   LocalDevicePtr        local = (LocalDevicePtr)dev->public.devicePrivate;
@@ -424,7 +424,7 @@ SetDeviceMode (ClientPtr client, DeviceIntPtr dev, int mode)
  ***********************************************************************
  */
 
-_X_EXPORT int
+int
 SetDeviceValuators (ClientPtr client, DeviceIntPtr dev, int *valuators,
                     int first_valuator, int num_valuators)
 {
@@ -447,7 +447,7 @@ SetDeviceValuators (ClientPtr client, DeviceIntPtr dev, int *valuators,
  ***********************************************************************
  */
 
-_X_EXPORT int
+int
 ChangeDeviceControl (ClientPtr client, DeviceIntPtr dev, xDeviceCtl *control)
 {
   LocalDevicePtr        local = (LocalDevicePtr)dev->public.devicePrivate;
@@ -470,7 +470,7 @@ ChangeDeviceControl (ClientPtr client, DeviceIntPtr dev, xDeviceCtl *control)
   }
 }
 
-_X_EXPORT void
+void
 AddOtherInputDevices()
 {
 }
@@ -562,7 +562,7 @@ unwind:
     return rval;
 }
 
-_X_EXPORT int
+int
 NewInputDeviceRequest (InputOption *options, DeviceIntPtr *pdev)
 {
     IDevRec *idev = NULL;
@@ -646,7 +646,7 @@ unwind:
     return rval;
 }
 
-_X_EXPORT void
+void
 DeleteInputDeviceRequest(DeviceIntPtr pDev)
 {
     LocalDevicePtr pInfo = (LocalDevicePtr) pDev->public.devicePrivate;
@@ -691,7 +691,7 @@ DeleteInputDeviceRequest(DeviceIntPtr pDev)
  * convenient functions to post events
  */
 
-_X_EXPORT void
+void
 xf86PostMotionEvent(DeviceIntPtr	device,
                     int			is_absolute,
                     int			first_valuator,
@@ -716,7 +716,7 @@ xf86PostMotionEvent(DeviceIntPtr	device,
     xf86PostMotionEventP(device, is_absolute, first_valuator, num_valuators, valuators);
 }
 
-_X_EXPORT void
+void
 xf86PostMotionEventP(DeviceIntPtr	device,
                     int			is_absolute,
                     int			first_valuator,
@@ -781,7 +781,7 @@ xf86PostMotionEventP(DeviceIntPtr	device,
     }
 }
 
-_X_EXPORT void
+void
 xf86PostProximityEvent(DeviceIntPtr	device,
                        int		is_in,
                        int		first_valuator,
@@ -813,7 +813,7 @@ xf86PostProximityEvent(DeviceIntPtr	device,
 
 }
 
-_X_EXPORT void
+void
 xf86PostButtonEvent(DeviceIntPtr	device,
                     int			is_absolute,
                     int			button,
@@ -856,7 +856,7 @@ xf86PostButtonEvent(DeviceIntPtr	device,
 
 }
 
-_X_EXPORT void
+void
 xf86PostKeyEvent(DeviceIntPtr	device,
                  unsigned int	key_code,
                  int		is_down,
@@ -902,7 +902,7 @@ xf86PostKeyEvent(DeviceIntPtr	device,
         mieqEnqueue(device, (xf86Events + i)->event);
 }
 
-_X_EXPORT void
+void
 xf86PostKeyboardEvent(DeviceIntPtr      device,
                       unsigned int      key_code,
                       int               is_down)
@@ -931,7 +931,7 @@ xf86PostKeyboardEvent(DeviceIntPtr      device,
         mieqEnqueue(device, (xf86Events + i)->event);
 }
 
-_X_EXPORT LocalDevicePtr
+LocalDevicePtr
 xf86FirstLocalDevice()
 {
     return xf86InputDevs;
@@ -950,7 +950,7 @@ xf86FirstLocalDevice()
  * different orgins on the touch screen vs X.
  */
 
-_X_EXPORT int
+int
 xf86ScaleAxis(int	Cx,
               int	Sxhigh,
               int	Sxlow,
@@ -984,7 +984,7 @@ xf86ScaleAxis(int	Cx,
  * ReadInput function before any events are posted, if the device is screen
  * specific like a touch screen.
  */
-_X_EXPORT void
+void
 xf86XInputSetScreen(LocalDevicePtr	local,
 		    int			screen_number,
 		    int			x,
@@ -997,7 +997,7 @@ xf86XInputSetScreen(LocalDevicePtr	local,
 }
 
 
-_X_EXPORT void
+void
 xf86InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, int minval, int maxval,
 			   int resolution, int min_res, int max_res)
 {
@@ -1012,7 +1012,7 @@ xf86InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, int minval, int maxval,
  * Set the valuator values to be in synch with dix/event.c
  * DefineInitialRootWindow().
  */
-_X_EXPORT void
+void
 xf86InitValuatorDefaults(DeviceIntPtr dev, int axnum)
 {
     if (axnum == 0) {
@@ -1038,7 +1038,7 @@ xf86InitValuatorDefaults(DeviceIntPtr dev, int axnum)
  * 
  * @param panic True if device is unrecoverable and needs to be removed.
  */
-_X_EXPORT void
+void
 xf86DisableDevice(DeviceIntPtr dev, Bool panic)
 {
     devicePresenceNotify ev;
@@ -1066,7 +1066,7 @@ xf86DisableDevice(DeviceIntPtr dev, Bool panic)
  * out that the read error wasn't quite that bad after all.
  * Device will be re-activated, and an event sent to the client. 
  */
-_X_EXPORT void
+void
 xf86EnableDevice(DeviceIntPtr dev)
 {
     EnableDevice(dev);
diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h
index bfd7f89..8afda95 100644
--- a/hw/xfree86/common/xf86Xinput.h
+++ b/hw/xfree86/common/xf86Xinput.h
@@ -152,51 +152,53 @@ typedef struct _DeviceAssocRec
 } DeviceAssocRec, *DeviceAssocPtr;
 
 /* xf86Globals.c */
-extern InputInfoPtr xf86InputDevs;
+extern _X_EXPORT InputInfoPtr xf86InputDevs;
 
 /* xf86Xinput.c */
-void xf86PostMotionEvent(DeviceIntPtr device, int is_absolute,
+extern _X_EXPORT void xf86PostMotionEvent(DeviceIntPtr device, int is_absolute,
 			 int first_valuator, int num_valuators, ...);
-void xf86PostMotionEventP(DeviceIntPtr device, int is_absolute,
+extern _X_EXPORT void xf86PostMotionEventP(DeviceIntPtr device, int is_absolute,
 			 int first_valuator, int num_valuators, int *valuators);
-void xf86PostProximityEvent(DeviceIntPtr device, int is_in,
+extern _X_EXPORT void xf86PostProximityEvent(DeviceIntPtr device, int is_in,
 			    int first_valuator, int num_valuators, ...);
-void xf86PostButtonEvent(DeviceIntPtr device, int is_absolute, int button,
+extern _X_EXPORT void xf86PostButtonEvent(DeviceIntPtr device, int is_absolute, int button,
 		    	 int is_down, int first_valuator, int num_valuators,
 			 ...);
-void xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down,
+extern _X_EXPORT void xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down,
 		      int is_absolute, int first_valuator, int num_valuators,
 		      ...);
-void xf86PostKeyboardEvent(DeviceIntPtr device, unsigned int key_code,
+extern _X_EXPORT void xf86PostKeyboardEvent(DeviceIntPtr device, unsigned int key_code,
                            int is_down);
-int xf86ActivateDevice(LocalDevicePtr local);
-LocalDevicePtr xf86FirstLocalDevice(void);
-int xf86ScaleAxis(int Cx, int Sxhigh, int Sxlow, int Rxhigh, int Rxlow);
-void xf86XInputSetScreen(LocalDevicePtr local, int screen_number, int x, int y);
-void xf86ProcessCommonOptions(InputInfoPtr pInfo, pointer options);
-void xf86InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, int minval,
+extern _X_EXPORT int xf86ActivateDevice(LocalDevicePtr local);
+extern _X_EXPORT LocalDevicePtr xf86FirstLocalDevice(void);
+extern _X_EXPORT int xf86ScaleAxis(int Cx, int Sxhigh, int Sxlow, int Rxhigh, int Rxlow);
+extern _X_EXPORT void xf86XInputSetScreen(LocalDevicePtr local, int screen_number, int x, int y);
+extern _X_EXPORT void xf86ProcessCommonOptions(InputInfoPtr pInfo, pointer options);
+extern _X_EXPORT void xf86InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, int minval,
 				int maxval, int resolution, int min_res,
 				int max_res);
-void xf86InitValuatorDefaults(DeviceIntPtr dev, int axnum);
-void xf86AddEnabledDevice(InputInfoPtr pInfo);
-void xf86RemoveEnabledDevice(InputInfoPtr pInfo);
-void xf86DisableDevice(DeviceIntPtr dev, Bool panic);
-void xf86EnableDevice(DeviceIntPtr dev);
+extern _X_EXPORT void xf86InitValuatorDefaults(DeviceIntPtr dev, int axnum);
+extern _X_EXPORT void xf86AddEnabledDevice(InputInfoPtr pInfo);
+extern _X_EXPORT void xf86RemoveEnabledDevice(InputInfoPtr pInfo);
+extern _X_EXPORT void xf86DisableDevice(DeviceIntPtr dev, Bool panic);
+extern _X_EXPORT void xf86EnableDevice(DeviceIntPtr dev);
+/* not exported */
+int xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev, BOOL is_auto);
 
 /* xf86Helper.c */
-void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags);
-void xf86DeleteInputDriver(int drvIndex);
-InputInfoPtr xf86AllocateInput(InputDriverPtr drv, int flags);
-InputDriverPtr xf86LookupInputDriver(const char *name);
-InputInfoPtr xf86LookupInput(const char *name);
-void xf86DeleteInput(InputInfoPtr pInp, int flags);
-void xf86MotionHistoryAllocate(LocalDevicePtr local);
-int xf86GetMotionEvents(DeviceIntPtr dev, xTimecoord *buff,
+extern _X_EXPORT void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags);
+extern _X_EXPORT void xf86DeleteInputDriver(int drvIndex);
+extern _X_EXPORT InputInfoPtr xf86AllocateInput(InputDriverPtr drv, int flags);
+extern _X_EXPORT InputDriverPtr xf86LookupInputDriver(const char *name);
+extern _X_EXPORT InputInfoPtr xf86LookupInput(const char *name);
+extern _X_EXPORT void xf86DeleteInput(InputInfoPtr pInp, int flags);
+extern _X_EXPORT void xf86MotionHistoryAllocate(LocalDevicePtr local);
+extern _X_EXPORT int xf86GetMotionEvents(DeviceIntPtr dev, xTimecoord *buff,
                         unsigned long start, unsigned long stop,
                         ScreenPtr pScreen, BOOL core);
 
 /* xf86Option.c */
-void xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts,
+extern _X_EXPORT void xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts,
 			     pointer extraOpts);
 
 
diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c
index 3944d78..bb1aff1 100644
--- a/hw/xfree86/common/xf86cmap.c
+++ b/hw/xfree86/common/xf86cmap.c
@@ -126,7 +126,7 @@ static void CMapUnwrapScreen(ScreenPtr pScreen);
 
 
 
-_X_EXPORT Bool xf86HandleColormaps(
+Bool xf86HandleColormaps(
     ScreenPtr pScreen,
     int maxColors,
     int sigRGBbits,
@@ -972,7 +972,7 @@ ComputeGammaRamp (
     }
 }
 
-_X_EXPORT int
+int
 xf86ChangeGammaRamp(
    ScreenPtr pScreen,
    int size,
@@ -1040,7 +1040,7 @@ xf86ChangeGammaRamp(
     return Success;
 }
 
-_X_EXPORT int
+int
 xf86GetGammaRampSize(ScreenPtr pScreen)
 {
     CMapScreenPtr pScreenPriv;
@@ -1054,7 +1054,7 @@ xf86GetGammaRampSize(ScreenPtr pScreen)
     return pScreenPriv->gammaElements;
 }
 
-_X_EXPORT int
+int
 xf86GetGammaRamp(
    ScreenPtr pScreen,
    int size,
@@ -1098,7 +1098,7 @@ xf86GetGammaRamp(
     return Success;
 }
 
-_X_EXPORT int
+int
 xf86ChangeGamma(
    ScreenPtr pScreen,
    Gamma gamma
diff --git a/hw/xfree86/common/xf86cmap.h b/hw/xfree86/common/xf86cmap.h
index b98bd3b..f15844e 100644
--- a/hw/xfree86/common/xf86cmap.h
+++ b/hw/xfree86/common/xf86cmap.h
@@ -36,7 +36,7 @@
 #define CMAP_RELOAD_ON_MODE_SWITCH	0x0000002
 #define CMAP_LOAD_EVEN_IF_OFFSCREEN	0x0000004
 
-Bool xf86HandleColormaps(
+extern _X_EXPORT Bool xf86HandleColormaps(
     ScreenPtr pScreen,
     int maxCol,
     int sigRGBbits,
@@ -45,13 +45,13 @@ Bool xf86HandleColormaps(
     unsigned int flags
 );
 
-int
+extern _X_EXPORT int
 xf86ChangeGamma(
    ScreenPtr pScreen,
    Gamma newGamma
 );
 
-int
+extern _X_EXPORT int
 xf86ChangeGammaRamp(
    ScreenPtr pScreen,
    int size,
@@ -60,9 +60,9 @@ xf86ChangeGammaRamp(
    unsigned short *blue
 );
 
-int xf86GetGammaRampSize(ScreenPtr pScreen);
+extern _X_EXPORT int xf86GetGammaRampSize(ScreenPtr pScreen);
 
-int
+extern _X_EXPORT int
 xf86GetGammaRamp(
    ScreenPtr pScreen,
    int size,
diff --git a/hw/xfree86/common/xf86fbBus.c b/hw/xfree86/common/xf86fbBus.c
index bd7d935..552b9f8 100644
--- a/hw/xfree86/common/xf86fbBus.c
+++ b/hw/xfree86/common/xf86fbBus.c
@@ -51,9 +51,9 @@
 
 #include "xf86RAC.h"
 
-_X_EXPORT Bool fbSlotClaimed = FALSE;
+Bool fbSlotClaimed = FALSE;
 
-_X_EXPORT int
+int
 xf86ClaimFbSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active)
 {
     EntityPtr p;
@@ -79,7 +79,7 @@ xf86ClaimFbSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active)
 /*
  * Get the list of FB "slots" claimed by a screen
  */
-_X_EXPORT int
+int
 xf86GetFbInfoForScreen(int scrnIndex)
 {
     int num = 0;
diff --git a/hw/xfree86/common/xf86fbman.c b/hw/xfree86/common/xf86fbman.c
index 5471c58..510c3d8 100644
--- a/hw/xfree86/common/xf86fbman.c
+++ b/hw/xfree86/common/xf86fbman.c
@@ -45,7 +45,7 @@
 static int xf86FBManagerKeyIndex;
 static DevPrivateKey xf86FBManagerKey;
 
-_X_EXPORT Bool xf86RegisterOffscreenManager(
+Bool xf86RegisterOffscreenManager(
     ScreenPtr pScreen, 
     FBManagerFuncsPtr funcs
 ){
@@ -57,7 +57,7 @@ _X_EXPORT Bool xf86RegisterOffscreenManager(
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86FBManagerRunning(ScreenPtr pScreen)
 {
     if(xf86FBManagerKey == NULL) 
@@ -68,7 +68,7 @@ xf86FBManagerRunning(ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86RegisterFreeBoxCallback(
     ScreenPtr pScreen,  
     FreeBoxCallbackProcPtr FreeBoxCallback,
@@ -86,7 +86,7 @@ xf86RegisterFreeBoxCallback(
 }
 
 
-_X_EXPORT FBAreaPtr
+FBAreaPtr
 xf86AllocateOffscreenArea(
    ScreenPtr pScreen, 
    int w, int h,
@@ -108,7 +108,7 @@ xf86AllocateOffscreenArea(
 }
 
 
-_X_EXPORT FBLinearPtr
+FBLinearPtr
 xf86AllocateOffscreenLinear(
     ScreenPtr pScreen, 
     int length,
@@ -130,7 +130,7 @@ xf86AllocateOffscreenLinear(
 }
 
 
-_X_EXPORT void
+void
 xf86FreeOffscreenArea(FBAreaPtr area)
 {
    FBManagerFuncsPtr funcs;
@@ -149,7 +149,7 @@ xf86FreeOffscreenArea(FBAreaPtr area)
 }
 
 
-_X_EXPORT void
+void
 xf86FreeOffscreenLinear(FBLinearPtr linear)
 {
    FBManagerFuncsPtr funcs;
@@ -168,7 +168,7 @@ xf86FreeOffscreenLinear(FBLinearPtr linear)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86ResizeOffscreenArea(
    FBAreaPtr resize,
    int w, int h
@@ -186,7 +186,7 @@ xf86ResizeOffscreenArea(
    return (*funcs->ResizeOffscreenArea)(resize, w, h);
 }
 
-_X_EXPORT Bool
+Bool
 xf86ResizeOffscreenLinear(
    FBLinearPtr resize,
    int size
@@ -205,7 +205,7 @@ xf86ResizeOffscreenLinear(
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86QueryLargestOffscreenArea(
     ScreenPtr pScreen,
     int *w, int *h,
@@ -228,7 +228,7 @@ xf86QueryLargestOffscreenArea(
 		pScreen, w, h, gran, preferences, severity);
 }
 
-_X_EXPORT Bool
+Bool
 xf86QueryLargestOffscreenLinear(
     ScreenPtr pScreen,
     int *size,
@@ -250,7 +250,7 @@ xf86QueryLargestOffscreenLinear(
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86PurgeUnlockedOffscreenAreas(ScreenPtr pScreen)
 {
    FBManagerFuncsPtr funcs;
@@ -1196,7 +1196,7 @@ xf86FBCloseScreen (int i, ScreenPtr pScreen)
    return (*pScreen->CloseScreen) (i, pScreen);
 }
 
-_X_EXPORT Bool
+Bool
 xf86InitFBManager(
     ScreenPtr pScreen,  
     BoxPtr FullBox
@@ -1233,7 +1233,7 @@ xf86InitFBManager(
    return ret;
 }
 
-_X_EXPORT Bool
+Bool
 xf86InitFBManagerArea(
     ScreenPtr pScreen,
     int PixelArea,
@@ -1325,7 +1325,7 @@ xf86InitFBManagerArea(
     return ret;
 }
 
-_X_EXPORT Bool
+Bool
 xf86InitFBManagerRegion(
     ScreenPtr pScreen,  
     RegionPtr FullRegion
@@ -1363,7 +1363,7 @@ xf86InitFBManagerRegion(
    return TRUE;
 } 
 
-_X_EXPORT Bool
+Bool
 xf86InitFBManagerLinear(
     ScreenPtr pScreen,  
     int offset,
@@ -1407,7 +1407,7 @@ xf86InitFBManagerLinear(
    disappear after the next release.  People should use the
    real linear functions instead */
 
-_X_EXPORT FBAreaPtr 
+FBAreaPtr
 xf86AllocateLinearOffscreenArea (
    ScreenPtr pScreen, 
    int length,
diff --git a/hw/xfree86/common/xf86fbman.h b/hw/xfree86/common/xf86fbman.h
index 4f2eac5..1b3c316 100644
--- a/hw/xfree86/common/xf86fbman.h
+++ b/hw/xfree86/common/xf86fbman.h
@@ -110,43 +110,43 @@ typedef struct {
 } FBManagerFuncs, *FBManagerFuncsPtr;
 
 
-Bool xf86RegisterOffscreenManager(
+extern _X_EXPORT Bool xf86RegisterOffscreenManager(
     ScreenPtr pScreen, 
     FBManagerFuncsPtr funcs
 );
 
-Bool
+extern _X_EXPORT Bool
 xf86InitFBManagerRegion(
     ScreenPtr pScreen, 
     RegionPtr ScreenRegion
 );
 
-Bool
+extern _X_EXPORT Bool
 xf86InitFBManagerArea(
     ScreenPtr pScreen,
     int PixalArea,
     int Verbosity
 );
 
-Bool
+extern _X_EXPORT Bool
 xf86InitFBManager(
     ScreenPtr pScreen, 
     BoxPtr FullBox
 );
 
-Bool
+extern _X_EXPORT Bool
 xf86InitFBManagerLinear(
     ScreenPtr pScreen, 
     int offset,
     int size
 );
 
-Bool 
+extern _X_EXPORT Bool
 xf86FBManagerRunning(
     ScreenPtr pScreen
 );
 
-FBAreaPtr 
+extern _X_EXPORT FBAreaPtr
 xf86AllocateOffscreenArea (
    ScreenPtr pScreen, 
    int w, int h,
@@ -156,7 +156,7 @@ xf86AllocateOffscreenArea (
    pointer privData
 );
 
-FBAreaPtr 
+extern _X_EXPORT FBAreaPtr
 xf86AllocateLinearOffscreenArea (
    ScreenPtr pScreen, 
    int length,
@@ -166,7 +166,7 @@ xf86AllocateLinearOffscreenArea (
    pointer privData
 );
 
-FBLinearPtr 
+extern _X_EXPORT FBLinearPtr
 xf86AllocateOffscreenLinear (
    ScreenPtr pScreen, 
    int length,
@@ -176,36 +176,36 @@ xf86AllocateOffscreenLinear (
    pointer privData
 );
 
-void xf86FreeOffscreenArea(FBAreaPtr area);
-void xf86FreeOffscreenLinear(FBLinearPtr area);
+extern _X_EXPORT void xf86FreeOffscreenArea(FBAreaPtr area);
+extern _X_EXPORT void xf86FreeOffscreenLinear(FBLinearPtr area);
 
-Bool 
+extern _X_EXPORT Bool
 xf86ResizeOffscreenArea(
    FBAreaPtr resize,
    int w, int h
 );
 
-Bool 
+extern _X_EXPORT Bool
 xf86ResizeOffscreenLinear(
    FBLinearPtr resize,
    int size
 );
 
 
-Bool
+extern _X_EXPORT Bool
 xf86RegisterFreeBoxCallback(
     ScreenPtr pScreen,  
     FreeBoxCallbackProcPtr FreeBoxCallback,
     pointer devPriv
 );
 
-Bool
+extern _X_EXPORT Bool
 xf86PurgeUnlockedOffscreenAreas(
     ScreenPtr pScreen
 );
 
 
-Bool
+extern _X_EXPORT Bool
 xf86QueryLargestOffscreenArea(
     ScreenPtr pScreen,
     int *width, int *height,
@@ -214,7 +214,7 @@ xf86QueryLargestOffscreenArea(
     int priority
 );
 
-Bool
+extern _X_EXPORT Bool
 xf86QueryLargestOffscreenLinear(
     ScreenPtr pScreen,
     int *size,
diff --git a/hw/xfree86/common/xf86noBus.c b/hw/xfree86/common/xf86noBus.c
index 0e3e3cc..d726748 100644
--- a/hw/xfree86/common/xf86noBus.c
+++ b/hw/xfree86/common/xf86noBus.c
@@ -51,7 +51,7 @@
 
 #include "xf86RAC.h"
 
-_X_EXPORT int
+int
 xf86ClaimNoSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active)
 {
     EntityPtr p;
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index ba2f8f7..786a2b9 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -53,7 +53,7 @@
 #include "xf86RAC.h"
 
 /* Bus-specific globals */
-_X_EXPORT Bool pciSlotClaimed = FALSE;
+Bool pciSlotClaimed = FALSE;
 static struct pci_device ** xf86PciVideoInfo = NULL;	/* PCI probe for video hw */
 
 
@@ -97,7 +97,7 @@ static struct pci_device ** xf86PciVideoInfo = NULL;	/* PCI probe for video hw *
       || IS_VGA(c) )
 
 
-_X_EXPORT void
+void
 xf86FormatPciBusNumber(int busnum, char *buffer)
 {
     /* 'buffer' should be at least 8 characters long */
@@ -701,7 +701,7 @@ DisablePciBusAccess(void)
  * Otherwise, claim the slot for the screen requesting it.
  */
 
-_X_EXPORT int
+int
 xf86ClaimPciSlot(struct pci_device * d, DriverPtr drvp,
 		 int chipset, GDevPtr dev, Bool active)
 {
@@ -759,7 +759,7 @@ xf86ClaimPciSlot(struct pci_device * d, DriverPtr drvp,
  * in the correct format for a PCI bus id.
  */
 
-_X_EXPORT Bool
+Bool
 xf86ParsePciBusString(const char *busID, int *bus, int *device, int *func)
 {
     /*
@@ -833,7 +833,7 @@ xf86ParsePciBusString(const char *busID, int *bus, int *device, int *func)
  * Compare a BUS ID string with a PCI bus id.  Return TRUE if they match.
  */
 
-_X_EXPORT Bool
+Bool
 xf86ComparePciBusString(const char *busID, int bus, int device, int func)
 {
     int ibus, idevice, ifunc;
@@ -850,7 +850,7 @@ xf86ComparePciBusString(const char *busID, int bus, int device, int func)
  * is PCI and bus, dev and func numbers match.
  */
  
-_X_EXPORT Bool
+Bool
 xf86IsPrimaryPci(struct pci_device *pPci)
 {
     return ((primaryBus.type == BUS_PCI) && (pPci == primaryBus.id.pci));
@@ -859,7 +859,7 @@ xf86IsPrimaryPci(struct pci_device *pPci)
 /*
  * xf86GetPciInfoForEntity() -- Get the pciVideoRec of entity.
  */
-_X_EXPORT struct pci_device *
+struct pci_device *
 xf86GetPciInfoForEntity(int entityIndex)
 {
     EntityPtr p;
@@ -875,7 +875,7 @@ xf86GetPciInfoForEntity(int entityIndex)
  * xf86CheckPciMemBase() checks that the memory base value matches one of the
  * PCI base address register values for the given PCI device.
  */
-_X_EXPORT Bool
+Bool
 xf86CheckPciMemBase( struct pci_device * pPci, memType base )
 {
     int i;
@@ -890,7 +890,7 @@ xf86CheckPciMemBase( struct pci_device * pPci, memType base )
  * Check if the slot requested is free.  If it is already in use, return FALSE.
  */
 
-_X_EXPORT Bool
+Bool
 xf86CheckPciSlot(const struct pci_device *d)
 {
     int i;
diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
index 78e5d7c..a4caef3 100644
--- a/hw/xfree86/common/xf86sbusBus.c
+++ b/hw/xfree86/common/xf86sbusBus.c
@@ -41,7 +41,7 @@
 #include "xf86sbusBus.h"
 #include "xf86Sbus.h"
 
-_X_EXPORT Bool sbusSlotClaimed = FALSE;
+Bool sbusSlotClaimed = FALSE;
 
 static int xf86nSbusInfo;
 
@@ -79,7 +79,7 @@ CheckSbusDevice(const char *device, int fbNum)
     psdp->fd = -1;
 }
 
-_X_EXPORT void
+void
 xf86SbusProbe(void)
 {
     int i, useProm = 0;
@@ -360,7 +360,7 @@ xf86ClaimSbusSlot(sbusDevicePtr psdp, DriverPtr drvp,
 	return -1;
 }
 
-_X_EXPORT int
+int
 xf86MatchSbusInstances(const char *driverName, int sbusDevId, 
 		       GDevPtr *devList, int numDevs, DriverPtr drvp,
 		       int **foundEntities)
@@ -536,7 +536,7 @@ xf86MatchSbusInstances(const char *driverName, int sbusDevId,
 /*
  * xf86GetSbusInfoForEntity() -- Get the sbusDevicePtr of entity.
  */
-_X_EXPORT sbusDevicePtr
+sbusDevicePtr
 xf86GetSbusInfoForEntity(int entityIndex)
 {
     sbusDevicePtr *psdpp;
@@ -552,7 +552,7 @@ xf86GetSbusInfoForEntity(int entityIndex)
     return NULL;
 }
 
-_X_EXPORT int
+int
 xf86GetEntityForSbusInfo(sbusDevicePtr psdp)
 {
     int i;
@@ -567,7 +567,7 @@ xf86GetEntityForSbusInfo(sbusDevicePtr psdp)
     return -1;
 }
 
-_X_EXPORT void
+void
 xf86SbusUseBuiltinMode(ScrnInfoPtr pScrn, sbusDevicePtr psdp)
 {
     DisplayModePtr mode;
@@ -667,7 +667,7 @@ xf86SbusCmapCloseScreen(int i, ScreenPtr pScreen)
     return (*pScreen->CloseScreen) (i, pScreen);
 }    
 
-_X_EXPORT Bool
+Bool
 xf86SbusHandleColormaps(ScreenPtr pScreen, sbusDevicePtr psdp)
 {
     sbusCmapPtr cmap;
diff --git a/hw/xfree86/common/xf86sbusBus.h b/hw/xfree86/common/xf86sbusBus.h
index 6161a08..1e7e033 100644
--- a/hw/xfree86/common/xf86sbusBus.h
+++ b/hw/xfree86/common/xf86sbusBus.h
@@ -64,36 +64,36 @@ extern struct sbus_devtable {
     char *descr;
 } sbusDeviceTable[];
 
-void xf86SbusProbe(void);
-extern sbusDevicePtr *xf86SbusInfo;
+extern _X_EXPORT void xf86SbusProbe(void);
+extern _X_EXPORT sbusDevicePtr *xf86SbusInfo;
 
-int xf86MatchSbusInstances(const char *driverName, int sbusDevId, 
+extern _X_EXPORT int xf86MatchSbusInstances(const char *driverName, int sbusDevId,
 			   GDevPtr *devList, int numDevs, DriverPtr drvp,
 			   int **foundEntities);
-sbusDevicePtr xf86GetSbusInfoForEntity(int entityIndex);
-int xf86GetEntityForSbusInfo(sbusDevicePtr psdp);
-void xf86SbusUseBuiltinMode(ScrnInfoPtr pScrn, sbusDevicePtr psdp);
-pointer xf86MapSbusMem(sbusDevicePtr psdp, unsigned long offset,
+extern _X_EXPORT sbusDevicePtr xf86GetSbusInfoForEntity(int entityIndex);
+extern _X_EXPORT int xf86GetEntityForSbusInfo(sbusDevicePtr psdp);
+extern _X_EXPORT void xf86SbusUseBuiltinMode(ScrnInfoPtr pScrn, sbusDevicePtr psdp);
+extern _X_EXPORT pointer xf86MapSbusMem(sbusDevicePtr psdp, unsigned long offset,
 		       unsigned long size);
-void xf86UnmapSbusMem(sbusDevicePtr psdp, pointer addr, unsigned long size);
-void xf86SbusHideOsHwCursor(sbusDevicePtr psdp);
-void xf86SbusSetOsHwCursorCmap(sbusDevicePtr psdp, int bg, int fg);
-Bool xf86SbusHandleColormaps(ScreenPtr pScreen, sbusDevicePtr psdp);
+extern _X_EXPORT void xf86UnmapSbusMem(sbusDevicePtr psdp, pointer addr, unsigned long size);
+extern _X_EXPORT void xf86SbusHideOsHwCursor(sbusDevicePtr psdp);
+extern _X_EXPORT void xf86SbusSetOsHwCursorCmap(sbusDevicePtr psdp, int bg, int fg);
+extern _X_EXPORT Bool xf86SbusHandleColormaps(ScreenPtr pScreen, sbusDevicePtr psdp);
 
-extern int promRootNode;
+extern _X_EXPORT int promRootNode;
 
-int promGetSibling(int node);
-int promGetChild(int node);
-char * promGetProperty(const char *prop, int *lenp);
-int promGetBool(const char *prop);
+extern _X_EXPORT int promGetSibling(int node);
+extern _X_EXPORT int promGetChild(int node);
+extern _X_EXPORT char * promGetProperty(const char *prop, int *lenp);
+extern _X_EXPORT int promGetBool(const char *prop);
 
-int sparcPromInit(void);
-void sparcPromClose(void);
-char * sparcPromGetProperty(sbusPromNodePtr pnode, const char *prop, int *lenp);
-int sparcPromGetBool(sbusPromNodePtr pnode, const char *prop);
-void sparcPromAssignNodes(void);
-char * sparcPromNode2Pathname(sbusPromNodePtr pnode);
-int sparcPromPathname2Node(const char *pathName);
-char *sparcDriverName(void);
+extern _X_EXPORT int sparcPromInit(void);
+extern _X_EXPORT void sparcPromClose(void);
+extern _X_EXPORT char * sparcPromGetProperty(sbusPromNodePtr pnode, const char *prop, int *lenp);
+extern _X_EXPORT int sparcPromGetBool(sbusPromNodePtr pnode, const char *prop);
+extern _X_EXPORT void sparcPromAssignNodes(void);
+extern _X_EXPORT char * sparcPromNode2Pathname(sbusPromNodePtr pnode);
+extern _X_EXPORT int sparcPromPathname2Node(const char *pathName);
+extern _X_EXPORT char *sparcDriverName(void);
 
 #endif /* _XF86_SBUSBUS_H */
diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c
index cc84525..85b13d3 100644
--- a/hw/xfree86/common/xf86xv.c
+++ b/hw/xfree86/common/xf86xv.c
@@ -113,12 +113,12 @@ static Bool xf86XVInitAdaptors(ScreenPtr, XF86VideoAdaptorPtr*, int);
 static int XF86XVWindowKeyIndex;
 static DevPrivateKey XF86XVWindowKey = &XF86XVWindowKeyIndex;
 static int XF86XvScreenKeyIndex;
-_X_EXPORT DevPrivateKey XF86XvScreenKey = &XF86XvScreenKeyIndex;
+DevPrivateKey XF86XvScreenKey = &XF86XvScreenKeyIndex;
 static unsigned long PortResource = 0;
 
-_X_EXPORT DevPrivateKey (*XvGetScreenKeyProc)(void) = NULL;
-_X_EXPORT unsigned long (*XvGetRTPortProc)(void) = NULL;
-_X_EXPORT int (*XvScreenInitProc)(ScreenPtr) = NULL;
+DevPrivateKey (*XvGetScreenKeyProc)(void) = NULL;
+unsigned long (*XvGetRTPortProc)(void) = NULL;
+int (*XvScreenInitProc)(ScreenPtr) = NULL;
 
 #define GET_XV_SCREEN(pScreen) \
     ((XvScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, XF86XvScreenKey))
@@ -132,7 +132,7 @@ _X_EXPORT int (*XvScreenInitProc)(ScreenPtr) = NULL;
 static xf86XVInitGenericAdaptorPtr *GenDrivers = NULL;
 static int NumGenDrivers = 0;
 
-_X_EXPORT int
+int
 xf86XVRegisterGenericAdaptorDriver(
     xf86XVInitGenericAdaptorPtr InitFunc
 ){
@@ -149,7 +149,7 @@ xf86XVRegisterGenericAdaptorDriver(
   return 1;
 }
 
-_X_EXPORT int
+int
 xf86XVListGenericAdaptors(
     ScrnInfoPtr pScrn,
     XF86VideoAdaptorPtr **adaptors
@@ -188,7 +188,7 @@ typedef struct {
 
 static OffscreenImageRec OffscreenImages[MAXSCREENS];
 
-_X_EXPORT Bool
+Bool
 xf86XVRegisterOffscreenImages(
     ScreenPtr pScreen,
     XF86OffscreenImagePtr images,
@@ -200,7 +200,7 @@ xf86XVRegisterOffscreenImages(
     return TRUE;
 }
 
-_X_EXPORT XF86OffscreenImagePtr
+XF86OffscreenImagePtr
 xf86XVQueryOffscreenImages(
    ScreenPtr pScreen,
    int *num
@@ -210,20 +210,20 @@ xf86XVQueryOffscreenImages(
 }
 
 
-_X_EXPORT XF86VideoAdaptorPtr
+XF86VideoAdaptorPtr
 xf86XVAllocateVideoAdaptorRec(ScrnInfoPtr pScrn)
 {
     return xcalloc(1, sizeof(XF86VideoAdaptorRec));
 }
 
-_X_EXPORT void
+void
 xf86XVFreeVideoAdaptorRec(XF86VideoAdaptorPtr ptr)
 {
     xfree(ptr);
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86XVScreenInit(
    ScreenPtr pScreen,
    XF86VideoAdaptorPtr *adaptors,
@@ -1814,7 +1814,7 @@ xf86XVQueryImageAttributes(
 }
 
 
-_X_EXPORT void
+void
 xf86XVFillKeyHelperDrawable (DrawablePtr pDraw, CARD32 key, RegionPtr clipboxes)
 {
    ScreenPtr pScreen = pDraw->pScreen;
@@ -1864,7 +1864,7 @@ xf86XVFillKeyHelperDrawable (DrawablePtr pDraw, CARD32 key, RegionPtr clipboxes)
    xfree(rects);
 }
 
-_X_EXPORT void
+void
 xf86XVFillKeyHelper (ScreenPtr pScreen, CARD32 key, RegionPtr clipboxes)
 {
    DrawablePtr root = &WindowTable[pScreen->myNum]->drawable;
@@ -1909,7 +1909,7 @@ xf86XVFillKeyHelper (ScreenPtr pScreen, CARD32 key, RegionPtr clipboxes)
 
 #define DummyScreen screenInfo.screens[0]
 
-_X_EXPORT Bool
+Bool
 xf86XVClipVideoHelper(
     BoxPtr dst,
     INT32 *xa,
@@ -1991,7 +1991,7 @@ xf86XVClipVideoHelper(
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86XVCopyYUV12ToPacked(
     const void *srcy,
     const void *srcv,
@@ -2049,7 +2049,7 @@ xf86XVCopyYUV12ToPacked(
     }
 }
 
-_X_EXPORT void
+void
 xf86XVCopyPacked(
     const void *src,
     void *dst,
diff --git a/hw/xfree86/common/xf86xv.h b/hw/xfree86/common/xf86xv.h
index 817e2b9..e98c423 100644
--- a/hw/xfree86/common/xf86xv.h
+++ b/hw/xfree86/common/xf86xv.h
@@ -191,7 +191,7 @@ typedef struct {
   XF86AttributePtr attributes;
 } XF86OffscreenImageRec, *XF86OffscreenImagePtr;
 
-Bool
+extern _X_EXPORT Bool
 xf86XVScreenInit(
    ScreenPtr pScreen, 
    XF86VideoAdaptorPtr 	*Adaptors,
@@ -201,41 +201,41 @@ xf86XVScreenInit(
 typedef int (* xf86XVInitGenericAdaptorPtr)(ScrnInfoPtr pScrn,
 	XF86VideoAdaptorPtr **Adaptors);
 
-int
+extern _X_EXPORT int
 xf86XVRegisterGenericAdaptorDriver(
     xf86XVInitGenericAdaptorPtr InitFunc
 );
 
-int
+extern _X_EXPORT int
 xf86XVListGenericAdaptors(
     ScrnInfoPtr          pScrn,
     XF86VideoAdaptorPtr  **Adaptors
 );
 
-Bool 
+extern _X_EXPORT Bool
 xf86XVRegisterOffscreenImages(
    ScreenPtr pScreen,
    XF86OffscreenImagePtr images,
    int num
 );
 
-XF86OffscreenImagePtr
+extern _X_EXPORT XF86OffscreenImagePtr
 xf86XVQueryOffscreenImages(
    ScreenPtr pScreen,
    int *num
 );
    
-XF86VideoAdaptorPtr xf86XVAllocateVideoAdaptorRec(ScrnInfoPtr pScrn);
+extern _X_EXPORT XF86VideoAdaptorPtr xf86XVAllocateVideoAdaptorRec(ScrnInfoPtr pScrn);
 
-void xf86XVFreeVideoAdaptorRec(XF86VideoAdaptorPtr ptr);
+extern _X_EXPORT void xf86XVFreeVideoAdaptorRec(XF86VideoAdaptorPtr ptr);
 
-void
+extern _X_EXPORT void
 xf86XVFillKeyHelper (ScreenPtr pScreen, CARD32 key, RegionPtr clipboxes);
 
-void
+extern _X_EXPORT void
 xf86XVFillKeyHelperDrawable (DrawablePtr pDraw, CARD32 key, RegionPtr clipboxes);
 
-Bool
+extern _X_EXPORT Bool
 xf86XVClipVideoHelper(
     BoxPtr dst,
     INT32 *xa,
@@ -247,7 +247,7 @@ xf86XVClipVideoHelper(
     INT32 height
 );
 
-void
+extern _X_EXPORT void
 xf86XVCopyYUV12ToPacked(
     const void *srcy,
     const void *srcv,
@@ -260,7 +260,7 @@ xf86XVCopyYUV12ToPacked(
     int w
 );
 
-void
+extern _X_EXPORT void
 xf86XVCopyPacked(
     const void *src,
     void *dst,
@@ -270,4 +270,8 @@ xf86XVCopyPacked(
     int w
 );
 
+extern _X_EXPORT DevPrivateKey (*XvGetScreenKeyProc)(void);
+extern _X_EXPORT unsigned long (*XvGetRTPortProc)(void);
+extern _X_EXPORT int (*XvScreenInitProc)(ScreenPtr);
+
 #endif  /* _XF86XV_H_ */
diff --git a/hw/xfree86/common/xf86xvmc.c b/hw/xfree86/common/xf86xvmc.c
index 41ef0a0..39d33da 100644
--- a/hw/xfree86/common/xf86xvmc.c
+++ b/hw/xfree86/common/xf86xvmc.c
@@ -45,8 +45,7 @@
 #include "xf86xvpriv.h"
 #include "xf86xvmc.h"
 
-typedef int (*XvMCScreenInitProcPtr)(ScreenPtr, int, XvMCAdaptorPtr);
-_X_EXPORT XvMCScreenInitProcPtr XvMCScreenInitProc = NULL;
+XvMCScreenInitProcPtr XvMCScreenInitProc = NULL;
 
 
 typedef struct {
@@ -156,7 +155,7 @@ xf86XvMCCloseScreen (int i, ScreenPtr pScreen)
     return (*pScreen->CloseScreen)(i, pScreen);
 }
 
-_X_EXPORT Bool xf86XvMCScreenInit(
+Bool xf86XvMCScreenInit(
    ScreenPtr pScreen, 
    int num_adaptors,
    XF86MCAdaptorPtr *adaptors
@@ -219,12 +218,12 @@ _X_EXPORT Bool xf86XvMCScreenInit(
    return TRUE;
 }
 
-_X_EXPORT XF86MCAdaptorPtr xf86XvMCCreateAdaptorRec (void)
+XF86MCAdaptorPtr xf86XvMCCreateAdaptorRec (void)
 {
    return xcalloc(1, sizeof(XF86MCAdaptorRec));
 }
 
-_X_EXPORT void xf86XvMCDestroyAdaptorRec(XF86MCAdaptorPtr adaptor)
+void xf86XvMCDestroyAdaptorRec(XF86MCAdaptorPtr adaptor)
 {
    xfree(adaptor);
 }
diff --git a/hw/xfree86/common/xf86xvmc.h b/hw/xfree86/common/xf86xvmc.h
index bc7a98c..902b4f8 100644
--- a/hw/xfree86/common/xf86xvmc.h
+++ b/hw/xfree86/common/xf86xvmc.h
@@ -151,13 +151,16 @@ typedef struct {
    an array of structures.
 */
 
-Bool xf86XvMCScreenInit(
+extern _X_EXPORT Bool xf86XvMCScreenInit(
   ScreenPtr pScreen, 
   int num_adaptors,
   XF86MCAdaptorPtr *adaptors
 );
 
-XF86MCAdaptorPtr xf86XvMCCreateAdaptorRec (void);
-void xf86XvMCDestroyAdaptorRec(XF86MCAdaptorPtr adaptor);
+extern _X_EXPORT XF86MCAdaptorPtr xf86XvMCCreateAdaptorRec (void);
+extern _X_EXPORT void xf86XvMCDestroyAdaptorRec(XF86MCAdaptorPtr adaptor);
+
+typedef int (*XvMCScreenInitProcPtr)(ScreenPtr, int, XvMCAdaptorPtr);
+extern _X_EXPORT XvMCScreenInitProcPtr XvMCScreenInitProc;
 
 #endif /* _XF86XVMC_H */
diff --git a/hw/xfree86/common/xf86xvpriv.h b/hw/xfree86/common/xf86xvpriv.h
index 4200dac..761fc3a 100644
--- a/hw/xfree86/common/xf86xvpriv.h
+++ b/hw/xfree86/common/xf86xvpriv.h
@@ -34,7 +34,7 @@
 
 /*** These are DDX layer privates ***/
 
-extern DevPrivateKey XF86XvScreenKey;
+extern _X_EXPORT DevPrivateKey XF86XvScreenKey;
 
 typedef struct {
    DestroyWindowProcPtr		DestroyWindow;
diff --git a/hw/xfree86/common/xisb.c b/hw/xfree86/common/xisb.c
index 6314094..1cb9e48 100644
--- a/hw/xfree86/common/xisb.c
+++ b/hw/xfree86/common/xisb.c
@@ -62,7 +62,7 @@
  *	Function Definitions
  ****************************************************************************/
 
-_X_EXPORT XISBuffer *
+XISBuffer *
 XisbNew (int fd, ssize_t size)
 {
 	XISBuffer *b;
@@ -86,14 +86,14 @@ XisbNew (int fd, ssize_t size)
 	return (b);
 }
 
-_X_EXPORT void
+void
 XisbFree (XISBuffer *b)
 {
 	xfree (b->buf);
 	xfree (b);
 }
 
-_X_EXPORT int
+int
 XisbRead (XISBuffer *b)
 {
 	int ret;
@@ -136,7 +136,7 @@ XisbRead (XISBuffer *b)
 }
 
 /* the only purpose of this function is to provide output tracing */
-_X_EXPORT ssize_t
+ssize_t
 XisbWrite (XISBuffer *b, unsigned char *msg, ssize_t len)
 {
     if (b->trace)
@@ -149,7 +149,7 @@ XisbWrite (XISBuffer *b, unsigned char *msg, ssize_t len)
 }
 
 /* turn tracing of this buffer on (1) or off (0) */
-_X_EXPORT void
+void
 XisbTrace (XISBuffer *b, int trace)
 {
 	b->trace = trace;
@@ -167,7 +167,7 @@ XisbTrace (XISBuffer *b, int trace)
  * give duration in usecs.
  */
 
-_X_EXPORT void
+void
 XisbBlockDuration (XISBuffer *b, int block_duration)
 {
 	b->block_duration = block_duration;
diff --git a/hw/xfree86/common/xisb.h b/hw/xfree86/common/xisb.h
index b7bdd56..bacfde1 100644
--- a/hw/xfree86/common/xisb.h
+++ b/hw/xfree86/common/xisb.h
@@ -52,12 +52,12 @@ typedef struct _XISBuffer
  *											of globals.
  *											put locals in the .c file.
  *****************************************************************************/
-XISBuffer * XisbNew (int fd, ssize_t size);
-void XisbFree (XISBuffer *b);
-int XisbRead (XISBuffer *b);
-ssize_t XisbWrite (XISBuffer *b, unsigned char *msg, ssize_t len);
-void XisbTrace (XISBuffer *b, int trace);
-void XisbBlockDuration (XISBuffer *b, int block_duration);
+extern _X_EXPORT XISBuffer * XisbNew (int fd, ssize_t size);
+extern _X_EXPORT void XisbFree (XISBuffer *b);
+extern _X_EXPORT int XisbRead (XISBuffer *b);
+extern _X_EXPORT ssize_t XisbWrite (XISBuffer *b, unsigned char *msg, ssize_t len);
+extern _X_EXPORT void XisbTrace (XISBuffer *b, int trace);
+extern _X_EXPORT void XisbBlockDuration (XISBuffer *b, int block_duration);
 
 /*
  *	DO NOT PUT ANYTHING AFTER THIS ENDIF
diff --git a/hw/xfree86/common/xorgHelper.c b/hw/xfree86/common/xorgHelper.c
index 00fe7ca..7f9dd50 100644
--- a/hw/xfree86/common/xorgHelper.c
+++ b/hw/xfree86/common/xorgHelper.c
@@ -16,7 +16,7 @@
 #include "xorgVersion.h"
 
 
-_X_EXPORT CARD32
+CARD32
 xorgGetVersion()
 {
     return XORG_VERSION_CURRENT;
diff --git a/hw/xfree86/ddc/ddcProperty.c b/hw/xfree86/ddc/ddcProperty.c
index 124abd7..a4384f1 100644
--- a/hw/xfree86/ddc/ddcProperty.c
+++ b/hw/xfree86/ddc/ddcProperty.c
@@ -108,7 +108,7 @@ addRootWindowProperties(ScrnInfoPtr pScrn, xf86MonPtr DDC)
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86SetDDCproperties(ScrnInfoPtr pScrn, xf86MonPtr DDC)
 {
     if (!pScrn || !pScrn->monitor || !DDC)
diff --git a/hw/xfree86/ddc/edid.h b/hw/xfree86/ddc/edid.h
index 45caf6e..aeda6b3 100644
--- a/hw/xfree86/ddc/edid.h
+++ b/hw/xfree86/ddc/edid.h
@@ -547,6 +547,6 @@ typedef struct {
   Uchar *rawData;
 } xf86Monitor, *xf86MonPtr;
 
-extern xf86MonPtr ConfiguredMonitor;
+extern _X_EXPORT xf86MonPtr ConfiguredMonitor;
 
 #endif /* _EDID_H_ */
diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c
index 588e254..c0e3df9 100644
--- a/hw/xfree86/ddc/interpret_edid.c
+++ b/hw/xfree86/ddc/interpret_edid.c
@@ -132,7 +132,7 @@ handle_edid_quirks(xf86MonPtr m)
     }
 }
 
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 xf86InterpretEDID(int scrnIndex, Uchar *block)
 {
     xf86MonPtr m;
@@ -163,7 +163,7 @@ xf86InterpretEDID(int scrnIndex, Uchar *block)
     return NULL;
 }
 
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 xf86InterpretEEDID(int scrnIndex, Uchar *block)
 {
     xf86MonPtr m;
@@ -463,7 +463,7 @@ validate_version(int scrnIndex, struct edid_version *r)
 /*
  * Returns true if HDMI, false if definitely not or unknown.
  */
-_X_EXPORT Bool
+Bool
 xf86MonitorIsHDMI(xf86MonPtr mon)
 {
     int i = 0, version, offset;
diff --git a/hw/xfree86/ddc/print_edid.c b/hw/xfree86/ddc/print_edid.c
index 7708889..7b6e298 100644
--- a/hw/xfree86/ddc/print_edid.c
+++ b/hw/xfree86/ddc/print_edid.c
@@ -460,7 +460,7 @@ print_number_sections(int scrnIndex, int num)
 		   num);
 }
 
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 xf86PrintEDID(xf86MonPtr m)
 {
     CARD16 i, j, n;
diff --git a/hw/xfree86/ddc/xf86DDC.c b/hw/xfree86/ddc/xf86DDC.c
index da7b34e..e3f40ec 100644
--- a/hw/xfree86/ddc/xf86DDC.c
+++ b/hw/xfree86/ddc/xf86DDC.c
@@ -63,7 +63,7 @@ static const OptionInfoRec DDCOptions[] = {
  * @return pointer to a new xf86MonPtr containing the EDID information.
  * @return NULL if no monitor attached or failure to interpret the EDID.
  */
-_X_EXPORT xf86MonPtr 
+xf86MonPtr
 xf86DoEDID_DDC1(
     int scrnIndex, DDC1SetSpeedProc DDC1SetSpeed, 
     unsigned int (*DDC1Read)(ScrnInfoPtr)
@@ -206,7 +206,7 @@ DDC2Read(I2CDevPtr dev, int block, unsigned char *R_Buffer)
  * @return pointer to a new xf86MonPtr containing the EDID information.
  * @return NULL if no monitor attached or failure to interpret the EDID.
  */
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -267,7 +267,7 @@ xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete)
  * @return pointer to a new xf86MonPtr containing the EDID information.
  * @return NULL if no monitor attached or failure to interpret the EDID.
  */
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus)
 {
     return xf86DoEEDID(scrnIndex, pBus, FALSE);
diff --git a/hw/xfree86/ddc/xf86DDC.h b/hw/xfree86/ddc/xf86DDC.h
index 3172b55..07411b8 100644
--- a/hw/xfree86/ddc/xf86DDC.h
+++ b/hw/xfree86/ddc/xf86DDC.h
@@ -24,42 +24,42 @@ typedef enum {
 
 typedef void (* DDC1SetSpeedProc)(ScrnInfoPtr, xf86ddcSpeed);
 
-extern xf86MonPtr xf86DoEDID_DDC1(
+extern _X_EXPORT xf86MonPtr xf86DoEDID_DDC1(
     int scrnIndex, 
     DDC1SetSpeedProc DDC1SetSpeed,
     unsigned int (*DDC1Read)(ScrnInfoPtr)
 );
 
-extern xf86MonPtr xf86DoEDID_DDC2(
+extern _X_EXPORT xf86MonPtr xf86DoEDID_DDC2(
    int scrnIndex,
    I2CBusPtr pBus
 );
 
-extern xf86MonPtr xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool);
+extern _X_EXPORT xf86MonPtr xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool);
 
-extern xf86MonPtr xf86PrintEDID(
+extern _X_EXPORT xf86MonPtr xf86PrintEDID(
     xf86MonPtr monPtr
 );
 
-extern xf86MonPtr xf86InterpretEDID(
+extern _X_EXPORT xf86MonPtr xf86InterpretEDID(
     int screenIndex, Uchar *block
 );
 
-extern xf86MonPtr xf86InterpretEEDID(
+extern _X_EXPORT xf86MonPtr xf86InterpretEEDID(
     int screenIndex, Uchar *block
 );
 
-extern void 
+extern _X_EXPORT void
 xf86DDCMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC);
 
-extern Bool xf86SetDDCproperties(
+extern _X_EXPORT Bool xf86SetDDCproperties(
     ScrnInfoPtr pScreen,
     xf86MonPtr DDC
 );
 
-DisplayModePtr xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
+extern _X_EXPORT DisplayModePtr xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
 
-extern Bool
+extern _X_EXPORT Bool
 xf86MonitorIsHDMI(xf86MonPtr mon);
 
 #endif
diff --git a/hw/xfree86/dixmods/extmod/Makefile.am b/hw/xfree86/dixmods/extmod/Makefile.am
index dd4ccd6..d93e63a 100644
--- a/hw/xfree86/dixmods/extmod/Makefile.am
+++ b/hw/xfree86/dixmods/extmod/Makefile.am
@@ -12,7 +12,7 @@ XV_SRCS = xvmod.c xvmodproc.h
 endif
 
 if XF86VIDMODE
-XF86VMODE_SRCS = xf86vmode.c vidmodeproc.h
+XF86VMODE_SRCS = xf86vmode.c
 endif
 
 AM_CFLAGS = @DIX_CFLAGS@ @XORG_CFLAGS@
diff --git a/hw/xfree86/dixmods/extmod/dgaproc.h b/hw/xfree86/dixmods/extmod/dgaproc.h
index 67ca39c..6745a6e 100644
--- a/hw/xfree86/dixmods/extmod/dgaproc.h
+++ b/hw/xfree86/dixmods/extmod/dgaproc.h
@@ -54,7 +54,7 @@ typedef struct {
 
 /* DDX interface */
 
-int
+extern _X_EXPORT int
 DGASetMode(
    int Index,
    int num,
@@ -62,35 +62,35 @@ DGASetMode(
    PixmapPtr *pPix
 );
 
-void
+extern _X_EXPORT void
 DGASetInputMode(
    int Index,
    Bool keyboard,
    Bool mouse
 );
 
-void 
+extern _X_EXPORT void
 DGASelectInput(
    int Index,
    ClientPtr client,
    long mask
 );
 
-Bool DGAAvailable(int Index);
-Bool DGAActive(int Index);
-void DGAShutdown(void);
-void DGAInstallCmap(ColormapPtr cmap);
-int DGAGetViewportStatus(int Index); 
-int DGASync(int Index);
+extern _X_EXPORT Bool DGAAvailable(int Index);
+extern _X_EXPORT Bool DGAActive(int Index);
+extern _X_EXPORT void DGAShutdown(void);
+extern _X_EXPORT void DGAInstallCmap(ColormapPtr cmap);
+extern _X_EXPORT int DGAGetViewportStatus(int Index);
+extern _X_EXPORT int DGASync(int Index);
 
-int
+extern _X_EXPORT int
 DGAFillRect(
    int Index,
    int x, int y, int w, int h,
    unsigned long color
 );
 
-int
+extern _X_EXPORT int
 DGABlitRect(
    int Index,
    int srcx, int srcy, 
@@ -98,7 +98,7 @@ DGABlitRect(
    int dstx, int dsty
 );
 
-int
+extern _X_EXPORT int
 DGABlitTransRect(
    int Index,
    int srcx, int srcy, 
@@ -107,36 +107,36 @@ DGABlitTransRect(
    unsigned long color
 );
 
-int
+extern _X_EXPORT int
 DGASetViewport(
    int Index,
    int x, int y,
    int mode
 ); 
 
-int DGAGetModes(int Index);
-int DGAGetOldDGAMode(int Index);
+extern _X_EXPORT int DGAGetModes(int Index);
+extern _X_EXPORT int DGAGetOldDGAMode(int Index);
 
-int DGAGetModeInfo(int Index, XDGAModePtr mode, int num);
+extern _X_EXPORT int DGAGetModeInfo(int Index, XDGAModePtr mode, int num);
 
-Bool DGAVTSwitch(void);
-Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, int button, 
+extern _X_EXPORT Bool DGAVTSwitch(void);
+extern _X_EXPORT Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, int button,
                          int is_down);
-Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, int dy);
-Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, int key_code, int is_down);
-Bool DGAIsDgaEvent (xEvent *e);
+extern _X_EXPORT Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, int dy);
+extern _X_EXPORT Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, int key_code, int is_down);
+extern _X_EXPORT Bool DGAIsDgaEvent (xEvent *e);
 	    
-Bool DGAOpenFramebuffer(int Index, char **name, unsigned char **mem, 
+extern _X_EXPORT Bool DGAOpenFramebuffer(int Index, char **name, unsigned char **mem,
 			int *size, int *offset, int *flags);
-void DGACloseFramebuffer(int Index);
-Bool DGAChangePixmapMode(int Index, int *x, int *y, int mode);
-int DGACreateColormap(int Index, ClientPtr client, int id, int mode, 
+extern _X_EXPORT void DGACloseFramebuffer(int Index);
+extern _X_EXPORT Bool DGAChangePixmapMode(int Index, int *x, int *y, int mode);
+extern _X_EXPORT int DGACreateColormap(int Index, ClientPtr client, int id, int mode,
 			int alloc);
 
-extern unsigned char DGAReqCode;
-extern int DGAErrorBase;
-extern int DGAEventBase;
-extern int *XDGAEventBase;
+extern _X_EXPORT unsigned char DGAReqCode;
+extern _X_EXPORT int DGAErrorBase;
+extern _X_EXPORT int DGAEventBase;
+extern _X_EXPORT int *XDGAEventBase;
 
 
 
diff --git a/hw/xfree86/dixmods/extmod/vidmodeproc.h b/hw/xfree86/dixmods/extmod/vidmodeproc.h
deleted file mode 100644
index c5ad03a..0000000
--- a/hw/xfree86/dixmods/extmod/vidmodeproc.h
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/* Prototypes for DGA functions that the DDX must provide */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#ifndef _VIDMODEPROC_H_
-#define _VIDMODEPROC_H_
-
-
-typedef enum {
-    VIDMODE_H_DISPLAY,
-    VIDMODE_H_SYNCSTART,
-    VIDMODE_H_SYNCEND,
-    VIDMODE_H_TOTAL,
-    VIDMODE_H_SKEW,
-    VIDMODE_V_DISPLAY,
-    VIDMODE_V_SYNCSTART,
-    VIDMODE_V_SYNCEND,
-    VIDMODE_V_TOTAL,
-    VIDMODE_FLAGS,
-    VIDMODE_CLOCK
-} VidModeSelectMode;
-
-typedef enum {
-    VIDMODE_MON_VENDOR,
-    VIDMODE_MON_MODEL,
-    VIDMODE_MON_NHSYNC,
-    VIDMODE_MON_NVREFRESH,
-    VIDMODE_MON_HSYNC_LO,
-    VIDMODE_MON_HSYNC_HI,
-    VIDMODE_MON_VREFRESH_LO,
-    VIDMODE_MON_VREFRESH_HI
-} VidModeSelectMonitor;
-
-typedef union {
-  pointer ptr;
-  int i;
-  float f;
-} vidMonitorValue;
-
-void XFree86VidModeExtensionInit(void);
-
-Bool VidModeAvailable(int scrnIndex);
-Bool VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock);
-Bool VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock);
-Bool VidModeGetNextModeline(int scrnIndex, pointer *mode, int *dotClock);
-Bool VidModeDeleteModeline(int scrnIndex, pointer mode);
-Bool VidModeZoomViewport(int scrnIndex, int zoom);
-Bool VidModeGetViewPort(int scrnIndex, int *x, int *y);
-Bool VidModeSetViewPort(int scrnIndex, int x, int y);
-Bool VidModeSwitchMode(int scrnIndex, pointer mode);
-Bool VidModeLockZoom(int scrnIndex, Bool lock);
-Bool VidModeGetMonitor(int scrnIndex, pointer *monitor);
-int VidModeGetNumOfClocks(int scrnIndex, Bool *progClock);
-Bool VidModeGetClocks(int scrnIndex, int *Clocks);
-ModeStatus VidModeCheckModeForMonitor(int scrnIndex, pointer mode);
-ModeStatus VidModeCheckModeForDriver(int scrnIndex, pointer mode);
-void VidModeSetCrtcForMode(int scrnIndex, pointer mode);
-Bool VidModeAddModeline(int scrnIndex, pointer mode);
-int VidModeGetDotClock(int scrnIndex, int Clock);
-int VidModeGetNumOfModes(int scrnIndex);
-Bool VidModeSetGamma(int scrnIndex, float red, float green, float blue);
-Bool VidModeGetGamma(int scrnIndex, float *red, float *green, float *blue);
-pointer VidModeCreateMode(void);
-void VidModeCopyMode(pointer modefrom, pointer modeto);
-int VidModeGetModeValue(pointer mode, int valtyp);
-void VidModeSetModeValue(pointer mode, int valtyp, int val);
-vidMonitorValue VidModeGetMonitorValue(pointer monitor, int valtyp, int indx);
-Bool VidModeSetGammaRamp(int, int, CARD16 *, CARD16 *, CARD16 *);
-Bool VidModeGetGammaRamp(int, int, CARD16 *, CARD16 *, CARD16 *);
-int VidModeGetGammaRampSize(int scrnIndex);
-
-#endif
-
-
diff --git a/hw/xfree86/dixmods/extmod/xf86dga2.c b/hw/xfree86/dixmods/extmod/xf86dga2.c
index e712b42..df0030e 100644
--- a/hw/xfree86/dixmods/extmod/xf86dga2.c
+++ b/hw/xfree86/dixmods/extmod/xf86dga2.c
@@ -62,9 +62,9 @@ static void DGAClientStateChange (CallbackListPtr*, pointer, pointer);
 
 static ClientPtr DGAClients[MAXSCREENS];
 
-_X_EXPORT unsigned char DGAReqCode = 0;
-_X_EXPORT int DGAErrorBase;
-_X_EXPORT int DGAEventBase;
+unsigned char DGAReqCode = 0;
+int DGAErrorBase;
+int DGAEventBase;
 
 static int DGAClientPrivateKeyIndex;
 static DevPrivateKey DGAClientPrivateKey = &DGAClientPrivateKeyIndex;
diff --git a/hw/xfree86/dixmods/xkbKillSrv.c b/hw/xfree86/dixmods/xkbKillSrv.c
index ac9c412..9074fd3 100644
--- a/hw/xfree86/dixmods/xkbKillSrv.c
+++ b/hw/xfree86/dixmods/xkbKillSrv.c
@@ -45,7 +45,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 #include "xf86.h"
 
-_X_EXPORT int
+int
 XkbDDXTerminateServer(DeviceIntPtr dev,KeyCode key,XkbAction *act)
 {
     if (dev != inputInfo.keyboard)
diff --git a/hw/xfree86/dixmods/xkbPrivate.c b/hw/xfree86/dixmods/xkbPrivate.c
index e2a1273..db21a4e 100644
--- a/hw/xfree86/dixmods/xkbPrivate.c
+++ b/hw/xfree86/dixmods/xkbPrivate.c
@@ -17,7 +17,7 @@
 #include "os.h"
 #include "xf86.h"
 
-_X_EXPORT int
+int
 XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act)
 {
     XkbAnyAction *xf86act = &(act->any);
diff --git a/hw/xfree86/dixmods/xkbVT.c b/hw/xfree86/dixmods/xkbVT.c
index aaa4665..e6d69e2 100644
--- a/hw/xfree86/dixmods/xkbVT.c
+++ b/hw/xfree86/dixmods/xkbVT.c
@@ -45,7 +45,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 #include "xf86.h"
 
-_X_EXPORT int
+int
 XkbDDXSwitchScreen(DeviceIntPtr dev,KeyCode key,XkbAction *act)
 {
     int scrnnum = XkbSAScreen(&act->screen);
diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c
index 370c6a2..4d17c9a 100644
--- a/hw/xfree86/dri/dri.c
+++ b/hw/xfree86/dri/dri.c
@@ -132,26 +132,26 @@ DRIOpenDRMCleanup(DRIEntPrivPtr pDRIEntPriv)
     }
 }
 
-_X_EXPORT int
+int
 DRIMasterFD(ScrnInfoPtr pScrn)
 {
     return DRI_ENT_PRIV(pScrn)->drmFD;
 }
 
-_X_EXPORT void *
+void *
 DRIMasterSareaPointer(ScrnInfoPtr pScrn)
 {
     return DRI_ENT_PRIV(pScrn)->pLSAREA;
 }
 
-_X_EXPORT drm_handle_t
+drm_handle_t
 DRIMasterSareaHandle(ScrnInfoPtr pScrn)
 {
     return DRI_ENT_PRIV(pScrn)->hLSAREA;
 }
 
 
-_X_EXPORT Bool
+Bool
 DRIOpenDRMMaster(ScrnInfoPtr pScrn,
 		 unsigned long sAreaSize,
 		 const char *busID,
@@ -315,7 +315,7 @@ dri_crtc_notify(ScreenPtr pScreen)
     pDRIPriv->xf86_crtc_notify = xf86_wrap_crtc_notify(pScreen, dri_crtc_notify);
 }
 
-_X_EXPORT Bool
+Bool
 DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD)
 {
     DRIScreenPrivPtr    pDRIPriv;
@@ -594,7 +594,7 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIFinishScreenInit(ScreenPtr pScreen)
 {
     DRIScreenPrivPtr  pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -640,7 +640,7 @@ DRIFinishScreenInit(ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 DRICloseScreen(ScreenPtr pScreen)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -785,7 +785,7 @@ drmServerInfo DRIDRMServerInfo =  {
   dri_drm_get_perms,
 };
 
-_X_EXPORT Bool
+Bool
 DRIExtensionInit(void)
 {
     if (!DRIScreenPrivKey || DRIGeneration != serverGeneration) {
@@ -800,7 +800,7 @@ DRIExtensionInit(void)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 DRIReset(void)
 {
     /*
@@ -812,7 +812,7 @@ DRIReset(void)
      */
 }
 
-_X_EXPORT Bool
+Bool
 DRIQueryDirectRenderingCapable(ScreenPtr pScreen, Bool* isCapable)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -825,7 +825,7 @@ DRIQueryDirectRenderingCapable(ScreenPtr pScreen, Bool* isCapable)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIOpenConnection(ScreenPtr pScreen, drm_handle_t * hSAREA, char **busIdString)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -836,7 +836,7 @@ DRIOpenConnection(ScreenPtr pScreen, drm_handle_t * hSAREA, char **busIdString)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIAuthConnection(ScreenPtr pScreen, drm_magic_t magic)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -845,13 +845,13 @@ DRIAuthConnection(ScreenPtr pScreen, drm_magic_t magic)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRICloseConnection(ScreenPtr pScreen)
 {
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIGetClientDriverName(ScreenPtr pScreen,
                        int *ddxDriverMajorVersion,
                        int *ddxDriverMinorVersion,
@@ -880,7 +880,7 @@ DRIGetClientDriverName(ScreenPtr pScreen,
    DRICreateContextPriv returns a pointer to newly allocated
    DRIContextPriv, and returns the kernel drm_context_t in pHWContext. */
 
-_X_EXPORT DRIContextPrivPtr
+DRIContextPrivPtr
 DRICreateContextPriv(ScreenPtr pScreen,
 		     drm_context_t * pHWContext,
 		     DRIContextFlags flags)
@@ -894,7 +894,7 @@ DRICreateContextPriv(ScreenPtr pScreen,
     return DRICreateContextPrivFromHandle(pScreen, *pHWContext, flags);
 }
 
-_X_EXPORT DRIContextPrivPtr
+DRIContextPrivPtr
 DRICreateContextPrivFromHandle(ScreenPtr pScreen,
 			       drm_context_t hHWContext,
 			       DRIContextFlags flags)
@@ -940,7 +940,7 @@ DRICreateContextPrivFromHandle(ScreenPtr pScreen,
     return pDRIContextPriv;
 }
 
-_X_EXPORT Bool
+Bool
 DRIDestroyContextPriv(DRIContextPrivPtr pDRIContextPriv)
 {
     DRIScreenPrivPtr pDRIPriv;
@@ -1014,7 +1014,7 @@ DRIDestroyDummyContext(ScreenPtr pScreen, Bool hasCtxPriv)
     pDRIPriv->dummyCtxPriv = NULL;
 }
 
-_X_EXPORT Bool
+Bool
 DRICreateContext(ScreenPtr pScreen, VisualPtr visual,
                  XID context, drm_context_t * pHWContext)
 {
@@ -1050,7 +1050,7 @@ DRICreateContext(ScreenPtr pScreen, VisualPtr visual,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIDestroyContext(ScreenPtr pScreen, XID context)
 {
     FreeResourceByType(context, DRIContextPrivResType, FALSE);
@@ -1059,7 +1059,7 @@ DRIDestroyContext(ScreenPtr pScreen, XID context)
 }
 
 /* DRIContextPrivDelete is called by the resource manager. */
-_X_EXPORT Bool
+Bool
 DRIContextPrivDelete(pointer pResource, XID id)
 {
     DRIContextPrivPtr pDRIContextPriv = (DRIContextPrivPtr)pResource;
@@ -1233,7 +1233,7 @@ DRIDecreaseNumberVisible(ScreenPtr pScreen)
     DRIDriverClipNotify(pScreen);
 }
 
-_X_EXPORT Bool
+Bool
 DRICreateDrawable(ScreenPtr pScreen, ClientPtr client, DrawablePtr pDrawable,
 		  drm_drawable_t * hHWDrawable)
 {
@@ -1345,7 +1345,7 @@ DRIDestroyDrawableCB(pointer value, XID id, pointer data)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIDestroyDrawable(ScreenPtr pScreen, ClientPtr client, DrawablePtr pDrawable)
 {
     if (pDrawable->type == DRAWABLE_WINDOW) {
@@ -1361,7 +1361,7 @@ DRIDestroyDrawable(ScreenPtr pScreen, ClientPtr client, DrawablePtr pDrawable)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIDrawablePrivDelete(pointer pResource, XID id)
 {
     WindowPtr pWin;
@@ -1386,7 +1386,7 @@ DRIDrawablePrivDelete(pointer pResource, XID id)
     }
 }
 
-_X_EXPORT Bool
+Bool
 DRIGetDrawableInfo(ScreenPtr pScreen,
                    DrawablePtr pDrawable,
                    unsigned int* index,
@@ -1558,7 +1558,7 @@ DRIGetDrawableInfo(ScreenPtr pScreen,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRIGetDeviceInfo(ScreenPtr pScreen,
                  drm_handle_t * hFrameBuffer,
                  int* fbOrigin,
@@ -1579,7 +1579,7 @@ DRIGetDeviceInfo(ScreenPtr pScreen,
     return TRUE;
 }
 
-_X_EXPORT DRIInfoPtr
+DRIInfoPtr
 DRICreateInfoRec(void)
 {
     DRIInfoPtr inforec = (DRIInfoPtr)xcalloc(1, sizeof(DRIInfoRec));
@@ -1605,7 +1605,7 @@ DRICreateInfoRec(void)
     return inforec;
 }
 
-_X_EXPORT void
+void
 DRIDestroyInfoRec(DRIInfoPtr DRIInfo)
 {
     if (DRIInfo->busIdString) xfree(DRIInfo->busIdString);
@@ -1613,7 +1613,7 @@ DRIDestroyInfoRec(DRIInfoPtr DRIInfo)
 }
 
 
-_X_EXPORT void
+void
 DRIWakeupHandler(pointer wakeupData, int result, pointer pReadmask)
 {
     int i;
@@ -1629,7 +1629,7 @@ DRIWakeupHandler(pointer wakeupData, int result, pointer pReadmask)
     }
 }
 
-_X_EXPORT void
+void
 DRIBlockHandler(pointer blockData, OSTimePtr pTimeout, pointer pReadmask)
 {
     int i;
@@ -1645,7 +1645,7 @@ DRIBlockHandler(pointer blockData, OSTimePtr pTimeout, pointer pReadmask)
     }
 }
 
-_X_EXPORT void
+void
 DRIDoWakeupHandler(int screenNum, pointer wakeupData,
                    unsigned long result, pointer pReadmask)
 {
@@ -1664,7 +1664,7 @@ DRIDoWakeupHandler(int screenNum, pointer wakeupData,
     }
 }
 
-_X_EXPORT void
+void
 DRIDoBlockHandler(int screenNum, pointer blockData,
                   pointer pTimeout, pointer pReadmask)
 {
@@ -1688,7 +1688,7 @@ DRIDoBlockHandler(int screenNum, pointer blockData,
     DRIUnlock(pScreen);
 }
 
-_X_EXPORT void
+void
 DRISwapContext(int drmFD, void *oldctx, void *newctx)
 {
     DRIContextPrivPtr oldContext      = (DRIContextPrivPtr)oldctx;
@@ -1835,13 +1835,13 @@ DRISwapContext(int drmFD, void *oldctx, void *newctx)
 					  newContextStore);
 }
 
-_X_EXPORT void* 
+void*
 DRIGetContextStore(DRIContextPrivPtr context)
 {
     return((void *)context->pContextStore);
 }
 
-_X_EXPORT void
+void
 DRIWindowExposures(WindowPtr pWin, RegionPtr prgn, RegionPtr bsreg)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -1891,7 +1891,7 @@ DRITreeTraversal(WindowPtr pWin, pointer data)
     return WT_WALKCHILDREN;
 }
 
-_X_EXPORT Bool
+Bool
 DRIDestroyWindow(WindowPtr pWin)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -1916,7 +1916,7 @@ DRIDestroyWindow(WindowPtr pWin)
     return retval;
 }
 
-_X_EXPORT void
+void
 DRICopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -2055,7 +2055,7 @@ DRILockTree(ScreenPtr pScreen)
     }
 }
 
-_X_EXPORT int
+int
 DRIValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
 {
     ScreenPtr pScreen = pParent->drawable.pScreen;
@@ -2081,7 +2081,7 @@ DRIValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
     return returnValue;
 }
 
-_X_EXPORT void
+void
 DRIPostValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
 {
     ScreenPtr pScreen;
@@ -2107,7 +2107,7 @@ DRIPostValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
     }
 }
 
-_X_EXPORT void
+void
 DRIClipNotify(WindowPtr pWin, int dx, int dy)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -2156,7 +2156,7 @@ DRIClipNotify(WindowPtr pWin, int dx, int dy)
     }
 }
 
-_X_EXPORT CARD32
+CARD32
 DRIGetDrawableIndex(WindowPtr pWin)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -2174,7 +2174,7 @@ DRIGetDrawableIndex(WindowPtr pWin)
     return index;
 }
 
-_X_EXPORT unsigned int
+unsigned int
 DRIGetDrawableStamp(ScreenPtr pScreen, CARD32 drawable_index)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -2182,7 +2182,7 @@ DRIGetDrawableStamp(ScreenPtr pScreen, CARD32 drawable_index)
 }
 
 
-_X_EXPORT void
+void
 DRIPrintDrawableLock(ScreenPtr pScreen, char *msg)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -2190,7 +2190,7 @@ DRIPrintDrawableLock(ScreenPtr pScreen, char *msg)
     ErrorF("%s: %d\n", msg,  pDRIPriv->pSAREA->drawable_lock.lock);
 }
 
-_X_EXPORT void
+void
 DRILock(ScreenPtr pScreen, int flags)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -2211,7 +2211,7 @@ DRILock(ScreenPtr pScreen, int flags)
     (*pDRIPriv->pLockRefCount)++;
 }
 
-_X_EXPORT void
+void
 DRIUnlock(ScreenPtr pScreen)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -2236,7 +2236,7 @@ DRIUnlock(ScreenPtr pScreen)
         DRM_UNLOCK(pDRIPriv->drmFD, pDRIPriv->pLSAREA, pDRIPriv->myContext);
 }
 
-_X_EXPORT void *
+void *
 DRIGetSAREAPrivate(ScreenPtr pScreen)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -2245,7 +2245,7 @@ DRIGetSAREAPrivate(ScreenPtr pScreen)
     return (void *)(((char*)pDRIPriv->pSAREA)+sizeof(XF86DRISAREARec));
 }
 
-_X_EXPORT drm_context_t
+drm_context_t
 DRIGetContext(ScreenPtr pScreen)
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
@@ -2254,7 +2254,7 @@ DRIGetContext(ScreenPtr pScreen)
     return pDRIPriv->myContext;
 }
 
-_X_EXPORT void
+void
 DRIGetTexOffsetFuncs(ScreenPtr pScreen,
 		     DRITexOffsetStartProcPtr *texOffsetStartFunc,
 		     DRITexOffsetFinishProcPtr *texOffsetFinishFunc)
@@ -2271,14 +2271,14 @@ DRIGetTexOffsetFuncs(ScreenPtr pScreen,
  * call the lowerlevel functions, and choose whether they will be
  * called at every level of recursion (eg in validatetree).
  */
-_X_EXPORT DRIWrappedFuncsRec *
+DRIWrappedFuncsRec *
 DRIGetWrappedFuncs(ScreenPtr pScreen)
 {
     return &(DRI_SCREEN_PRIV(pScreen)->wrap);
 }
 
 /* note that this returns the library version, not the protocol version */
-_X_EXPORT void
+void
 DRIQueryVersion(int *majorVersion,
                 int *minorVersion,
                 int *patchVersion)
@@ -2297,7 +2297,7 @@ _DRIAdjustFrame(ScrnInfoPtr pScrn, DRIScreenPrivPtr pDRIPriv, int x, int y)
     pDRIPriv->pSAREA->frame.height = pScrn->frameY1 - y + 1;
 }
 
-_X_EXPORT void
+void
 DRIAdjustFrame(int scrnIndex, int x, int y, int flags)
 {
     ScreenPtr        pScreen  = screenInfo.screens[scrnIndex];
@@ -2349,7 +2349,7 @@ DRIAdjustFrame(int scrnIndex, int x, int y, int flags)
  * REGION_VALIDATE on it, or better yet, save a copy first.
  */
 
-_X_EXPORT void
+void
 DRIMoveBuffersHelper(
    ScreenPtr pScreen, 
    int dx,
@@ -2415,7 +2415,7 @@ DRIMoveBuffersHelper(
 
 }
 
-_X_EXPORT char *
+char *
 DRICreatePCIBusID(const struct pci_device * dev)
 {
     char *busID;
@@ -2479,7 +2479,7 @@ static void drmSIGIOHandler(int interrupt, void *closure)
 }
 
 
-_X_EXPORT int drmInstallSIGIOHandler(int fd, void (*f)(int, void *, void *))
+int drmInstallSIGIOHandler(int fd, void (*f)(int, void *, void *))
 {
     drmHashEntry     *entry;
 
@@ -2489,7 +2489,7 @@ _X_EXPORT int drmInstallSIGIOHandler(int fd, void (*f)(int, void *, void *))
     return xf86InstallSIGIOHandler(fd, drmSIGIOHandler, 0);
 }
 
-_X_EXPORT int drmRemoveSIGIOHandler(int fd)
+int drmRemoveSIGIOHandler(int fd)
 {
     drmHashEntry     *entry = drmGetEntry(fd);
 
diff --git a/hw/xfree86/dri/dri.h b/hw/xfree86/dri/dri.h
index 516da97..f690e23 100644
--- a/hw/xfree86/dri/dri.h
+++ b/hw/xfree86/dri/dri.h
@@ -198,59 +198,59 @@ typedef struct {
 } DRIInfoRec, *DRIInfoPtr;
 
 
-extern Bool DRIOpenDRMMaster(ScrnInfoPtr pScrn, unsigned long sAreaSize,
+extern _X_EXPORT Bool DRIOpenDRMMaster(ScrnInfoPtr pScrn, unsigned long sAreaSize,
 			     const char *busID,
 			     const char *drmDriverName);
 
-extern Bool DRIScreenInit(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRIScreenInit(ScreenPtr pScreen,
                           DRIInfoPtr pDRIInfo,
                           int *pDRMFD);
 
-extern void DRICloseScreen(ScreenPtr pScreen);
+extern _X_EXPORT void DRICloseScreen(ScreenPtr pScreen);
 
-extern Bool DRIExtensionInit(void);
+extern _X_EXPORT Bool DRIExtensionInit(void);
 
-extern void DRIReset(void);
+extern _X_EXPORT void DRIReset(void);
 
-extern Bool DRIQueryDirectRenderingCapable(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRIQueryDirectRenderingCapable(ScreenPtr pScreen,
                                            Bool *isCapable);
 
-extern Bool DRIOpenConnection(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRIOpenConnection(ScreenPtr pScreen,
                               drm_handle_t * hSAREA,
                               char **busIdString);
 
-extern Bool DRIAuthConnection(ScreenPtr pScreen, drm_magic_t magic);
+extern _X_EXPORT Bool DRIAuthConnection(ScreenPtr pScreen, drm_magic_t magic);
 
-extern Bool DRICloseConnection(ScreenPtr pScreen);
+extern _X_EXPORT Bool DRICloseConnection(ScreenPtr pScreen);
 
-extern Bool DRIGetClientDriverName(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRIGetClientDriverName(ScreenPtr pScreen,
                                    int* ddxDriverMajorVersion,
                                    int* ddxDriverMinorVersion,
                                    int* ddxDriverPatchVersion,
                                    char** clientDriverName);
 
-extern Bool DRICreateContext(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRICreateContext(ScreenPtr pScreen,
                              VisualPtr visual,
                              XID context,
                              drm_context_t * pHWContext);
 
-extern Bool DRIDestroyContext(ScreenPtr pScreen, XID context);
+extern _X_EXPORT Bool DRIDestroyContext(ScreenPtr pScreen, XID context);
 
-extern Bool DRIContextPrivDelete(pointer pResource, XID id);
+extern _X_EXPORT Bool DRIContextPrivDelete(pointer pResource, XID id);
 
-extern Bool DRICreateDrawable(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRICreateDrawable(ScreenPtr pScreen,
                               ClientPtr client,
                               DrawablePtr pDrawable,
                               drm_drawable_t * hHWDrawable);
 
-extern Bool DRIDestroyDrawable(ScreenPtr pScreen, 
+extern _X_EXPORT Bool DRIDestroyDrawable(ScreenPtr pScreen,
 			       ClientPtr client,
                                DrawablePtr pDrawable);
 
-extern Bool DRIDrawablePrivDelete(pointer pResource,
+extern _X_EXPORT Bool DRIDrawablePrivDelete(pointer pResource,
                                   XID id);
 
-extern Bool DRIGetDrawableInfo(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRIGetDrawableInfo(ScreenPtr pScreen,
                                DrawablePtr pDrawable,
                                unsigned int* indx,
                                unsigned int* stamp,
@@ -265,7 +265,7 @@ extern Bool DRIGetDrawableInfo(ScreenPtr pScreen,
                                int* numBackClipRects,
                                drm_clip_rect_t ** pBackClipRects);
 
-extern Bool DRIGetDeviceInfo(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRIGetDeviceInfo(ScreenPtr pScreen,
                              drm_handle_t * hFrameBuffer,
                              int* fbOrigin,
                              int* fbSize,
@@ -273,109 +273,109 @@ extern Bool DRIGetDeviceInfo(ScreenPtr pScreen,
                              int* devPrivateSize,
                              void** pDevPrivate);
 
-extern DRIInfoPtr DRICreateInfoRec(void);
+extern _X_EXPORT DRIInfoPtr DRICreateInfoRec(void);
 
-extern void DRIDestroyInfoRec(DRIInfoPtr DRIInfo);
+extern _X_EXPORT void DRIDestroyInfoRec(DRIInfoPtr DRIInfo);
 
-extern Bool DRIFinishScreenInit(ScreenPtr pScreen);
+extern _X_EXPORT Bool DRIFinishScreenInit(ScreenPtr pScreen);
 
-extern void DRIWakeupHandler(pointer wakeupData,
+extern _X_EXPORT void DRIWakeupHandler(pointer wakeupData,
                              int result,
                              pointer pReadmask);
 
-extern void DRIBlockHandler(pointer blockData,
+extern _X_EXPORT void DRIBlockHandler(pointer blockData,
                             OSTimePtr pTimeout,
                             pointer pReadmask);
 
-extern void DRIDoWakeupHandler(int screenNum,
+extern _X_EXPORT void DRIDoWakeupHandler(int screenNum,
                                pointer wakeupData,
                                unsigned long result,
                                pointer pReadmask);
 
-extern void DRIDoBlockHandler(int screenNum,
+extern _X_EXPORT void DRIDoBlockHandler(int screenNum,
                               pointer blockData,
                               pointer pTimeout,
                               pointer pReadmask);
 
-extern void DRISwapContext(int drmFD,
+extern _X_EXPORT void DRISwapContext(int drmFD,
                            void *oldctx,
                            void *newctx);
 
-extern void *DRIGetContextStore(DRIContextPrivPtr context);
+extern _X_EXPORT void *DRIGetContextStore(DRIContextPrivPtr context);
 
-extern void DRIWindowExposures(WindowPtr pWin,
+extern _X_EXPORT void DRIWindowExposures(WindowPtr pWin,
                               RegionPtr prgn,
                               RegionPtr bsreg);
 
-extern Bool DRIDestroyWindow(WindowPtr pWin);
+extern _X_EXPORT Bool DRIDestroyWindow(WindowPtr pWin);
 
-extern void DRICopyWindow(WindowPtr pWin,
+extern _X_EXPORT void DRICopyWindow(WindowPtr pWin,
                           DDXPointRec ptOldOrg,
                           RegionPtr prgnSrc);
 
-extern int DRIValidateTree(WindowPtr pParent,
+extern _X_EXPORT int DRIValidateTree(WindowPtr pParent,
                            WindowPtr pChild,
                            VTKind    kind);
 
-extern void DRIPostValidateTree(WindowPtr pParent,
+extern _X_EXPORT void DRIPostValidateTree(WindowPtr pParent,
                                 WindowPtr pChild,
                                 VTKind    kind);
 
-extern void DRIClipNotify(WindowPtr pWin,
+extern _X_EXPORT void DRIClipNotify(WindowPtr pWin,
                           int dx,
                           int dy);
 
-extern CARD32 DRIGetDrawableIndex(WindowPtr pWin);
+extern _X_EXPORT CARD32 DRIGetDrawableIndex(WindowPtr pWin);
 
-extern void DRIPrintDrawableLock(ScreenPtr pScreen, char *msg);
+extern _X_EXPORT void DRIPrintDrawableLock(ScreenPtr pScreen, char *msg);
 
-extern void DRILock(ScreenPtr pScreen, int flags);
+extern _X_EXPORT void DRILock(ScreenPtr pScreen, int flags);
 
-extern void DRIUnlock(ScreenPtr pScreen);
+extern _X_EXPORT void DRIUnlock(ScreenPtr pScreen);
 
-extern DRIWrappedFuncsRec *DRIGetWrappedFuncs(ScreenPtr pScreen);
+extern _X_EXPORT DRIWrappedFuncsRec *DRIGetWrappedFuncs(ScreenPtr pScreen);
 
-extern void *DRIGetSAREAPrivate(ScreenPtr pScreen);
+extern _X_EXPORT void *DRIGetSAREAPrivate(ScreenPtr pScreen);
 
-extern unsigned int DRIGetDrawableStamp(ScreenPtr pScreen,
+extern _X_EXPORT unsigned int DRIGetDrawableStamp(ScreenPtr pScreen,
                                         CARD32 drawable_index);
 
-extern DRIContextPrivPtr DRICreateContextPriv(ScreenPtr pScreen,
+extern _X_EXPORT DRIContextPrivPtr DRICreateContextPriv(ScreenPtr pScreen,
                                               drm_context_t * pHWContext,
                                               DRIContextFlags flags);
 
-extern DRIContextPrivPtr DRICreateContextPrivFromHandle(ScreenPtr pScreen,
+extern _X_EXPORT DRIContextPrivPtr DRICreateContextPrivFromHandle(ScreenPtr pScreen,
                                                         drm_context_t hHWContext,
                                                         DRIContextFlags flags);
 
-extern Bool DRIDestroyContextPriv(DRIContextPrivPtr pDRIContextPriv);
+extern _X_EXPORT Bool DRIDestroyContextPriv(DRIContextPrivPtr pDRIContextPriv);
 
-extern drm_context_t DRIGetContext(ScreenPtr pScreen);
+extern _X_EXPORT drm_context_t DRIGetContext(ScreenPtr pScreen);
 
-extern void DRIQueryVersion(int *majorVersion,
+extern _X_EXPORT void DRIQueryVersion(int *majorVersion,
                             int *minorVersion,
                             int *patchVersion);
 
-extern void DRIAdjustFrame(int scrnIndex, int x, int y, int flags);
+extern _X_EXPORT void DRIAdjustFrame(int scrnIndex, int x, int y, int flags);
 
-extern void DRIMoveBuffersHelper(ScreenPtr pScreen, 
+extern _X_EXPORT void DRIMoveBuffersHelper(ScreenPtr pScreen,
                                  int dx,
                                  int dy,
                                  int *xdir, 
                                  int *ydir, 
                                  RegionPtr reg);
 
-extern char *DRICreatePCIBusID(const struct pci_device *PciInfo);
+extern _X_EXPORT char *DRICreatePCIBusID(const struct pci_device *PciInfo);
 
-extern int drmInstallSIGIOHandler(int fd, void (*f)(int, void *, void *));
-extern int drmRemoveSIGIOHandler(int fd);
-extern int DRIMasterFD(ScrnInfoPtr pScrn);
+extern _X_EXPORT int drmInstallSIGIOHandler(int fd, void (*f)(int, void *, void *));
+extern _X_EXPORT int drmRemoveSIGIOHandler(int fd);
+extern _X_EXPORT int DRIMasterFD(ScrnInfoPtr pScrn);
 
-extern void *DRIMasterSareaPointer(ScrnInfoPtr pScrn);
+extern _X_EXPORT void *DRIMasterSareaPointer(ScrnInfoPtr pScrn);
 
-extern drm_handle_t DRIMasterSareaHandle(ScrnInfoPtr pScrn);
+extern _X_EXPORT drm_handle_t DRIMasterSareaHandle(ScrnInfoPtr pScrn);
 
-extern void DRIGetTexOffsetFuncs(ScreenPtr pScreen,
+extern _X_EXPORT void DRIGetTexOffsetFuncs(ScreenPtr pScreen,
 				 DRITexOffsetStartProcPtr *texOffsetStartFunc,
 				 DRITexOffsetFinishProcPtr *texOffsetFinishFunc);
 
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index de94daa..0f2e24b 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -94,7 +94,7 @@ DRI2GetDrawable(DrawablePtr pDraw)
     }
 }
 
-_X_EXPORT int
+int
 DRI2CreateDrawable(DrawablePtr pDraw)
 {
     WindowPtr	    pWin;
@@ -132,7 +132,7 @@ DRI2CreateDrawable(DrawablePtr pDraw)
     return Success;
 }
 
-_X_EXPORT DRI2BufferPtr
+DRI2BufferPtr
 DRI2GetBuffers(DrawablePtr pDraw, int *width, int *height,
 	       unsigned int *attachments, int count, int *out_count)
 {
@@ -158,7 +158,7 @@ DRI2GetBuffers(DrawablePtr pDraw, int *width, int *height,
     return pPriv->buffers;
 }
 
-_X_EXPORT int
+int
 DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 	       unsigned int dest, unsigned int src)
 {
@@ -188,7 +188,7 @@ DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
     return Success;
 }
 
-_X_EXPORT void
+void
 DRI2DestroyDrawable(DrawablePtr pDraw)
 {
     DRI2ScreenPtr   ds = DRI2GetScreen(pDraw->pScreen);
@@ -219,7 +219,7 @@ DRI2DestroyDrawable(DrawablePtr pDraw)
     }
 }
 
-_X_EXPORT Bool
+Bool
 DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd,
 	    const char **driverName, const char **deviceName)
 {
@@ -238,7 +238,7 @@ DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic)
 {
     DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
@@ -249,7 +249,7 @@ DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
 {
     DRI2ScreenPtr ds;
@@ -272,7 +272,7 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 DRI2CloseScreen(ScreenPtr pScreen)
 {
     DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
index 5e7fd65..847e57c 100644
--- a/hw/xfree86/dri2/dri2.h
+++ b/hw/xfree86/dri2/dri2.h
@@ -71,31 +71,31 @@ typedef struct {
 
 }  DRI2InfoRec, *DRI2InfoPtr;
 
-Bool DRI2ScreenInit(ScreenPtr	pScreen,
+extern _X_EXPORT Bool DRI2ScreenInit(ScreenPtr	pScreen,
 		    DRI2InfoPtr info);
 
-void DRI2CloseScreen(ScreenPtr pScreen);
+extern _X_EXPORT void DRI2CloseScreen(ScreenPtr pScreen);
 
-Bool DRI2Connect(ScreenPtr pScreen,
+extern _X_EXPORT Bool DRI2Connect(ScreenPtr pScreen,
 		 unsigned int driverType,
 		 int *fd,
 		 const char **driverName,
 		 const char **deviceName);
 
-Bool DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic);
+extern _X_EXPORT Bool DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic);
 
-int DRI2CreateDrawable(DrawablePtr pDraw);
+extern _X_EXPORT int DRI2CreateDrawable(DrawablePtr pDraw);
 
-void DRI2DestroyDrawable(DrawablePtr pDraw);
+extern _X_EXPORT void DRI2DestroyDrawable(DrawablePtr pDraw);
 
-DRI2BufferPtr DRI2GetBuffers(DrawablePtr pDraw,
+extern _X_EXPORT DRI2BufferPtr DRI2GetBuffers(DrawablePtr pDraw,
 			     int *width,
 			     int *height,
 			     unsigned int *attachments,
 			     int count,
 			     int *out_count);
 
-int DRI2CopyRegion(DrawablePtr pDraw,
+extern _X_EXPORT int DRI2CopyRegion(DrawablePtr pDraw,
 		   RegionPtr pRegion,
 		   unsigned int dest,
 		   unsigned int src);
diff --git a/hw/xfree86/dummylib/dixprivates.c b/hw/xfree86/dummylib/dixprivates.c
index 40c173a..0c1376d 100644
--- a/hw/xfree86/dummylib/dixprivates.c
+++ b/hw/xfree86/dummylib/dixprivates.c
@@ -11,7 +11,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT pointer *
+pointer *
 dixAllocatePrivate(PrivateRec **privates, const DevPrivateKey key)
 {
     return NULL;	/* not used */
diff --git a/hw/xfree86/dummylib/fatalerror.c b/hw/xfree86/dummylib/fatalerror.c
index e147c73..bbeda37 100644
--- a/hw/xfree86/dummylib/fatalerror.c
+++ b/hw/xfree86/dummylib/fatalerror.c
@@ -11,7 +11,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 FatalError(const char *f, ...)
 {
     va_list args;
diff --git a/hw/xfree86/dummylib/logvwrite.c b/hw/xfree86/dummylib/logvwrite.c
index 26868e7..aed1ad2 100644
--- a/hw/xfree86/dummylib/logvwrite.c
+++ b/hw/xfree86/dummylib/logvwrite.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 LogVWrite(int verb, const char *format, va_list ap)
 {
     if (xf86Verbose >= verb)
diff --git a/hw/xfree86/dummylib/verrorf.c b/hw/xfree86/dummylib/verrorf.c
index c75d1bc..886366b 100644
--- a/hw/xfree86/dummylib/verrorf.c
+++ b/hw/xfree86/dummylib/verrorf.c
@@ -11,7 +11,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 VErrorF(const char *f, va_list args)
 {
     vfprintf(stderr, f, args);
diff --git a/hw/xfree86/dummylib/xalloc.c b/hw/xfree86/dummylib/xalloc.c
index 52183ea..77c168f 100644
--- a/hw/xfree86/dummylib/xalloc.c
+++ b/hw/xfree86/dummylib/xalloc.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT pointer
+pointer
 Xalloc(unsigned long n)
 {
     if (!n)
@@ -20,7 +20,7 @@ Xalloc(unsigned long n)
     return malloc(n);
 }
 
-_X_EXPORT pointer
+pointer
 Xrealloc(pointer p, unsigned long n)
 {
     if (!n)
@@ -28,7 +28,7 @@ Xrealloc(pointer p, unsigned long n)
     return realloc(p, n);
 }
 
-_X_EXPORT pointer
+pointer
 Xcalloc(unsigned long n)
 {
     pointer r;
@@ -38,7 +38,7 @@ Xcalloc(unsigned long n)
     return r;
 }
 
-_X_EXPORT pointer
+pointer
 XNFalloc(unsigned long n)
 {
     pointer r;
@@ -50,7 +50,7 @@ XNFalloc(unsigned long n)
    
 }
 
-_X_EXPORT pointer
+pointer
 XNFrealloc(pointer p, unsigned long n)
 {
     pointer r;
@@ -62,7 +62,7 @@ XNFrealloc(pointer p, unsigned long n)
    
 }
 
-_X_EXPORT pointer
+pointer
 XNFcalloc(unsigned long n)
 {
     pointer r;
@@ -74,13 +74,13 @@ XNFcalloc(unsigned long n)
    
 }
 
-_X_EXPORT void
+void
 Xfree(pointer p)
 {
     free(p);
 }
 
-_X_EXPORT char *
+char *
 Xstrdup(const char *s)
 {
     char *sd;
@@ -94,7 +94,7 @@ Xstrdup(const char *s)
     return sd;
 }
 
-_X_EXPORT char *
+char *
 XNFstrdup(const char *s)
 {
     char *sd;
diff --git a/hw/xfree86/dummylib/xf86addrestolist.c b/hw/xfree86/dummylib/xf86addrestolist.c
index 32789ec..d8faaac 100644
--- a/hw/xfree86/dummylib/xf86addrestolist.c
+++ b/hw/xfree86/dummylib/xf86addrestolist.c
@@ -5,19 +5,19 @@
 
 #include "xf86.h"
 
-_X_EXPORT resPtr
+resPtr
 xf86AddResToList(resPtr rlist, resRange *Range, int entityIndex)
 {
     return rlist;
 }
 
-_X_EXPORT void
+void
 xf86FreeResList(resPtr rlist)
 {
     return;
 }
 
-_X_EXPORT resPtr
+resPtr
 xf86DupResList(const resPtr rlist)
 {
     return rlist;
diff --git a/hw/xfree86/dummylib/xf86allocscripi.c b/hw/xfree86/dummylib/xf86allocscripi.c
index 9268848..d747bd5 100644
--- a/hw/xfree86/dummylib/xf86allocscripi.c
+++ b/hw/xfree86/dummylib/xf86allocscripi.c
@@ -11,7 +11,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT int
+int
 xf86AllocateScrnInfoPrivateIndex()
 {
     return -1;
diff --git a/hw/xfree86/dummylib/xf86drvmsg.c b/hw/xfree86/dummylib/xf86drvmsg.c
index b77948d..f0644ec 100644
--- a/hw/xfree86/dummylib/xf86drvmsg.c
+++ b/hw/xfree86/dummylib/xf86drvmsg.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86DrvMsg(int i, MessageType type, const char *format, ...)
 {
     va_list ap;
diff --git a/hw/xfree86/dummylib/xf86drvmsgverb.c b/hw/xfree86/dummylib/xf86drvmsgverb.c
index 5ecd99e..eb26885 100644
--- a/hw/xfree86/dummylib/xf86drvmsgverb.c
+++ b/hw/xfree86/dummylib/xf86drvmsgverb.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86DrvMsgVerb(int i, MessageType type, int verb, const char *format, ...)
 {
     va_list ap;
diff --git a/hw/xfree86/dummylib/xf86errorf.c b/hw/xfree86/dummylib/xf86errorf.c
index 9834c61..0260004 100644
--- a/hw/xfree86/dummylib/xf86errorf.c
+++ b/hw/xfree86/dummylib/xf86errorf.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86ErrorF(const char *format, ...)
 {
     va_list ap;
@@ -22,7 +22,7 @@ xf86ErrorF(const char *format, ...)
     va_end(ap);
 }
 
-_X_EXPORT void
+void
 ErrorF(const char *format, ...)
 {
     va_list ap;
diff --git a/hw/xfree86/dummylib/xf86errorfverb.c b/hw/xfree86/dummylib/xf86errorfverb.c
index 94f0307..b894455 100644
--- a/hw/xfree86/dummylib/xf86errorfverb.c
+++ b/hw/xfree86/dummylib/xf86errorfverb.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86ErrorFVerb(int verb, const char *format, ...)
 {
     va_list ap;
diff --git a/hw/xfree86/dummylib/xf86getverb.c b/hw/xfree86/dummylib/xf86getverb.c
index a489e9c..f3b2f1b 100644
--- a/hw/xfree86/dummylib/xf86getverb.c
+++ b/hw/xfree86/dummylib/xf86getverb.c
@@ -11,7 +11,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT int
+int
 xf86GetVerbosity()
 {
     return xf86Verbose;
diff --git a/hw/xfree86/dummylib/xf86info.c b/hw/xfree86/dummylib/xf86info.c
index 6becb06..7db6817 100644
--- a/hw/xfree86/dummylib/xf86info.c
+++ b/hw/xfree86/dummylib/xf86info.c
@@ -8,5 +8,5 @@
 #include "xf86Priv.h"
 
 /* Dummy variables */
-_X_EXPORT xf86InfoRec xf86Info;
+xf86InfoRec xf86Info;
 
diff --git a/hw/xfree86/dummylib/xf86msg.c b/hw/xfree86/dummylib/xf86msg.c
index ea5bb35..8378d90 100644
--- a/hw/xfree86/dummylib/xf86msg.c
+++ b/hw/xfree86/dummylib/xf86msg.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86Msg(MessageType type, const char *format, ...)
 {
     va_list ap;
diff --git a/hw/xfree86/dummylib/xf86msgverb.c b/hw/xfree86/dummylib/xf86msgverb.c
index 4467af9..f3366ee 100644
--- a/hw/xfree86/dummylib/xf86msgverb.c
+++ b/hw/xfree86/dummylib/xf86msgverb.c
@@ -12,7 +12,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86MsgVerb(MessageType type, int verb, const char *format, ...)
 {
     va_list ap;
diff --git a/hw/xfree86/dummylib/xf86opt.c b/hw/xfree86/dummylib/xf86opt.c
index 1b7bca9..44b0b49 100644
--- a/hw/xfree86/dummylib/xf86opt.c
+++ b/hw/xfree86/dummylib/xf86opt.c
@@ -12,12 +12,12 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT void
+void
 xf86ProcessOptions(int i, pointer p, OptionInfoPtr o)
 {
 }
 
-_X_EXPORT Bool
+Bool
 xf86GetOptValBool(const OptionInfoRec *o, int i, Bool *b)
 {
     return FALSE;
diff --git a/hw/xfree86/dummylib/xf86screens.c b/hw/xfree86/dummylib/xf86screens.c
index 6288c60..5585533 100644
--- a/hw/xfree86/dummylib/xf86screens.c
+++ b/hw/xfree86/dummylib/xf86screens.c
@@ -8,5 +8,5 @@
 #include "xf86Priv.h"
 
 /* Dummy variables */
-_X_EXPORT ScrnInfoPtr *xf86Screens = NULL;
+ScrnInfoPtr *xf86Screens = NULL;
 
diff --git a/hw/xfree86/dummylib/xf86servisinit.c b/hw/xfree86/dummylib/xf86servisinit.c
index 077cab2..c356a2b 100644
--- a/hw/xfree86/dummylib/xf86servisinit.c
+++ b/hw/xfree86/dummylib/xf86servisinit.c
@@ -11,7 +11,7 @@
  * Utility functions required by libxf86_os. 
  */
 
-_X_EXPORT Bool
+Bool
 xf86ServerIsInitialising()
 {
     return FALSE;
diff --git a/hw/xfree86/dummylib/xf86verbose.c b/hw/xfree86/dummylib/xf86verbose.c
index 324d891..c4a45d6 100644
--- a/hw/xfree86/dummylib/xf86verbose.c
+++ b/hw/xfree86/dummylib/xf86verbose.c
@@ -8,5 +8,5 @@
 #include "xf86Priv.h"
 
 /* Dummy variables */
-_X_EXPORT int xf86Verbose = 0;
+int xf86Verbose = 0;
 
diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c
index ecb63b8..5269277 100644
--- a/hw/xfree86/fbdevhw/fbdevhw.c
+++ b/hw/xfree86/fbdevhw/fbdevhw.c
@@ -126,7 +126,7 @@ typedef struct {
 
 } fbdevHWRec, *fbdevHWPtr;
 
-_X_EXPORT Bool
+Bool
 fbdevHWGetRec(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr;
@@ -141,7 +141,7 @@ fbdevHWGetRec(ScrnInfoPtr pScrn)
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 fbdevHWFreeRec(ScrnInfoPtr pScrn)
 {
 	if (fbdevHWPrivateIndex < 0)
@@ -431,7 +431,7 @@ fbdev_open(int scrnIndex, char *dev, char** namep)
 
 /* -------------------------------------------------------------------- */
 
-_X_EXPORT Bool
+Bool
 fbdevHWProbe(struct pci_device * pPci, char *device,char **namep)
 {
 	int fd;
@@ -447,7 +447,7 @@ fbdevHWProbe(struct pci_device * pPci, char *device,char **namep)
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device * pPci, char *device)
 {
 	fbdevHWPtr fPtr;
@@ -495,14 +495,14 @@ fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device * pPci, char *device)
 	return TRUE;
 }
 
-_X_EXPORT char*
+char*
 fbdevHWGetName(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
 	return fPtr->fix.id;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -518,7 +518,7 @@ fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp)
 		return fPtr->var.bits_per_pixel;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetLineLength(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -529,14 +529,14 @@ fbdevHWGetLineLength(ScrnInfoPtr pScrn)
 		return fPtr->var.xres_virtual*fPtr->var.bits_per_pixel/8;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetType(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
 	return fPtr->fix.type;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetVidmem(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -587,7 +587,7 @@ fbdevHWSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool check)
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 fbdevHWSetVideoModes(ScrnInfoPtr pScrn)
 {
 	char **modename;
@@ -645,7 +645,7 @@ fbdevHWGetBuildinMode(ScrnInfoPtr pScrn)
 	return &fPtr->buildin;
 }
 
-_X_EXPORT void
+void
 fbdevHWUseBuildinMode(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -671,7 +671,7 @@ calculateFbmem_len(fbdevHWPtr fPtr)
 }
 
 
-_X_EXPORT void*
+void*
 fbdevHWMapVidmem(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -697,7 +697,7 @@ fbdevHWMapVidmem(ScrnInfoPtr pScrn)
 	return fPtr->fbmem;
 }
 
-_X_EXPORT int
+int
 fbdevHWLinearOffset(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -706,7 +706,7 @@ fbdevHWLinearOffset(ScrnInfoPtr pScrn)
 	return fPtr->fboff;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWUnmapVidmem(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -721,7 +721,7 @@ fbdevHWUnmapVidmem(ScrnInfoPtr pScrn)
 	return TRUE;
 }
 
-_X_EXPORT void*
+void*
 fbdevHWMapMMIO(ScrnInfoPtr pScrn)
 {
 	unsigned int mmio_off;
@@ -754,7 +754,7 @@ fbdevHWMapMMIO(ScrnInfoPtr pScrn)
 	return fPtr->mmio;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWUnmapMMIO(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -772,7 +772,7 @@ fbdevHWUnmapMMIO(ScrnInfoPtr pScrn)
 
 /* -------------------------------------------------------------------- */
 
-_X_EXPORT Bool
+Bool
 fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
 {	
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -815,7 +815,7 @@ fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
 /* video mode save/restore                                              */
 
 /* TODO: colormap */
-_X_EXPORT void
+void
 fbdevHWSave(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -826,7 +826,7 @@ fbdevHWSave(ScrnInfoPtr pScrn)
 			   "FBIOGET_VSCREENINFO: %s\n", strerror(errno));
 }
 
-_X_EXPORT void
+void
 fbdevHWRestore(ScrnInfoPtr pScrn)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -840,7 +840,7 @@ fbdevHWRestore(ScrnInfoPtr pScrn)
 /* -------------------------------------------------------------------- */
 /* callback for xf86HandleColormaps                                     */
 
-_X_EXPORT void
+void
 fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
 		 LOCO *colors, VisualPtr pVisual)
 {
@@ -872,7 +872,7 @@ fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
 /* -------------------------------------------------------------------- */
 /* these can be hooked directly into ScrnInfoRec                        */
 
-_X_EXPORT ModeStatus
+ModeStatus
 fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
 {
 	ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -885,7 +885,7 @@ fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
 	return MODE_OK;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
 {
 	ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -898,7 +898,7 @@ fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags)
 {
 	ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -916,7 +916,7 @@ fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags)
 			   "FBIOPAN_DISPLAY: %s\n", strerror(errno));
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWEnterVT(int scrnIndex, int flags)
 {
 	ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -928,7 +928,7 @@ fbdevHWEnterVT(int scrnIndex, int flags)
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 fbdevHWLeaveVT(int scrnIndex, int flags)
 {
 	ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -937,7 +937,7 @@ fbdevHWLeaveVT(int scrnIndex, int flags)
 	fbdevHWRestore(pScrn);
 }
 
-_X_EXPORT void
+void
 fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags)
 {
 	fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
@@ -969,7 +969,7 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags)
 			   "FBIOBLANK: %s\n", strerror(errno));
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWSaveScreen(ScreenPtr pScreen, int mode)
 {
 	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -991,26 +991,26 @@ fbdevHWSaveScreen(ScreenPtr pScreen, int mode)
 	return TRUE;
 }
 
-_X_EXPORT xf86SwitchModeProc *
+xf86SwitchModeProc *
 fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }
 
-_X_EXPORT xf86AdjustFrameProc *
+xf86AdjustFrameProc *
 fbdevHWAdjustFrameWeak(void) { return fbdevHWAdjustFrame; }
 
-_X_EXPORT xf86EnterVTProc *
+xf86EnterVTProc *
 fbdevHWEnterVTWeak(void) { return fbdevHWEnterVT; }
 
-_X_EXPORT xf86LeaveVTProc *
+xf86LeaveVTProc *
 fbdevHWLeaveVTWeak(void) { return fbdevHWLeaveVT; }
 
-_X_EXPORT xf86ValidModeProc *
+xf86ValidModeProc *
 fbdevHWValidModeWeak(void) { return fbdevHWValidMode; }
 
-_X_EXPORT xf86DPMSSetProc *
+xf86DPMSSetProc *
 fbdevHWDPMSSetWeak(void) { return fbdevHWDPMSSet; }
 
-_X_EXPORT xf86LoadPaletteProc *
+xf86LoadPaletteProc *
 fbdevHWLoadPaletteWeak(void) { return fbdevHWLoadPalette; }
 
-_X_EXPORT SaveScreenProcPtr
+SaveScreenProcPtr
 fbdevHWSaveScreenWeak(void) { return fbdevHWSaveScreen; }
diff --git a/hw/xfree86/fbdevhw/fbdevhw.h b/hw/xfree86/fbdevhw/fbdevhw.h
index 614dc6f..41c3e33 100644
--- a/hw/xfree86/fbdevhw/fbdevhw.h
+++ b/hw/xfree86/fbdevhw/fbdevhw.h
@@ -13,50 +13,50 @@
 #define FBDEVHW_TEXT			3	/* Text/attributes	*/
 #define FBDEVHW_VGA_PLANES		4	/* EGA/VGA planes       */
 
-Bool  fbdevHWGetRec(ScrnInfoPtr pScrn);
-void  fbdevHWFreeRec(ScrnInfoPtr pScrn);
-
-Bool  fbdevHWProbe(struct pci_device * pPci, char *device, char **namep);
-Bool  fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device * pPci, char *device);
-
-char* fbdevHWGetName(ScrnInfoPtr pScrn);
-int   fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp);
-int   fbdevHWGetLineLength(ScrnInfoPtr pScrn);
-int   fbdevHWGetType(ScrnInfoPtr pScrn);
-int   fbdevHWGetVidmem(ScrnInfoPtr pScrn);
-
-void* fbdevHWMapVidmem(ScrnInfoPtr pScrn);
-int   fbdevHWLinearOffset(ScrnInfoPtr pScrn);
-Bool  fbdevHWUnmapVidmem(ScrnInfoPtr pScrn);
-void* fbdevHWMapMMIO(ScrnInfoPtr pScrn);
-Bool  fbdevHWUnmapMMIO(ScrnInfoPtr pScrn);
-
-void  fbdevHWSetVideoModes(ScrnInfoPtr pScrn);
-DisplayModePtr fbdevHWGetBuildinMode(ScrnInfoPtr pScrn);
-void  fbdevHWUseBuildinMode(ScrnInfoPtr pScrn);
-Bool  fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
-void  fbdevHWSave(ScrnInfoPtr pScrn);
-void  fbdevHWRestore(ScrnInfoPtr pScrn);
-
-void  fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
+extern _X_EXPORT Bool  fbdevHWGetRec(ScrnInfoPtr pScrn);
+extern _X_EXPORT void  fbdevHWFreeRec(ScrnInfoPtr pScrn);
+
+extern _X_EXPORT Bool  fbdevHWProbe(struct pci_device * pPci, char *device, char **namep);
+extern _X_EXPORT Bool  fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device * pPci, char *device);
+
+extern _X_EXPORT char* fbdevHWGetName(ScrnInfoPtr pScrn);
+extern _X_EXPORT int   fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp);
+extern _X_EXPORT int   fbdevHWGetLineLength(ScrnInfoPtr pScrn);
+extern _X_EXPORT int   fbdevHWGetType(ScrnInfoPtr pScrn);
+extern _X_EXPORT int   fbdevHWGetVidmem(ScrnInfoPtr pScrn);
+
+extern _X_EXPORT void* fbdevHWMapVidmem(ScrnInfoPtr pScrn);
+extern _X_EXPORT int   fbdevHWLinearOffset(ScrnInfoPtr pScrn);
+extern _X_EXPORT Bool  fbdevHWUnmapVidmem(ScrnInfoPtr pScrn);
+extern _X_EXPORT void* fbdevHWMapMMIO(ScrnInfoPtr pScrn);
+extern _X_EXPORT Bool  fbdevHWUnmapMMIO(ScrnInfoPtr pScrn);
+
+extern _X_EXPORT void  fbdevHWSetVideoModes(ScrnInfoPtr pScrn);
+extern _X_EXPORT DisplayModePtr fbdevHWGetBuildinMode(ScrnInfoPtr pScrn);
+extern _X_EXPORT void  fbdevHWUseBuildinMode(ScrnInfoPtr pScrn);
+extern _X_EXPORT Bool  fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
+extern _X_EXPORT void  fbdevHWSave(ScrnInfoPtr pScrn);
+extern _X_EXPORT void  fbdevHWRestore(ScrnInfoPtr pScrn);
+
+extern _X_EXPORT void  fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
 		 LOCO *colors, VisualPtr pVisual);
 
-ModeStatus fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags);
-Bool  fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
-void  fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags);
-Bool  fbdevHWEnterVT(int scrnIndex, int flags);
-void  fbdevHWLeaveVT(int scrnIndex, int flags);
-void  fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags);
-
-Bool  fbdevHWSaveScreen(ScreenPtr pScreen, int mode);
-
-xf86SwitchModeProc	*fbdevHWSwitchModeWeak(void);
-xf86AdjustFrameProc	*fbdevHWAdjustFrameWeak(void);
-xf86EnterVTProc		*fbdevHWEnterVTWeak(void);
-xf86LeaveVTProc		*fbdevHWLeaveVTWeak(void);
-xf86ValidModeProc	*fbdevHWValidModeWeak(void);
-xf86DPMSSetProc		*fbdevHWDPMSSetWeak(void);
-xf86LoadPaletteProc	*fbdevHWLoadPaletteWeak(void);
-SaveScreenProcPtr	fbdevHWSaveScreenWeak(void);
+extern _X_EXPORT ModeStatus fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags);
+extern _X_EXPORT Bool  fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+extern _X_EXPORT void  fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags);
+extern _X_EXPORT Bool  fbdevHWEnterVT(int scrnIndex, int flags);
+extern _X_EXPORT void  fbdevHWLeaveVT(int scrnIndex, int flags);
+extern _X_EXPORT void  fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags);
+
+extern _X_EXPORT Bool  fbdevHWSaveScreen(ScreenPtr pScreen, int mode);
+
+extern _X_EXPORT xf86SwitchModeProc	*fbdevHWSwitchModeWeak(void);
+extern _X_EXPORT xf86AdjustFrameProc	*fbdevHWAdjustFrameWeak(void);
+extern _X_EXPORT xf86EnterVTProc	*fbdevHWEnterVTWeak(void);
+extern _X_EXPORT xf86LeaveVTProc	*fbdevHWLeaveVTWeak(void);
+extern _X_EXPORT xf86ValidModeProc	*fbdevHWValidModeWeak(void);
+extern _X_EXPORT xf86DPMSSetProc	*fbdevHWDPMSSetWeak(void);
+extern _X_EXPORT xf86LoadPaletteProc	*fbdevHWLoadPaletteWeak(void);
+extern _X_EXPORT SaveScreenProcPtr	fbdevHWSaveScreenWeak(void);
 
 #endif
diff --git a/hw/xfree86/fbdevhw/fbdevhwstub.c b/hw/xfree86/fbdevhw/fbdevhwstub.c
index 1c3f2f6..191a6d3 100644
--- a/hw/xfree86/fbdevhw/fbdevhwstub.c
+++ b/hw/xfree86/fbdevhw/fbdevhwstub.c
@@ -9,62 +9,62 @@
 /* Stubs for the static server on platforms that don't support fbdev */
 
 
-_X_EXPORT Bool
+Bool
 fbdevHWGetRec(ScrnInfoPtr pScrn)
 {
 	return FALSE;
 }
 
-_X_EXPORT void
+void
 fbdevHWFreeRec(ScrnInfoPtr pScrn)
 {
 }
 
 
-_X_EXPORT Bool
+Bool
 fbdevHWProbe(struct pci_device *pPci, char *device, char **namep)
 {
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device *pPci, char *device)
 {
 	xf86Msg(X_ERROR, "fbdevhw is not available on this platform\n");
 	return FALSE;
 }
 
-_X_EXPORT char*
+char*
 fbdevHWGetName(ScrnInfoPtr pScrn)
 {
 	return NULL;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp)
 {
 	return -1;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetLineLength(ScrnInfoPtr pScrn)
 {
 	return -1;	/* Should cause something spectacular... */
 }
 
-_X_EXPORT int
+int
 fbdevHWGetType(ScrnInfoPtr pScrn)
 {
 	return -1;
 }
 
-_X_EXPORT int
+int
 fbdevHWGetVidmem(ScrnInfoPtr pScrn)
 {
 	return -1;
 }
 
-_X_EXPORT void
+void
 fbdevHWSetVideoModes(ScrnInfoPtr pScrn)
 {
 }
@@ -75,122 +75,122 @@ fbdevHWGetBuildinMode(ScrnInfoPtr pScrn)
 	return NULL;
 }
 
-_X_EXPORT void
+void
 fbdevHWUseBuildinMode(ScrnInfoPtr pScrn)
 {
 }
 
-_X_EXPORT void*
+void*
 fbdevHWMapVidmem(ScrnInfoPtr pScrn)
 {
 	return NULL;
 }
 
-_X_EXPORT int
+int
 fbdevHWLinearOffset(ScrnInfoPtr pScrn)
 {
 	return 0;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWUnmapVidmem(ScrnInfoPtr pScrn)
 {
 	return FALSE;
 }
 
-_X_EXPORT void*
+void*
 fbdevHWMapMMIO(ScrnInfoPtr pScrn)
 {
 	return NULL;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWUnmapMMIO(ScrnInfoPtr pScrn)
 {
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
 {	
 	return FALSE;
 }
 
-_X_EXPORT void
+void
 fbdevHWSave(ScrnInfoPtr pScrn)
 {
 }
 
-_X_EXPORT void
+void
 fbdevHWRestore(ScrnInfoPtr pScrn)
 {
 }
 
-_X_EXPORT void
+void
 fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
 		 LOCO *colors, VisualPtr pVisual)
 {
 }
 
-_X_EXPORT ModeStatus
+ModeStatus
 fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
 {
 	return MODE_ERROR;
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
 {
 	return FALSE;
 }
 
-_X_EXPORT void
+void
 fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags)
 {
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWEnterVT(int scrnIndex, int flags)
 {
 	return FALSE;
 }
 
-_X_EXPORT void
+void
 fbdevHWLeaveVT(int scrnIndex, int flags)
 {
 }
 
-_X_EXPORT void
+void
 fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags)
 {
 }
 
-_X_EXPORT Bool
+Bool
 fbdevHWSaveScreen(ScreenPtr pScreen, int mode)
 {
 	return FALSE;
 }
 
-_X_EXPORT xf86SwitchModeProc *
+xf86SwitchModeProc *
 fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }
 
-_X_EXPORT xf86AdjustFrameProc *
+xf86AdjustFrameProc *
 fbdevHWAdjustFrameWeak(void) { return fbdevHWAdjustFrame; }
 
-_X_EXPORT xf86EnterVTProc *
+xf86EnterVTProc *
 fbdevHWEnterVTWeak(void) { return fbdevHWEnterVT; }
 
-_X_EXPORT xf86LeaveVTProc *
+xf86LeaveVTProc *
 fbdevHWLeaveVTWeak(void) { return fbdevHWLeaveVT; }
 
-_X_EXPORT xf86ValidModeProc *
+xf86ValidModeProc *
 fbdevHWValidModeWeak(void) { return fbdevHWValidMode; }
 
-_X_EXPORT xf86DPMSSetProc *
+xf86DPMSSetProc *
 fbdevHWDPMSSetWeak(void) { return fbdevHWDPMSSet; }
 
-_X_EXPORT xf86LoadPaletteProc *
+xf86LoadPaletteProc *
 fbdevHWLoadPaletteWeak(void) { return fbdevHWLoadPalette; }
 
-_X_EXPORT SaveScreenProcPtr
+SaveScreenProcPtr
 fbdevHWSaveScreenWeak(void) { return fbdevHWSaveScreen; }
diff --git a/hw/xfree86/i2c/bt829.c b/hw/xfree86/i2c/bt829.c
index 5b70587..3963ecf 100644
--- a/hw/xfree86/i2c/bt829.c
+++ b/hw/xfree86/i2c/bt829.c
@@ -456,7 +456,7 @@ static void write_all(BT829Ptr bt)
 /*
  * Public functions
  */
-_X_EXPORT BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr)
+BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr)
 {
   BT829Ptr bt;
   I2CByte a;
@@ -542,7 +542,7 @@ _X_EXPORT BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr)
   return bt;
 }
 
-_X_EXPORT int bt829_ATIInit(BT829Ptr bt)
+int bt829_ATIInit(BT829Ptr bt)
 {
   bt->code = 1;
   bt->len = 0;
@@ -555,7 +555,7 @@ _X_EXPORT int bt829_ATIInit(BT829Ptr bt)
   return 0;
 }
 
-_X_EXPORT int bt829_SetFormat(BT829Ptr bt, CARD8 format)
+int bt829_SetFormat(BT829Ptr bt, CARD8 format)
 {
   if ((format < 1) || (format > 7)) return -1;
   if ((BTVERSION <= BT819) &&
@@ -571,7 +571,7 @@ _X_EXPORT int bt829_SetFormat(BT829Ptr bt, CARD8 format)
   return 0;
 }
 
-_X_EXPORT int bt829_SetMux(BT829Ptr bt, CARD8 mux)
+int bt829_SetMux(BT829Ptr bt, CARD8 mux)
 {
   if ((mux < 1) || (mux > 3)) return -1;
   if (mux == bt->mux) return 0;
@@ -583,7 +583,7 @@ _X_EXPORT int bt829_SetMux(BT829Ptr bt, CARD8 mux)
   return 0;
 }
 
-_X_EXPORT void bt829_SetBrightness(BT829Ptr bt, int brightness)
+void bt829_SetBrightness(BT829Ptr bt, int brightness)
 {
   brightness = LIMIT(brightness,-1000,999); /* ensure -128 <= brightness <= 127 below */
   brightness = (128*brightness)/1000;
@@ -593,7 +593,7 @@ _X_EXPORT void bt829_SetBrightness(BT829Ptr bt, int brightness)
   btwrite_bright(bt);
 }
 
-_X_EXPORT void bt829_SetContrast(BT829Ptr bt, int contrast)
+void bt829_SetContrast(BT829Ptr bt, int contrast)
 {
   contrast = LIMIT(contrast,-1000,1000);
   contrast = (216*(contrast+1000))/1000;
@@ -604,7 +604,7 @@ _X_EXPORT void bt829_SetContrast(BT829Ptr bt, int contrast)
   btwrite_contrast_lo(bt);
 }
 
-_X_EXPORT void bt829_SetSaturation(BT829Ptr bt, int saturation)
+void bt829_SetSaturation(BT829Ptr bt, int saturation)
 {
   CARD16 sat_u, sat_v;
 
@@ -620,7 +620,7 @@ _X_EXPORT void bt829_SetSaturation(BT829Ptr bt, int saturation)
   btwrite_sat_v_lo(bt);
 }
 
-_X_EXPORT void bt829_SetTint(BT829Ptr bt, int hue)
+void bt829_SetTint(BT829Ptr bt, int hue)
 {
   hue = LIMIT(hue,-1000,999); /* ensure -128 <= hue <= 127 below */
   hue = (128*hue)/1000;
@@ -630,7 +630,7 @@ _X_EXPORT void bt829_SetTint(BT829Ptr bt, int hue)
   btwrite_hue(bt);
 }
 
-_X_EXPORT int bt829_SetCaptSize(BT829Ptr bt, int width, int height)
+int bt829_SetCaptSize(BT829Ptr bt, int width, int height)
 {
   if ((width > bt->htotal - 2 * HCROP) ||
       (16 * width < bt->htotal - 32 * HCROP)) return -1;
@@ -656,7 +656,7 @@ int bt829_SetCC(BT829Ptr bt) /* FIXME: should take ccmode as a parameter */
   return 0;
 }
 
-_X_EXPORT void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en)
+void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en)
 {
   out_en = (out_en != 0);
   if (out_en == bt->out_en) return;
@@ -665,7 +665,7 @@ _X_EXPORT void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en)
   btwrite_vpole(bt);
 }
 
-_X_EXPORT void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io)
+void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io)
 {
   if (p_io == bt->p_io) return;
   bt->p_io = p_io;
diff --git a/hw/xfree86/i2c/bt829.h b/hw/xfree86/i2c/bt829.h
index 17e6bc7..06e488f 100644
--- a/hw/xfree86/i2c/bt829.h
+++ b/hw/xfree86/i2c/bt829.h
@@ -37,14 +37,14 @@ typedef struct {
 } BT829Rec, *BT829Ptr;
 
 #define xf86_bt829_Detect	bt829_Detect
-extern BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr);
+extern _X_EXPORT BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr);
 
 /* ATI card specific initialization */
 #define BT829_ATI_ADDR_1	0x8A
 #define BT829_ATI_ADDR_2	0x88
 
 #define xf86_bt829_ATIInit	bt829_ATIInit
-extern int bt829_ATIInit(BT829Ptr bt);
+extern _X_EXPORT int bt829_ATIInit(BT829Ptr bt);
 
 #define BT829_NTSC		1	/* NTSC-M */
 #define BT829_NTSC_JAPAN	2	/* NTSC-Japan */
@@ -55,33 +55,33 @@ extern int bt829_ATIInit(BT829Ptr bt);
 #define BT829_PAL_N_COMB	7	/* PAL-N combination */
 
 #define xf86_bt829_SetFormat	bt829_SetFormat
-extern int bt829_SetFormat(BT829Ptr bt, CARD8 format);
+extern _X_EXPORT int bt829_SetFormat(BT829Ptr bt, CARD8 format);
 
 #define BT829_MUX2	1	/* ATI -> composite video */
 #define BT829_MUX0	2	/* ATI -> tv tuner */
 #define BT829_MUX1	3	/* ATI -> s-video */
 
 #define xf86_bt829_SetMux	bt829_SetMux
-extern int bt829_SetMux(BT829Ptr bt, CARD8 mux);
+extern _X_EXPORT int bt829_SetMux(BT829Ptr bt, CARD8 mux);
 
 #define xf86_bt829_SetCaptSize		bt829_SetCaptSize
-extern int bt829_SetCaptSize(BT829Ptr bt, int width, int height);
+extern _X_EXPORT int bt829_SetCaptSize(BT829Ptr bt, int width, int height);
 
 #define xf86_bt829_SetBrightness	bt829_SetBrightness
-extern void bt829_SetBrightness(BT829Ptr bt, int brightness);
+extern _X_EXPORT void bt829_SetBrightness(BT829Ptr bt, int brightness);
 #define xf86_bt829_SetContrast		bt829_SetContrast
-extern void bt829_SetContrast(BT829Ptr bt, int contrast);
+extern _X_EXPORT void bt829_SetContrast(BT829Ptr bt, int contrast);
 #define xf86_bt829_SetSaturation	bt829_SetSaturation
-extern void bt829_SetSaturation(BT829Ptr bt, int saturation);
+extern _X_EXPORT void bt829_SetSaturation(BT829Ptr bt, int saturation);
 #define xf86_bt829_SetTint		bt829_SetTint
-extern void bt829_SetTint(BT829Ptr bt, int hue);	 /* Hue */
+extern _X_EXPORT void bt829_SetTint(BT829Ptr bt, int hue);	 /* Hue */
 
 #define xf86_bt829_SetOUT_EN		bt829_SetOUT_EN
-extern void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en);/* VPOLE register */
+extern _X_EXPORT void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en);/* VPOLE register */
 #define xf86_bt829_SetP_IO		bt829_SetP_IO
-extern void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io);	 /* P_IO register */
+extern _X_EXPORT void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io);	 /* P_IO register */
 
-int bt829_SetCC(BT829Ptr bt);
+extern _X_EXPORT int bt829_SetCC(BT829Ptr bt);
 
 #define BT829SymbolsList   \
 		"bt829_Detect", \
diff --git a/hw/xfree86/i2c/fi1236.c b/hw/xfree86/i2c/fi1236.c
index 950bb5b..110563e 100644
--- a/hw/xfree86/i2c/fi1236.c
+++ b/hw/xfree86/i2c/fi1236.c
@@ -41,7 +41,7 @@ const FI1236_parameters tuner_parms[NUM_TUNERS] =
 };
 
 
-_X_EXPORT FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr)
+FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr)
 {
    FI1236Ptr f;
    I2CByte a;
@@ -394,7 +394,7 @@ return TUNER_OFF;
 }
 
 /* this function is for external use only */
-_X_EXPORT int TUNER_get_afc_hint(FI1236Ptr f)
+int TUNER_get_afc_hint(FI1236Ptr f)
 {
 if(f->afc_timer_installed)return TUNER_STILL_TUNING;
 return f->last_afc_hint;
@@ -465,7 +465,7 @@ for(i=0;i<3;i++){
 xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO, "MT2032: failed to set frequency\n");
 }
 
-_X_EXPORT void FI1236_set_tuner_type(FI1236Ptr f, int type)
+void FI1236_set_tuner_type(FI1236Ptr f, int type)
 {
 f->type=type;
 if(type>=NUM_TUNERS)type = NUM_TUNERS-1;
@@ -532,7 +532,7 @@ void FI1236_tune(FI1236Ptr f, CARD32 frequency)
 				I2C_WriteRead(&(f->d), (I2CByte *)&(f->tuner_data), 4, NULL, 0);
 }
 
-_X_EXPORT void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency)
+void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency)
 {
     if(frequency < f->parm.min_freq) frequency = f->parm.min_freq;
     if(frequency > f->parm.max_freq) frequency = f->parm.max_freq;
@@ -558,7 +558,7 @@ _X_EXPORT void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency)
 }
 
 
-_X_EXPORT int FI1236_AFC(FI1236Ptr f)
+int FI1236_AFC(FI1236Ptr f)
 {
     #if 0
     xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO, "AFC: f=%p f->count=%d f->original_frequency=%d f->afc_delta=%d\n", f, f->afc_count, f->original_frequency, f->afc_delta);
@@ -601,7 +601,7 @@ _X_EXPORT int FI1236_AFC(FI1236Ptr f)
     return 0; /* done */
 }
 
-_X_EXPORT void fi1236_dump_status(FI1236Ptr f)
+void fi1236_dump_status(FI1236Ptr f)
 {
 if(f->type==TUNER_TYPE_MT2032){
 	MT2032_dump_status(f);
diff --git a/hw/xfree86/i2c/fi1236.h b/hw/xfree86/i2c/fi1236.h
index 9c56e5a..8dd7e4f 100644
--- a/hw/xfree86/i2c/fi1236.h
+++ b/hw/xfree86/i2c/fi1236.h
@@ -95,17 +95,17 @@ void FI1236_tune(FI1236Ptr f, CARD32 frequency);
 		"TUNER_set_frequency"
 
 #define xf86_Detect_FI1236		Detect_FI1236
-extern FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr);
+extern _X_EXPORT FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr);
 #define xf86_FI1236_set_tuner_type	FI1236_set_tuner_type
-extern void FI1236_set_tuner_type(FI1236Ptr f, int type);
+extern _X_EXPORT void FI1236_set_tuner_type(FI1236Ptr f, int type);
 #define xf86_TUNER_set_frequency	TUNER_set_frequency
-extern void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency);
+extern _X_EXPORT void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency);
 
 #define xf86_FI1236_AFC			FI1236_AFC
-extern int FI1236_AFC(FI1236Ptr f);
+extern _X_EXPORT int FI1236_AFC(FI1236Ptr f);
 #define xf86_TUNER_get_afc_hint		TUNER_get_afc_hint
-extern int TUNER_get_afc_hint(FI1236Ptr f);
+extern _X_EXPORT int TUNER_get_afc_hint(FI1236Ptr f);
 #define xf86_fi1236_dump_status		fi1236_dump_status
-extern void fi1236_dump_status(FI1236Ptr f);
+extern _X_EXPORT void fi1236_dump_status(FI1236Ptr f);
 
 #endif
diff --git a/hw/xfree86/i2c/msp3430.c b/hw/xfree86/i2c/msp3430.c
index 0116db3..4bd3a71 100644
--- a/hw/xfree86/i2c/msp3430.c
+++ b/hw/xfree86/i2c/msp3430.c
@@ -106,7 +106,7 @@ xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO, "MSP34xx: control=0x%02x%02x\n",
 #endif
 
 /* wrapper */
-_X_EXPORT void InitMSP3430(MSP3430Ptr m)
+void InitMSP3430(MSP3430Ptr m)
 {
   #if __MSPDEBUG__ > 1
   xf86DrvMsg(m->d.pI2CBus->scrnIndex,X_INFO,"InitMSP3430(m->connector=%d, m->standard=%d, m->chip_family=%d)\n",
@@ -129,7 +129,7 @@ _X_EXPORT void InitMSP3430(MSP3430Ptr m)
 | common functions for all MSP34xx chips 
 |----------------------------------------------------------------*/
 
-_X_EXPORT MSP3430Ptr DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr)
+MSP3430Ptr DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr)
 {
    MSP3430Ptr m;
    I2CByte a;
@@ -249,7 +249,7 @@ _X_EXPORT MSP3430Ptr DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr)
    return m;  
 }
 
-_X_EXPORT void ResetMSP3430(MSP3430Ptr m)
+void ResetMSP3430(MSP3430Ptr m)
 {
     /* Reset the MSP3430 */
     SetMSP3430Control(m, 0x00, 0x80, 0x00);
@@ -262,7 +262,7 @@ _X_EXPORT void ResetMSP3430(MSP3430Ptr m)
 	m->volume=0;
 }   
 
-_X_EXPORT void MSP3430SetVolume (MSP3430Ptr m, CARD8 value)
+void MSP3430SetVolume (MSP3430Ptr m, CARD8 value)
 {
     CARD8 result;
 #if 0
@@ -287,7 +287,7 @@ _X_EXPORT void MSP3430SetVolume (MSP3430Ptr m, CARD8 value)
 }
 
 
-_X_EXPORT void MSP3430SetSAP (MSP3430Ptr m, int mode)
+void MSP3430SetSAP (MSP3430Ptr m, int mode)
 {
 	xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO, "Put actual code to change SAP here\n");
 
diff --git a/hw/xfree86/i2c/msp3430.h b/hw/xfree86/i2c/msp3430.h
index 500023b..8423d14 100644
--- a/hw/xfree86/i2c/msp3430.h
+++ b/hw/xfree86/i2c/msp3430.h
@@ -93,15 +93,15 @@ typedef struct {
 /*----------------------------------------------------------*/
 
 #define xf86_InitMSP3430	InitMSP3430
-extern void InitMSP3430(MSP3430Ptr m);
+extern _X_EXPORT void InitMSP3430(MSP3430Ptr m);
 #define xf86_DetectMSP3430	DetectMSP3430
-extern MSP3430Ptr DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr);
+extern _X_EXPORT MSP3430Ptr DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr);
 #define xf86_ResetMSP3430	ResetMSP3430
-extern void ResetMSP3430(MSP3430Ptr m);
+extern _X_EXPORT void ResetMSP3430(MSP3430Ptr m);
 #define xf86_MSP3430SetVolume	MSP3430SetVolume
-extern void MSP3430SetVolume (MSP3430Ptr m, CARD8 value);
+extern _X_EXPORT void MSP3430SetVolume (MSP3430Ptr m, CARD8 value);
 #define xf86_MSP3430SetSAP	MSP3430SetSAP
-extern void MSP3430SetSAP (MSP3430Ptr m, int mode);
+extern _X_EXPORT void MSP3430SetSAP (MSP3430Ptr m, int mode);
 
 #define MSP3430SymbolsList \
 		"InitMSP3430", \
diff --git a/hw/xfree86/i2c/tda8425.c b/hw/xfree86/i2c/tda8425.c
index 6ca10e3..7631a08 100644
--- a/hw/xfree86/i2c/tda8425.c
+++ b/hw/xfree86/i2c/tda8425.c
@@ -13,7 +13,7 @@
 		I2C_WriteRead(&(t->d), data, 2, NULL, 0); \
 		}
 
-_X_EXPORT TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr, Bool force)
+TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr, Bool force)
 {
   TDA8425Ptr t;
   
@@ -44,7 +44,7 @@ _X_EXPORT TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr, Bool force)
   return t;  
 }
 
-_X_EXPORT Bool tda8425_init(TDA8425Ptr t)
+Bool tda8425_init(TDA8425Ptr t)
 {
   t->stereo = 3; 	/* 3 = Spacial 2 = Linear 1 = Pseudo 0 = Forced mono */
   t->v_left = 0xFF; 	/* FF - C0 */
@@ -59,7 +59,7 @@ _X_EXPORT Bool tda8425_init(TDA8425Ptr t)
   return TRUE;
 }
 
-_X_EXPORT void tda8425_setaudio(TDA8425Ptr t)
+void tda8425_setaudio(TDA8425Ptr t)
 {
     I2CByte data[2];
 
@@ -71,7 +71,7 @@ _X_EXPORT void tda8425_setaudio(TDA8425Ptr t)
 	    t->mux); 
 }
 
-_X_EXPORT void tda8425_mute(TDA8425Ptr t, Bool mute)
+void tda8425_mute(TDA8425Ptr t, Bool mute)
 {
    t->mute = mute;
    tda8425_setaudio(t);
diff --git a/hw/xfree86/i2c/tda8425.h b/hw/xfree86/i2c/tda8425.h
index 636327c..9c33e7f 100644
--- a/hw/xfree86/i2c/tda8425.h
+++ b/hw/xfree86/i2c/tda8425.h
@@ -24,13 +24,13 @@ typedef struct {
    way to autodetect it so we have to _know_ it is there anyway */
    
 #define xf86_Detect_tda8425	Detect_tda8425
-extern TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,Bool force);
+extern _X_EXPORT TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,Bool force);
 #define xf86_tda8425_init	tda8425_init
-extern Bool tda8425_init(TDA8425Ptr t);
+extern _X_EXPORT Bool tda8425_init(TDA8425Ptr t);
 #define xf86_tda8425_setaudio	tda8425_setaudio
-extern void tda8425_setaudio(TDA8425Ptr t);
+extern _X_EXPORT void tda8425_setaudio(TDA8425Ptr t);
 #define xf86_tda8425_mute	tda8425_mute
-extern void tda8425_mute(TDA8425Ptr t, Bool mute);
+extern _X_EXPORT void tda8425_mute(TDA8425Ptr t, Bool mute);
 
 #define TDA8425SymbolsList  \
 		"Detect_tda8425", \
diff --git a/hw/xfree86/i2c/tda9850.c b/hw/xfree86/i2c/tda9850.c
index 7566012..5b0c581 100644
--- a/hw/xfree86/i2c/tda9850.c
+++ b/hw/xfree86/i2c/tda9850.c
@@ -13,7 +13,7 @@
 		I2C_WriteRead(&(t->d), data, 2, NULL, 0); \
 		}
 
-_X_EXPORT TDA9850Ptr Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr)
+TDA9850Ptr Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr)
 {
   TDA9850Ptr t;
   I2CByte a;
@@ -53,7 +53,7 @@ _X_EXPORT TDA9850Ptr Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr)
   return t;  
 }
 
-_X_EXPORT Bool tda9850_init(TDA9850Ptr t)
+Bool tda9850_init(TDA9850Ptr t)
 {
   t->stereo = 1;
   t->sap = 0;
@@ -63,7 +63,7 @@ _X_EXPORT Bool tda9850_init(TDA9850Ptr t)
   return TRUE;
 }
 
-_X_EXPORT void tda9850_setaudio(TDA9850Ptr t)
+void tda9850_setaudio(TDA9850Ptr t)
 {
 CARD8 data[2];
 
@@ -83,7 +83,7 @@ if(t->mux==2)
 TDA9850(0x06,(t->stereo<<6)|(t->sap<<7)|(t->mute?0x8:0)|(t->sap_mute?0x10:0x0)); 
 }
 
-_X_EXPORT void tda9850_mute(TDA9850Ptr t, Bool mute)
+void tda9850_mute(TDA9850Ptr t, Bool mute)
 {
 CARD8 data[2];
 
@@ -93,7 +93,7 @@ t->mute = mute;
 TDA9850(0x06,(t->stereo<<6)|(t->sap<<7)|(t->mute?0x8:0x0)|(t->sap_mute?0x10:0x0)); 
 }
 
-_X_EXPORT void tda9850_sap_mute(TDA9850Ptr t, Bool sap_mute)
+void tda9850_sap_mute(TDA9850Ptr t, Bool sap_mute)
 {
 CARD8 data[2];
 
@@ -103,7 +103,7 @@ t->sap_mute = sap_mute;
 TDA9850(0x06,(t->stereo<<6)|(t->sap<<7)|(t->mute?0x8:0x0)|(t->sap_mute?0x10:0x0)); 
 }
 
-_X_EXPORT CARD16 tda9850_getstatus(TDA9850Ptr t)
+CARD16 tda9850_getstatus(TDA9850Ptr t)
 {
 CARD16 status;
 
diff --git a/hw/xfree86/i2c/tda9850.h b/hw/xfree86/i2c/tda9850.h
index b78719a..d816795 100644
--- a/hw/xfree86/i2c/tda9850.h
+++ b/hw/xfree86/i2c/tda9850.h
@@ -16,17 +16,17 @@ typedef struct {
 #define TDA9850_ADDR_1   0xB4
 
 #define xf86_Detect_tda9850	Detect_tda9850
-extern TDA9850Ptr Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr);
+extern _X_EXPORT TDA9850Ptr Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr);
 #define xf86_tda9850_init	tda9850_init
-extern Bool tda9850_init(TDA9850Ptr t);
+extern _X_EXPORT Bool tda9850_init(TDA9850Ptr t);
 #define xf86_tda9850_setaudio	tda9850_setaudio
-extern void tda9850_setaudio(TDA9850Ptr t);
+extern _X_EXPORT void tda9850_setaudio(TDA9850Ptr t);
 #define xf86_tda9850_mute	tda9850_mute
-extern void tda9850_mute(TDA9850Ptr t, Bool mute);
+extern _X_EXPORT void tda9850_mute(TDA9850Ptr t, Bool mute);
 #define xf86_tda9850_sap_mute	tda9850_sap_mute
-extern void tda9850_sap_mute(TDA9850Ptr t, Bool sap_mute);
+extern _X_EXPORT void tda9850_sap_mute(TDA9850Ptr t, Bool sap_mute);
 #define xf86_tda9850_getstatus	tda9850_getstatus
-extern CARD16 tda9850_getstatus(TDA9850Ptr t);
+extern _X_EXPORT CARD16 tda9850_getstatus(TDA9850Ptr t);
 
 #define TDA9850SymbolsList  \
 		"Detect_tda9850", \
diff --git a/hw/xfree86/i2c/tda9885.c b/hw/xfree86/i2c/tda9885.c
index ad5aad1..4147dfd 100644
--- a/hw/xfree86/i2c/tda9885.c
+++ b/hw/xfree86/i2c/tda9885.c
@@ -8,7 +8,7 @@
 #include "i2c_def.h"
 
 
-_X_EXPORT TDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr)
+TDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr)
 {
   TDA9885Ptr t;
   I2CByte a;
@@ -51,13 +51,13 @@ _X_EXPORT TDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr)
   return t;  
 }
 
-_X_EXPORT Bool tda9885_init(TDA9885Ptr t)
+Bool tda9885_init(TDA9885Ptr t)
 {
   t->forced_mute_audio=1;
   return TRUE;
 }
 
-_X_EXPORT void tda9885_getstatus(TDA9885Ptr t)
+void tda9885_getstatus(TDA9885Ptr t)
 {
 CARD8 value;
 
@@ -69,7 +69,7 @@ t->vif_level=(value >>6) & 1;
 t->afc_win=(value >> 7)&1;
 }
 
-_X_EXPORT void tda9885_setparameters(TDA9885Ptr t)
+void tda9885_setparameters(TDA9885Ptr t)
 {
 CARD8 data[4];
 
@@ -95,7 +95,7 @@ I2C_WriteRead(&(t->d), data, 4, NULL, 0);
 xf86DrvMsg(t->d.pI2CBus->scrnIndex,X_INFO,"TDA9885 setparam: B data: %x, C data: %x, E data: %x\n", data[1], data[2], data[3]);
 }
 
-_X_EXPORT void tda9885_dumpstatus(TDA9885Ptr t)
+void tda9885_dumpstatus(TDA9885Ptr t)
 {
 xf86DrvMsg(t->d.pI2CBus->scrnIndex,X_INFO,"TDA9885 status: after_reset=%d afc_status=%d (%3.1f kHz off) fm_carrier=%d vif_level=%d afc_win=%d %s\n",
 		t->after_reset, t->afc_status, 
diff --git a/hw/xfree86/i2c/tda9885.h b/hw/xfree86/i2c/tda9885.h
index 08176ba..004f43d 100644
--- a/hw/xfree86/i2c/tda9885.h
+++ b/hw/xfree86/i2c/tda9885.h
@@ -40,15 +40,15 @@ typedef struct {
 #define TDA9885_ADDR_4   0x94
 
 #define xf86_Detect_tda9885		Detect_tda9885
-extern TDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr);
+extern _X_EXPORT TDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr);
 #define xf86_tda9885_init		tda9885_init
-extern Bool tda9885_init(TDA9885Ptr t);
+extern _X_EXPORT Bool tda9885_init(TDA9885Ptr t);
 #define xf86_tda9885_setparameters	tda9885_setparameters
-extern void tda9885_setparameters(TDA9885Ptr t);
+extern _X_EXPORT void tda9885_setparameters(TDA9885Ptr t);
 #define xf86_tda9885_getstatus		tda9885_getstatus
-extern void tda9885_getstatus(TDA9885Ptr t);
+extern _X_EXPORT void tda9885_getstatus(TDA9885Ptr t);
 #define xf86_tda9885_dumpstatus		tda9885_dumpstatus
-extern void tda9885_dumpstatus(TDA9885Ptr t);
+extern _X_EXPORT void tda9885_dumpstatus(TDA9885Ptr t);
 
 #define TDA9885SymbolsList  \
 		"Detect_tda9885", \
diff --git a/hw/xfree86/i2c/uda1380.c b/hw/xfree86/i2c/uda1380.c
index deb4bc9..defda3c 100644
--- a/hw/xfree86/i2c/uda1380.c
+++ b/hw/xfree86/i2c/uda1380.c
@@ -31,7 +31,7 @@
 #include "uda1380.h"
 #include "i2c_def.h"
 
-_X_EXPORT UDA1380Ptr Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr)
+UDA1380Ptr Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr)
 {
 	UDA1380Ptr t;
 	I2CByte a;
@@ -74,7 +74,7 @@ _X_EXPORT UDA1380Ptr Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr)
 	return t;  
 }
 
-_X_EXPORT Bool uda1380_init(UDA1380Ptr t)
+Bool uda1380_init(UDA1380Ptr t)
 {
 	CARD8 data[3];
 	CARD16 tmp;
@@ -109,7 +109,7 @@ _X_EXPORT Bool uda1380_init(UDA1380Ptr t)
 	return TRUE;
 }
 
-_X_EXPORT void uda1380_shutdown(UDA1380Ptr t)
+void uda1380_shutdown(UDA1380Ptr t)
 {
 	CARD8 data[3];
 	Bool ret;
@@ -123,7 +123,7 @@ _X_EXPORT void uda1380_shutdown(UDA1380Ptr t)
 		xf86DrvMsg(t->d.pI2CBus->scrnIndex,X_INFO,"UDA1380 failed to shutdown\n");
 }
 
-_X_EXPORT void uda1380_setvolume(UDA1380Ptr t, INT32 value)
+void uda1380_setvolume(UDA1380Ptr t, INT32 value)
 {
 	CARD8 data[3];
 	/*
@@ -143,7 +143,7 @@ _X_EXPORT void uda1380_setvolume(UDA1380Ptr t, INT32 value)
 		xf86DrvMsg(t->d.pI2CBus->scrnIndex,X_INFO,"UDA1380 failed to set volume\n");
 }
 
-_X_EXPORT void uda1380_mute(UDA1380Ptr t, Bool mute)
+void uda1380_mute(UDA1380Ptr t, Bool mute)
 {
 	CARD8 data[3];
 	Bool ret;
@@ -170,14 +170,14 @@ _X_EXPORT void uda1380_mute(UDA1380Ptr t, Bool mute)
 	}
 }
 
-_X_EXPORT void uda1380_getstatus(UDA1380Ptr t)
+void uda1380_getstatus(UDA1380Ptr t)
 {
 }
 
-_X_EXPORT void uda1380_setparameters(UDA1380Ptr t)
+void uda1380_setparameters(UDA1380Ptr t)
 {
 }
 
-_X_EXPORT void uda1380_dumpstatus(UDA1380Ptr t)
+void uda1380_dumpstatus(UDA1380Ptr t)
 {
 }
diff --git a/hw/xfree86/i2c/uda1380.h b/hw/xfree86/i2c/uda1380.h
index 825fccd..da232f9 100644
--- a/hw/xfree86/i2c/uda1380.h
+++ b/hw/xfree86/i2c/uda1380.h
@@ -45,21 +45,21 @@ typedef struct {
 #define UDA1380_ADDR_2   0x34
 
 #define xf86_Detect_uda1380		Detect_uda1380
-extern UDA1380Ptr Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr);
+extern _X_EXPORT UDA1380Ptr Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr);
 #define xf86_uda1380_init		uda1380_init
-extern Bool uda1380_init(UDA1380Ptr t);
+extern _X_EXPORT Bool uda1380_init(UDA1380Ptr t);
 #define xf86_uda1380_shutdown		uda1380_shutdown
-extern void uda1380_shutdown(UDA1380Ptr t);
+extern _X_EXPORT void uda1380_shutdown(UDA1380Ptr t);
 #define xf86_uda1380_setvolume		uda1380_setvolume
-extern void uda1380_setvolume(UDA1380Ptr t, INT32);
+extern _X_EXPORT void uda1380_setvolume(UDA1380Ptr t, INT32);
 #define xf86_uda1380_mute		uda1380_mute
-extern void uda1380_mute(UDA1380Ptr t, Bool);
+extern _X_EXPORT void uda1380_mute(UDA1380Ptr t, Bool);
 #define xf86_uda1380_setparameters	uda1380_setparameters
-extern void uda1380_setparameters(UDA1380Ptr t);
+extern _X_EXPORT void uda1380_setparameters(UDA1380Ptr t);
 #define xf86_uda1380_getstatus		uda1380_getstatus
-extern void uda1380_getstatus(UDA1380Ptr t);
+extern _X_EXPORT void uda1380_getstatus(UDA1380Ptr t);
 #define xf86_uda1380_dumpstatus		uda1380_dumpstatus
-extern void uda1380_dumpstatus(UDA1380Ptr t);
+extern _X_EXPORT void uda1380_dumpstatus(UDA1380Ptr t);
 
 #define UDA1380SymbolsList  \
 		"Detect_uda1380", \
diff --git a/hw/xfree86/i2c/xf86i2c.c b/hw/xfree86/i2c/xf86i2c.c
index c659b17..59832d6 100644
--- a/hw/xfree86/i2c/xf86i2c.c
+++ b/hw/xfree86/i2c/xf86i2c.c
@@ -358,7 +358,7 @@ I2CAddress(I2CDevPtr d, I2CSlaveAddr addr)
  * Don't expect a read- or write-only device will respond otherwise.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CProbeAddress(I2CBusPtr b, I2CSlaveAddr addr)
 {
     int r;
@@ -439,7 +439,7 @@ I2CWriteRead(I2CDevPtr d,
 
 /* wrapper - for compatibility and convinience */
 
-_X_EXPORT Bool
+Bool
 xf86I2CWriteRead(I2CDevPtr d,
 		 I2CByte *WriteBuffer, int nWrite,
 		 I2CByte *ReadBuffer,  int nRead) 
@@ -451,7 +451,7 @@ xf86I2CWriteRead(I2CDevPtr d,
 /* Read a byte, the only readable register of a device.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CReadStatus(I2CDevPtr d, I2CByte *pbyte)
 {
     return xf86I2CWriteRead(d, NULL, 0, pbyte, 1);
@@ -460,7 +460,7 @@ xf86I2CReadStatus(I2CDevPtr d, I2CByte *pbyte)
 /* Read a byte from one of the registers determined by its sub-address.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CReadByte(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte)
 {
     return xf86I2CWriteRead(d, &subaddr, 1, pbyte, 1);
@@ -470,7 +470,7 @@ xf86I2CReadByte(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte)
  * sub-address of the first register.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CReadBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte, int n)
 {
     return xf86I2CWriteRead(d, &subaddr, 1, pbyte, n);
@@ -480,7 +480,7 @@ xf86I2CReadBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte, int n)
  * determined by its sub-address.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CReadWord(I2CDevPtr d, I2CByte subaddr, unsigned short *pword)
 {
     I2CByte rb[2];
@@ -495,7 +495,7 @@ xf86I2CReadWord(I2CDevPtr d, I2CByte subaddr, unsigned short *pword)
 /* Write a byte to one of the registers determined by its sub-address.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CWriteByte(I2CDevPtr d, I2CByte subaddr, I2CByte byte)
 {
     I2CByte wb[2];
@@ -510,7 +510,7 @@ xf86I2CWriteByte(I2CDevPtr d, I2CByte subaddr, I2CByte byte)
  * sub-address of the first register.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CWriteBytes(I2CDevPtr d, I2CByte subaddr, 
 		  I2CByte *WriteBuffer, int nWrite)
 {
@@ -536,7 +536,7 @@ xf86I2CWriteBytes(I2CDevPtr d, I2CByte subaddr,
  * determined by its sub-address.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CWriteWord(I2CDevPtr d, I2CByte subaddr, unsigned short word)
 {
     I2CByte wb[3];
@@ -555,7 +555,7 @@ xf86I2CWriteWord(I2CDevPtr d, I2CByte subaddr, unsigned short word)
  * remain uninitialized.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CWriteVec(I2CDevPtr d, I2CByte *vec, int nValues)
 {
     I2CBusPtr b = d->pI2CBus;
@@ -595,7 +595,7 @@ xf86I2CWriteVec(I2CDevPtr d, I2CByte *vec, int nValues)
  * the least significant bit, indicating a read or write access, to zero.
  */
 
-_X_EXPORT I2CDevPtr
+I2CDevPtr
 xf86CreateI2CDevRec(void) 
 {
     return xcalloc(1, sizeof(I2CDevRec));
@@ -605,7 +605,7 @@ xf86CreateI2CDevRec(void)
  * you should set <unalloc> to free it.
  */
 
-_X_EXPORT void
+void
 xf86DestroyI2CDevRec(I2CDevPtr d, Bool unalloc) 
 {
     if (d) {
@@ -640,7 +640,7 @@ xf86DestroyI2CDevRec(I2CDevPtr d, Bool unalloc)
  * the bus-wide defaults. The function returns TRUE on success.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CDevInit(I2CDevPtr d) 
 {
     I2CBusPtr b;
@@ -666,7 +666,7 @@ xf86I2CDevInit(I2CDevPtr d)
     return TRUE;
 }
 
-_X_EXPORT I2CDevPtr
+I2CDevPtr
 xf86I2CFindDev(I2CBusPtr b, I2CSlaveAddr addr) 
 {
     I2CDevPtr d;
@@ -690,7 +690,7 @@ static I2CBusPtr I2CBusList;
  * with safe defaults.
  */
 
-_X_EXPORT I2CBusPtr
+I2CBusPtr
 xf86CreateI2CBusRec(void) 
 {
     I2CBusPtr b;
@@ -716,7 +716,7 @@ xf86CreateI2CBusRec(void)
  * first, passing down the <unalloc> option.
  */
 
-_X_EXPORT void
+void
 xf86DestroyI2CBusRec(I2CBusPtr b, Bool unalloc, Bool devs_too) 
 {
     if (b) {
@@ -763,7 +763,7 @@ xf86DestroyI2CBusRec(I2CBusPtr b, Bool unalloc, Bool devs_too)
  * At this point there won't be any traffic on the I2C bus.
  */
 
-_X_EXPORT Bool
+Bool
 xf86I2CBusInit(I2CBusPtr b) 
 {
     /* I2C buses must be identified by a unique scrnIndex 
@@ -822,7 +822,7 @@ xf86I2CBusInit(I2CBusPtr b)
     return TRUE;
 }
 
-_X_EXPORT I2CBusPtr
+I2CBusPtr
 xf86I2CFindBus(int scrnIndex, char *name) 
 {
     I2CBusPtr p;
@@ -840,7 +840,7 @@ xf86I2CFindBus(int scrnIndex, char *name)
  * Return an array of I2CBusPtr's related to a screen.  The caller is
  * responsible for freeing the array.
  */
-_X_EXPORT int
+int
 xf86I2CGetScreenBuses(int scrnIndex, I2CBusPtr **pppI2CBus)
 {
     I2CBusPtr pI2CBus;
diff --git a/hw/xfree86/i2c/xf86i2c.h b/hw/xfree86/i2c/xf86i2c.h
index a3413c9..f2ded09 100644
--- a/hw/xfree86/i2c/xf86i2c.h
+++ b/hw/xfree86/i2c/xf86i2c.h
@@ -50,14 +50,14 @@ typedef struct _I2CBusRec {
 } I2CBusRec;
 
 #define CreateI2CBusRec		xf86CreateI2CBusRec
-extern I2CBusPtr xf86CreateI2CBusRec(void);
+extern _X_EXPORT I2CBusPtr xf86CreateI2CBusRec(void);
 #define DestroyI2CBusRec	xf86DestroyI2CBusRec
-extern void xf86DestroyI2CBusRec(I2CBusPtr pI2CBus, Bool unalloc, Bool devs_too);
+extern _X_EXPORT void xf86DestroyI2CBusRec(I2CBusPtr pI2CBus, Bool unalloc, Bool devs_too);
 #define I2CBusInit		xf86I2CBusInit
-extern Bool xf86I2CBusInit(I2CBusPtr pI2CBus);
+extern _X_EXPORT Bool xf86I2CBusInit(I2CBusPtr pI2CBus);
 
-I2CBusPtr 	xf86I2CFindBus(int scrnIndex, char *name);
-int		xf86I2CGetScreenBuses(int scrnIndex, I2CBusPtr **pppI2CBus);
+extern _X_EXPORT I2CBusPtr xf86I2CFindBus(int scrnIndex, char *name);
+extern _X_EXPORT int xf86I2CGetScreenBuses(int scrnIndex, I2CBusPtr **pppI2CBus);
 
 
 /* I2C slave devices */
@@ -77,30 +77,30 @@ typedef struct _I2CDevRec {
 } I2CDevRec;
 
 #define CreateI2CDevRec		xf86CreateI2CDevRec
-extern I2CDevPtr xf86CreateI2CDevRec(void);
-void      	xf86DestroyI2CDevRec(I2CDevPtr pI2CDev, Bool unalloc);
+extern _X_EXPORT I2CDevPtr xf86CreateI2CDevRec(void);
+extern _X_EXPORT void xf86DestroyI2CDevRec(I2CDevPtr pI2CDev, Bool unalloc);
 #define I2CDevInit		xf86I2CDevInit
-extern Bool	xf86I2CDevInit(I2CDevPtr pI2CDev);
-I2CDevPtr 	xf86I2CFindDev(I2CBusPtr, I2CSlaveAddr);
+extern _X_EXPORT Bool xf86I2CDevInit(I2CDevPtr pI2CDev);
+extern _X_EXPORT I2CDevPtr xf86I2CFindDev(I2CBusPtr, I2CSlaveAddr);
 
 /* See descriptions of these functions in xf86i2c.c */
 
 #define I2CProbeAddress		xf86I2CProbeAddress
-extern Bool	xf86I2CProbeAddress(I2CBusPtr pI2CBus, I2CSlaveAddr);
+extern _X_EXPORT Bool xf86I2CProbeAddress(I2CBusPtr pI2CBus, I2CSlaveAddr);
 
 #define		I2C_WriteRead xf86I2CWriteRead
-extern Bool	xf86I2CWriteRead(I2CDevPtr d, I2CByte *WriteBuffer, int nWrite,
+extern _X_EXPORT Bool xf86I2CWriteRead(I2CDevPtr d, I2CByte *WriteBuffer, int nWrite,
 		                   I2CByte *ReadBuffer,  int nRead);
 #define 	xf86I2CRead(d, rb, nr) xf86I2CWriteRead(d, NULL, 0, rb, nr)
 
-Bool 		xf86I2CReadStatus(I2CDevPtr d, I2CByte *pbyte);
-Bool 		xf86I2CReadByte(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte);
-Bool 		xf86I2CReadBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte, int n);
-Bool 		xf86I2CReadWord(I2CDevPtr d, I2CByte subaddr, unsigned short *pword);
+extern _X_EXPORT Bool xf86I2CReadStatus(I2CDevPtr d, I2CByte *pbyte);
+extern _X_EXPORT Bool xf86I2CReadByte(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte);
+extern _X_EXPORT Bool xf86I2CReadBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte, int n);
+extern _X_EXPORT Bool xf86I2CReadWord(I2CDevPtr d, I2CByte subaddr, unsigned short *pword);
 #define 	xf86I2CWrite(d, wb, nw) xf86I2CWriteRead(d, wb, nw, NULL, 0)
-Bool 		xf86I2CWriteByte(I2CDevPtr d, I2CByte subaddr, I2CByte byte);
-Bool 		xf86I2CWriteBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *WriteBuffer, int nWrite);
-Bool 		xf86I2CWriteWord(I2CDevPtr d, I2CByte subaddr, unsigned short word);
-Bool 		xf86I2CWriteVec(I2CDevPtr d, I2CByte *vec, int nValues);
+extern _X_EXPORT Bool xf86I2CWriteByte(I2CDevPtr d, I2CByte subaddr, I2CByte byte);
+extern _X_EXPORT Bool xf86I2CWriteBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *WriteBuffer, int nWrite);
+extern _X_EXPORT Bool xf86I2CWriteWord(I2CDevPtr d, I2CByte subaddr, unsigned short word);
+extern _X_EXPORT Bool xf86I2CWriteVec(I2CDevPtr d, I2CByte *vec, int nValues);
 
 #endif /*_XF86I2C_H */
diff --git a/hw/xfree86/int10/generic.c b/hw/xfree86/int10/generic.c
index 2cda753..0af7c1b 100644
--- a/hw/xfree86/int10/generic.c
+++ b/hw/xfree86/int10/generic.c
@@ -116,7 +116,7 @@ read_legacy_video_BIOS(struct pci_device *dev, unsigned char *Buf)
 }
 
 
-_X_EXPORT xf86Int10InfoPtr
+xf86Int10InfoPtr
 xf86ExtendedInitInt10(int entityIndex, int Flags)
 {
     xf86Int10InfoPtr pInt;
@@ -321,14 +321,14 @@ UnmapVRam(xf86Int10InfoPtr pInt)
     xf86UnMapVidMem(screen, INTPriv(pInt)->vRam, size);
 }
 
-_X_EXPORT Bool
+Bool
 MapCurrentInt10(xf86Int10InfoPtr pInt)
 {
     /* nothing to do here */
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86FreeInt10(xf86Int10InfoPtr pInt)
 {
     if (!pInt)
@@ -345,7 +345,7 @@ xf86FreeInt10(xf86Int10InfoPtr pInt)
     xfree(pInt);
 }
 
-_X_EXPORT void *
+void *
 xf86Int10AllocPages(xf86Int10InfoPtr pInt, int num, int *off)
 {
     int pagesize = getpagesize();
@@ -373,7 +373,7 @@ xf86Int10AllocPages(xf86Int10InfoPtr pInt, int num, int *off)
     return (char *)INTPriv(pInt)->base + *off;
 }
 
-_X_EXPORT void
+void
 xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase, int num)
 {
     int pagesize = getpagesize();
@@ -486,7 +486,7 @@ write_l(xf86Int10InfoPtr pInt, int addr, CARD32 val)
     V_ADDR_WB(addr + 3, val >> 24);
 }
 
-_X_EXPORT pointer
+pointer
 xf86int10Addr(xf86Int10InfoPtr pInt, CARD32 addr)
 {
     return V_ADDR(addr);
diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c
index ab559ed..1c89ce5 100644
--- a/hw/xfree86/int10/helper_exec.c
+++ b/hw/xfree86/int10/helper_exec.c
@@ -49,7 +49,7 @@ static void SetResetBIOSVars(xf86Int10InfoPtr pInt, Bool set);
 
 #define REG pInt
 
-_X_EXPORT int
+int
 setup_int(xf86Int10InfoPtr pInt)
 {
     if (pInt != Int10Current) {
@@ -78,7 +78,7 @@ setup_int(xf86Int10InfoPtr pInt)
     return xf86BlockSIGIO();
 }
 
-_X_EXPORT void
+void
 finish_int(xf86Int10InfoPtr pInt, int sig)
 {
     xf86UnblockSIGIO(sig);
@@ -98,20 +98,20 @@ finish_int(xf86Int10InfoPtr pInt, int sig)
 }
 
 /* general software interrupt handler */
-_X_EXPORT CARD32
+CARD32
 getIntVect(xf86Int10InfoPtr pInt,int num)
 {
     return MEM_RW(pInt, num << 2) + (MEM_RW(pInt, (num << 2) + 2) << 4);
 }
 
-_X_EXPORT void
+void
 pushw(xf86Int10InfoPtr pInt, CARD16 val)
 {
     X86_ESP -= 2;
     MEM_WW(pInt, ((CARD32) X86_SS << 4) + X86_SP, val);
 }
 
-_X_EXPORT int
+int
 run_bios_int(int num, xf86Int10InfoPtr pInt)
 {
     CARD32 eflags;
@@ -157,7 +157,7 @@ run_bios_int(int num, xf86Int10InfoPtr pInt)
 }
 
 /* Debugging stuff */
-_X_EXPORT void
+void
 dump_code(xf86Int10InfoPtr pInt)
 {
     int i;
@@ -172,7 +172,7 @@ dump_code(xf86Int10InfoPtr pInt)
     xf86ErrorFVerb(3, "\n");
 }
 
-_X_EXPORT void
+void
 dump_registers(xf86Int10InfoPtr pInt)
 {
     xf86DrvMsgVerb(pInt->scrnIndex, X_INFO, 3,
@@ -192,7 +192,7 @@ dump_registers(xf86Int10InfoPtr pInt)
 	(unsigned long)X86_EIP, (unsigned long)X86_EFLAGS);
 }
 
-_X_EXPORT void
+void
 stack_trace(xf86Int10InfoPtr pInt)
 {
     int i = 0;
@@ -212,7 +212,7 @@ stack_trace(xf86Int10InfoPtr pInt)
 	xf86ErrorFVerb(3, "\n");
 }
 
-_X_EXPORT int
+int
 port_rep_inb(xf86Int10InfoPtr pInt,
 	     CARD16 port, CARD32 base, int d_f, CARD32 count)
 {
@@ -228,7 +228,7 @@ port_rep_inb(xf86Int10InfoPtr pInt,
     return dst - base;
 }
 
-_X_EXPORT int
+int
 port_rep_inw(xf86Int10InfoPtr pInt,
 	     CARD16 port, CARD32 base, int d_f, CARD32 count)
 {
@@ -244,7 +244,7 @@ port_rep_inw(xf86Int10InfoPtr pInt,
     return dst - base;
 }
 
-_X_EXPORT int
+int
 port_rep_inl(xf86Int10InfoPtr pInt,
 	     CARD16 port, CARD32 base, int d_f, CARD32 count)
 {
@@ -260,7 +260,7 @@ port_rep_inl(xf86Int10InfoPtr pInt,
     return dst - base;
 }
 
-_X_EXPORT int
+int
 port_rep_outb(xf86Int10InfoPtr pInt,
 	      CARD16 port, CARD32 base, int d_f, CARD32 count)
 {
@@ -276,7 +276,7 @@ port_rep_outb(xf86Int10InfoPtr pInt,
     return dst - base;
 }
 
-_X_EXPORT int
+int
 port_rep_outw(xf86Int10InfoPtr pInt,
 	      CARD16 port, CARD32 base, int d_f, CARD32 count)
 {
@@ -292,7 +292,7 @@ port_rep_outw(xf86Int10InfoPtr pInt,
     return dst - base;
 }
 
-_X_EXPORT int
+int
 port_rep_outl(xf86Int10InfoPtr pInt,
 	      CARD16 port, CARD32 base, int d_f, CARD32 count)
 {
@@ -308,7 +308,7 @@ port_rep_outl(xf86Int10InfoPtr pInt,
     return dst - base;
 }
 
-_X_EXPORT CARD8
+CARD8
 x_inb(CARD16 port)
 {
     CARD8 val;
@@ -337,7 +337,7 @@ x_inb(CARD16 port)
     return val;
 }
 
-_X_EXPORT CARD16
+CARD16
 x_inw(CARD16 port)
 {
     CARD16 val;
@@ -359,7 +359,7 @@ x_inw(CARD16 port)
     return val;
 }
 
-_X_EXPORT void
+void
 x_outb(CARD16 port, CARD8 val)
 {
     if ((port == 0x43) && (val == 0)) {
@@ -390,7 +390,7 @@ x_outb(CARD16 port, CARD8 val)
     }
 }
 
-_X_EXPORT void
+void
 x_outw(CARD16 port, CARD16 val)
 {
 
@@ -401,7 +401,7 @@ x_outw(CARD16 port, CARD16 val)
     }
 }
 
-_X_EXPORT CARD32
+CARD32
 x_inl(CARD16 port)
 {
     CARD32 val;
@@ -414,7 +414,7 @@ x_inl(CARD16 port)
     return val;
 }
 
-_X_EXPORT void
+void
 x_outl(CARD16 port, CARD32 val)
 {
     if (!pciCfg1out(port, val)) {
@@ -424,37 +424,37 @@ x_outl(CARD16 port, CARD32 val)
     }
 }
 
-_X_EXPORT CARD8
+CARD8
 Mem_rb(CARD32 addr)
 {
     return (*Int10Current->mem->rb)(Int10Current, addr);
 }
 
-_X_EXPORT CARD16
+CARD16
 Mem_rw(CARD32 addr)
 {
     return (*Int10Current->mem->rw)(Int10Current, addr);
 }
 
-_X_EXPORT CARD32
+CARD32
 Mem_rl(CARD32 addr)
 {
     return (*Int10Current->mem->rl)(Int10Current, addr);
 }
 
-_X_EXPORT void
+void
 Mem_wb(CARD32 addr, CARD8 val)
 {
     (*Int10Current->mem->wb)(Int10Current, addr, val);
 }
 
-_X_EXPORT void
+void
 Mem_ww(CARD32 addr, CARD16 val)
 {
     (*Int10Current->mem->ww)(Int10Current, addr, val);
 }
 
-_X_EXPORT void
+void
 Mem_wl(CARD32 addr, CARD32 val)
 {
     (*Int10Current->mem->wl)(Int10Current, addr, val);
@@ -613,7 +613,7 @@ pciCfg1outb(CARD16 addr, CARD8 val)
     return 0;
 }
 
-_X_EXPORT CARD8
+CARD8
 bios_checksum(const CARD8 *start, int size)
 {
     CARD8 sum = 0;
@@ -641,7 +641,7 @@ bios_checksum(const CARD8 *start, int size)
  * the driver would have to load the vga-module prior to
  * doing int10.
  */
-_X_EXPORT void
+void
 LockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga)
 {
     xf86SetCurrentAccess(FALSE, xf86Screens[pInt->scrnIndex]);
@@ -660,7 +660,7 @@ LockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga)
     xf86SetCurrentAccess(TRUE, xf86Screens[pInt->scrnIndex]);
 }
 
-_X_EXPORT void
+void
 UnlockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga)
 {
     xf86SetCurrentAccess(FALSE, xf86Screens[pInt->scrnIndex]);
@@ -693,7 +693,7 @@ SetResetBIOSVars(xf86Int10InfoPtr pInt, Bool set)
     xf86UnMapVidMem(pInt->scrnIndex,base,pagesize);
 }
 
-_X_EXPORT void
+void
 xf86Int10SaveRestoreBIOSVars(xf86Int10InfoPtr pInt, Bool save)
 {
     int pagesize = getpagesize();
@@ -724,7 +724,7 @@ xf86Int10SaveRestoreBIOSVars(xf86Int10InfoPtr pInt, Bool save)
 }
 #endif
 
-_X_EXPORT xf86Int10InfoPtr
+xf86Int10InfoPtr
 xf86InitInt10(int entityIndex)
 {
     return xf86ExtendedInitInt10(entityIndex, 0);
diff --git a/hw/xfree86/int10/helper_mem.c b/hw/xfree86/int10/helper_mem.c
index 16d7c17..6f6ecc2 100644
--- a/hw/xfree86/int10/helper_mem.c
+++ b/hw/xfree86/int10/helper_mem.c
@@ -34,7 +34,7 @@ static const OptionInfoRec INT10Options[] = {
 };
 
 #ifdef DEBUG
-_X_EXPORT void
+void
 dprint(unsigned long start, unsigned long size)
 {
     int i,j;
@@ -62,7 +62,7 @@ dprint(unsigned long start, unsigned long size)
  * BIOS. Most of this information was pulled from
  * dosemu.
  */
-_X_EXPORT void
+void
 setup_int_vect(xf86Int10InfoPtr pInt)
 {
     int i;
@@ -105,7 +105,7 @@ setup_int_vect(xf86Int10InfoPtr pInt)
 }
 #endif
 
-_X_EXPORT int
+int
 setup_system_bios(void *base_addr)
 {
     char *base = (char *) base_addr;
@@ -127,7 +127,7 @@ setup_system_bios(void *base_addr)
     return 1;
 }
 
-_X_EXPORT void
+void
 reset_int_vect(xf86Int10InfoPtr pInt)
 {
     /*
@@ -176,7 +176,7 @@ reset_int_vect(xf86Int10InfoPtr pInt)
     MEM_WW(pInt, (0x6D << 2) + 2, SYS_BIOS >> 4);
 }
 
-_X_EXPORT void
+void
 set_return_trap(xf86Int10InfoPtr pInt)
 {
     /*
@@ -191,7 +191,7 @@ set_return_trap(xf86Int10InfoPtr pInt)
     xf86Int10AllocPages(pInt, 1, &pInt->stackseg);
 }
 
-_X_EXPORT void *
+void *
 xf86HandleInt10Options(ScrnInfoPtr pScrn, int entityIndex)
 {
     EntityInfoPtr pEnt = xf86GetEntityInfo(entityIndex);
@@ -220,7 +220,7 @@ xf86HandleInt10Options(ScrnInfoPtr pScrn, int entityIndex)
     return options;
 }
 
-_X_EXPORT Bool
+Bool
 int10skip(const void* options)
 {
     Bool noint10 = FALSE;
@@ -231,7 +231,7 @@ int10skip(const void* options)
     return noint10;
 }
 
-_X_EXPORT Bool
+Bool
 int10_check_bios(int scrnIndex, int codeSeg, const unsigned char* vbiosMem)
 {
     int size;
@@ -258,7 +258,7 @@ int10_check_bios(int scrnIndex, int codeSeg, const unsigned char* vbiosMem)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 initPrimary(const void* options)
 {
     Bool initPrimary = FALSE;
@@ -269,7 +269,7 @@ initPrimary(const void* options)
     return initPrimary;
 }
 
-_X_EXPORT BusType
+BusType
 xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt)
 {
     BusType location_type;
@@ -290,7 +290,7 @@ xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt)
 	return FALSE; \
     }
 
-_X_EXPORT Bool
+Bool
 xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base)
 {
     unsigned i;
diff --git a/hw/xfree86/int10/stub.c b/hw/xfree86/int10/stub.c
index 4d9fe52..58b6578 100644
--- a/hw/xfree86/int10/stub.c
+++ b/hw/xfree86/int10/stub.c
@@ -13,56 +13,56 @@
 #define _INT10_PRIVATE
 #include "xf86int10.h"
 
-_X_EXPORT xf86Int10InfoPtr
+xf86Int10InfoPtr
 xf86InitInt10(int entityIndex)
 {
     return xf86ExtendedInitInt10(entityIndex, 0);
 }
 
-_X_EXPORT xf86Int10InfoPtr
+xf86Int10InfoPtr
 xf86ExtendedInitInt10(int entityIndex, int Flags)
 {
     return NULL;
 }
 
-_X_EXPORT Bool
+Bool
 MapCurrentInt10(xf86Int10InfoPtr pInt)
 {
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86FreeInt10(xf86Int10InfoPtr pInt)
 {
     return;
 }
 
-_X_EXPORT void *
+void *
 xf86Int10AllocPages(xf86Int10InfoPtr pInt,int num, int *off)
 {
     *off = 0;
     return NULL;
 }
 
-_X_EXPORT void
+void
 xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase, int num)
 {
     return;
 }
 
-_X_EXPORT Bool
+Bool
 xf86Int10ExecSetup(xf86Int10InfoPtr pInt)
 {
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86ExecX86int10(xf86Int10InfoPtr pInt)
 {
     return;
 }
 
-_X_EXPORT pointer
+pointer
 xf86int10Addr(xf86Int10InfoPtr pInt, CARD32 addr)
 {
     return 0;
diff --git a/hw/xfree86/int10/xf86int10.c b/hw/xfree86/int10/xf86int10.c
index a7904dc..51eb91f 100644
--- a/hw/xfree86/int10/xf86int10.c
+++ b/hw/xfree86/int10/xf86int10.c
@@ -17,7 +17,7 @@
 
 #define REG pInt
 
-_X_EXPORT xf86Int10InfoPtr Int10Current = NULL;
+xf86Int10InfoPtr Int10Current = NULL;
 
 static int int1A_handler(xf86Int10InfoPtr pInt);
 #ifndef _PC
@@ -27,7 +27,7 @@ static int intE6_handler(xf86Int10InfoPtr pInt);
 static struct pci_device *findPci(xf86Int10InfoPtr pInt, unsigned short bx);
 static CARD32 pciSlotBX( const struct pci_device * pvp );
 
-_X_EXPORT int
+int
 int_handler(xf86Int10InfoPtr pInt)
 {
     int num = pInt->num;
diff --git a/hw/xfree86/int10/xf86int10.h b/hw/xfree86/int10/xf86int10.h
index 2af709b..ba9ee52 100644
--- a/hw/xfree86/int10/xf86int10.h
+++ b/hw/xfree86/int10/xf86int10.h
@@ -61,15 +61,18 @@ typedef struct {
 } legacyVGARec, *legacyVGAPtr;
     
 /* OS dependent functions */
-xf86Int10InfoPtr xf86InitInt10(int entityIndex);
-xf86Int10InfoPtr xf86ExtendedInitInt10(int entityIndex, int Flags);
-void xf86FreeInt10(xf86Int10InfoPtr pInt);
-void *xf86Int10AllocPages(xf86Int10InfoPtr pInt, int num, int *off);
-void xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase, int num);
-pointer xf86int10Addr(xf86Int10InfoPtr pInt, CARD32 addr);
+extern _X_EXPORT xf86Int10InfoPtr xf86InitInt10(int entityIndex);
+extern _X_EXPORT xf86Int10InfoPtr xf86ExtendedInitInt10(int entityIndex,
+							int Flags);
+extern _X_EXPORT void xf86FreeInt10(xf86Int10InfoPtr pInt);
+extern _X_EXPORT void *xf86Int10AllocPages(xf86Int10InfoPtr pInt, int num,
+					   int *off);
+extern _X_EXPORT void xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase,
+					 int num);
+extern _X_EXPORT pointer xf86int10Addr(xf86Int10InfoPtr pInt, CARD32 addr);
 
 /* x86 executor related functions */
-void xf86ExecX86int10(xf86Int10InfoPtr pInt);
+extern _X_EXPORT void xf86ExecX86int10(xf86Int10InfoPtr pInt);
 
 #ifdef _INT10_PRIVATE
 
@@ -112,12 +115,12 @@ void xf86ExecX86int10(xf86Int10InfoPtr pInt);
 #define MEM_WL(name, addr, val) (*name->mem->wl)(name, addr, val)
 
 /* OS dependent functions */
-Bool MapCurrentInt10(xf86Int10InfoPtr pInt);
+extern _X_EXPORT Bool MapCurrentInt10(xf86Int10InfoPtr pInt);
 /* x86 executor related functions */
-Bool xf86Int10ExecSetup(xf86Int10InfoPtr pInt);
+extern _X_EXPORT Bool xf86Int10ExecSetup(xf86Int10InfoPtr pInt);
 
 /* int.c */
-extern xf86Int10InfoPtr Int10Current;
+extern _X_EXPORT xf86Int10InfoPtr Int10Current;
 int int_handler(xf86Int10InfoPtr pInt);
 
 /* helper_exec.c */
@@ -133,7 +136,7 @@ CARD8 bios_checksum(const CARD8 *start, int size);
 void LockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga);
 void UnlockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga);
 #if defined (_PC)
-void xf86Int10SaveRestoreBIOSVars(xf86Int10InfoPtr pInt, Bool save);
+extern _X_EXPORT void xf86Int10SaveRestoreBIOSVars(xf86Int10InfoPtr pInt, Bool save);
 #endif
 int port_rep_inb(xf86Int10InfoPtr pInt,
 		 CARD16 port, CARD32 base, int d_f, CARD32 count);
@@ -167,13 +170,13 @@ void setup_int_vect(xf86Int10InfoPtr pInt);
 int setup_system_bios(void *base_addr);
 void reset_int_vect(xf86Int10InfoPtr pInt);
 void set_return_trap(xf86Int10InfoPtr pInt);
-void * xf86HandleInt10Options(ScrnInfoPtr pScrn, int entityIndex);
+extern _X_EXPORT void * xf86HandleInt10Options(ScrnInfoPtr pScrn, int entityIndex);
 Bool int10skip(const void* options);
 Bool int10_check_bios(int scrnIndex, int codeSeg,
     const unsigned char* vbiosMem);
 Bool initPrimary(const void* options);
-BusType xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt);
-Bool xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base);
+extern _X_EXPORT BusType xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt);
+extern _X_EXPORT Bool xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base);
 #ifdef DEBUG
 void dprint(unsigned long start, unsigned long size);
 #endif
diff --git a/hw/xfree86/int10/xf86x86emu.c b/hw/xfree86/int10/xf86x86emu.c
index a884bf9..83663b0 100644
--- a/hw/xfree86/int10/xf86x86emu.c
+++ b/hw/xfree86/int10/xf86x86emu.c
@@ -28,7 +28,7 @@ x86emu_do_int(int num)
     }
 }
 
-_X_EXPORT void
+void
 xf86ExecX86int10(xf86Int10InfoPtr pInt)
 {
     int sig = setup_int(pInt);
@@ -43,7 +43,7 @@ xf86ExecX86int10(xf86Int10InfoPtr pInt)
     finish_int(pInt, sig);
 }
 
-_X_EXPORT Bool
+Bool
 xf86Int10ExecSetup(xf86Int10InfoPtr pInt)
 {
     int i;
diff --git a/hw/xfree86/loader/Makefile.am b/hw/xfree86/loader/Makefile.am
index fa9dbfe..d55fe3d 100644
--- a/hw/xfree86/loader/Makefile.am
+++ b/hw/xfree86/loader/Makefile.am
@@ -6,7 +6,7 @@ INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser -I$(srcdir)/../dixmods/extmod \
 	   -I$(srcdir)/../ramdac
 
 #AM_LDFLAGS = -r
-AM_CFLAGS = -DIN_LOADER $(DIX_CFLAGS) $(XORG_CFLAGS)
+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
 
 EXTRA_DIST = \
 	dlloader.h \
diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c
index a5e8912..62058b4 100644
--- a/hw/xfree86/loader/loader.c
+++ b/hw/xfree86/loader/loader.c
@@ -181,22 +181,22 @@ _LoaderListPop(int handle)
 }
 
 /* These four are just ABI stubs */
-_X_EXPORT void
+void
 LoaderRefSymbols(const char *sym0, ...)
 {
 }
 
-_X_EXPORT void
+void
 LoaderRefSymLists(const char **list0, ...)
 {
 }
 
-_X_EXPORT void
+void
 LoaderReqSymLists(const char **list0, ...)
 {
 }
 
-_X_EXPORT void
+void
 LoaderReqSymbols(const char *sym0, ...)
 {
 }
@@ -299,14 +299,14 @@ LoaderHandleOpen(int handle)
     return handle;
 }
 
-_X_EXPORT void *
+void *
 LoaderSymbol(const char *sym)
 {
     return (DLFindSymbol(sym));
 }
 
 /* more stub */
-_X_EXPORT int
+int
 LoaderCheckUnresolved(int delay_flag)
 {
     return 0;
@@ -354,13 +354,13 @@ LoaderSetOptions(unsigned long opts)
     LoaderOptions |= opts;
 }
 
-_X_EXPORT Bool
+Bool
 LoaderShouldIgnoreABI(void)
 {
     return (LoaderOptions & LDR_OPT_ABI_MISMATCH_NONFATAL) != 0;
 }
 
-_X_EXPORT int
+int
 LoaderGetABIVersion(const char *abiclass)
 {
     struct {
diff --git a/hw/xfree86/loader/loaderProcs.h b/hw/xfree86/loader/loaderProcs.h
index f468a36..3ee56eb 100644
--- a/hw/xfree86/loader/loaderProcs.h
+++ b/hw/xfree86/loader/loaderProcs.h
@@ -79,12 +79,12 @@ ModuleDescPtr LoadDriver(const char *, const char *, int, pointer, int *,
 ModuleDescPtr LoadModule(const char *, const char *, const char **,
 			 const char **, pointer, const XF86ModReqInfo *,
 			 int *, int *);
-ModuleDescPtr LoadSubModule(ModuleDescPtr, const char *,
-			    const char **, const char **, pointer,
-			    const XF86ModReqInfo *, int *, int *);
+pointer LoadSubModule(pointer, const char *,
+		      const char **, const char **, pointer,
+		      const XF86ModReqInfo *, int *, int *);
 ModuleDescPtr DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent);
-void UnloadModule(ModuleDescPtr);
-void UnloadSubModule(ModuleDescPtr);
+void UnloadModule(pointer);
+void UnloadSubModule(pointer);
 void UnloadDriver(ModuleDescPtr);
 void LoaderSetPath(const char *path);
 void LoaderSortExtensions(void);
diff --git a/hw/xfree86/loader/loadext.c b/hw/xfree86/loader/loadext.c
index d8e615f..c403364 100644
--- a/hw/xfree86/loader/loadext.c
+++ b/hw/xfree86/loader/loadext.c
@@ -40,7 +40,7 @@
  * This should be static, but miinitext wants it.  FIXME: make extension
  * initialization not completely terrible.
  */
-_X_EXPORT ExtensionModule *ExtensionModuleList = NULL;
+ExtensionModule *ExtensionModuleList = NULL;
 static int numExtensionModules = 0;
 
 static ExtensionModule *
@@ -66,7 +66,7 @@ NewExtensionModule(void)
     }
 }
 
-_X_EXPORT void
+void
 LoadExtension(ExtensionModule * e, Bool builtin)
 {
     ExtensionModule *newext;
diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index 2324e78..3f75493 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -469,7 +469,7 @@ FindModule(const char *module, const char *dirname, const char **subdirlist,
     return name;
 }
 
-_X_EXPORT char **
+char **
 LoaderListDirs(const char **subdirlist, const char **patternlist)
 {
     char buf[PATH_MAX + 1];
@@ -563,7 +563,7 @@ LoaderListDirs(const char **subdirlist, const char **patternlist)
     return listing;
 }
 
-_X_EXPORT void
+void
 LoaderFreeDirList(char **list)
 {
     FreeStringList(list);
@@ -745,13 +745,14 @@ AddSibling(ModuleDescPtr head, ModuleDescPtr new)
     return (new);
 }
 
-_X_EXPORT ModuleDescPtr
-LoadSubModule(ModuleDescPtr parent, const char *module,
+pointer
+LoadSubModule(pointer _parent, const char *module,
 	      const char **subdirlist, const char **patternlist,
 	      pointer options, const XF86ModReqInfo * modreq,
 	      int *errmaj, int *errmin)
 {
     ModuleDescPtr submod;
+    ModuleDescPtr parent = (ModuleDescPtr)_parent;
 
     xf86MsgVerb(X_INFO, 3, "Loading sub module \"%s\"\n", module);
 
@@ -794,7 +795,7 @@ NewModuleDesc(const char *name)
     return (mdp);
 }
 
-_X_EXPORT ModuleDescPtr
+ModuleDescPtr
 DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent)
 {
     ModuleDescPtr ret;
@@ -1080,10 +1081,10 @@ LoadModule(const char *module, const char *path, const char **subdirlist,
 		      modreq, errmaj, errmin, LD_FLAG_GLOBAL);
 }
 
-_X_EXPORT void
-UnloadModule(ModuleDescPtr mod)
+void
+UnloadModule(pointer mod)
 {
-    UnloadModuleOrDriver(mod);
+    UnloadModuleOrDriver((ModuleDescPtr)mod);
 }
 
 static void
@@ -1112,9 +1113,11 @@ UnloadModuleOrDriver(ModuleDescPtr mod)
 #endif
 }
 
-_X_EXPORT void
-UnloadSubModule(ModuleDescPtr mod)
+void
+UnloadSubModule(pointer _mod)
 {
+    ModuleDescPtr mod = (ModuleDescPtr)_mod;
+
     if (mod == NULL || mod->name == NULL)
 	return;
 
@@ -1160,7 +1163,7 @@ RemoveChild(ModuleDescPtr child)
     return;
 }
 
-_X_EXPORT void
+void
 LoaderErrorMsg(const char *name, const char *modname, int errmaj, int errmin)
 {
     const char *msg;
diff --git a/hw/xfree86/loader/os.c b/hw/xfree86/loader/os.c
index ef9ac38..5acce00 100644
--- a/hw/xfree86/loader/os.c
+++ b/hw/xfree86/loader/os.c
@@ -64,7 +64,7 @@
 
 /* Return the OS name, and run-time OS version */
 
-_X_EXPORT void
+void
 LoaderGetOS(const char **name, int *major, int *minor, int *teeny)
 {
     if (name)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 0c06915..948a56b 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -53,9 +53,9 @@
  * Initialize xf86CrtcConfig structure
  */
 
-_X_EXPORT int xf86CrtcConfigPrivateIndex = -1;
+int xf86CrtcConfigPrivateIndex = -1;
 
-_X_EXPORT void
+void
 xf86CrtcConfigInit (ScrnInfoPtr scrn,
 		    const xf86CrtcConfigFuncsRec *funcs)
 {
@@ -70,7 +70,7 @@ xf86CrtcConfigInit (ScrnInfoPtr scrn,
     scrn->privates[xf86CrtcConfigPrivateIndex].ptr = config;
 }
  
-_X_EXPORT void
+void
 xf86CrtcSetSizeRange (ScrnInfoPtr scrn,
 		      int minWidth, int minHeight,
 		      int maxWidth, int maxHeight)
@@ -86,7 +86,7 @@ xf86CrtcSetSizeRange (ScrnInfoPtr scrn,
 /*
  * Crtc functions
  */
-_X_EXPORT xf86CrtcPtr
+xf86CrtcPtr
 xf86CrtcCreate (ScrnInfoPtr		scrn,
 		const xf86CrtcFuncsRec	*funcs)
 {
@@ -131,7 +131,7 @@ xf86CrtcCreate (ScrnInfoPtr		scrn,
     return crtc;
 }
 
-_X_EXPORT void
+void
 xf86CrtcDestroy (xf86CrtcPtr crtc)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
@@ -157,7 +157,7 @@ xf86CrtcDestroy (xf86CrtcPtr crtc)
  * Return whether any outputs are connected to the specified pipe
  */
 
-_X_EXPORT Bool
+Bool
 xf86CrtcInUse (xf86CrtcPtr crtc)
 {
     ScrnInfoPtr		pScrn = crtc->scrn;
@@ -170,7 +170,7 @@ xf86CrtcInUse (xf86CrtcPtr crtc)
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86CrtcSetScreenSubpixelOrder (ScreenPtr pScreen)
 {
 #ifdef RENDER
@@ -238,7 +238,7 @@ xf86CrtcSetScreenSubpixelOrder (ScreenPtr pScreen)
 /**
  * Sets the given video mode on the given crtc
  */
-_X_EXPORT Bool
+Bool
 xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation,
 			  RRTransformPtr transform, int x, int y)
 {
@@ -410,7 +410,7 @@ done:
  * Sets the given video mode on the given crtc, but without providing
  * a transform
  */
-_X_EXPORT Bool
+Bool
 xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation,
 		 int x, int y)
 {
@@ -575,7 +575,7 @@ xf86OutputInitialRotation (xf86OutputPtr output)
     return RR_Rotate_0;
 }
 
-_X_EXPORT xf86OutputPtr
+xf86OutputPtr
 xf86OutputCreate (ScrnInfoPtr		    scrn,
 		  const xf86OutputFuncsRec  *funcs,
 		  const char		    *name)
@@ -635,7 +635,7 @@ xf86OutputCreate (ScrnInfoPtr		    scrn,
     return output;
 }
 
-_X_EXPORT Bool
+Bool
 xf86OutputRename (xf86OutputPtr output, const char *name)
 {
     int	    len = strlen(name) + 1;
@@ -654,7 +654,7 @@ xf86OutputRename (xf86OutputPtr output, const char *name)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86OutputUseScreenMonitor (xf86OutputPtr output, Bool use_screen_monitor)
 {
     if (use_screen_monitor != output->use_screen_monitor)
@@ -664,7 +664,7 @@ xf86OutputUseScreenMonitor (xf86OutputPtr output, Bool use_screen_monitor)
     }
 }
 
-_X_EXPORT void
+void
 xf86OutputDestroy (xf86OutputPtr output)
 {
     ScrnInfoPtr		scrn = output->scrn;
@@ -740,7 +740,6 @@ xf86CrtcCloseScreen (int index, ScreenPtr screen)
 /*
  * Called at ScreenInit time to set up
  */
-_X_EXPORT
 #ifdef RANDR_13_INTERFACE
 int
 #else
@@ -1446,7 +1445,7 @@ GuessRangeFromModes(MonPtr mon, DisplayModePtr mode)
        mon->vrefresh[0].lo = 58.0;
 }
 
-_X_EXPORT void
+void
 xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -1707,7 +1706,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
  */
 
 /* XXX where does this function belong? Here? */
-_X_EXPORT void
+void
 xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr scrn, int *x, int *y);
 
 static DisplayModePtr
@@ -1802,7 +1801,7 @@ SetCompatOutput(xf86CrtcConfigPtr config)
     return output;
 }
 
-_X_EXPORT void
+void
 xf86SetScrnInfoModes (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -2158,7 +2157,7 @@ xf86TargetUserpref(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
  * accordingly.
  */
 
-_X_EXPORT Bool
+Bool
 xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -2383,7 +2382,7 @@ xf86PrepareCrtcs (ScrnInfoPtr scrn)
  * modes (used in EnterVT functions, or at server startup)
  */
 
-_X_EXPORT Bool
+Bool
 xf86SetDesiredModes (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr   config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -2456,7 +2455,7 @@ xf86SetDesiredModes (ScrnInfoPtr scrn)
  * - Closer in refresh rate to the requested mode.
  */
 
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86OutputFindClosestMode (xf86OutputPtr output, DisplayModePtr desired)
 {
     DisplayModePtr	best = NULL, scan = NULL;
@@ -2519,7 +2518,7 @@ xf86OutputFindClosestMode (xf86OutputPtr output, DisplayModePtr desired)
  * mode across all outputs that are currently active.
  */
 
-_X_EXPORT Bool
+Bool
 xf86SetSingleMode (ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(pScrn);
@@ -2592,7 +2591,7 @@ xf86SetSingleMode (ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation)
  * If the new mode is off, it will turn off outputs and then CRTCs.
  * Otherwise, it will affect CRTCs before outputs.
  */
-_X_EXPORT void
+void
 xf86DPMSSet(ScrnInfoPtr scrn, int mode, int flags)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -2630,7 +2629,7 @@ xf86DPMSSet(ScrnInfoPtr scrn, int mode, int flags)
  * Even for monitors with no DPMS support, by the definition of our DPMS hooks,
  * the outputs will still get disabled (blanked).
  */
-_X_EXPORT Bool
+Bool
 xf86SaveScreen(ScreenPtr pScreen, int mode)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -2646,7 +2645,7 @@ xf86SaveScreen(ScreenPtr pScreen, int mode)
 /**
  * Disable all inactive crtcs and outputs
  */
-_X_EXPORT void
+void
 xf86DisableUnusedFunctions(ScrnInfoPtr pScrn)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
@@ -2702,7 +2701,7 @@ xf86OutputSetEDIDProperty (xf86OutputPtr output, void *data, int data_len)
 /**
  * Set the EDID information for the specified output
  */
-_X_EXPORT void
+void
 xf86OutputSetEDID (xf86OutputPtr output, xf86MonPtr edid_mon)
 {
     ScrnInfoPtr		scrn = output->scrn;
@@ -2770,7 +2769,7 @@ xf86OutputSetEDID (xf86OutputPtr output, xf86MonPtr edid_mon)
  * Return the list of modes supported by the EDID information
  * stored in 'output'
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86OutputGetEDIDModes (xf86OutputPtr output)
 {
     ScrnInfoPtr	scrn = output->scrn;
@@ -2782,7 +2781,7 @@ xf86OutputGetEDIDModes (xf86OutputPtr output)
 }
 
 /* maybe we should care about DDC1?  meh. */
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus)
 {
     ScrnInfoPtr	scrn = output->scrn;
@@ -2801,7 +2800,7 @@ static char *_xf86ConnectorNames[] = {
 					"Component", "LFP", "Proprietary",
 					"HDMI", "DisplayPort",
 				     };
-_X_EXPORT char *
+char *
 xf86ConnectorGetName(xf86ConnectorType connector)
 {
     return _xf86ConnectorNames[connector];
@@ -2886,7 +2885,7 @@ xf86_covering_crtc(ScrnInfoPtr pScrn,
  * not that the video shouldn't be displayed
  */
 
-_X_EXPORT Bool
+Bool
 xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
 			    xf86CrtcPtr *crtc_ret,
 			    xf86CrtcPtr desired_crtc,
@@ -2926,7 +2925,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
     return ret;
 }
 
-_X_EXPORT xf86_crtc_notify_proc_ptr
+xf86_crtc_notify_proc_ptr
 xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -2938,7 +2937,7 @@ xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new)
     return old;
 }
 
-_X_EXPORT void
+void
 xf86_unwrap_crtc_notify(ScreenPtr screen, xf86_crtc_notify_proc_ptr old)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -2947,7 +2946,7 @@ xf86_unwrap_crtc_notify(ScreenPtr screen, xf86_crtc_notify_proc_ptr old)
     config->xf86_crtc_notify = old;
 }
 
-_X_EXPORT void
+void
 xf86_crtc_notify(ScreenPtr screen)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 4b6f7d2..24195a3 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -638,7 +638,7 @@ typedef struct _xf86CrtcConfig {
 
 } xf86CrtcConfigRec, *xf86CrtcConfigPtr;
 
-extern int xf86CrtcConfigPrivateIndex;
+extern _X_EXPORT int xf86CrtcConfigPrivateIndex;
 
 #define XF86_CRTC_CONFIG_PTR(p)	((xf86CrtcConfigPtr) ((p)->privates[xf86CrtcConfigPrivateIndex].ptr))
 
@@ -646,11 +646,11 @@ extern int xf86CrtcConfigPrivateIndex;
  * Initialize xf86CrtcConfig structure
  */
 
-void
+extern _X_EXPORT void
 xf86CrtcConfigInit (ScrnInfoPtr				scrn,
 		    const xf86CrtcConfigFuncsRec	*funcs);
 
-void
+extern _X_EXPORT void
 xf86CrtcSetSizeRange (ScrnInfoPtr scrn,
 		      int minWidth, int minHeight,
 		      int maxWidth, int maxHeight);
@@ -658,11 +658,11 @@ xf86CrtcSetSizeRange (ScrnInfoPtr scrn,
 /*
  * Crtc functions
  */
-xf86CrtcPtr
+extern _X_EXPORT xf86CrtcPtr
 xf86CrtcCreate (ScrnInfoPtr		scrn,
 		const xf86CrtcFuncsRec	*funcs);
 
-void
+extern _X_EXPORT void
 xf86CrtcDestroy (xf86CrtcPtr		crtc);
 
 
@@ -670,61 +670,62 @@ xf86CrtcDestroy (xf86CrtcPtr		crtc);
  * Sets the given video mode on the given crtc
  */
 
-Bool
+extern _X_EXPORT Bool
 xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation,
 			  RRTransformPtr transform, int x, int y);
 
-Bool
+extern _X_EXPORT Bool
 xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation,
 		 int x, int y);
 
 /*
  * Assign crtc rotation during mode set
  */
-Bool
+extern _X_EXPORT Bool
 xf86CrtcRotate (xf86CrtcPtr crtc);
 
 /*
  * free shadow memory allocated for all crtcs
  */
-void
+extern _X_EXPORT void
 xf86RotateFreeShadow(ScrnInfoPtr pScrn);
 
 /*
  * Clean up rotation during CloseScreen
  */
-void
+extern _X_EXPORT void
 xf86RotateCloseScreen (ScreenPtr pScreen);
 
 /**
  * Return whether any output is assigned to the crtc
  */
-Bool
+extern _X_EXPORT Bool
 xf86CrtcInUse (xf86CrtcPtr crtc);
 
 /*
  * Output functions
  */
-xf86OutputPtr
+extern _X_EXPORT xf86OutputPtr
 xf86OutputCreate (ScrnInfoPtr		    scrn,
 		  const xf86OutputFuncsRec  *funcs,
 		  const char		    *name);
 
-void
+extern _X_EXPORT void
 xf86OutputUseScreenMonitor (xf86OutputPtr output, Bool use_screen_monitor);
 
-Bool
+extern _X_EXPORT Bool
 xf86OutputRename (xf86OutputPtr output, const char *name);
 
-void
+extern _X_EXPORT void
 xf86OutputDestroy (xf86OutputPtr	output);
 
-void
+extern _X_EXPORT void
 xf86ProbeOutputModes (ScrnInfoPtr pScrn, int maxX, int maxY);
 
-void
+extern _X_EXPORT void
 xf86SetScrnInfoModes (ScrnInfoPtr pScrn);
 
+extern _X_EXPORT
 #ifdef RANDR_13_INTERFACE
 int
 #else
@@ -732,52 +733,52 @@ Bool
 #endif
 xf86CrtcScreenInit (ScreenPtr pScreen);
 
-Bool
+extern _X_EXPORT Bool
 xf86InitialConfiguration (ScrnInfoPtr pScrn, Bool canGrow);
 
-void
+extern _X_EXPORT void
 xf86DPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags);
     
-Bool
+extern _X_EXPORT Bool
 xf86SaveScreen(ScreenPtr pScreen, int mode);
 
-void
+extern _X_EXPORT void
 xf86DisableUnusedFunctions(ScrnInfoPtr pScrn);
 
-DisplayModePtr
+extern _X_EXPORT DisplayModePtr
 xf86OutputFindClosestMode (xf86OutputPtr output, DisplayModePtr desired);
     
-Bool
+extern _X_EXPORT Bool
 xf86SetSingleMode (ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation);
 
 /**
  * Set the EDID information for the specified output
  */
-void
+extern _X_EXPORT void
 xf86OutputSetEDID (xf86OutputPtr output, xf86MonPtr edid_mon);
 
 /**
  * Return the list of modes supported by the EDID information
  * stored in 'output'
  */
-DisplayModePtr
+extern _X_EXPORT DisplayModePtr
 xf86OutputGetEDIDModes (xf86OutputPtr output);
 
-xf86MonPtr
+extern _X_EXPORT xf86MonPtr
 xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus);
 
 /**
  * Initialize dga for this screen
  */
 
-Bool
+extern _X_EXPORT Bool
 xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
 
 /**
  * Re-initialize dga for this screen (as when the set of modes changes)
  */
 
-Bool
+extern _X_EXPORT Bool
 xf86DiDGAReInit (ScreenPtr pScreen);
 
 /*
@@ -785,13 +786,13 @@ xf86DiDGAReInit (ScreenPtr pScreen);
  * the information from the outputs
  */
 
-void
+extern _X_EXPORT void
 xf86CrtcSetScreenSubpixelOrder (ScreenPtr pScreen);
 
 /*
  * Get a standard string name for a connector type 
  */
-char *
+extern _X_EXPORT char *
 xf86ConnectorGetName(xf86ConnectorType connector);
 
 /*
@@ -799,7 +800,7 @@ xf86ConnectorGetName(xf86ConnectorType connector);
  * modes (used in EnterVT functions, or at server startup)
  */
 
-Bool
+extern _X_EXPORT Bool
 xf86SetDesiredModes (ScrnInfoPtr pScrn);
 
 /**
@@ -808,7 +809,7 @@ xf86SetDesiredModes (ScrnInfoPtr pScrn);
  *
  * Driver should call this from ScreenInit function
  */
-Bool
+extern _X_EXPORT Bool
 xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags);
 
 /**
@@ -818,25 +819,25 @@ xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags);
  * 
  * Driver should call this from crtc commit function.
  */
-void
+extern _X_EXPORT void
 xf86_reload_cursors (ScreenPtr screen);
 
 /**
  * Called from EnterVT to turn the cursors back on
  */
-void
+extern _X_EXPORT void
 xf86_show_cursors (ScrnInfoPtr scrn);
 
 /**
  * Called by the driver to turn cursors off
  */
-void
+extern _X_EXPORT void
 xf86_hide_cursors (ScrnInfoPtr scrn);
 
 /**
  * Clean up CRTC-based cursor code. Driver must call this at CloseScreen time.
  */
-void
+extern _X_EXPORT void
 xf86_cursors_fini (ScreenPtr screen);
 
 /*
@@ -845,7 +846,7 @@ xf86_cursors_fini (ScreenPtr screen);
  * wraps xf86XVClipVideoHelper()
  */
 
-Bool
+extern _X_EXPORT Bool
 xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
 			    xf86CrtcPtr *crtc_ret,
 			    xf86CrtcPtr desired_crtc,
@@ -858,13 +859,13 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
 			    INT32	width,
 			    INT32	height);
     
-xf86_crtc_notify_proc_ptr
+extern _X_EXPORT xf86_crtc_notify_proc_ptr
 xf86_wrap_crtc_notify (ScreenPtr pScreen, xf86_crtc_notify_proc_ptr new);
 
-void
+extern _X_EXPORT void
 xf86_unwrap_crtc_notify(ScreenPtr pScreen, xf86_crtc_notify_proc_ptr old);
 
-void
+extern _X_EXPORT void
 xf86_crtc_notify(ScreenPtr pScreen);
 
 #endif /* _XF86CRTC_H_ */
diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 3106f05..cbaab57 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -265,7 +265,7 @@ xf86_crtc_hide_cursor (xf86CrtcPtr crtc)
     }
 }
 
-_X_EXPORT void
+void
 xf86_hide_cursors (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -291,7 +291,7 @@ xf86_crtc_show_cursor (xf86CrtcPtr crtc)
     }
 }
 
-_X_EXPORT void
+void
 xf86_show_cursors (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -543,7 +543,7 @@ xf86_load_cursor_argb (ScrnInfoPtr scrn, CursorPtr cursor)
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -594,7 +594,7 @@ xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags)
  * Reloads cursor images as needed, then adjusts cursor positions
  */
 
-_X_EXPORT void
+void
 xf86_reload_cursors (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn;
@@ -649,7 +649,7 @@ xf86_reload_cursors (ScreenPtr screen)
 /**
  * Clean up CRTC-based cursor code
  */
-_X_EXPORT void
+void
 xf86_cursors_fini (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
index f40d0ab..0964cef 100644
--- a/hw/xfree86/modes/xf86DiDGA.c
+++ b/hw/xfree86/modes/xf86DiDGA.c
@@ -255,7 +255,7 @@ static DGAFunctionRec xf86_dga_funcs = {
    NULL
 };
 
-_X_EXPORT Bool
+Bool
 xf86DiDGAReInit (ScreenPtr pScreen)
 {
     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
@@ -267,7 +267,7 @@ xf86DiDGAReInit (ScreenPtr pScreen)
     return DGAReInitModes (pScreen, xf86_config->dga_modes, xf86_config->dga_nmode);
 }
 
-_X_EXPORT Bool
+Bool
 xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
 {
     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 2ce4e13..1413e87 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -693,7 +693,7 @@ xf86DDCDetectQuirks(int scrnIndex, xf86MonPtr DDC, Bool verbose)
  * Note that some quirks applying to the mode list are still implemented in
  * xf86DDCGetModes.
  */
-_X_EXPORT void
+void
 xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC)
 {
     ddc_quirk_t quirks = xf86DDCDetectQuirks (scrnIndex, DDC, FALSE);
@@ -759,7 +759,7 @@ xf86DDCSetPreferredRefresh(int scrnIndex, DisplayModePtr modes,
 	    best->type |= M_T_PREFERRED;
 }
 
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
 {
     int		    i;
@@ -833,7 +833,7 @@ xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
 /*
  * Fill out MonPtr with xf86MonPtr information.
  */
-_X_EXPORT void
+void
 xf86DDCMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC)
 {
     DisplayModePtr Modes = NULL, Mode;
diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c
index 959e376..033d4ae 100644
--- a/hw/xfree86/modes/xf86Modes.c
+++ b/hw/xfree86/modes/xf86Modes.c
@@ -51,7 +51,7 @@ extern XF86ConfigPtr xf86configptr;
  *
  * Exact copy of xf86Mode.c's.
  */
-_X_EXPORT double
+double
 xf86ModeHSync(const DisplayModeRec *mode)
 {
     double hsync = 0.0;
@@ -69,7 +69,7 @@ xf86ModeHSync(const DisplayModeRec *mode)
  *
  * Exact copy of xf86Mode.c's.
  */
-_X_EXPORT double
+double
 xf86ModeVRefresh(const DisplayModeRec *mode)
 {
     double refresh = 0.0;
@@ -88,7 +88,7 @@ xf86ModeVRefresh(const DisplayModeRec *mode)
     return refresh;
 }
 
-_X_EXPORT int
+int
 xf86ModeWidth (const DisplayModeRec *mode, Rotation rotation)
 {
     switch (rotation & 0xf) {
@@ -103,7 +103,7 @@ xf86ModeWidth (const DisplayModeRec *mode, Rotation rotation)
     }
 }
 
-_X_EXPORT int
+int
 xf86ModeHeight (const DisplayModeRec *mode, Rotation rotation)
 {
     switch (rotation & 0xf) {
@@ -119,7 +119,7 @@ xf86ModeHeight (const DisplayModeRec *mode, Rotation rotation)
 }
 
 /** Calculates the memory bandwidth (in MiB/sec) of a mode. */
-_X_EXPORT unsigned int
+unsigned int
 xf86ModeBandwidth(DisplayModePtr mode, int depth)
 {
     float a_active, a_total, active_percent, pixels_per_second;
@@ -137,7 +137,7 @@ xf86ModeBandwidth(DisplayModePtr mode, int depth)
 }
 
 /** Sets a default mode name of <width>x<height> on a mode. */
-_X_EXPORT void
+void
 xf86SetModeDefaultName(DisplayModePtr mode)
 {
     if (mode->name != NULL)
@@ -154,7 +154,7 @@ xf86SetModeDefaultName(DisplayModePtr mode)
  *
  * Exact copy of xf86Mode.c's.
  */
-_X_EXPORT void
+void
 xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
 {
     if ((p == NULL) || ((p->type & M_T_CRTC_C) == M_T_BUILTIN))
@@ -205,7 +205,7 @@ xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
 /**
  * Allocates and returns a copy of pMode, including pointers within pMode.
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86DuplicateMode(const DisplayModeRec *pMode)
 {
     DisplayModePtr pNew;
@@ -229,7 +229,7 @@ xf86DuplicateMode(const DisplayModeRec *pMode)
  *
  * \param modeList doubly-linked mode list
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
 {
     DisplayModePtr first = NULL, last = NULL;
@@ -263,7 +263,7 @@ xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
  *
  * This isn't in xf86Modes.c, but it might deserve to be there.
  */
-_X_EXPORT Bool
+Bool
 xf86ModesEqual(const DisplayModeRec *pMode1, const DisplayModeRec *pMode2)
 {
      if (pMode1->Clock == pMode2->Clock &&
@@ -299,7 +299,7 @@ add(char **p, char *new)
  *
  * Convenient VRefresh printing was added, though, compared to xf86Mode.c
  */
-_X_EXPORT void
+void
 xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
 {
     char tmp[256];
@@ -345,7 +345,7 @@ xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
  *
  * \bug only V_INTERLACE and V_DBLSCAN are supported.  Is that enough?
  */
-_X_EXPORT void
+void
 xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			    int flags)
 {
@@ -364,7 +364,7 @@ xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
  *
  * \param modeList doubly-linked list of modes.
  */
-_X_EXPORT void
+void
 xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			  int maxX, int maxY, int maxPitch)
 {
@@ -391,7 +391,7 @@ xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
  *
  * \param modeList doubly-linked list of modes.
  */
-_X_EXPORT void
+void
 xf86ValidateModesSync(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			  MonPtr mon)
 {
@@ -436,7 +436,7 @@ xf86ValidateModesSync(ScrnInfoPtr pScrn, DisplayModePtr modeList,
  * \param max pointer to maximums of clock ranges
  * \param n_ranges number of ranges.
  */
-_X_EXPORT void
+void
 xf86ValidateModesClocks(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			    int *min, int *max, int n_ranges)
 {
@@ -469,7 +469,7 @@ xf86ValidateModesClocks(ScrnInfoPtr pScrn, DisplayModePtr modeList,
  *
  * \param modeList doubly-linked list of modes.
  */
-_X_EXPORT void
+void
 xf86ValidateModesUserConfig(ScrnInfoPtr pScrn, DisplayModePtr modeList)
 {
     DisplayModePtr mode;
@@ -501,7 +501,7 @@ xf86ValidateModesUserConfig(ScrnInfoPtr pScrn, DisplayModePtr modeList)
  * \param bandwidth bandwidth in MHz.
  * \param depth color depth.
  */
-_X_EXPORT void
+void
 xf86ValidateModesBandwidth(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			   unsigned int bandwidth, int depth)
 {
@@ -518,7 +518,7 @@ xf86ValidateModesBandwidth(ScrnInfoPtr pScrn, DisplayModePtr modeList,
     }
 }
 
-_X_EXPORT Bool
+Bool
 xf86ModeIsReduced(const DisplayModeRec *mode)
 {
     if ((((mode->HDisplay * 5 / 4) & ~0x07) > mode->HTotal) &&
@@ -535,7 +535,7 @@ xf86ModeIsReduced(const DisplayModeRec *mode)
  *
  * \param modeList doubly-linked list of modes.
  */
-_X_EXPORT void
+void
 xf86ValidateModesReducedBlanking(ScrnInfoPtr pScrn, DisplayModePtr modeList)
 {
     DisplayModePtr mode;
@@ -558,7 +558,7 @@ xf86ValidateModesReducedBlanking(ScrnInfoPtr pScrn, DisplayModePtr modeList)
  * \param verbose determines whether the reason for mode invalidation is
  *	  printed.
  */
-_X_EXPORT void
+void
 xf86PruneInvalidModes(ScrnInfoPtr pScrn, DisplayModePtr *modeList,
 			  Bool verbose)
 {
@@ -592,7 +592,7 @@ xf86PruneInvalidModes(ScrnInfoPtr pScrn, DisplayModePtr *modeList,
  *
  * \param modes doubly-linked mode list.
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new)
 {
     if (modes == NULL)
@@ -658,7 +658,7 @@ xf86GetConfigModes (XF86ConfModeLinePtr conf_mode)
 /**
  * Build a mode list from a monitor configuration
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86GetMonitorModes (ScrnInfoPtr pScrn, XF86ConfMonitorPtr conf_monitor)
 {
     DisplayModePtr	    modes = NULL;
@@ -690,7 +690,7 @@ xf86GetMonitorModes (ScrnInfoPtr pScrn, XF86ConfMonitorPtr conf_monitor)
 /**
  * Build a mode list containing all of the default modes
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86GetDefaultModes (Bool interlaceAllowed, Bool doubleScanAllowed)
 {
     DisplayModePtr  head = NULL, mode;
diff --git a/hw/xfree86/modes/xf86Modes.h b/hw/xfree86/modes/xf86Modes.h
index 2fb6a37..74cf5e7 100644
--- a/hw/xfree86/modes/xf86Modes.h
+++ b/hw/xfree86/modes/xf86Modes.h
@@ -40,75 +40,75 @@
 #include "xf86Rename.h"
 #endif
 
-double xf86ModeHSync(const DisplayModeRec *mode);
-double xf86ModeVRefresh(const DisplayModeRec *mode);
-unsigned int xf86ModeBandwidth(DisplayModePtr mode, int depth);
+extern _X_EXPORT double xf86ModeHSync(const DisplayModeRec *mode);
+extern _X_EXPORT double xf86ModeVRefresh(const DisplayModeRec *mode);
+extern _X_EXPORT unsigned int xf86ModeBandwidth(DisplayModePtr mode, int depth);
 
-int
+extern _X_EXPORT int
 xf86ModeWidth (const DisplayModeRec *mode, Rotation rotation);
     
-int
+extern _X_EXPORT int
 xf86ModeHeight (const DisplayModeRec *mode, Rotation rotation);
 
-DisplayModePtr xf86DuplicateMode(const DisplayModeRec *pMode);
-DisplayModePtr xf86DuplicateModes(ScrnInfoPtr pScrn,
+extern _X_EXPORT DisplayModePtr xf86DuplicateMode(const DisplayModeRec *pMode);
+extern _X_EXPORT DisplayModePtr xf86DuplicateModes(ScrnInfoPtr pScrn,
 				       DisplayModePtr modeList);
-void xf86SetModeDefaultName(DisplayModePtr mode);
-void xf86SetModeCrtc(DisplayModePtr p, int adjustFlags);
-Bool xf86ModesEqual(const DisplayModeRec *pMode1,
+extern _X_EXPORT void xf86SetModeDefaultName(DisplayModePtr mode);
+extern _X_EXPORT void xf86SetModeCrtc(DisplayModePtr p, int adjustFlags);
+extern _X_EXPORT Bool xf86ModesEqual(const DisplayModeRec *pMode1,
 		    const DisplayModeRec *pMode2);
-void xf86PrintModeline(int scrnIndex,DisplayModePtr mode);
-DisplayModePtr xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new);
+extern _X_EXPORT void xf86PrintModeline(int scrnIndex,DisplayModePtr mode);
+extern _X_EXPORT DisplayModePtr xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new);
 
-DisplayModePtr xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
-DisplayModePtr xf86CVTMode(int HDisplay, int VDisplay, float VRefresh,
+extern _X_EXPORT DisplayModePtr xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
+extern _X_EXPORT DisplayModePtr xf86CVTMode(int HDisplay, int VDisplay, float VRefresh,
 			   Bool Reduced, Bool Interlaced);
-DisplayModePtr xf86GTFMode(int h_pixels, int v_lines, float freq, int interlaced, int margins);
+extern _X_EXPORT DisplayModePtr xf86GTFMode(int h_pixels, int v_lines, float freq, int interlaced, int margins);
 
-Bool
+extern _X_EXPORT Bool
 xf86ModeIsReduced(const DisplayModeRec *mode);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 		       int flags);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesClocks(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			int *min, int *max, int n_ranges);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 		      int maxX, int maxY, int maxPitch);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesSync(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 		      MonPtr mon);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesBandwidth(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			   unsigned int bandwidth, int depth);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesReducedBlanking(ScrnInfoPtr pScrn, DisplayModePtr modeList);
 
-void
+extern _X_EXPORT void
 xf86PruneInvalidModes(ScrnInfoPtr pScrn, DisplayModePtr *modeList,
 		      Bool verbose);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 		       int flags);
 
-void
+extern _X_EXPORT void
 xf86ValidateModesUserConfig(ScrnInfoPtr pScrn, DisplayModePtr modeList);
 
-DisplayModePtr
+extern _X_EXPORT DisplayModePtr
 xf86GetMonitorModes (ScrnInfoPtr pScrn, XF86ConfMonitorPtr conf_monitor);
 
-DisplayModePtr
+extern _X_EXPORT DisplayModePtr
 xf86GetDefaultModes (Bool interlaceAllowed, Bool doubleScanAllowed);
 
-void
+extern _X_EXPORT void
 xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC);
 
 #endif /* _XF86MODES_H_ */
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 9d7750f..62f1edb 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -237,7 +237,7 @@ xf86RandR12SetMode (ScreenPtr	    pScreen,
     return ret;
 }
 
-_X_EXPORT Bool
+Bool
 xf86RandR12SetConfig (ScreenPtr		pScreen,
 		    Rotation		rotation,
 		    int			rate,
@@ -371,7 +371,7 @@ finish:
     return ret;
 }
 
-_X_EXPORT Rotation
+Rotation
 xf86RandR12GetRotation(ScreenPtr pScreen)
 {
     XF86RandRInfoPtr	    randrp = XF86RANDRINFO(pScreen);
@@ -379,7 +379,7 @@ xf86RandR12GetRotation(ScreenPtr pScreen)
     return randrp->rotation;
 }
 
-_X_EXPORT Bool
+Bool
 xf86RandR12CreateScreenResources (ScreenPtr pScreen)
 {
     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
@@ -484,7 +484,7 @@ xf86RandR12CreateScreenResources (ScreenPtr pScreen)
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86RandR12Init (ScreenPtr pScreen)
 {
     rrScrPrivPtr	rp;
@@ -542,7 +542,7 @@ xf86RandR12Init (ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations)
 {
     XF86RandRInfoPtr	randrp;
@@ -568,7 +568,7 @@ xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations)
     randrp->supported_rotations = rotations;
 }
 
-_X_EXPORT void
+void
 xf86RandR12SetTransformSupport (ScreenPtr pScreen, Bool transforms)
 {
     XF86RandRInfoPtr	randrp;
@@ -593,7 +593,7 @@ xf86RandR12SetTransformSupport (ScreenPtr pScreen, Bool transforms)
 #endif
 }
 
-_X_EXPORT void
+void
 xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr pScrn, int *x, int *y)
 {
     ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
@@ -1162,7 +1162,7 @@ xf86RandR12CreateScreenResources12 (ScreenPtr pScreen)
  * to DGA, VidMode or hot key. Tell RandR
  */
 
-_X_EXPORT void
+void
 xf86RandR12TellChanged (ScreenPtr pScreen)
 {
     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
@@ -1220,7 +1220,7 @@ xf86RandR12Init12 (ScreenPtr pScreen)
 
 #endif
 
-_X_EXPORT Bool
+Bool
 xf86RandR12PreInit (ScrnInfoPtr pScrn)
 {
     return TRUE;
diff --git a/hw/xfree86/modes/xf86RandR12.h b/hw/xfree86/modes/xf86RandR12.h
index 17a2dcc..c8d9918 100644
--- a/hw/xfree86/modes/xf86RandR12.h
+++ b/hw/xfree86/modes/xf86RandR12.h
@@ -28,15 +28,15 @@
 #include "xf86Rename.h"
 #endif
 
-Bool xf86RandR12CreateScreenResources (ScreenPtr pScreen);
-Bool xf86RandR12Init(ScreenPtr pScreen);
-void xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotation);
-void xf86RandR12SetTransformSupport (ScreenPtr pScreen, Bool transforms);
-Bool xf86RandR12SetConfig(ScreenPtr pScreen, Rotation rotation, int rate,
+extern _X_EXPORT Bool xf86RandR12CreateScreenResources (ScreenPtr pScreen);
+extern _X_EXPORT Bool xf86RandR12Init(ScreenPtr pScreen);
+extern _X_EXPORT void xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotation);
+extern _X_EXPORT void xf86RandR12SetTransformSupport (ScreenPtr pScreen, Bool transforms);
+extern _X_EXPORT Bool xf86RandR12SetConfig(ScreenPtr pScreen, Rotation rotation, int rate,
 			RRScreenSizePtr pSize);
-Rotation xf86RandR12GetRotation(ScreenPtr pScreen);
-void xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr pScrn, int *x, int *y);
-Bool xf86RandR12PreInit (ScrnInfoPtr pScrn);
-void xf86RandR12TellChanged (ScreenPtr pScreen);
+extern _X_EXPORT Rotation xf86RandR12GetRotation(ScreenPtr pScreen);
+extern _X_EXPORT void xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr pScrn, int *x, int *y);
+extern _X_EXPORT Bool xf86RandR12PreInit (ScrnInfoPtr pScrn);
+extern _X_EXPORT void xf86RandR12TellChanged (ScreenPtr pScreen);
 
 #endif /* _XF86_RANDR_H_ */
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index d7f7b3b..9d7b373 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -331,7 +331,7 @@ xf86RotateDestroy (xf86CrtcPtr crtc)
     }
 }
 
-_X_EXPORT void
+void
 xf86RotateFreeShadow(ScrnInfoPtr pScrn)
 {
     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
@@ -349,7 +349,7 @@ xf86RotateFreeShadow(ScrnInfoPtr pScrn)
    }
 }
 
-_X_EXPORT void
+void
 xf86RotateCloseScreen (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -387,7 +387,7 @@ xf86CrtcFitsScreen (xf86CrtcPtr crtc, struct pict_f_transform *crtc_to_fb)
 	    0 <= b.y1 && b.y2 <= pScreen->height);
 }
 
-_X_EXPORT Bool
+Bool
 xf86CrtcRotate (xf86CrtcPtr crtc)
 {
     ScrnInfoPtr		pScrn = crtc->scrn;
diff --git a/hw/xfree86/modes/xf86cvt.c b/hw/xfree86/modes/xf86cvt.c
index e9c74aa..1da5fe5 100644
--- a/hw/xfree86/modes/xf86cvt.c
+++ b/hw/xfree86/modes/xf86cvt.c
@@ -63,7 +63,7 @@
  * want that. -- libv
  *
  */
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
 	    Bool Interlaced)
 {
diff --git a/hw/xfree86/modes/xf86gtf.c b/hw/xfree86/modes/xf86gtf.c
index fed56bd..9d5d50a 100644
--- a/hw/xfree86/modes/xf86gtf.c
+++ b/hw/xfree86/modes/xf86gtf.c
@@ -102,7 +102,7 @@
  * XServer of fbset mode descriptions, from what I can tell).
  */
 
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 xf86GTFMode(int h_pixels, int v_lines, float freq, int interlaced, int margins)
 {
     DisplayModeRec *mode = xnfcalloc(1, sizeof(DisplayModeRec));
diff --git a/hw/xfree86/os-support/bsd/alpha_video.c b/hw/xfree86/os-support/bsd/alpha_video.c
index 9de25f6..4b54843 100644
--- a/hw/xfree86/os-support/bsd/alpha_video.c
+++ b/hw/xfree86/os-support/bsd/alpha_video.c
@@ -355,7 +355,7 @@ unmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
  * Read BIOS via mmap()ing DEV_MEM
  */
 
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
@@ -400,7 +400,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 
 extern int ioperm(unsigned long from, unsigned long num, int on);
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO()
 {
     if (!ioperm(0, 65536, TRUE))
@@ -408,7 +408,7 @@ xf86EnableIO()
     return FALSE;
 }
 
-_X_EXPORT void
+void
 xf86DisableIO()
 {
 	return;
@@ -693,22 +693,22 @@ writeSparseNB32(int Value, pointer Base, register unsigned long Offset)
     return;
 }
 
-_X_EXPORT void (*xf86WriteMmio8)(int Value, pointer Base, unsigned long Offset) 
+void (*xf86WriteMmio8)(int Value, pointer Base, unsigned long Offset)
      = writeDense8;
-_X_EXPORT void (*xf86WriteMmio16)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmio16)(int Value, pointer Base, unsigned long Offset)
      = writeDense16;
-_X_EXPORT void (*xf86WriteMmio32)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmio32)(int Value, pointer Base, unsigned long Offset)
      = writeDense32;
-_X_EXPORT void (*xf86WriteMmioNB8)(int Value, pointer Base, unsigned long Offset) 
+void (*xf86WriteMmioNB8)(int Value, pointer Base, unsigned long Offset)
      = writeDenseNB8;
-_X_EXPORT void (*xf86WriteMmioNB16)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmioNB16)(int Value, pointer Base, unsigned long Offset)
      = writeDenseNB16;
-_X_EXPORT void (*xf86WriteMmioNB32)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmioNB32)(int Value, pointer Base, unsigned long Offset)
      = writeDenseNB32;
-_X_EXPORT int  (*xf86ReadMmio8)(pointer Base, unsigned long Offset) 
+int  (*xf86ReadMmio8)(pointer Base, unsigned long Offset)
      = readDense8;
-_X_EXPORT int  (*xf86ReadMmio16)(pointer Base, unsigned long Offset)
+int  (*xf86ReadMmio16)(pointer Base, unsigned long Offset)
      = readDense16;
-_X_EXPORT int  (*xf86ReadMmio32)(pointer Base, unsigned long Offset)
+int  (*xf86ReadMmio32)(pointer Base, unsigned long Offset)
      = readDense32;
 
diff --git a/hw/xfree86/os-support/bsd/arm_video.c b/hw/xfree86/os-support/bsd/arm_video.c
index a0ebdf2..466a8a0 100644
--- a/hw/xfree86/os-support/bsd/arm_video.c
+++ b/hw/xfree86/os-support/bsd/arm_video.c
@@ -233,7 +233,7 @@ unmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
  * Read BIOS via mmap()ing DEV_MEM
  */
 
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
@@ -450,7 +450,7 @@ armUnmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
 #ifdef USE_DEV_IO
 static int IoFd = -1;
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO()
 {
 	if (IoFd >= 0)
@@ -465,7 +465,7 @@ xf86EnableIO()
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86DisableIO()
 {
 	if (IoFd < 0)
diff --git a/hw/xfree86/os-support/bsd/bsd_VTsw.c b/hw/xfree86/os-support/bsd/bsd_VTsw.c
index 81eec52..476a0e9 100644
--- a/hw/xfree86/os-support/bsd/bsd_VTsw.c
+++ b/hw/xfree86/os-support/bsd/bsd_VTsw.c
@@ -41,7 +41,7 @@
  * This function is the signal handler for the VT-switching signal.  It
  * is only referenced inside the OS-support layer.
  */
-_X_EXPORT void
+void
 xf86VTRequest(int sig)
 {
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
@@ -52,7 +52,7 @@ xf86VTRequest(int sig)
 	return;
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchPending()
 {
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
@@ -63,7 +63,7 @@ xf86VTSwitchPending()
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchAway()
 {
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
@@ -78,7 +78,7 @@ xf86VTSwitchAway()
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchTo()
 {
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
diff --git a/hw/xfree86/os-support/bsd/bsd_apm.c b/hw/xfree86/os-support/bsd/bsd_apm.c
index feaed21..43eda74 100644
--- a/hw/xfree86/os-support/bsd/bsd_apm.c
+++ b/hw/xfree86/os-support/bsd/bsd_apm.c
@@ -108,7 +108,7 @@ bsdPMConfirmEventToOs(int fd, pmEvent event)
     }
 }
 
-_X_EXPORT PMClose
+PMClose
 xf86OSPMOpen(void)
 {
     int fd;
diff --git a/hw/xfree86/os-support/bsd/bsd_bell.c b/hw/xfree86/os-support/bsd/bsd_bell.c
index 0d24201..55eb752 100644
--- a/hw/xfree86/os-support/bsd/bsd_bell.c
+++ b/hw/xfree86/os-support/bsd/bsd_bell.c
@@ -41,7 +41,7 @@
 #define KBD_FD(i) ((i).kbdFd != -1 ? (i).kbdFd : (i).consoleFd)
 #endif
 
-_X_EXPORT void
+void
 xf86OSRingBell(int loudness, int pitch, int duration)
 {
 #ifdef WSCONS_SUPPORT
diff --git a/hw/xfree86/os-support/bsd/bsd_init.c b/hw/xfree86/os-support/bsd/bsd_init.c
index 8425239..cbb9e48 100644
--- a/hw/xfree86/os-support/bsd/bsd_init.c
+++ b/hw/xfree86/os-support/bsd/bsd_init.c
@@ -152,7 +152,7 @@ static xf86ConsOpen_t xf86ConsTab[] = {
 };
 
 
-_X_EXPORT void
+void
 xf86OpenConsole()
 {
     int i, fd = -1;
@@ -644,7 +644,7 @@ xf86OpenWScons()
 
 #endif /* WSCONS_SUPPORT */
 
-_X_EXPORT void
+void
 xf86CloseConsole()
 {
 #if defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT)
@@ -704,7 +704,7 @@ xf86CloseConsole()
     return;
 }
 
-_X_EXPORT int
+int
 xf86ProcessArgument(int argc, char *argv[], int i)
 {
 	/*
@@ -732,7 +732,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	return(0);
 }
 
-_X_EXPORT void
+void
 xf86UseMsg()
 {
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
diff --git a/hw/xfree86/os-support/bsd/bsd_kmod.c b/hw/xfree86/os-support/bsd/bsd_kmod.c
index b6c7558..34e4341 100644
--- a/hw/xfree86/os-support/bsd/bsd_kmod.c
+++ b/hw/xfree86/os-support/bsd/bsd_kmod.c
@@ -19,7 +19,7 @@
  * Return:
  *    0 for failure, 1 for success
  */
-_X_EXPORT int xf86LoadKernelModule(const char *modName)
+int xf86LoadKernelModule(const char *modName)
 {
     if (kldload(modName) != -1)
 	return 1;
diff --git a/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c b/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c
index db7dfbc..b37070c 100644
--- a/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c
+++ b/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c
@@ -153,7 +153,7 @@ bsdPMConfirmEventToOs(int dummyfd, pmEvent event)
     }
 }
 
-_X_EXPORT PMClose
+PMClose
 xf86OSPMOpen(void)
 {
     int kq;
diff --git a/hw/xfree86/os-support/bsd/i386_video.c b/hw/xfree86/os-support/bsd/i386_video.c
index 4fc6dd7..10db9c7 100644
--- a/hw/xfree86/os-support/bsd/i386_video.c
+++ b/hw/xfree86/os-support/bsd/i386_video.c
@@ -279,7 +279,7 @@ unmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
  * Read BIOS via mmap()ing DEV_MEM
  */
 
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
@@ -331,7 +331,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 
 static Bool ExtendedEnabled = FALSE;
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO()
 {
 	if (ExtendedEnabled)
@@ -353,7 +353,7 @@ xf86EnableIO()
 	return TRUE;
 }
 	
-_X_EXPORT void
+void
 xf86DisableIO()
 {
 	if (!ExtendedEnabled)
@@ -448,7 +448,7 @@ xf86DisableIO()
 /***************************************************************************/
 /* Set TV output mode                                                      */
 /***************************************************************************/
-_X_EXPORT void
+void
 xf86SetTVOut(int mode)
 {    
     switch (xf86Info.consType)
@@ -473,7 +473,7 @@ xf86SetTVOut(int mode)
     return;
 }
 
-_X_EXPORT void
+void
 xf86SetRGBOut()
 {    
     switch (xf86Info.consType)
diff --git a/hw/xfree86/os-support/bsd/ppc_video.c b/hw/xfree86/os-support/bsd/ppc_video.c
index 86b7fb3..7e3fcdb 100644
--- a/hw/xfree86/os-support/bsd/ppc_video.c
+++ b/hw/xfree86/os-support/bsd/ppc_video.c
@@ -68,7 +68,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
 }
 
 
-_X_EXPORT volatile unsigned char *ioBase = MAP_FAILED;
+volatile unsigned char *ioBase = MAP_FAILED;
 
 static pointer
 ppcMapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
@@ -97,7 +97,7 @@ ppcUnmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
 	munmap(Base, Size);
 }
 
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
@@ -123,7 +123,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	return rv;
 }
 
-_X_EXPORT Bool xf86EnableIO()
+Bool xf86EnableIO()
 {
         int fd = xf86Info.screenFd;
 
@@ -141,7 +141,7 @@ _X_EXPORT Bool xf86EnableIO()
 	return TRUE;
 }
 
-_X_EXPORT void xf86DisableIO()
+void xf86DisableIO()
 {
 
         if (ioBase != MAP_FAILED)
diff --git a/hw/xfree86/os-support/bsd/sparc64_video.c b/hw/xfree86/os-support/bsd/sparc64_video.c
index fe3b5e7..ea520c4 100644
--- a/hw/xfree86/os-support/bsd/sparc64_video.c
+++ b/hw/xfree86/os-support/bsd/sparc64_video.c
@@ -82,7 +82,7 @@ sparc64UnmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
 	munmap(Base, Size);
 }
 
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
diff --git a/hw/xfree86/os-support/bus/Pci.c b/hw/xfree86/os-support/bus/Pci.c
index 888a9e3..8c1aa6e 100644
--- a/hw/xfree86/os-support/bus/Pci.c
+++ b/hw/xfree86/os-support/bus/Pci.c
@@ -140,7 +140,7 @@
 
 pciBusFuncs_t *pciBusFuncs = NULL;
 
-_X_EXPORT ADDRESS
+ADDRESS
 pciBusAddrToHostAddr(PCITAG tag, PciAddrType type, ADDRESS addr)
 {
     if (pciBusFuncs && pciBusFuncs->pciAddrBusToHost)
@@ -149,7 +149,7 @@ pciBusAddrToHostAddr(PCITAG tag, PciAddrType type, ADDRESS addr)
 	return addr;
 }
 
-_X_EXPORT PCITAG
+PCITAG
 pciTag(int busnum, int devnum, int funcnum)
 {
 	return(PCI_MAKE_TAG(busnum,devnum,funcnum));
@@ -161,7 +161,7 @@ pciAddrNOOP(PCITAG tag, PciAddrType type, ADDRESS addr)
 	return(addr);
 }
 
-_X_EXPORT Bool
+Bool
 xf86scanpci(void)
 {
     Bool  success = FALSE;
diff --git a/hw/xfree86/os-support/bus/Sbus.c b/hw/xfree86/os-support/bus/Sbus.c
index 2fe34bc..0b6205f 100644
--- a/hw/xfree86/os-support/bus/Sbus.c
+++ b/hw/xfree86/os-support/bus/Sbus.c
@@ -41,7 +41,7 @@
 #include "xf86sbusBus.h"
 #include "xf86Sbus.h"
 
-_X_EXPORT int promRootNode;
+int promRootNode;
 
 static int promFd = -1;
 static int promCurrentNode;
@@ -51,7 +51,7 @@ static int promP1275 = -1;
 #define MAX_VAL		(4096-128-4)
 static struct openpromio *promOpio;
 
-_X_EXPORT sbusDevicePtr *xf86SbusInfo = NULL;
+sbusDevicePtr *xf86SbusInfo = NULL;
 
 struct sbus_devtable sbusDeviceTable[] = {
     { SBUS_DEVICE_BW2, FBTYPE_SUN2BW, "bwtwo", "sunbw2", "Sun Monochrome (bwtwo)" },
@@ -71,7 +71,7 @@ struct sbus_devtable sbusDeviceTable[] = {
     { 0, 0, NULL }
 };
 
-_X_EXPORT int
+int
 promGetSibling(int node)
 {
     promOpio->oprom_size = sizeof(int);
@@ -84,7 +84,7 @@ promGetSibling(int node)
     return *(int *)promOpio->oprom_array;
 }
 
-_X_EXPORT int
+int
 promGetChild(int node)
 {
     promOpio->oprom_size = sizeof(int);
@@ -97,7 +97,7 @@ promGetChild(int node)
     return *(int *)promOpio->oprom_array;
 }
 
-_X_EXPORT char *
+char *
 promGetProperty(const char *prop, int *lenp)
 {
     promOpio->oprom_size = MAX_VAL;
@@ -109,7 +109,7 @@ promGetProperty(const char *prop, int *lenp)
     return promOpio->oprom_array;
 }
 
-_X_EXPORT int
+int
 promGetBool(const char *prop)
 {
     promOpio->oprom_size = 0;
@@ -180,7 +180,7 @@ promIsP1275(void)
 #endif
 }
 
-_X_EXPORT void
+void
 sparcPromClose(void)
 {
     if (promOpenCount > 1) {
@@ -198,7 +198,7 @@ sparcPromClose(void)
     promOpenCount = 0;
 }
 
-_X_EXPORT int
+int
 sparcPromInit(void)
 {
     if (promOpenCount) {
@@ -224,7 +224,7 @@ sparcPromInit(void)
     return 0;
 }
 
-_X_EXPORT char *
+char *
 sparcPromGetProperty(sbusPromNodePtr pnode, const char *prop, int *lenp)
 {
     if (promSetNode(pnode))
@@ -232,7 +232,7 @@ sparcPromGetProperty(sbusPromNodePtr pnode, const char *prop, int *lenp)
     return promGetProperty(prop, lenp);
 }
 
-_X_EXPORT int
+int
 sparcPromGetBool(sbusPromNodePtr pnode, const char *prop)
 {
     if (promSetNode(pnode))
@@ -281,7 +281,7 @@ promWalkGetDriverName(int node, int oldnode)
     return NULL;
 }
 
-_X_EXPORT char *
+char *
 sparcDriverName(void)
 {
     char *name;
@@ -367,7 +367,7 @@ promWalkAssignNodes(int node, int oldnode, int flags, sbusDevicePtr *devicePtrs)
 	promWalkAssignNodes(nextnode, node, PROM_NODE_SIBLING | sbus, devicePtrs);
 }
 
-_X_EXPORT void
+void
 sparcPromAssignNodes(void)
 {
     sbusDevicePtr psdp, *psdpp;
@@ -509,7 +509,7 @@ promWalkNode2Pathname(char *path, int parent, int node, int searchNode, int type
     return 0;
 }
 
-_X_EXPORT char *
+char *
 sparcPromNode2Pathname(sbusPromNodePtr pnode)
 {
     char *ret;
@@ -578,7 +578,7 @@ promWalkPathname2Node(char *name, char *regstr, int parent, int type)
     }
 }
 
-_X_EXPORT int
+int
 sparcPromPathname2Node(const char *pathName)
 {
     int i;
@@ -609,7 +609,7 @@ sparcPromPathname2Node(const char *pathName)
     return i;
 }
 
-_X_EXPORT pointer
+pointer
 xf86MapSbusMem(sbusDevicePtr psdp, unsigned long offset, unsigned long size)
 {
     pointer ret;
@@ -636,7 +636,7 @@ xf86MapSbusMem(sbusDevicePtr psdp, unsigned long offset, unsigned long size)
     return (char *)ret + (offset - off);
 }
 
-_X_EXPORT void
+void
 xf86UnmapSbusMem(sbusDevicePtr psdp, pointer addr, unsigned long size)
 {
     unsigned long mask = getpagesize() - 1;
@@ -647,7 +647,7 @@ xf86UnmapSbusMem(sbusDevicePtr psdp, pointer addr, unsigned long size)
 }
 
 /* Tell OS that we are driving the HW cursor ourselves. */
-_X_EXPORT void
+void
 xf86SbusHideOsHwCursor(sbusDevicePtr psdp)
 {
     struct fbcursor fbcursor;
@@ -668,7 +668,7 @@ xf86SbusHideOsHwCursor(sbusDevicePtr psdp)
 }
 
 /* Set HW cursor colormap. */
-_X_EXPORT void
+void
 xf86SbusSetOsHwCursorCmap(sbusDevicePtr psdp, int bg, int fg)
 {
     struct fbcursor fbcursor;
diff --git a/hw/xfree86/os-support/bus/bsd_pci.c b/hw/xfree86/os-support/bus/bsd_pci.c
index 9b55d3a..17b52db 100644
--- a/hw/xfree86/os-support/bus/bsd_pci.c
+++ b/hw/xfree86/os-support/bus/bsd_pci.c
@@ -48,7 +48,7 @@
 
 #include "pciaccess.h"
 
-_X_EXPORT pointer
+pointer
 xf86MapDomainMemory(int ScreenNum, int Flags, struct pci_device *dev,
 		    ADDRESS Base, unsigned long Size)
 {
diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
index fdd10d1..5cb328d 100644
--- a/hw/xfree86/os-support/bus/linuxPci.c
+++ b/hw/xfree86/os-support/bus/linuxPci.c
@@ -464,7 +464,7 @@ linuxOpenLegacy(struct pci_device *dev, char *name)
  * returns a pointer to it.  The pointer is saved for future use if it's in
  * the legacy ISA memory space (memory in a domain between 0 and 1MB).
  */
-_X_EXPORT pointer
+pointer
 xf86MapDomainMemory(int ScreenNum, int Flags, struct pci_device *dev,
 		    ADDRESS Base, unsigned long Size)
 {
@@ -531,7 +531,7 @@ xf86MapLegacyIO(struct pci_device *dev)
     return (IOADDRESS)DomainMmappedIO[domain];
 }
 
-_X_EXPORT resPtr
+resPtr
 xf86AccResFromOS(resPtr pRes)
 {
     struct pci_device *dev;
diff --git a/hw/xfree86/os-support/bus/xf86Pci.h b/hw/xfree86/os-support/bus/xf86Pci.h
index 3a73678..415f071 100644
--- a/hw/xfree86/os-support/bus/xf86Pci.h
+++ b/hw/xfree86/os-support/bus/xf86Pci.h
@@ -251,13 +251,13 @@ typedef enum {
 
 
 /* Public PCI access functions */
-ADDRESS	      pciBusAddrToHostAddr(PCITAG tag, PciAddrType type, ADDRESS addr);
-PCITAG	      pciTag(int busnum, int devnum, int funcnum);
-Bool xf86scanpci(void);
+extern _X_EXPORT ADDRESS pciBusAddrToHostAddr(PCITAG tag, PciAddrType type, ADDRESS addr);
+extern _X_EXPORT PCITAG pciTag(int busnum, int devnum, int funcnum);
+extern _X_EXPORT Bool xf86scanpci(void);
 
 /* Domain access functions.  Some of these probably shouldn't be public */
-pointer xf86MapDomainMemory(int ScreenNum, int Flags, struct pci_device *dev,
+extern _X_EXPORT pointer xf86MapDomainMemory(int ScreenNum, int Flags, struct pci_device *dev,
     ADDRESS Base, unsigned long Size);
-IOADDRESS xf86MapLegacyIO(struct pci_device *dev);
+extern _X_EXPORT IOADDRESS xf86MapLegacyIO(struct pci_device *dev);
 
 #endif /* _XF86PCI_H */
diff --git a/hw/xfree86/os-support/hurd/hurd_bell.c b/hw/xfree86/os-support/hurd/hurd_bell.c
index 732a1ca..33965a4 100644
--- a/hw/xfree86/os-support/hurd/hurd_bell.c
+++ b/hw/xfree86/os-support/hurd/hurd_bell.c
@@ -30,7 +30,7 @@
 #include "xf86.h"
 #include "xf86Priv.h"
 
-_X_EXPORT void
+void
 xf86OSRingBell(int loudness, int pitch, int duration)
 {
     return;
diff --git a/hw/xfree86/os-support/hurd/hurd_init.c b/hw/xfree86/os-support/hurd/hurd_init.c
index 9f5e784..94e2615 100644
--- a/hw/xfree86/os-support/hurd/hurd_init.c
+++ b/hw/xfree86/os-support/hurd/hurd_init.c
@@ -43,19 +43,19 @@
 #include <assert.h>
 #include <mach.h>
 
-_X_EXPORT int 
+int
 xf86ProcessArgument( int argc,char **argv, int i )
 {
     return 0;
 }
-_X_EXPORT void 
+void
 xf86UseMsg()
 {
     return;
 }
 
 
-_X_EXPORT void 
+void
 xf86OpenConsole()
 {
     if( serverGeneration == 1 )
@@ -81,7 +81,7 @@ xf86OpenConsole()
     return;
 }
 
-_X_EXPORT void 
+void
 xf86CloseConsole()
 {
     close( xf86Info.consoleFd );
diff --git a/hw/xfree86/os-support/hurd/hurd_video.c b/hw/xfree86/os-support/hurd/hurd_video.c
index 87f5e90..9f2e2bd 100644
--- a/hw/xfree86/os-support/hurd/hurd_video.c
+++ b/hw/xfree86/os-support/hurd/hurd_video.c
@@ -41,7 +41,7 @@
 /**************************************************************************
  * Video Memory Mapping section                                            
  ***************************************************************************/
-_X_EXPORT pointer 
+pointer
 xf86MapVidMem(int ScreenNum,int Flags, unsigned long Base, unsigned long Size)
 {
     mach_port_t device,iopl_dev;
@@ -95,7 +95,7 @@ xf86MapVidMem(int ScreenNum,int Flags, unsigned long Base, unsigned long Size)
     return (pointer)addr;
 }
 
-_X_EXPORT void
+void
 xf86UnMapVidMem(int ScreenNum,pointer Base,unsigned long Size)
 {
     kern_return_t err = vm_deallocate(mach_task_self(), (int)Base, Size);
@@ -107,7 +107,7 @@ xf86UnMapVidMem(int ScreenNum,pointer Base,unsigned long Size)
     return;
 }
 
-_X_EXPORT Bool 
+Bool
 xf86LinearVidMem()
 {
     return(TRUE);
@@ -123,7 +123,7 @@ xf86LinearVidMem()
  */
 extern int ioperm(unsigned long __from, unsigned long __num, int __turn_on);
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO()
 {
     if (ioperm(0, 0x10000, 1)) {
@@ -135,20 +135,20 @@ xf86EnableIO()
     return TRUE;
 }
 	
-_X_EXPORT void
+void
 xf86DisableIO()
 {
     ioperm(0,0x10000,0);
     return;
 }
 
-_X_EXPORT void
+void
 xf86MapReadSideEffects(int ScreenNum, int Flags, pointer Base,
 	unsigned long Size)
 {
 }
 
-_X_EXPORT Bool
+Bool
 xf86CheckMTRR(int s)
 {
 	return FALSE;
diff --git a/hw/xfree86/os-support/linux/int10/linux.c b/hw/xfree86/os-support/linux/int10/linux.c
index 45ddaa8..8274bbb 100644
--- a/hw/xfree86/os-support/linux/int10/linux.c
+++ b/hw/xfree86/os-support/linux/int10/linux.c
@@ -71,7 +71,7 @@ static Int10LinuxSubModuleState int10LinuxLoadSubModule(ScrnInfoPtr pScrn);
 
 #endif /* DoSubModules */
 
-_X_EXPORT xf86Int10InfoPtr
+xf86Int10InfoPtr
 xf86ExtendedInitInt10(int entityIndex, int Flags)
 {
     xf86Int10InfoPtr pInt = NULL;
@@ -334,7 +334,7 @@ error0:
     return NULL;
 }
 
-_X_EXPORT Bool
+Bool
 MapCurrentInt10(xf86Int10InfoPtr pInt)
 {
     pointer addr;
@@ -393,7 +393,7 @@ MapCurrentInt10(xf86Int10InfoPtr pInt)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86FreeInt10(xf86Int10InfoPtr pInt)
 {
     if (!pInt)
@@ -422,7 +422,7 @@ xf86FreeInt10(xf86Int10InfoPtr pInt)
     xfree(pInt);
 }
 
-_X_EXPORT void *
+void *
 xf86Int10AllocPages(xf86Int10InfoPtr pInt, int num, int *off)
 {
     int pagesize = getpagesize();
@@ -451,7 +451,7 @@ xf86Int10AllocPages(xf86Int10InfoPtr pInt, int num, int *off)
     return ((linuxInt10Priv*)pInt->private)->base + ((i + 1) * pagesize);
 }
 
-_X_EXPORT void
+void
 xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase, int num)
 {
     int pagesize = getpagesize();
@@ -500,7 +500,7 @@ void write_l(xf86Int10InfoPtr pInt, int addr, CARD32 val)
     *((CARD32 *)(memType) addr) = val;
 }
 
-_X_EXPORT pointer
+pointer
 xf86int10Addr(xf86Int10InfoPtr pInt, CARD32 addr)
 {
     if (addr < V_RAM)
diff --git a/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c b/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
index ffdc012..9412b07 100644
--- a/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
+++ b/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
@@ -20,7 +20,7 @@
 static int vm86_rep(struct vm86_struct *ptr);
 static struct vm86_struct vm86_s;
 
-_X_EXPORT Bool
+Bool
 xf86Int10ExecSetup(xf86Int10InfoPtr pInt)
 {
 #define VM86S ((struct vm86_struct *)pInt->cpuRegs)
@@ -255,7 +255,7 @@ do_vm86(xf86Int10InfoPtr pInt)
     return 1;
 }
 
-_X_EXPORT void
+void
 xf86ExecX86int10(xf86Int10InfoPtr pInt)
 {
     int sig = setup_int(pInt);
diff --git a/hw/xfree86/os-support/linux/lnx_agp.c b/hw/xfree86/os-support/linux/lnx_agp.c
index ded9e0f..4c1722f 100644
--- a/hw/xfree86/os-support/linux/lnx_agp.c
+++ b/hw/xfree86/os-support/linux/lnx_agp.c
@@ -43,7 +43,7 @@ static Bool initDone = FALSE;
  * Close /dev/agpgart.  This frees all associated memory allocated during
  * this server generation.
  */
-_X_EXPORT Bool
+Bool
 xf86GARTCloseScreen(int screenNum)
 {
 	if(gartFd != -1) {
@@ -116,13 +116,13 @@ GARTInit(int screenNum)
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86AgpGARTSupported()
 {
 	return GARTInit(-1);
 }
 
-_X_EXPORT AgpInfoPtr
+AgpInfoPtr
 xf86GetAGPInfo(int screenNum)
 {
 	struct _agp_info agpinf;
@@ -165,7 +165,7 @@ xf86GetAGPInfo(int screenNum)
  * count instead of using acquiredScreen?
  */
 
-_X_EXPORT Bool
+Bool
 xf86AcquireGART(int screenNum)
 {
 	if (screenNum != -1 && !GARTInit(screenNum))
@@ -183,7 +183,7 @@ xf86AcquireGART(int screenNum)
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86ReleaseGART(int screenNum)
 {
 	if (screenNum != -1 && !GARTInit(screenNum))
@@ -213,7 +213,7 @@ xf86ReleaseGART(int screenNum)
 	return FALSE;
 }
 
-_X_EXPORT int
+int
 xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
 			unsigned long *physical)
 {
@@ -251,7 +251,7 @@ xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
 	return alloc.key;
 }
 
-_X_EXPORT Bool
+Bool
 xf86DeallocateGARTMemory(int screenNum, int key)
 {
 	if (!GARTInit(screenNum) || acquiredScreen != screenNum)
@@ -278,7 +278,7 @@ xf86DeallocateGARTMemory(int screenNum, int key)
 }
 
 /* Bind GART memory with "key" at "offset" */
-_X_EXPORT Bool
+Bool
 xf86BindGARTMemory(int screenNum, int key, unsigned long offset)
 {
 	struct _agp_bind bind;
@@ -321,7 +321,7 @@ xf86BindGARTMemory(int screenNum, int key, unsigned long offset)
 
 
 /* Unbind GART memory with "key" */
-_X_EXPORT Bool
+Bool
 xf86UnbindGARTMemory(int screenNum, int key)
 {
 	struct _agp_unbind unbind;
@@ -353,7 +353,7 @@ xf86UnbindGARTMemory(int screenNum, int key)
 
 
 /* XXX Interface may change. */
-_X_EXPORT Bool
+Bool
 xf86EnableAGP(int screenNum, CARD32 mode)
 {
 	agp_setup setup;
diff --git a/hw/xfree86/os-support/linux/lnx_apm.c b/hw/xfree86/os-support/linux/lnx_apm.c
index b1328cd..16ac80d 100644
--- a/hw/xfree86/os-support/linux/lnx_apm.c
+++ b/hw/xfree86/os-support/linux/lnx_apm.c
@@ -133,7 +133,7 @@ lnxPMConfirmEventToOs(int fd, pmEvent event)
 
 #endif // HAVE_APM
 
-_X_EXPORT PMClose
+PMClose
 xf86OSPMOpen(void)
 {
 	PMClose ret = NULL;
diff --git a/hw/xfree86/os-support/linux/lnx_axp.c b/hw/xfree86/os-support/linux/lnx_axp.c
index e8b6d47..f7151c8 100644
--- a/hw/xfree86/os-support/linux/lnx_axp.c
+++ b/hw/xfree86/os-support/linux/lnx_axp.c
@@ -131,12 +131,12 @@ extern unsigned int _dense_inb(unsigned long);
 extern unsigned int _dense_inw(unsigned long);
 extern unsigned int _dense_inl(unsigned long);
 
-_X_EXPORT void (*_alpha_outb)(char, unsigned long) = _outb;
-_X_EXPORT void (*_alpha_outw)(short, unsigned long) = _outw;
-_X_EXPORT void (*_alpha_outl)(int, unsigned long) = _outl;
-_X_EXPORT unsigned int (*_alpha_inb)(unsigned long) = _inb;
-_X_EXPORT unsigned int (*_alpha_inw)(unsigned long) = _inw;
-_X_EXPORT unsigned int (*_alpha_inl)(unsigned long) = _inl;
+void (*_alpha_outb)(char, unsigned long) = _outb;
+void (*_alpha_outw)(short, unsigned long) = _outw;
+void (*_alpha_outl)(int, unsigned long) = _outl;
+unsigned int (*_alpha_inb)(unsigned long) = _inb;
+unsigned int (*_alpha_inw)(unsigned long) = _inw;
+unsigned int (*_alpha_inl)(unsigned long) = _inl;
 
 static long _alpha_iobase_query(unsigned, int, int, int);
 long (*_iobase)(unsigned, int, int, int) = _alpha_iobase_query;
diff --git a/hw/xfree86/os-support/linux/lnx_bell.c b/hw/xfree86/os-support/linux/lnx_bell.c
index 702dfa6..75cdd3e 100644
--- a/hw/xfree86/os-support/linux/lnx_bell.c
+++ b/hw/xfree86/os-support/linux/lnx_bell.c
@@ -34,7 +34,7 @@
 #include "xf86Priv.h"
 #include "xf86_OSproc.h"
 
-_X_EXPORT void
+void
 xf86OSRingBell(int loudness, int pitch, int duration)
 {
     if (xf86Info.consoleFd == -1 || !pitch || !loudness)
diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
index d37242f..da5ca57 100644
--- a/hw/xfree86/os-support/linux/lnx_init.c
+++ b/hw/xfree86/os-support/linux/lnx_init.c
@@ -93,7 +93,7 @@ drain_console(int fd, void *closure)
     tcflush(fd, TCIOFLUSH);
 }
 
-_X_EXPORT void
+void
 xf86OpenConsole(void)
 {
     int i, fd = -1;
@@ -347,7 +347,7 @@ xf86OpenConsole(void)
     return;
 }
 
-_X_EXPORT void
+void
 xf86CloseConsole()
 {
     struct vt_mode   VT;
@@ -419,7 +419,7 @@ xf86CloseConsole()
     return;
 }
 
-_X_EXPORT int
+int
 xf86ProcessArgument(int argc, char *argv[], int i)
 {
 	/*
@@ -454,7 +454,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	return(0);
 }
 
-_X_EXPORT void
+void
 xf86UseMsg()
 {
 	ErrorF("vtXX                   use the specified VT number\n");
diff --git a/hw/xfree86/os-support/linux/lnx_kmod.c b/hw/xfree86/os-support/linux/lnx_kmod.c
index 4e6f2d2..0b9493d 100644
--- a/hw/xfree86/os-support/linux/lnx_kmod.c
+++ b/hw/xfree86/os-support/linux/lnx_kmod.c
@@ -36,7 +36,7 @@
  * Return:
  *    0 for failure, 1 for success
  */
-_X_EXPORT int
+int
 xf86LoadKernelModule(const char *modName)
 {
    char mpPath[MAX_PATH] = "";
diff --git a/hw/xfree86/os-support/linux/lnx_pci.c b/hw/xfree86/os-support/linux/lnx_pci.c
index 2b83561..8eedfa4 100644
--- a/hw/xfree86/os-support/linux/lnx_pci.c
+++ b/hw/xfree86/os-support/linux/lnx_pci.c
@@ -138,7 +138,7 @@ static struct pci_dev *xf86OSLinuxGetPciDevs(void) {
 }
 
 /* Query the kvirt address (64bit) of a BAR range from size for a given TAG */
-_X_EXPORT unsigned long
+unsigned long
 xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base)
 {
     unsigned int ndx;
diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
index 688106a..ed35766 100644
--- a/hw/xfree86/os-support/linux/lnx_video.c
+++ b/hw/xfree86/os-support/linux/lnx_video.c
@@ -494,7 +494,7 @@ unmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
 /***************************************************************************/
 
 #if defined(__powerpc__)
-_X_EXPORT volatile unsigned char *ioBase = NULL;
+volatile unsigned char *ioBase = NULL;
 
 #ifndef __NR_pciconfig_iobase
 #define __NR_pciconfig_iobase	200
@@ -502,7 +502,7 @@ _X_EXPORT volatile unsigned char *ioBase = NULL;
 
 #endif
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO(void)
 {
 #if defined(__powerpc__)
@@ -551,7 +551,7 @@ xf86EnableIO(void)
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86DisableIO(void)
 {
 	if (!ExtendedEnabled)
@@ -869,23 +869,23 @@ writeSparseNB32(int Value, pointer Base, register unsigned long Offset)
     return;
 }
 
-_X_EXPORT void (*xf86WriteMmio8)(int Value, pointer Base, unsigned long Offset) 
+void (*xf86WriteMmio8)(int Value, pointer Base, unsigned long Offset)
      = writeDense8;
-_X_EXPORT void (*xf86WriteMmio16)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmio16)(int Value, pointer Base, unsigned long Offset)
      = writeDense16;
-_X_EXPORT void (*xf86WriteMmio32)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmio32)(int Value, pointer Base, unsigned long Offset)
      = writeDense32;
-_X_EXPORT void (*xf86WriteMmioNB8)(int Value, pointer Base, unsigned long Offset) 
+void (*xf86WriteMmioNB8)(int Value, pointer Base, unsigned long Offset)
      = writeDenseNB8;
-_X_EXPORT void (*xf86WriteMmioNB16)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmioNB16)(int Value, pointer Base, unsigned long Offset)
      = writeDenseNB16;
-_X_EXPORT void (*xf86WriteMmioNB32)(int Value, pointer Base, unsigned long Offset)
+void (*xf86WriteMmioNB32)(int Value, pointer Base, unsigned long Offset)
      = writeDenseNB32;
-_X_EXPORT int  (*xf86ReadMmio8)(pointer Base, unsigned long Offset) 
+int  (*xf86ReadMmio8)(pointer Base, unsigned long Offset)
      = readDense8;
-_X_EXPORT int  (*xf86ReadMmio16)(pointer Base, unsigned long Offset)
+int  (*xf86ReadMmio16)(pointer Base, unsigned long Offset)
      = readDense16;
-_X_EXPORT int  (*xf86ReadMmio32)(pointer Base, unsigned long Offset)
+int  (*xf86ReadMmio32)(pointer Base, unsigned long Offset)
      = readDense32;
 
 #endif /* __alpha__ */
diff --git a/hw/xfree86/os-support/misc/BUSmemcpy.c b/hw/xfree86/os-support/misc/BUSmemcpy.c
index 0500bf6..e6ffde9 100644
--- a/hw/xfree86/os-support/misc/BUSmemcpy.c
+++ b/hw/xfree86/os-support/misc/BUSmemcpy.c
@@ -31,12 +31,12 @@ Thanks to Linus Torvalds for contributing this code.
 
 static unsigned long __memcpy(unsigned long dest, unsigned long src, int n);
 
-_X_EXPORT void
+void
 xf86BusToMem(unsigned char *dst, unsigned char *src, int len)
 {
 	__memcpy((unsigned long)dst, (unsigned long)src, len);
 }
-_X_EXPORT void
+void
 xf86MemToBus(unsigned char *dst, unsigned char *src, int len)
 {
   if (len == sizeof(int))
diff --git a/hw/xfree86/os-support/misc/Delay.c b/hw/xfree86/os-support/misc/Delay.c
index b18789a..35ced8c 100644
--- a/hw/xfree86/os-support/misc/Delay.c
+++ b/hw/xfree86/os-support/misc/Delay.c
@@ -9,7 +9,7 @@
 
 #include <time.h>
 
-_X_EXPORT void
+void
 xf86UDelay(long usec)
 {
 #if 0
diff --git a/hw/xfree86/os-support/misc/SlowBcopy.c b/hw/xfree86/os-support/misc/SlowBcopy.c
index be69b9d..182a3e6 100644
--- a/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -24,7 +24,7 @@
 
 static int really_slow_bcopy;
 
-_X_EXPORT void
+void
 xf86SetReallySlowBcopy(void)
 {
 	really_slow_bcopy = 1;
@@ -42,7 +42,7 @@ static void xf86_really_slow_bcopy(unsigned char *src, unsigned char *dst, int l
 #endif
 
 /* The outb() isn't needed on my machine, but who knows ... -- ost */
-_X_EXPORT void
+void
 xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
 {
 #if defined(__i386__) || defined(__amd64__)
@@ -67,7 +67,7 @@ xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
 
 #endif
 
-_X_EXPORT void
+void
 xf86SlowBCopyFromBus(unsigned char *src, unsigned char *dst, int count)
 {
     unsigned long addr;
@@ -84,7 +84,7 @@ xf86SlowBCopyFromBus(unsigned char *src, unsigned char *dst, int count)
     }
 }
   
-_X_EXPORT void
+void
 xf86SlowBCopyToBus(unsigned char *src, unsigned char *dst, int count)
 {
     unsigned long addr;
diff --git a/hw/xfree86/os-support/sco/VTsw_sco.c b/hw/xfree86/os-support/sco/VTsw_sco.c
index b7e890a..d126e78 100644
--- a/hw/xfree86/os-support/sco/VTsw_sco.c
+++ b/hw/xfree86/os-support/sco/VTsw_sco.c
@@ -48,14 +48,14 @@
  * re-arm the signal here. All we need to do now is record the fact that
  * we got the signal. XFree86 handles the rest.
  */
-_X_EXPORT void
+void
 xf86VTRequest(int sig)
 {
   xf86Info.vtRequestsPending = TRUE;
   return;
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchPending(void)
 {
   return(xf86Info.vtRequestsPending ? TRUE : FALSE);
@@ -69,7 +69,7 @@ xf86VTSwitchPending(void)
 static int sco_ledstatus = -1;
 static unsigned int sco_ledstate = 0;
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchAway(void)
 {
   ev_flush();
@@ -90,7 +90,7 @@ xf86VTSwitchAway(void)
  * and we need to restore the LED settings to what they were when we
  * switched away.
  */
-_X_EXPORT Bool
+Bool
 xf86VTSwitchTo(void)
 {
   ev_resume();
diff --git a/hw/xfree86/os-support/sco/sco_init.c b/hw/xfree86/os-support/sco/sco_init.c
index 2f3126b..5f7db34 100644
--- a/hw/xfree86/os-support/sco/sco_init.c
+++ b/hw/xfree86/os-support/sco/sco_init.c
@@ -42,7 +42,7 @@ static int sco_console_mode = -1;
 
 extern Bool mpxLock;
 
-_X_EXPORT void
+void
 xf86OpenConsole(void)
 {
   int i, ioctl_ret;
@@ -192,7 +192,7 @@ xf86OpenConsole(void)
  * to do a soft reset on the card, which really does help settle the
  * video card down again after coming out of Xfree86.
  */
-_X_EXPORT void
+void
 xf86CloseConsole(void)
 {
   struct vt_mode VT;
@@ -224,7 +224,7 @@ xf86CloseConsole(void)
   close(xf86Info.consoleFd); /* We're done with the device */
 }
 
-_X_EXPORT int
+int
 xf86ProcessArgument(int argc, char *argv[], int i)
 {
   /*
@@ -283,7 +283,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
   return(0);
 }
 
-_X_EXPORT void
+void
 xf86UseMsg(void)
 {
 	ErrorF("vtXX                   use the specified VT number\n");
diff --git a/hw/xfree86/os-support/sco/sco_iop.c b/hw/xfree86/os-support/sco/sco_iop.c
index 86210d7..3da4fcf 100644
--- a/hw/xfree86/os-support/sco/sco_iop.c
+++ b/hw/xfree86/os-support/sco/sco_iop.c
@@ -64,7 +64,7 @@ extern long sysi86 (int cmd, ...);
 
 static Bool IOEnabled = FALSE;
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO(void)
 {
 	if (IOEnabled)
@@ -79,7 +79,7 @@ xf86EnableIO(void)
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86DisableIO(void)
 {
 	if (!IOEnabled)
diff --git a/hw/xfree86/os-support/shared/VTsw_noop.c b/hw/xfree86/os-support/shared/VTsw_noop.c
index b43908f..a3cfe40 100644
--- a/hw/xfree86/os-support/shared/VTsw_noop.c
+++ b/hw/xfree86/os-support/shared/VTsw_noop.c
@@ -35,19 +35,19 @@
  * No-op functions for OSs without VTs
  */
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchPending()
 {
 	return(FALSE);
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchAway()
 {
 	return(FALSE);
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchTo()
 {
 	return(TRUE);
diff --git a/hw/xfree86/os-support/shared/VTsw_usl.c b/hw/xfree86/os-support/shared/VTsw_usl.c
index ea07aae..4d47314 100644
--- a/hw/xfree86/os-support/shared/VTsw_usl.c
+++ b/hw/xfree86/os-support/shared/VTsw_usl.c
@@ -44,7 +44,7 @@
  * This function is the signal handler for the VT-switching signal.  It
  * is only referenced inside the OS-support layer.
  */
-_X_EXPORT void
+void
 xf86VTRequest(int sig)
 {
 	signal(sig, (void(*)(int))xf86VTRequest);
@@ -52,13 +52,13 @@ xf86VTRequest(int sig)
 	return;
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchPending()
 {
     return(xf86Info.vtRequestsPending ? TRUE : FALSE);
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchAway()
 {
 	xf86Info.vtRequestsPending = FALSE;
@@ -75,7 +75,7 @@ xf86VTSwitchAway()
 	}
 }
 
-_X_EXPORT Bool
+Bool
 xf86VTSwitchTo()
 {
 	xf86Info.vtRequestsPending = FALSE;
diff --git a/hw/xfree86/os-support/shared/agp_noop.c b/hw/xfree86/os-support/shared/agp_noop.c
index 5774bc2..eda466a 100644
--- a/hw/xfree86/os-support/shared/agp_noop.c
+++ b/hw/xfree86/os-support/shared/agp_noop.c
@@ -40,63 +40,63 @@
 #include "xf86_OSlib.h"
 #include "xf86OSpriv.h"
 
-_X_EXPORT Bool
+Bool
 xf86GARTCloseScreen(int screenNum)
 {
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86AgpGARTSupported()
 {
 	return FALSE;
 }
 
-_X_EXPORT AgpInfoPtr
+AgpInfoPtr
 xf86GetAGPInfo(int screenNum)
 {
 	return NULL;
 }
 
-_X_EXPORT Bool
+Bool
 xf86AcquireGART(int screenNum)
 {
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86ReleaseGART(int screenNum)
 {
 	return FALSE;
 }
 
-_X_EXPORT int
+int
 xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
 			unsigned long *physical)
 {
 	return -1;
 }
 
-_X_EXPORT Bool
+Bool
 xf86DeallocateGARTMemory(int screenNum, int key)
 {
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86BindGARTMemory(int screenNum, int key, unsigned long offset)
 {
 	return FALSE;
 }
 
 
-_X_EXPORT Bool
+Bool
 xf86UnbindGARTMemory(int screenNum, int key)
 {
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86EnableAGP(int screenNum, CARD32 mode)
 {
 	return FALSE;
diff --git a/hw/xfree86/os-support/shared/bios_devmem.c b/hw/xfree86/os-support/shared/bios_devmem.c
index 7288239..67a14f5 100644
--- a/hw/xfree86/os-support/shared/bios_devmem.c
+++ b/hw/xfree86/os-support/shared/bios_devmem.c
@@ -39,7 +39,7 @@
 # define DEV_MEM "/dev/mem"
 #endif
 
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		int Len)
 {
diff --git a/hw/xfree86/os-support/shared/bios_mmap.c b/hw/xfree86/os-support/shared/bios_mmap.c
index 0c368e7..96d56bf 100644
--- a/hw/xfree86/os-support/shared/bios_mmap.c
+++ b/hw/xfree86/os-support/shared/bios_mmap.c
@@ -40,7 +40,7 @@
  */
 
 #ifndef __alpha__
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
diff --git a/hw/xfree86/os-support/shared/ia64Pci.c b/hw/xfree86/os-support/shared/ia64Pci.c
index 6f6924b..c93c74c 100644
--- a/hw/xfree86/os-support/shared/ia64Pci.c
+++ b/hw/xfree86/os-support/shared/ia64Pci.c
@@ -60,7 +60,7 @@ static int ia64_port_to_fd(unsigned long port)
     return (port >> 24) & 0xffffffff;
 }
 
-_X_EXPORT void outb(unsigned long port, unsigned char val)
+void outb(unsigned long port, unsigned char val)
 {
     int fd = ia64_port_to_fd(port);
 
@@ -80,7 +80,7 @@ _X_EXPORT void outb(unsigned long port, unsigned char val)
     return;
 }
 
-_X_EXPORT void outw(unsigned long port, unsigned short val)
+void outw(unsigned long port, unsigned short val)
 {
     int fd = ia64_port_to_fd(port);
 
@@ -100,7 +100,7 @@ _X_EXPORT void outw(unsigned long port, unsigned short val)
     return;
 }
 
-_X_EXPORT void outl(unsigned long port, unsigned int val)
+void outl(unsigned long port, unsigned int val)
 {
     int fd = ia64_port_to_fd(port);
 
@@ -120,7 +120,7 @@ _X_EXPORT void outl(unsigned long port, unsigned int val)
     return;
 }
 
-_X_EXPORT unsigned int inb(unsigned long port)
+unsigned int inb(unsigned long port)
 {
     int fd = ia64_port_to_fd(port);
     unsigned char val;
@@ -142,7 +142,7 @@ _X_EXPORT unsigned int inb(unsigned long port)
     return val;
 }
 
-_X_EXPORT unsigned int inw(unsigned long port)
+unsigned int inw(unsigned long port)
 {
     int fd = ia64_port_to_fd(port);
     unsigned short val;
@@ -164,7 +164,7 @@ _X_EXPORT unsigned int inw(unsigned long port)
     return val;
 }
 
-_X_EXPORT unsigned int inl(unsigned long port)
+unsigned int inl(unsigned long port)
 {
     int fd = ia64_port_to_fd(port);
     unsigned int val;
diff --git a/hw/xfree86/os-support/shared/ioperm_noop.c b/hw/xfree86/os-support/shared/ioperm_noop.c
index 1d7851a..805cacc 100644
--- a/hw/xfree86/os-support/shared/ioperm_noop.c
+++ b/hw/xfree86/os-support/shared/ioperm_noop.c
@@ -35,13 +35,13 @@
 #include "xf86Priv.h"
 #include "xf86_OSlib.h"
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO()
 {
 	return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86DisableIO()
 {
 	return;
diff --git a/hw/xfree86/os-support/shared/kmod_noop.c b/hw/xfree86/os-support/shared/kmod_noop.c
index 6525e84..e86d747 100644
--- a/hw/xfree86/os-support/shared/kmod_noop.c
+++ b/hw/xfree86/os-support/shared/kmod_noop.c
@@ -31,7 +31,7 @@
 
 #include "xf86_OSproc.h"
 
-_X_EXPORT int xf86LoadKernelModule(const char *pathname)
+int xf86LoadKernelModule(const char *pathname)
 {
     (void) pathname;
     return 0;  /* failure */
diff --git a/hw/xfree86/os-support/shared/pm_noop.c b/hw/xfree86/os-support/shared/pm_noop.c
index 7601ff4..bfac4b1 100644
--- a/hw/xfree86/os-support/shared/pm_noop.c
+++ b/hw/xfree86/os-support/shared/pm_noop.c
@@ -38,7 +38,7 @@
 #define XF86_OS_PRIVS
 #include "xf86_OSproc.h"
 
-_X_EXPORT PMClose
+PMClose
 xf86OSPMOpen(void)
 {
 	return NULL;
diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
index 316526b..697d0e5 100644
--- a/hw/xfree86/os-support/shared/posix_tty.c
+++ b/hw/xfree86/os-support/shared/posix_tty.c
@@ -111,7 +111,7 @@ GetBaud (int baudrate)
 	return (0);
 }
 
-_X_EXPORT int
+int
 xf86OpenSerial (pointer options)
 {
 	struct termios t;
@@ -194,7 +194,7 @@ xf86OpenSerial (pointer options)
 	return (fd);
 }
 
-_X_EXPORT int
+int
 xf86SetSerial (int fd, pointer options)
 {
 	struct termios t;
@@ -365,7 +365,7 @@ xf86SetSerial (int fd, pointer options)
 	return (r);
 }
 
-_X_EXPORT int
+int
 xf86SetSerialSpeed (int fd, int speed)
 {
 	struct termios t;
@@ -396,7 +396,7 @@ xf86SetSerialSpeed (int fd, int speed)
 	return (r);
 }
 
-_X_EXPORT int
+int
 xf86ReadSerial (int fd, void *buf, int count)
 {
 	int r;
@@ -414,7 +414,7 @@ xf86ReadSerial (int fd, void *buf, int count)
 	return (r);
 }
 
-_X_EXPORT int
+int
 xf86WriteSerial (int fd, const void *buf, int count)
 {
 	int r;
@@ -430,7 +430,7 @@ xf86WriteSerial (int fd, const void *buf, int count)
 	return (r);
 }
 
-_X_EXPORT int
+int
 xf86CloseSerial (int fd)
 {
 	int r;
@@ -439,7 +439,7 @@ xf86CloseSerial (int fd)
 	return (r);
 }
 
-_X_EXPORT int
+int
 xf86WaitForInput (int fd, int timeout)
 {
 	fd_set readfds;
@@ -465,7 +465,7 @@ xf86WaitForInput (int fd, int timeout)
 	return (r);
 }
 
-_X_EXPORT int
+int
 xf86SerialSendBreak (int fd, int duration)
 {
 	int r;
@@ -475,7 +475,7 @@ xf86SerialSendBreak (int fd, int duration)
 	
 }
 
-_X_EXPORT int
+int
 xf86FlushInput(int fd)
 {
 	fd_set fds;
@@ -576,7 +576,7 @@ getOsStateMask(void)
 
 static int osStateMask = 0;
 
-_X_EXPORT int
+int
 xf86SetSerialModemState(int fd, int state)
 {
 	int ret;
@@ -609,7 +609,7 @@ xf86SetSerialModemState(int fd, int state)
 #endif
 }
 
-_X_EXPORT int
+int
 xf86GetSerialModemState(int fd)
 {
 	int ret;
@@ -632,7 +632,7 @@ xf86GetSerialModemState(int fd)
 #endif
 }
 
-_X_EXPORT int
+int
 xf86SerialModemSetBits(int fd, int bits)
 {
 	int ret;
@@ -654,7 +654,7 @@ xf86SerialModemSetBits(int fd, int bits)
 #endif
 }
 
-_X_EXPORT int
+int
 xf86SerialModemClearBits(int fd, int bits)
 {
 	int ret;
diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
index a45117d..ef85e3b 100644
--- a/hw/xfree86/os-support/shared/sigio.c
+++ b/hw/xfree86/os-support/shared/sigio.c
@@ -132,7 +132,7 @@ xf86IsPipe (int fd)
     return S_ISFIFO(buf.st_mode);
 }
 
-_X_EXPORT int
+int
 xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
 {
     struct sigaction sa;
@@ -186,7 +186,7 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
     return 0;
 }
 
-_X_EXPORT int
+int
 xf86RemoveSIGIOHandler(int fd)
 {
     struct sigaction sa;
@@ -236,7 +236,7 @@ xf86RemoveSIGIOHandler(int fd)
     return ret;
 }
 
-_X_EXPORT int
+int
 xf86BlockSIGIO (void)
 {
     sigset_t	set, old;
@@ -249,7 +249,7 @@ xf86BlockSIGIO (void)
     return ret; 
 }
 
-_X_EXPORT void
+void
 xf86UnblockSIGIO (int wasset)
 {
     sigset_t	set;
@@ -262,7 +262,7 @@ xf86UnblockSIGIO (int wasset)
     }
 }
 
-_X_EXPORT void
+void
 xf86AssertBlockedSIGIO (char *where)
 {
     sigset_t	set, old;
@@ -275,7 +275,7 @@ xf86AssertBlockedSIGIO (char *where)
 
 /* XXX This is a quick hack for the benefit of xf86SetSilkenMouse() */
 
-_X_EXPORT int
+int
 xf86SIGIOSupported (void)
 {
     return 1;
diff --git a/hw/xfree86/os-support/shared/sigiostubs.c b/hw/xfree86/os-support/shared/sigiostubs.c
index 12fcab1..cecec37 100644
--- a/hw/xfree86/os-support/shared/sigiostubs.c
+++ b/hw/xfree86/os-support/shared/sigiostubs.c
@@ -34,36 +34,36 @@
 # include "xf86Priv.h"
 # include "xf86_OSlib.h"
 
-_X_EXPORT int
+int
 xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
 {
     return 0;
 }
 
-_X_EXPORT int
+int
 xf86RemoveSIGIOHandler(int fd)
 {
     return 0;
 }
 
-_X_EXPORT int
+int
 xf86BlockSIGIO (void)
 {
     return 0;
 }
 
-_X_EXPORT void
+void
 xf86UnblockSIGIO (int wasset)
 {
 }
 
-_X_EXPORT void
+void
 xf86AssertBlockedSIGIO (char *where)
 {
 }
 
 /* XXX This is a quick hack for the benefit of xf86SetSilkenMouse() */
-_X_EXPORT Bool
+Bool
 xf86SIGIOSupported ()
 {
     return FALSE;
diff --git a/hw/xfree86/os-support/shared/stdResource.c b/hw/xfree86/os-support/shared/stdResource.c
index 405c00f..8cb1014 100644
--- a/hw/xfree86/os-support/shared/stdResource.c
+++ b/hw/xfree86/os-support/shared/stdResource.c
@@ -48,7 +48,7 @@
 #define xf86StdAccResFromOS xf86AccResFromOS
 #endif
 
-_X_EXPORT resPtr
+resPtr
 xf86StdAccResFromOS(resPtr ret)
 {
     resRange range;
diff --git a/hw/xfree86/os-support/shared/vidmem.c b/hw/xfree86/os-support/shared/vidmem.c
index 48133d7..f8a488a 100644
--- a/hw/xfree86/os-support/shared/vidmem.c
+++ b/hw/xfree86/os-support/shared/vidmem.c
@@ -161,7 +161,7 @@ checkMtrrOption(VidMapPtr vp)
 	}
 }
 
-_X_EXPORT void
+void
 xf86MakeNewMapping(int ScreenNum, int Flags, unsigned long Base, unsigned long Size, pointer Vbase)
 {
 	VidMapPtr vp;
@@ -175,7 +175,7 @@ xf86MakeNewMapping(int ScreenNum, int Flags, unsigned long Base, unsigned long S
 	mp->flags = Flags;
 }
 
-_X_EXPORT void
+void
 xf86InitVidMem(void)
 {
 	if (!vidMemInfo.initialised) {
@@ -184,7 +184,7 @@ xf86InitVidMem(void)
 	}
 }
 
-_X_EXPORT pointer
+pointer
 xf86MapVidMem(int ScreenNum, int Flags, unsigned long Base, unsigned long Size)
 {
 	pointer vbase = NULL;
@@ -230,7 +230,7 @@ xf86MapVidMem(int ScreenNum, int Flags, unsigned long Base, unsigned long Size)
 	return vbase;
 }
 
-_X_EXPORT void
+void
 xf86UnMapVidMem(int ScreenNum, pointer Base, unsigned long Size)
 {
 	VidMapPtr vp;
@@ -257,7 +257,7 @@ xf86UnMapVidMem(int ScreenNum, pointer Base, unsigned long Size)
 	removeMapping(vp, mp);
 }
 
-_X_EXPORT Bool
+Bool
 xf86CheckMTRR(int ScreenNum)
 {
 	VidMapPtr vp = getVidMapRec(ScreenNum);
@@ -274,14 +274,14 @@ xf86CheckMTRR(int ScreenNum)
 	return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86LinearVidMem()
 {
 	xf86InitVidMem();
 	return vidMemInfo.linearSupported;
 }
 
-_X_EXPORT void
+void
 xf86MapReadSideEffects(int ScreenNum, int Flags, pointer base,
 			unsigned long Size)
 {
diff --git a/hw/xfree86/os-support/solaris/sun_agp.c b/hw/xfree86/os-support/solaris/sun_agp.c
index e97ab9e..d151bf6 100644
--- a/hw/xfree86/os-support/solaris/sun_agp.c
+++ b/hw/xfree86/os-support/solaris/sun_agp.c
@@ -66,7 +66,7 @@ static Bool initDone = FALSE;
  * Close /dev/agpgart.  This frees all associated memory allocated during
  * this server generation.
  */
-_X_EXPORT Bool
+Bool
 xf86GARTCloseScreen(int screenNum)
 {
 	if (gartFd != -1) {
@@ -110,14 +110,14 @@ GARTInit(int screenNum)
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86AgpGARTSupported(void)
 {
 	return (GARTInit(-1));
 
 }
 
-_X_EXPORT AgpInfoPtr
+AgpInfoPtr
 xf86GetAGPInfo(int screenNum)
 {
 	agp_info_t agpinf;
@@ -150,7 +150,7 @@ xf86GetAGPInfo(int screenNum)
 	return info;
 }
 
-_X_EXPORT Bool
+Bool
 xf86AcquireGART(int screenNum)
 {
 
@@ -171,7 +171,7 @@ xf86AcquireGART(int screenNum)
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 xf86ReleaseGART(int screenNum)
 {
 
@@ -200,7 +200,7 @@ xf86ReleaseGART(int screenNum)
 	return FALSE;
 }
 
-_X_EXPORT int
+int
 xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
 			unsigned long *physical)
 {
@@ -238,7 +238,7 @@ xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
 	return alloc.agpa_key;
 }
 
-_X_EXPORT Bool
+Bool
 xf86DeallocateGARTMemory(int screenNum, int key)
 {
 	if (!GARTInit(screenNum) || (acquiredScreen != screenNum))
@@ -255,7 +255,7 @@ xf86DeallocateGARTMemory(int screenNum, int key)
 }
 
 /* Bind GART memory with "key" at "offset" */
-_X_EXPORT Bool
+Bool
 xf86BindGARTMemory(int screenNum, int key, unsigned long offset)
 {
 	agp_bind_t bind;
@@ -291,7 +291,7 @@ xf86BindGARTMemory(int screenNum, int key, unsigned long offset)
 }
 
 /* Unbind GART memory with "key" */
-_X_EXPORT Bool
+Bool
 xf86UnbindGARTMemory(int screenNum, int key)
 {
 	agp_unbind_t unbind;
@@ -317,7 +317,7 @@ xf86UnbindGARTMemory(int screenNum, int key)
 
 
 /* XXX Interface may change. */
-_X_EXPORT Bool
+Bool
 xf86EnableAGP(int screenNum, CARD32 mode)
 {
 	agp_setup_t setup;
diff --git a/hw/xfree86/os-support/solaris/sun_apm.c b/hw/xfree86/os-support/solaris/sun_apm.c
index d121f33..7decc90 100644
--- a/hw/xfree86/os-support/solaris/sun_apm.c
+++ b/hw/xfree86/os-support/solaris/sun_apm.c
@@ -199,7 +199,7 @@ sunPMConfirmEventToOs(int fd, pmEvent event)
     }
 }
 
-_X_EXPORT PMClose
+PMClose
 xf86OSPMOpen(void)
 {
     int fd;
diff --git a/hw/xfree86/os-support/solaris/sun_bell.c b/hw/xfree86/os-support/solaris/sun_bell.c
index 29ecd73..b25f40d 100644
--- a/hw/xfree86/os-support/solaris/sun_bell.c
+++ b/hw/xfree86/os-support/solaris/sun_bell.c
@@ -48,7 +48,7 @@
 
 #define AUDIO_DEVICE    "/dev/audio"
 
-_X_EXPORT void
+void
 xf86OSRingBell(int loudness, int pitch, int duration)
 {
     static short    samples[BELL_SAMPLES];
diff --git a/hw/xfree86/os-support/solaris/sun_init.c b/hw/xfree86/os-support/solaris/sun_init.c
index 4fe5af3..795b0c1 100644
--- a/hw/xfree86/os-support/solaris/sun_init.c
+++ b/hw/xfree86/os-support/solaris/sun_init.c
@@ -46,7 +46,7 @@ static char fb_dev[PATH_MAX] = "/dev/fb";
 static char fb_dev[PATH_MAX] = "/dev/console";
 #endif
 
-_X_EXPORT void
+void
 xf86OpenConsole(void)
 {
     int i;
@@ -209,7 +209,7 @@ xf86OpenConsole(void)
     }
 }
 
-_X_EXPORT void
+void
 xf86CloseConsole(void)
 {
 #ifdef HAS_USL_VTS
@@ -296,7 +296,7 @@ xf86CloseConsole(void)
     close(xf86Info.consoleFd);
 }
 
-_X_EXPORT int
+int
 xf86ProcessArgument(int argc, char **argv, int i)
 {
     /*
@@ -346,7 +346,7 @@ xf86ProcessArgument(int argc, char **argv, int i)
     return 0;
 }
 
-_X_EXPORT void xf86UseMsg()
+void xf86UseMsg()
 {
 #ifdef HAS_USL_VTS
     ErrorF("vtXX                   Use the specified VT number\n");
diff --git a/hw/xfree86/os-support/solaris/sun_vid.c b/hw/xfree86/os-support/solaris/sun_vid.c
index 3982f63..2078646 100644
--- a/hw/xfree86/os-support/solaris/sun_vid.c
+++ b/hw/xfree86/os-support/solaris/sun_vid.c
@@ -186,7 +186,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
 /*
  * Read BIOS via mmap()ing physical memory.
  */
-_X_EXPORT int
+int
 xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
@@ -235,7 +235,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 static Bool ExtendedEnabled = FALSE;
 #endif
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO(void)
 {
 #if defined(__i386__) || defined(__i386) || defined(__x86)
@@ -251,7 +251,7 @@ xf86EnableIO(void)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 xf86DisableIO(void)
 {
 #if defined(__i386__) || defined(__i386) || defined(__x86)
diff --git a/hw/xfree86/os-support/sysv/sysv_init.c b/hw/xfree86/os-support/sysv/sysv_init.c
index afb484e..170bb89 100644
--- a/hw/xfree86/os-support/sysv/sysv_init.c
+++ b/hw/xfree86/os-support/sysv/sysv_init.c
@@ -43,7 +43,7 @@ static Bool Protect0 = FALSE;
 static int VTnum = -1;
 
 
-_X_EXPORT void
+void
 xf86OpenConsole()
 {
     int fd;
@@ -186,7 +186,7 @@ xf86OpenConsole()
     return;
 }
 
-_X_EXPORT void
+void
 xf86CloseConsole()
 {
     struct vt_mode   VT;
@@ -205,7 +205,7 @@ xf86CloseConsole()
     return;
 }
 
-_X_EXPORT int
+int
 xf86ProcessArgument(int argc, char *argv[], int i)
 {
 	/*
@@ -242,7 +242,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	return(0);
 }
 
-_X_EXPORT void
+void
 xf86UseMsg()
 {
 	ErrorF("vtXX                   use the specified VT number\n");
diff --git a/hw/xfree86/os-support/sysv/sysv_video.c b/hw/xfree86/os-support/sysv/sysv_video.c
index a9bbd65..43c3062 100644
--- a/hw/xfree86/os-support/sysv/sysv_video.c
+++ b/hw/xfree86/os-support/sysv/sysv_video.c
@@ -283,7 +283,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
 static Bool ExtendedEnabled = FALSE;
 static Bool InitDone = FALSE;
 
-_X_EXPORT Bool
+Bool
 xf86EnableIO()
 {
 	int i;
@@ -302,7 +302,7 @@ xf86EnableIO()
 	return TRUE;
 }
 	
-_X_EXPORT void
+void
 xf86DisableIO()
 {
 	if (!ExtendedEnabled)
diff --git a/hw/xfree86/os-support/xf86_OSproc.h b/hw/xfree86/os-support/xf86_OSproc.h
index 664c7cb..01f2715 100644
--- a/hw/xfree86/os-support/xf86_OSproc.h
+++ b/hw/xfree86/os-support/xf86_OSproc.h
@@ -134,36 +134,36 @@
 _XFUNCPROTOBEGIN
 
 /* public functions */
-extern Bool xf86LinearVidMem(void);
-extern Bool xf86CheckMTRR(int); 
-extern pointer xf86MapVidMem(int, int, unsigned long, unsigned long);
-extern void xf86UnMapVidMem(int, pointer, unsigned long);
-extern void xf86MapReadSideEffects(int, int, pointer, unsigned long);
-extern int xf86ReadBIOS(unsigned long, unsigned long, unsigned char *, int);
-extern Bool xf86EnableIO(void);
-extern void xf86DisableIO(void);
-extern void xf86SetTVOut(int);
-extern void xf86SetRGBOut(void);
-extern void xf86OSRingBell(int, int, int);
-extern void xf86BusToMem(unsigned char *, unsigned char *, int);
-extern void xf86MemToBus(unsigned char *, unsigned char *, int);
-extern void xf86UDelay(long usec);
-extern void xf86SetReallySlowBcopy(void);
-extern void xf86SlowBcopy(unsigned char *, unsigned char *, int);
-extern int xf86OpenSerial(pointer options);
-extern int xf86SetSerial(int fd, pointer options);
-extern int xf86SetSerialSpeed(int fd, int speed);
-extern int xf86ReadSerial(int fd, void *buf, int count);
-extern int xf86WriteSerial(int fd, const void *buf, int count);
-extern int xf86CloseSerial(int fd);
-extern int xf86FlushInput(int fd);
-extern int xf86WaitForInput(int fd, int timeout);
-extern int xf86SerialSendBreak(int fd, int duration);
-extern int xf86SetSerialModemState(int fd, int state);
-extern int xf86GetSerialModemState(int fd);
-extern int xf86SerialModemSetBits(int fd, int bits);
-extern int xf86SerialModemClearBits(int fd, int bits);
-extern int xf86LoadKernelModule(const char *pathname);
+extern _X_EXPORT Bool xf86LinearVidMem(void);
+extern _X_EXPORT Bool xf86CheckMTRR(int);
+extern _X_EXPORT pointer xf86MapVidMem(int, int, unsigned long, unsigned long);
+extern _X_EXPORT void xf86UnMapVidMem(int, pointer, unsigned long);
+extern _X_EXPORT void xf86MapReadSideEffects(int, int, pointer, unsigned long);
+extern _X_EXPORT int xf86ReadBIOS(unsigned long, unsigned long, unsigned char *, int);
+extern _X_EXPORT Bool xf86EnableIO(void);
+extern _X_EXPORT void xf86DisableIO(void);
+extern _X_EXPORT void xf86SetTVOut(int);
+extern _X_EXPORT void xf86SetRGBOut(void);
+extern _X_EXPORT void xf86OSRingBell(int, int, int);
+extern _X_EXPORT void xf86BusToMem(unsigned char *, unsigned char *, int);
+extern _X_EXPORT void xf86MemToBus(unsigned char *, unsigned char *, int);
+extern _X_EXPORT void xf86UDelay(long usec);
+extern _X_EXPORT void xf86SetReallySlowBcopy(void);
+extern _X_EXPORT void xf86SlowBcopy(unsigned char *, unsigned char *, int);
+extern _X_EXPORT int xf86OpenSerial(pointer options);
+extern _X_EXPORT int xf86SetSerial(int fd, pointer options);
+extern _X_EXPORT int xf86SetSerialSpeed(int fd, int speed);
+extern _X_EXPORT int xf86ReadSerial(int fd, void *buf, int count);
+extern _X_EXPORT int xf86WriteSerial(int fd, const void *buf, int count);
+extern _X_EXPORT int xf86CloseSerial(int fd);
+extern _X_EXPORT int xf86FlushInput(int fd);
+extern _X_EXPORT int xf86WaitForInput(int fd, int timeout);
+extern _X_EXPORT int xf86SerialSendBreak(int fd, int duration);
+extern _X_EXPORT int xf86SetSerialModemState(int fd, int state);
+extern _X_EXPORT int xf86GetSerialModemState(int fd);
+extern _X_EXPORT int xf86SerialModemSetBits(int fd, int bits);
+extern _X_EXPORT int xf86SerialModemClearBits(int fd, int bits);
+extern _X_EXPORT int xf86LoadKernelModule(const char *pathname);
 
 /* AGP GART interface */
 
@@ -177,55 +177,55 @@ typedef struct _AgpInfo {
 	unsigned long	usedPages;
 } AgpInfo, *AgpInfoPtr;
 
-extern Bool xf86AgpGARTSupported(void);
-extern AgpInfoPtr xf86GetAGPInfo(int screenNum);
-extern Bool xf86AcquireGART(int screenNum);
-extern Bool xf86ReleaseGART(int screenNum);
-extern int xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
+extern _X_EXPORT Bool xf86AgpGARTSupported(void);
+extern _X_EXPORT AgpInfoPtr xf86GetAGPInfo(int screenNum);
+extern _X_EXPORT Bool xf86AcquireGART(int screenNum);
+extern _X_EXPORT Bool xf86ReleaseGART(int screenNum);
+extern _X_EXPORT int xf86AllocateGARTMemory(int screenNum, unsigned long size, int type,
 				  unsigned long *physical);
-extern Bool xf86DeallocateGARTMemory(int screenNum, int key);
-extern Bool xf86BindGARTMemory(int screenNum, int key, unsigned long offset);
-extern Bool xf86UnbindGARTMemory(int screenNum, int key);
-extern Bool xf86EnableAGP(int screenNum, CARD32 mode);
-extern Bool xf86GARTCloseScreen(int screenNum);
+extern _X_EXPORT Bool xf86DeallocateGARTMemory(int screenNum, int key);
+extern _X_EXPORT Bool xf86BindGARTMemory(int screenNum, int key, unsigned long offset);
+extern _X_EXPORT Bool xf86UnbindGARTMemory(int screenNum, int key);
+extern _X_EXPORT Bool xf86EnableAGP(int screenNum, CARD32 mode);
+extern _X_EXPORT Bool xf86GARTCloseScreen(int screenNum);
 
 /* These routines are in shared/sigio.c and are not loaded as part of the
    module.  These routines are small, and the code if very POSIX-signal (or
    OS-signal) specific, so it seemed better to provide more complex
    wrappers than to wrap each individual function called. */
-extern int xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *);
-extern int xf86RemoveSIGIOHandler(int fd);
-extern int xf86BlockSIGIO (void);
-extern void xf86UnblockSIGIO (int);
-extern void xf86AssertBlockedSIGIO (char *);
-extern Bool xf86SIGIOSupported (void);
+extern _X_EXPORT int xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *);
+extern _X_EXPORT int xf86RemoveSIGIOHandler(int fd);
+extern _X_EXPORT int xf86BlockSIGIO (void);
+extern _X_EXPORT void xf86UnblockSIGIO (int);
+extern _X_EXPORT void xf86AssertBlockedSIGIO (char *);
+extern _X_EXPORT Bool xf86SIGIOSupported (void);
 
 #ifdef XF86_OS_PRIVS
 typedef void (*PMClose)(void);
-extern void xf86OpenConsole(void);
-extern void xf86CloseConsole(void);
-extern Bool xf86VTSwitchPending(void);
-extern Bool xf86VTSwitchAway(void);
-extern Bool xf86VTSwitchTo(void);
-extern void xf86VTRequest(int sig);
-extern int xf86ProcessArgument(int, char **, int);
-extern void xf86UseMsg(void);
-extern void xf86ReloadInputDevs(int sig);
-extern PMClose xf86OSPMOpen(void);
+extern _X_EXPORT void xf86OpenConsole(void);
+extern _X_EXPORT void xf86CloseConsole(void);
+extern _X_EXPORT Bool xf86VTSwitchPending(void);
+extern _X_EXPORT Bool xf86VTSwitchAway(void);
+extern _X_EXPORT Bool xf86VTSwitchTo(void);
+extern _X_EXPORT void xf86VTRequest(int sig);
+extern _X_EXPORT int xf86ProcessArgument(int, char **, int);
+extern _X_EXPORT void xf86UseMsg(void);
+extern _X_EXPORT void xf86ReloadInputDevs(int sig);
+extern _X_EXPORT PMClose xf86OSPMOpen(void);
 
 #ifdef NEED_OS_RAC_PROTOS
 /* RAC-related privs */
 /* internal to os-support layer */
-resPtr xf86StdAccResFromOS(resPtr ret);
+extern _X_EXPORT resPtr xf86StdAccResFromOS(resPtr ret);
 
 /* available to the common layer */
-resPtr xf86AccResFromOS(resPtr ret);
+extern _X_EXPORT resPtr xf86AccResFromOS(resPtr ret);
 #endif /* NEED_OS_RAC_PROTOS */
 
-extern unsigned long xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base);
+extern _X_EXPORT unsigned long xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base);
 
-extern void xf86MakeNewMapping(int, int, unsigned long, unsigned long, pointer);
-extern void xf86InitVidMem(void);
+extern _X_EXPORT void xf86MakeNewMapping(int, int, unsigned long, unsigned long, pointer);
+extern _X_EXPORT void xf86InitVidMem(void);
 
 #endif /* XF86_OS_PRIVS */
 
diff --git a/hw/xfree86/parser/Device.c b/hw/xfree86/parser/Device.c
index 8f5370b..216789f 100644
--- a/hw/xfree86/parser/Device.c
+++ b/hw/xfree86/parser/Device.c
@@ -357,7 +357,7 @@ xf86freeDeviceList (XF86ConfDevicePtr ptr)
 	}
 }
 
-_X_EXPORT XF86ConfDevicePtr
+XF86ConfDevicePtr
 xf86findDevice (const char *ident, XF86ConfDevicePtr p)
 {
 	while (p)
@@ -370,7 +370,7 @@ xf86findDevice (const char *ident, XF86ConfDevicePtr p)
 	return (NULL);
 }
 
-_X_EXPORT char *
+char *
 xf86configStrdup (const char *s)
 {
 	char *tmp;
diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c
index 6eb48e3..8f44ea5 100644
--- a/hw/xfree86/parser/Flags.c
+++ b/hw/xfree86/parser/Flags.c
@@ -216,7 +216,7 @@ addNewOption2 (XF86OptionPtr head, char *name, char *val, int used)
 	return ((XF86OptionPtr) xf86addListItem ((glp) head, (glp) new));
 }
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86addNewOption (XF86OptionPtr head, char *name, char *val)
 {
 	return addNewOption2(head, name, val, 0);
@@ -232,7 +232,7 @@ xf86freeFlags (XF86ConfFlagsPtr flags)
 	xf86conffree (flags);
 }
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86optionListDup (XF86OptionPtr opt)
 {
 	XF86OptionPtr newopt = NULL;
@@ -249,7 +249,7 @@ xf86optionListDup (XF86OptionPtr opt)
 	return newopt;
 }
 
-_X_EXPORT void
+void
 xf86optionListFree (XF86OptionPtr opt)
 {
 	XF86OptionPtr prev;
@@ -265,7 +265,7 @@ xf86optionListFree (XF86OptionPtr opt)
 	}
 }
 
-_X_EXPORT char *
+char *
 xf86optionName(XF86OptionPtr opt)
 {
 	if (opt)
@@ -273,7 +273,7 @@ xf86optionName(XF86OptionPtr opt)
 	return 0;
 }
 
-_X_EXPORT char *
+char *
 xf86optionValue(XF86OptionPtr opt)
 {
 	if (opt)
@@ -281,7 +281,7 @@ xf86optionValue(XF86OptionPtr opt)
 	return 0;
 }
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86newOption(char *name, char *value)
 {
 	XF86OptionPtr opt;
@@ -298,7 +298,7 @@ xf86newOption(char *name, char *value)
 	return opt;
 }
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86nextOption(XF86OptionPtr list)
 {
 	if (!list)
@@ -312,7 +312,7 @@ xf86nextOption(XF86OptionPtr list)
  * NULL
  */
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86findOption (XF86OptionPtr list, const char *name)
 {
 	while (list)
@@ -331,7 +331,7 @@ xf86findOption (XF86OptionPtr list, const char *name)
  * returned.  If the option is not found, a NULL is returned.
  */
 
-_X_EXPORT char *
+char *
 xf86findOptionValue (XF86OptionPtr list, const char *name)
 {
 	XF86OptionPtr p = xf86findOption (list, name);
@@ -346,7 +346,7 @@ xf86findOptionValue (XF86OptionPtr list, const char *name)
 	return (NULL);
 }
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86optionListCreate( const char **options, int count, int used )
 {
 	XF86OptionPtr p = NULL;
@@ -383,7 +383,7 @@ xf86optionListCreate( const char **options, int count, int used )
  * is used. The end result is a single valid list of options. Duplicates
  * are freed, and the original lists are no longer guaranteed to be complete.
  */
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86optionListMerge (XF86OptionPtr head, XF86OptionPtr tail)
 {
 	XF86OptionPtr a, b, ap = NULL, bp = NULL;
@@ -428,7 +428,7 @@ xf86optionListMerge (XF86OptionPtr head, XF86OptionPtr tail)
 	return (head);
 }
 
-_X_EXPORT char *
+char *
 xf86uLongToString(unsigned long i)
 {
 	char *s;
@@ -442,7 +442,7 @@ xf86uLongToString(unsigned long i)
 	return s;
 }
 
-_X_EXPORT XF86OptionPtr
+XF86OptionPtr
 xf86parseOption(XF86OptionPtr head)
 {
 	XF86OptionPtr option, cnew, old;
@@ -493,7 +493,7 @@ xf86parseOption(XF86OptionPtr head)
 	return (head);
 }
 
-_X_EXPORT void
+void
 xf86printOptionList(FILE *fp, XF86OptionPtr list, int tabs)
 {
 	int i;
diff --git a/hw/xfree86/parser/Input.c b/hw/xfree86/parser/Input.c
index 34ce6cb..3d98019 100644
--- a/hw/xfree86/parser/Input.c
+++ b/hw/xfree86/parser/Input.c
@@ -189,7 +189,7 @@ xf86validateInput (XF86ConfigPtr p)
 	return (TRUE);
 }
 
-_X_EXPORT XF86ConfInputPtr
+XF86ConfInputPtr
 xf86findInput (const char *ident, XF86ConfInputPtr p)
 {
 	while (p)
@@ -202,7 +202,7 @@ xf86findInput (const char *ident, XF86ConfInputPtr p)
 	return (NULL);
 }
 
-_X_EXPORT XF86ConfInputPtr
+XF86ConfInputPtr
 xf86findInputByDriver (const char *driver, XF86ConfInputPtr p)
 {
 	while (p)
diff --git a/hw/xfree86/parser/Layout.c b/hw/xfree86/parser/Layout.c
index 03afbcc..5d1348a 100644
--- a/hw/xfree86/parser/Layout.c
+++ b/hw/xfree86/parser/Layout.c
@@ -520,7 +520,7 @@ xf86validateLayout (XF86ConfigPtr p)
 	return (TRUE);
 }
 
-_X_EXPORT XF86ConfLayoutPtr
+XF86ConfLayoutPtr
 xf86findLayout (const char *name, XF86ConfLayoutPtr list)
 {
 	while (list)
diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c
index 3873077..9d53312 100644
--- a/hw/xfree86/parser/Monitor.c
+++ b/hw/xfree86/parser/Monitor.c
@@ -842,7 +842,7 @@ xf86freeModesList (XF86ConfModesPtr ptr)
 	}
 }
 
-_X_EXPORT XF86ConfMonitorPtr
+XF86ConfMonitorPtr
 xf86findMonitor (const char *ident, XF86ConfMonitorPtr p)
 {
 	while (p)
@@ -855,7 +855,7 @@ xf86findMonitor (const char *ident, XF86ConfMonitorPtr p)
 	return (NULL);
 }
 
-_X_EXPORT XF86ConfModesPtr
+XF86ConfModesPtr
 xf86findModes (const char *ident, XF86ConfModesPtr p)
 {
 	while (p)
@@ -868,7 +868,7 @@ xf86findModes (const char *ident, XF86ConfModesPtr p)
 	return (NULL);
 }
 
-_X_EXPORT XF86ConfModeLinePtr
+XF86ConfModeLinePtr
 xf86findModeLine (const char *ident, XF86ConfModeLinePtr p)
 {
 	while (p)
diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c
index cd3d889..dfc02bb 100644
--- a/hw/xfree86/parser/Screen.c
+++ b/hw/xfree86/parser/Screen.c
@@ -554,7 +554,7 @@ xf86validateScreen (XF86ConfigPtr p)
 	return (TRUE);
 }
 
-_X_EXPORT XF86ConfScreenPtr
+XF86ConfScreenPtr
 xf86findScreen (const char *ident, XF86ConfScreenPtr p)
 {
 	while (p)
diff --git a/hw/xfree86/parser/Video.c b/hw/xfree86/parser/Video.c
index 2c9c8a0..a8912cf 100644
--- a/hw/xfree86/parser/Video.c
+++ b/hw/xfree86/parser/Video.c
@@ -282,7 +282,7 @@ xf86freeVideoAdaptorList (XF86ConfVideoAdaptorPtr ptr)
 	}
 }
 
-_X_EXPORT XF86ConfVideoAdaptorPtr
+XF86ConfVideoAdaptorPtr
 xf86findVideoAdaptor (const char *ident, XF86ConfVideoAdaptorPtr p)
 {
 	while (p)
diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c
index 748a2ca..b044a6a 100644
--- a/hw/xfree86/parser/read.c
+++ b/hw/xfree86/parser/read.c
@@ -90,7 +90,7 @@ xf86validateConfig (XF86ConfigPtr p)
 	return (TRUE);
 }
 
-_X_EXPORT XF86ConfigPtr
+XF86ConfigPtr
 xf86readConfigFile (void)
 {
 	int token;
@@ -240,7 +240,7 @@ xf86readConfigFile (void)
  * A pointer to the head of the list is returned to handle the addition of
  * the first item.
  */
-_X_EXPORT GenericListPtr
+GenericListPtr
 xf86addListItem (GenericListPtr head, GenericListPtr new)
 {
 	GenericListPtr p = head;
@@ -265,7 +265,7 @@ xf86addListItem (GenericListPtr head, GenericListPtr new)
  * Test if one chained list contains the other.
  * In this case both list have the same endpoint (provided they don't loop)
  */
-_X_EXPORT int
+int
 xf86itemNotSublist(GenericListPtr list_1, GenericListPtr list_2)
 {
 	GenericListPtr p = list_1;
@@ -285,7 +285,7 @@ xf86itemNotSublist(GenericListPtr list_1, GenericListPtr list_2)
 	return (!(last_1 == last_2));
 }
 
-_X_EXPORT void
+void
 xf86freeConfig (XF86ConfigPtr p)
 {
 	if (p == NULL)
diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index 4d75087..7a9bb93 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -522,7 +522,7 @@ xf86tokenString (void)
 	return configRBuf;
 }
 
-_X_EXPORT int
+int
 xf86pathIsAbsolute(const char *path)
 {
 	if (path && path[0] == '/')
@@ -531,7 +531,7 @@ xf86pathIsAbsolute(const char *path)
 }
 
 /* A path is "safe" if it is relative and if it contains no ".." elements. */
-_X_EXPORT int
+int
 xf86pathIsSafe(const char *path)
 {
 	if (xf86pathIsAbsolute(path))
@@ -777,7 +777,7 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
 							"%P/lib/X11/%X"
 #endif
 
-_X_EXPORT const char *
+const char *
 xf86openConfigFile(const char *path, const char *cmdline, const char *projroot)
 {
 	char *pathcopy;
@@ -854,7 +854,7 @@ xf86openConfigFile(const char *path, const char *cmdline, const char *projroot)
 	return configPath;
 }
 
-_X_EXPORT void
+void
 xf86closeConfigFile (void)
 {
 	xf86conffree (configPath);
@@ -873,7 +873,7 @@ xf86closeConfigFile (void)
 	}
 }
 
-_X_EXPORT void
+void
 xf86setBuiltinConfig(const char *config[])
 {
 	builtinConfig = config;
@@ -948,7 +948,7 @@ StringToToken (char *str, xf86ConfigSymTabRec * tab)
  * Compare two names.  The characters '_', ' ', and '\t' are ignored
  * in the comparison.
  */
-_X_EXPORT int
+int
 xf86nameCompare (const char *s1, const char *s2)
 {
 	char c1, c2;
@@ -982,7 +982,7 @@ xf86nameCompare (const char *s1, const char *s2)
 	return (c1 - c2);
 }
 
-_X_EXPORT char *
+char *
 xf86addComment(char *cur, char *add)
 {
 	char *str;
diff --git a/hw/xfree86/parser/write.c b/hw/xfree86/parser/write.c
index 6b1eac9..3b77b93 100644
--- a/hw/xfree86/parser/write.c
+++ b/hw/xfree86/parser/write.c
@@ -137,7 +137,7 @@ doWriteConfigFile (const char *filename, XF86ConfigPtr cptr)
 
 #ifndef HAS_NO_UIDS
 
-_X_EXPORT int
+int
 xf86writeConfigFile (const char *filename, XF86ConfigPtr cptr)
 {
 	int ret;
diff --git a/hw/xfree86/parser/xf86Optrec.h b/hw/xfree86/parser/xf86Optrec.h
index 77a5728..77b316a 100644
--- a/hw/xfree86/parser/xf86Optrec.h
+++ b/hw/xfree86/parser/xf86Optrec.h
@@ -91,22 +91,22 @@ typedef struct
 XF86OptionRec, *XF86OptionPtr;
 
 
-XF86OptionPtr xf86addNewOption(XF86OptionPtr head, char *name, char *val);
-XF86OptionPtr xf86optionListDup(XF86OptionPtr opt);
-void xf86optionListFree(XF86OptionPtr opt);
-char *xf86optionName(XF86OptionPtr opt);
-char *xf86optionValue(XF86OptionPtr opt);
-XF86OptionPtr xf86newOption(char *name, char *value);
-XF86OptionPtr xf86nextOption(XF86OptionPtr list);
-XF86OptionPtr xf86findOption(XF86OptionPtr list, const char *name);
-char *xf86findOptionValue(XF86OptionPtr list, const char *name);
-XF86OptionPtr xf86optionListCreate(const char **options, int count, int used);
-XF86OptionPtr xf86optionListMerge(XF86OptionPtr head, XF86OptionPtr tail);
-char *xf86configStrdup (const char *s);
-int xf86nameCompare (const char *s1, const char *s2);
-char *xf86uLongToString(unsigned long i);
-XF86OptionPtr xf86parseOption(XF86OptionPtr head);
-void xf86printOptionList(FILE *fp, XF86OptionPtr list, int tabs);
+extern _X_EXPORT XF86OptionPtr xf86addNewOption(XF86OptionPtr head, char *name, char *val);
+extern _X_EXPORT XF86OptionPtr xf86optionListDup(XF86OptionPtr opt);
+extern _X_EXPORT void xf86optionListFree(XF86OptionPtr opt);
+extern _X_EXPORT char *xf86optionName(XF86OptionPtr opt);
+extern _X_EXPORT char *xf86optionValue(XF86OptionPtr opt);
+extern _X_EXPORT XF86OptionPtr xf86newOption(char *name, char *value);
+extern _X_EXPORT XF86OptionPtr xf86nextOption(XF86OptionPtr list);
+extern _X_EXPORT XF86OptionPtr xf86findOption(XF86OptionPtr list, const char *name);
+extern _X_EXPORT char *xf86findOptionValue(XF86OptionPtr list, const char *name);
+extern _X_EXPORT XF86OptionPtr xf86optionListCreate(const char **options, int count, int used);
+extern _X_EXPORT XF86OptionPtr xf86optionListMerge(XF86OptionPtr head, XF86OptionPtr tail);
+extern _X_EXPORT char *xf86configStrdup (const char *s);
+extern _X_EXPORT int xf86nameCompare (const char *s1, const char *s2);
+extern _X_EXPORT char *xf86uLongToString(unsigned long i);
+extern _X_EXPORT XF86OptionPtr xf86parseOption(XF86OptionPtr head);
+extern _X_EXPORT void xf86printOptionList(FILE *fp, XF86OptionPtr list, int tabs);
 
 
 #endif /* _xf86Optrec_h_ */
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index fd6cc53..0444b03 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -456,29 +456,29 @@ xf86ConfigSymTabRec, *xf86ConfigSymTabPtr;
 /*
  * prototypes for public functions
  */
-extern const char *xf86openConfigFile (const char *, const char *,
+extern _X_EXPORT const char *xf86openConfigFile (const char *, const char *,
 					const char *);
-extern void xf86setBuiltinConfig(const char *config[]);
-extern XF86ConfigPtr xf86readConfigFile (void);
-extern void xf86closeConfigFile (void);
-extern void xf86freeConfig (XF86ConfigPtr p);
-extern int xf86writeConfigFile (const char *, XF86ConfigPtr);
-XF86ConfDevicePtr xf86findDevice(const char *ident, XF86ConfDevicePtr p);
-XF86ConfLayoutPtr xf86findLayout(const char *name, XF86ConfLayoutPtr list);
-XF86ConfMonitorPtr xf86findMonitor(const char *ident, XF86ConfMonitorPtr p);
-XF86ConfModesPtr xf86findModes(const char *ident, XF86ConfModesPtr p);
-XF86ConfModeLinePtr xf86findModeLine(const char *ident, XF86ConfModeLinePtr p);
-XF86ConfScreenPtr xf86findScreen(const char *ident, XF86ConfScreenPtr p);
-XF86ConfInputPtr xf86findInput(const char *ident, XF86ConfInputPtr p);
-XF86ConfInputPtr xf86findInputByDriver(const char *driver, XF86ConfInputPtr p);
-XF86ConfVideoAdaptorPtr xf86findVideoAdaptor(const char *ident,
+extern _X_EXPORT void xf86setBuiltinConfig(const char *config[]);
+extern _X_EXPORT XF86ConfigPtr xf86readConfigFile (void);
+extern _X_EXPORT void xf86closeConfigFile (void);
+extern _X_EXPORT void xf86freeConfig (XF86ConfigPtr p);
+extern _X_EXPORT int xf86writeConfigFile (const char *, XF86ConfigPtr);
+extern _X_EXPORT XF86ConfDevicePtr xf86findDevice(const char *ident, XF86ConfDevicePtr p);
+extern _X_EXPORT XF86ConfLayoutPtr xf86findLayout(const char *name, XF86ConfLayoutPtr list);
+extern _X_EXPORT XF86ConfMonitorPtr xf86findMonitor(const char *ident, XF86ConfMonitorPtr p);
+extern _X_EXPORT XF86ConfModesPtr xf86findModes(const char *ident, XF86ConfModesPtr p);
+extern _X_EXPORT XF86ConfModeLinePtr xf86findModeLine(const char *ident, XF86ConfModeLinePtr p);
+extern _X_EXPORT XF86ConfScreenPtr xf86findScreen(const char *ident, XF86ConfScreenPtr p);
+extern _X_EXPORT XF86ConfInputPtr xf86findInput(const char *ident, XF86ConfInputPtr p);
+extern _X_EXPORT XF86ConfInputPtr xf86findInputByDriver(const char *driver, XF86ConfInputPtr p);
+extern _X_EXPORT XF86ConfVideoAdaptorPtr xf86findVideoAdaptor(const char *ident,
 						XF86ConfVideoAdaptorPtr p);
 
-GenericListPtr xf86addListItem(GenericListPtr head, GenericListPtr c_new);
-int xf86itemNotSublist(GenericListPtr list_1, GenericListPtr list_2);
+extern _X_EXPORT GenericListPtr xf86addListItem(GenericListPtr head, GenericListPtr c_new);
+extern _X_EXPORT int xf86itemNotSublist(GenericListPtr list_1, GenericListPtr list_2);
 
-int xf86pathIsAbsolute(const char *path);
-int xf86pathIsSafe(const char *path);
-char *xf86addComment(char *cur, char *add);
+extern _X_EXPORT int xf86pathIsAbsolute(const char *path);
+extern _X_EXPORT int xf86pathIsSafe(const char *path);
+extern _X_EXPORT char *xf86addComment(char *cur, char *add);
 
 #endif /* _xf86Parser_h_ */
diff --git a/hw/xfree86/ramdac/BT.c b/hw/xfree86/ramdac/BT.c
index 28e82b1..5aa27a1 100644
--- a/hw/xfree86/ramdac/BT.c
+++ b/hw/xfree86/ramdac/BT.c
@@ -35,7 +35,7 @@
 #include "BTPriv.h"
 #include "xf86RamDacPriv.h"
 
-_X_EXPORT void
+void
 BTramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 				    RamDacRegRecPtr ramdacReg)
 {
@@ -50,7 +50,7 @@ BTramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 						ramdacReg->DacRegs[i]);
 }
 
-_X_EXPORT void
+void
 BTramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr, 
 				 RamDacRegRecPtr ramdacReg)
 {
@@ -65,7 +65,7 @@ BTramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 	    ramdacReg->DacRegs[i] = (*ramdacPtr->ReadDAC)(pScrn, i);
 }
 
-_X_EXPORT RamDacHelperRecPtr
+RamDacHelperRecPtr
 BTramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs/*, RamDacRecPtr ramdacPtr*/)
 {
     RamDacRecPtr ramdacPtr = RAMDACSCRPTR(pScrn);
@@ -137,7 +137,7 @@ BTramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs/*, RamDacRecP
     return ramdacHelperPtr;
 }
 
-_X_EXPORT void
+void
 BTramdacSetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
 {
     /* We need to deal with Direct Colour visuals for 8bpp and other
diff --git a/hw/xfree86/ramdac/BT.h b/hw/xfree86/ramdac/BT.h
index b3426ba..35d0bdb 100644
--- a/hw/xfree86/ramdac/BT.h
+++ b/hw/xfree86/ramdac/BT.h
@@ -1,10 +1,10 @@
 
 #include "xf86RamDac.h"
 
-RamDacHelperRecPtr BTramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
-void BTramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
-void BTramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
-void BTramdacSetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT RamDacHelperRecPtr BTramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
+extern _X_EXPORT void BTramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void BTramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void BTramdacSetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
 
 #define ATT20C504_RAMDAC 	(VENDOR_BT << 16) | 0x00
 #define ATT20C505_RAMDAC 	(VENDOR_BT << 16) | 0x01
diff --git a/hw/xfree86/ramdac/IBM.c b/hw/xfree86/ramdac/IBM.c
index e45bd94..2d9fe4d 100644
--- a/hw/xfree86/ramdac/IBM.c
+++ b/hw/xfree86/ramdac/IBM.c
@@ -39,7 +39,7 @@
 
 #define INITIALFREQERR 100000
 
-_X_EXPORT unsigned long
+unsigned long
 IBMramdac640CalculateMNPCForClock(
     unsigned long RefClock,	/* In 100Hz units */
     unsigned long ReqClock,	/* In 100Hz units */
@@ -105,7 +105,7 @@ IBMramdac640CalculateMNPCForClock(
   return (ActualClock);
 }
 
-_X_EXPORT unsigned long
+unsigned long
 IBMramdac526CalculateMNPCForClock(
     unsigned long RefClock,	/* In 100Hz units */
     unsigned long ReqClock,	/* In 100Hz units */
@@ -171,7 +171,7 @@ IBMramdac526CalculateMNPCForClock(
   return (ActualClock);
 }
 
-_X_EXPORT void
+void
 IBMramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 				    RamDacRegRecPtr ramdacReg)
 {
@@ -200,7 +200,7 @@ IBMramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 	    	(*ramdacPtr->WriteData)(pScrn, ramdacReg->DAC[i]);
 }
 
-_X_EXPORT void
+void
 IBMramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr, 
 				 RamDacRegRecPtr ramdacReg)
 {
@@ -225,7 +225,7 @@ IBMramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 	    ramdacReg->DacRegs[i] = (*ramdacPtr->ReadDAC)(pScrn, i);
 }
 
-_X_EXPORT RamDacHelperRecPtr
+RamDacHelperRecPtr
 IBMramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs/* , RamDacRecPtr ramdacPtr*/)
 {
     RamDacRecPtr ramdacPtr = RAMDACSCRPTR(pScrn);
@@ -318,7 +318,7 @@ IBMramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs/* , RamDacRe
     return ramdacHelperPtr;
 }
 
-_X_EXPORT void
+void
 IBMramdac526SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
 {
     ramdacReg->DacRegs[IBMRGB_key_control] = 0x00; /* Disable Chroma Key */
@@ -376,11 +376,11 @@ IBMramdac526SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
     }
 }
 
-_X_EXPORT IBMramdac526SetBppProc *IBMramdac526SetBppWeak(void) {
+IBMramdac526SetBppProc *IBMramdac526SetBppWeak(void) {
     return IBMramdac526SetBpp;
 }
 
-_X_EXPORT void
+void
 IBMramdac640SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
 {
     unsigned char bpp = 0x00;
@@ -606,7 +606,7 @@ IBMramdac640UseHWCursor(ScreenPtr pScr, CursorPtr pCurs)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr)
 {
     infoPtr->MaxWidth = 64;
@@ -622,7 +622,7 @@ IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr)
     infoPtr->UseHWCursor = IBMramdac526UseHWCursor;
 }
 
-_X_EXPORT void
+void
 IBMramdac640HWCursorInit(xf86CursorInfoPtr infoPtr)
 {
     infoPtr->MaxWidth = 64;
diff --git a/hw/xfree86/ramdac/IBM.h b/hw/xfree86/ramdac/IBM.h
index fdb0f5a..6fa18b2 100644
--- a/hw/xfree86/ramdac/IBM.h
+++ b/hw/xfree86/ramdac/IBM.h
@@ -1,24 +1,24 @@
 
 #include <xf86RamDac.h>
 
-RamDacHelperRecPtr IBMramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
-void IBMramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
-void IBMramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
-void IBMramdac526SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
-void IBMramdac640SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
-unsigned long IBMramdac526CalculateMNPCForClock(unsigned long RefClock,
+extern _X_EXPORT RamDacHelperRecPtr IBMramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
+extern _X_EXPORT void IBMramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void IBMramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void IBMramdac526SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void IBMramdac640SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT unsigned long IBMramdac526CalculateMNPCForClock(unsigned long RefClock,
     unsigned long ReqClock, char IsPixClock, unsigned long MinClock,
     unsigned long MaxClock, unsigned long *rM, unsigned long *rN,
     unsigned long *rP, unsigned long *rC);
-unsigned long IBMramdac640CalculateMNPCForClock(unsigned long RefClock,
+extern _X_EXPORT unsigned long IBMramdac640CalculateMNPCForClock(unsigned long RefClock,
     unsigned long ReqClock, char IsPixClock, unsigned long MinClock,
     unsigned long MaxClock, unsigned long *rM, unsigned long *rN,
     unsigned long *rP, unsigned long *rC);
-void IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr);
-void IBMramdac640HWCursorInit(xf86CursorInfoPtr infoPtr);
+extern _X_EXPORT void IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr);
+extern _X_EXPORT void IBMramdac640HWCursorInit(xf86CursorInfoPtr infoPtr);
 
 typedef void IBMramdac526SetBppProc(ScrnInfoPtr, RamDacRegRecPtr);
-IBMramdac526SetBppProc *IBMramdac526SetBppWeak(void);
+extern _X_EXPORT IBMramdac526SetBppProc *IBMramdac526SetBppWeak(void);
 
 #define IBM524_RAMDAC		((VENDOR_IBM << 16) | 0x00)
 #define IBM524A_RAMDAC		((VENDOR_IBM << 16) | 0x01)
diff --git a/hw/xfree86/ramdac/TI.c b/hw/xfree86/ramdac/TI.c
index fdc6952..f421fc3 100644
--- a/hw/xfree86/ramdac/TI.c
+++ b/hw/xfree86/ramdac/TI.c
@@ -42,7 +42,7 @@
 #define TI_MIN_VCO_FREQ  110000
 #define TI_MAX_VCO_FREQ  220000
 
-_X_EXPORT unsigned long
+unsigned long
 TIramdacCalculateMNPForClock(
     unsigned long RefClock,	/* In 100Hz units */
     unsigned long ReqClock,	/* In 100Hz units */
@@ -123,7 +123,7 @@ TIramdacCalculateMNPForClock(
     return (ActualClock);
 }
 
-_X_EXPORT void
+void
 TIramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 				   RamDacRegRecPtr ramdacReg)
 {
@@ -225,7 +225,7 @@ TIramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
 #endif
 }
 
-_X_EXPORT void
+void
 TIramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr, 
 				RamDacRegRecPtr ramdacReg)
 {
@@ -280,7 +280,7 @@ TIramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr,
     TISAVE(TIDAC_ind_curs_ctrl);
 }
 
-_X_EXPORT RamDacHelperRecPtr
+RamDacHelperRecPtr
 TIramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs)
 {
     RamDacRecPtr ramdacPtr = RAMDACSCRPTR(pScrn);
@@ -353,7 +353,7 @@ TIramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs)
     return ramdacHelperPtr;
 }
 
-_X_EXPORT void
+void
 TIramdac3026SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
 {
     switch (pScrn->bitsPerPixel) {
@@ -470,7 +470,7 @@ TIramdac3026SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
     }
 }
 
-_X_EXPORT void
+void
 TIramdac3030SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg)
 {
     switch (pScrn->bitsPerPixel) {
@@ -660,7 +660,7 @@ TIramdacUseHWCursor(ScreenPtr pScr, CursorPtr pCurs)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 TIramdacHWCursorInit(xf86CursorInfoPtr infoPtr)
 {
     infoPtr->MaxWidth = 64;
@@ -676,7 +676,7 @@ TIramdacHWCursorInit(xf86CursorInfoPtr infoPtr)
     infoPtr->UseHWCursor = TIramdacUseHWCursor;
 }
 
-_X_EXPORT void TIramdacLoadPalette(
+void TIramdacLoadPalette(
     ScrnInfoPtr pScrn, 
     int numColors, 
     int *indices,
@@ -714,6 +714,6 @@ _X_EXPORT void TIramdacLoadPalette(
 }
 }
 
-_X_EXPORT TIramdacLoadPaletteProc *TIramdacLoadPaletteWeak(void) {
+TIramdacLoadPaletteProc *TIramdacLoadPaletteWeak(void) {
     return TIramdacLoadPalette;
 }
diff --git a/hw/xfree86/ramdac/TI.h b/hw/xfree86/ramdac/TI.h
index 5eb94cb..f5499f9 100644
--- a/hw/xfree86/ramdac/TI.h
+++ b/hw/xfree86/ramdac/TI.h
@@ -1,22 +1,22 @@
 
 #include <xf86RamDac.h>
 
-unsigned long TIramdacCalculateMNPForClock(unsigned long RefClock,
+extern _X_EXPORT unsigned long TIramdacCalculateMNPForClock(unsigned long RefClock,
     unsigned long ReqClock, char IsPixClock, unsigned long MinClock,
     unsigned long MaxClock, unsigned long *rM, unsigned long *rN,
     unsigned long *rP);
-RamDacHelperRecPtr TIramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
-void TIramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
-void TIramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
-void TIramdac3026SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
-void TIramdac3030SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
-void TIramdacHWCursorInit(xf86CursorInfoPtr infoPtr);
-void TIramdacLoadPalette( ScrnInfoPtr pScrn, int numColors, int *indices,
+extern _X_EXPORT RamDacHelperRecPtr TIramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
+extern _X_EXPORT void TIramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void TIramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void TIramdac3026SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void TIramdac3030SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
+extern _X_EXPORT void TIramdacHWCursorInit(xf86CursorInfoPtr infoPtr);
+extern _X_EXPORT void TIramdacLoadPalette( ScrnInfoPtr pScrn, int numColors, int *indices,
     LOCO *colors, VisualPtr pVisual);
 
 typedef void TIramdacLoadPaletteProc(ScrnInfoPtr, int, int *, LOCO *,
     VisualPtr);
-TIramdacLoadPaletteProc *TIramdacLoadPaletteWeak(void);
+extern _X_EXPORT TIramdacLoadPaletteProc *TIramdacLoadPaletteWeak(void);
 
 #define TI3030_RAMDAC		(VENDOR_TI << 16) | 0x00
 #define TI3026_RAMDAC		(VENDOR_TI << 16) | 0x01
diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c
index 50af03b..2b73b16 100644
--- a/hw/xfree86/ramdac/xf86Cursor.c
+++ b/hw/xfree86/ramdac/xf86Cursor.c
@@ -52,7 +52,7 @@ static void xf86CursorQueryBestSize(int, unsigned short*, unsigned short*,
 static void xf86CursorEnableDisableFBAccess(int, Bool);
 static Bool xf86CursorSwitchMode(int, DisplayModePtr,int);
 
-_X_EXPORT Bool
+Bool
 xf86InitCursor(
    ScreenPtr pScreen,
    xf86CursorInfoPtr infoPtr
@@ -395,7 +395,7 @@ xf86CursorMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
         (*ScreenPriv->spriteFuncs->MoveCursor)(pDev, pScreen, x, y);
 }
 
-_X_EXPORT void
+void
 xf86ForceHWCursor (ScreenPtr pScreen, Bool on)
 {
     DeviceIntPtr pDev = inputInfo.pointer;
@@ -427,13 +427,13 @@ xf86ForceHWCursor (ScreenPtr pScreen, Bool on)
     }
 }
 
-_X_EXPORT xf86CursorInfoPtr
+xf86CursorInfoPtr
 xf86CreateCursorInfoRec(void)
 {
     return xcalloc(1, sizeof(xf86CursorInfoRec));
 }
 
-_X_EXPORT void
+void
 xf86DestroyCursorInfoRec(xf86CursorInfoPtr infoPtr)
 {
     xfree(infoPtr);
diff --git a/hw/xfree86/ramdac/xf86Cursor.h b/hw/xfree86/ramdac/xf86Cursor.h
index 469f48f..3f3618b 100644
--- a/hw/xfree86/ramdac/xf86Cursor.h
+++ b/hw/xfree86/ramdac/xf86Cursor.h
@@ -25,10 +25,10 @@ typedef struct _xf86CursorInfoRec {
 
 } xf86CursorInfoRec, *xf86CursorInfoPtr;
 
-Bool xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr);
-xf86CursorInfoPtr xf86CreateCursorInfoRec(void);
-void xf86DestroyCursorInfoRec(xf86CursorInfoPtr);
-void xf86ForceHWCursor (ScreenPtr pScreen, Bool on);
+extern _X_EXPORT Bool xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr);
+extern _X_EXPORT xf86CursorInfoPtr xf86CreateCursorInfoRec(void);
+extern _X_EXPORT void xf86DestroyCursorInfoRec(xf86CursorInfoPtr);
+extern _X_EXPORT void xf86ForceHWCursor (ScreenPtr pScreen, Bool on);
 
 #define HARDWARE_CURSOR_INVERT_MASK 			0x00000001
 #define HARDWARE_CURSOR_AND_SOURCE_WITH_MASK		0x00000002
diff --git a/hw/xfree86/ramdac/xf86RamDac.c b/hw/xfree86/ramdac/xf86RamDac.c
index 360cd47..70c752e 100644
--- a/hw/xfree86/ramdac/xf86RamDac.c
+++ b/hw/xfree86/ramdac/xf86RamDac.c
@@ -33,10 +33,10 @@
 
 #include "xf86RamDacPriv.h"
 
-_X_EXPORT int RamDacHWPrivateIndex = -1;
-_X_EXPORT int RamDacScreenPrivateIndex = -1;
+int RamDacHWPrivateIndex = -1;
+int RamDacScreenPrivateIndex = -1;
 
-_X_EXPORT RamDacRecPtr
+RamDacRecPtr
 RamDacCreateInfoRec()
 {
     RamDacRecPtr infoRec;
@@ -46,7 +46,7 @@ RamDacCreateInfoRec()
     return infoRec;
 }
 
-_X_EXPORT RamDacHelperRecPtr
+RamDacHelperRecPtr
 RamDacHelperCreateInfoRec()
 {
     RamDacHelperRecPtr infoRec;
@@ -56,19 +56,19 @@ RamDacHelperCreateInfoRec()
     return infoRec;
 }
 
-_X_EXPORT void 
+void
 RamDacDestroyInfoRec(RamDacRecPtr infoRec)
 {
     xfree(infoRec);
 }
 
-_X_EXPORT void
+void
 RamDacHelperDestroyInfoRec(RamDacHelperRecPtr infoRec)
 {
     xfree(infoRec);
 }
 
-_X_EXPORT Bool
+Bool
 RamDacInit(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPriv)
 {
     RamDacScreenRecPtr ramdacScrPtr;
@@ -116,7 +116,7 @@ RamDacGetRec(ScrnInfoPtr scrp)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 RamDacFreeRec(ScrnInfoPtr pScrn)
 {
     RamDacHWRecPtr ramdacHWPtr;
@@ -141,13 +141,13 @@ RamDacFreeRec(ScrnInfoPtr pScrn)
     ramdacScrPtr = NULL;
 }
 
-_X_EXPORT int
+int
 RamDacGetHWIndex()
 {
     return RamDacHWPrivateIndex;
 }
 
-_X_EXPORT int
+int
 RamDacGetScreenIndex()
 {
     return RamDacScreenPrivateIndex;
diff --git a/hw/xfree86/ramdac/xf86RamDac.h b/hw/xfree86/ramdac/xf86RamDac.h
index 3d2982e..4a3900b 100644
--- a/hw/xfree86/ramdac/xf86RamDac.h
+++ b/hw/xfree86/ramdac/xf86RamDac.h
@@ -101,21 +101,21 @@ typedef struct _RamdacScreenRec {
 } RamDacScreenRec, *RamDacScreenRecPtr;
 #define RAMDACSCRPTR(p) ((RamDacScreenRecPtr)((p)->privates[RamDacGetScreenIndex()].ptr))->RamDacRec
 
-extern int RamDacHWPrivateIndex;
-extern int RamDacScreenPrivateIndex;
+extern _X_EXPORT int RamDacHWPrivateIndex;
+extern _X_EXPORT int RamDacScreenPrivateIndex;
 
 typedef struct {
     int		token;
 } RamDacSupportedInfoRec, *RamDacSupportedInfoRecPtr;
 
-RamDacRecPtr RamDacCreateInfoRec(void);
-RamDacHelperRecPtr RamDacHelperCreateInfoRec(void);
-void RamDacDestroyInfoRec(RamDacRecPtr RamDacRec);
-void RamDacHelperDestroyInfoRec(RamDacHelperRecPtr RamDacRec);
-Bool RamDacInit(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec);
-Bool RamDacHandleColormaps(ScreenPtr pScreen, int maxColors, int sigRGBbits,
+extern _X_EXPORT RamDacRecPtr RamDacCreateInfoRec(void);
+extern _X_EXPORT RamDacHelperRecPtr RamDacHelperCreateInfoRec(void);
+extern _X_EXPORT void RamDacDestroyInfoRec(RamDacRecPtr RamDacRec);
+extern _X_EXPORT void RamDacHelperDestroyInfoRec(RamDacHelperRecPtr RamDacRec);
+extern _X_EXPORT Bool RamDacInit(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec);
+extern _X_EXPORT Bool RamDacHandleColormaps(ScreenPtr pScreen, int maxColors, int sigRGBbits,
 			   unsigned int flags);
-void RamDacFreeRec(ScrnInfoPtr pScrn);
-int  RamDacGetHWIndex(void);
+extern _X_EXPORT void RamDacFreeRec(ScrnInfoPtr pScrn);
+extern _X_EXPORT int  RamDacGetHWIndex(void);
 
 #endif /* _XF86RAMDAC_H */
diff --git a/hw/xfree86/ramdac/xf86RamDacCmap.c b/hw/xfree86/ramdac/xf86RamDacCmap.c
index f4fdb18..600fe3f 100644
--- a/hw/xfree86/ramdac/xf86RamDacCmap.c
+++ b/hw/xfree86/ramdac/xf86RamDacCmap.c
@@ -58,7 +58,7 @@ RamDacLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
     }
 }
 
-_X_EXPORT Bool
+Bool
 RamDacHandleColormaps(ScreenPtr pScreen, int maxColors, int sigRGBbits,
 		      unsigned int flags)
 {
diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c
index 7d20a65..ff775ef 100644
--- a/hw/xfree86/shadowfb/shadow.c
+++ b/hw/xfree86/shadowfb/shadow.c
@@ -159,7 +159,7 @@ static DevPrivateKey ShadowGCKey = &ShadowGCKeyIndex;
 
 
 
-_X_EXPORT Bool
+Bool
 ShadowFBInit2 (
     ScreenPtr		pScreen,
     RefreshAreaFuncPtr  preRefreshArea,
@@ -212,7 +212,7 @@ ShadowFBInit2 (
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 ShadowFBInit (
     ScreenPtr		pScreen,
     RefreshAreaFuncPtr  refreshArea
diff --git a/hw/xfree86/shadowfb/shadowfb.h b/hw/xfree86/shadowfb/shadowfb.h
index 6c96358..56e0e86 100644
--- a/hw/xfree86/shadowfb/shadowfb.h
+++ b/hw/xfree86/shadowfb/shadowfb.h
@@ -19,7 +19,7 @@ typedef void (*RefreshAreaFuncPtr)(ScrnInfoPtr, int, BoxPtr);
  *
  * Returns FALSE in the event of an error.
  */
-Bool
+extern _X_EXPORT Bool
 ShadowFBInit (
     ScreenPtr		pScreen,
     RefreshAreaFuncPtr  refreshArea
@@ -33,7 +33,7 @@ ShadowFBInit (
  *
  * Returns FALSE in the event of an error
  */
-Bool
+extern _X_EXPORT Bool
 ShadowFBInit2 (
     ScreenPtr		pScreen,
     RefreshAreaFuncPtr  preRefreshArea,
diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c
index 1322962..4986b5b 100644
--- a/hw/xfree86/vbe/vbe.c
+++ b/hw/xfree86/vbe/vbe.c
@@ -41,13 +41,13 @@ static Bool vbeProbeDDC(vbeInfoPtr pVbe);
 
 static const char vbeVersionString[] = "VBE2";
 
-_X_EXPORT vbeInfoPtr
+vbeInfoPtr
 VBEInit(xf86Int10InfoPtr pInt, int entityIndex)
 {
     return VBEExtendedInit(pInt, entityIndex, 0);
 }
 
-_X_EXPORT vbeInfoPtr
+vbeInfoPtr
 VBEExtendedInit(xf86Int10InfoPtr pInt, int entityIndex, int Flags)
 {
     int RealOff;
@@ -155,7 +155,7 @@ VBEExtendedInit(xf86Int10InfoPtr pInt, int entityIndex, int Flags)
     return NULL;
 }
 
-_X_EXPORT void
+void
 vbeFree(vbeInfoPtr pVbe)
 {
     if (!pVbe)
@@ -306,7 +306,7 @@ vbeReadEDID(vbeInfoPtr pVbe)
     return tmp;
 }
 
-_X_EXPORT xf86MonPtr
+xf86MonPtr
 vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule)
 {
     xf86MonPtr    pMonitor;
@@ -339,7 +339,7 @@ vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule)
 #define GET_UNALIGNED2(x) \
             ((*(CARD16*)(x)) | (*(((CARD16*)(x) + 1))) << 16)
 
-_X_EXPORT VbeInfoBlock *
+VbeInfoBlock *
 VBEGetVBEInfo(vbeInfoPtr pVbe)
 {
     VbeInfoBlock *block = NULL;
@@ -423,7 +423,7 @@ VBEGetVBEInfo(vbeInfoPtr pVbe)
     return (block);
 }
 
-_X_EXPORT void
+void
 VBEFreeVBEInfo(VbeInfoBlock *block)
 {
     xfree(block->OEMStringPtr);
@@ -436,7 +436,7 @@ VBEFreeVBEInfo(VbeInfoBlock *block)
     xfree(block);
 }
 
-_X_EXPORT Bool
+Bool
 VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *block)
 {
     /*
@@ -474,7 +474,7 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *block)
     return (R16(pVbe->pInt10->ax) == 0x4f);
 }
 
-_X_EXPORT Bool
+Bool
 VBEGetVBEMode(vbeInfoPtr pVbe, int *mode)
 {
     /*
@@ -501,7 +501,7 @@ VBEGetVBEMode(vbeInfoPtr pVbe, int *mode)
     return (FALSE);
 }
 
-_X_EXPORT VbeModeInfoBlock *
+VbeModeInfoBlock *
 VBEGetModeInfo(vbeInfoPtr pVbe, int mode)
 {
     VbeModeInfoBlock *block = NULL;
@@ -596,13 +596,13 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode)
     return (block);
 }
 
-_X_EXPORT void
+void
 VBEFreeModeInfo(VbeModeInfoBlock *block)
 {
     xfree(block);
 }
 
-_X_EXPORT Bool
+Bool
 VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function, 
 	       pointer *memory, int *size, int *real_mode_pages)
 {
@@ -701,7 +701,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window)
 {
     /*
@@ -723,7 +723,7 @@ VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window)
     return (TRUE);
 }
 
-_X_EXPORT Bool
+Bool
 VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
 				int width, int *pixels, int *bytes, int *max)
 {
@@ -771,7 +771,7 @@ VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
     return (TRUE);
 }
 
-_X_EXPORT Bool
+Bool
 VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace)
 {
     pVbe->pInt10->num = 0x10;
@@ -787,7 +787,7 @@ VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace)
     return (TRUE);
 }
 
-_X_EXPORT Bool
+Bool
 VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y)
 {
     pVbe->pInt10->num = 0x10;
@@ -804,7 +804,7 @@ VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y)
     return (TRUE);
 }
 
-_X_EXPORT int
+int
 VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits)
 {
     /*
@@ -834,7 +834,7 @@ VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits)
     return (bits != 0 ? bits : (pVbe->pInt10->bx >> 8) & 0x00ff);
 }
 
-_X_EXPORT CARD32 *
+CARD32 *
 VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
 		      CARD32 *data, Bool secondary, Bool wait_retrace)
 {
@@ -891,7 +891,7 @@ VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
     return (data);
 }
 
-_X_EXPORT VBEpmi *
+VBEpmi *
 VBEGetVBEpmi(vbeInfoPtr pVbe)
 {
     VBEpmi *pmi;
@@ -977,7 +977,7 @@ VBECalcVbeModeIndex(vbeModeInfoPtr m, DisplayModePtr mode, int bpp)
 }
 #endif
 
-_X_EXPORT void
+void
 VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr,
 		  vbeSaveRestoreFunction function)
 {
@@ -1013,7 +1013,7 @@ VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr,
 
 }
 
-_X_EXPORT int
+int
 VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
 {
     /*
@@ -1041,7 +1041,7 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
     return (pVbe->pInt10->cx);
 }
 
-_X_EXPORT Bool
+Bool
 VBEDPMSSet(vbeInfoPtr pVbe, int mode)
 {
     /*
@@ -1074,7 +1074,7 @@ VBEDPMSSet(vbeInfoPtr pVbe, int mode)
     return (R16(pVbe->pInt10->ax) == 0x4f);
 }
 
-_X_EXPORT void
+void
 VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -1103,7 +1103,7 @@ VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data)
     xfree(mode);
 }
 
-_X_EXPORT struct vbePanelID *
+struct vbePanelID *
 VBEReadPanelID(vbeInfoPtr pVbe)
 {
     int RealOff = pVbe->real_mode_base;
diff --git a/hw/xfree86/vbe/vbe.h b/hw/xfree86/vbe/vbe.h
index 7f05e6b..b1ec5a9 100644
--- a/hw/xfree86/vbe/vbe.h
+++ b/hw/xfree86/vbe/vbe.h
@@ -37,10 +37,10 @@ typedef struct {
 #define VBE_VERSION_MAJOR(x) *((CARD8*)(&x) + 1)
 #define VBE_VERSION_MINOR(x) (CARD8)(x)
 
-vbeInfoPtr VBEInit(xf86Int10InfoPtr pInt, int entityIndex);
-vbeInfoPtr VBEExtendedInit(xf86Int10InfoPtr pInt, int entityIndex, int Flags);
-void vbeFree(vbeInfoPtr pVbe);
-xf86MonPtr vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule);
+extern _X_EXPORT vbeInfoPtr VBEInit(xf86Int10InfoPtr pInt, int entityIndex);
+extern _X_EXPORT vbeInfoPtr VBEExtendedInit(xf86Int10InfoPtr pInt, int entityIndex, int Flags);
+extern _X_EXPORT void vbeFree(vbeInfoPtr pVbe);
+extern _X_EXPORT xf86MonPtr vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule);
 
 #pragma pack(1)
 
@@ -99,8 +99,8 @@ struct _VbeInfoBlock {
 } __attribute__((packed));
 
 /* Return Super VGA Information */
-VbeInfoBlock *VBEGetVBEInfo(vbeInfoPtr pVbe);
-void VBEFreeVBEInfo(VbeInfoBlock *block);
+extern _X_EXPORT VbeInfoBlock *VBEGetVBEInfo(vbeInfoPtr pVbe);
+extern _X_EXPORT void VBEFreeVBEInfo(VbeInfoBlock *block);
 
 /*
  * INT 1
@@ -163,8 +163,8 @@ struct _VbeModeInfoBlock {
 } __attribute__((packed));
 
 /* Return VBE Mode Information */
-VbeModeInfoBlock *VBEGetModeInfo(vbeInfoPtr pVbe, int mode);
-void VBEFreeModeInfo(VbeModeInfoBlock *block);
+extern _X_EXPORT VbeModeInfoBlock *VBEGetModeInfo(vbeInfoPtr pVbe, int mode);
+extern _X_EXPORT void VBEFreeModeInfo(VbeModeInfoBlock *block);
 
 /*
  * INT2
@@ -189,13 +189,13 @@ struct _VbeCRTCInfoBlock {
 } __attribute__((packed));
 /* VbeCRTCInfoBlock is in the VESA 3.0 specs */
 
-Bool VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *crtc);
+extern _X_EXPORT Bool VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *crtc);
 
 /*
  * INT 3
  */
 
-Bool VBEGetVBEMode(vbeInfoPtr pVbe, int *mode);
+extern _X_EXPORT Bool VBEGetVBEMode(vbeInfoPtr pVbe, int *mode);
 
 /*
  * INT 4
@@ -217,7 +217,7 @@ typedef enum {
   MODE_RESTORE
 } vbeSaveRestoreFunction;
 
-Bool
+extern _X_EXPORT Bool
 VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction fuction, 
 	       pointer *memory, int *size, int *real_mode_pages);
 
@@ -225,7 +225,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction fuction,
  * INT 5
  */
 
-Bool
+extern _X_EXPORT Bool
 VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window);
 
 /*
@@ -251,7 +251,7 @@ typedef enum {
 #define VBEGetMaxLogicalScanline(pVbe, pixels, bytes, max)	\
 	VBESetGetLogicalScanlineLength(pVbe, SCANWID_GET_MAX, 0, \
 					pixels, bytes, max)
-Bool VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, 
+extern _X_EXPORT Bool VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe,
 				    vbeScanwidthCommand command, int width,
 				     int *pixels, int *bytes, int *max);
 
@@ -260,15 +260,15 @@ Bool VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe,
  */
 
 /* 16 bit code */
-Bool VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace);
-Bool VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y);
+extern _X_EXPORT Bool VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace);
+extern _X_EXPORT Bool VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y);
 
 /*
  * INT 8
  */
 
 /* if bits is 0, then it is a GET */
-int VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits);
+extern _X_EXPORT int VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits);
 
 /*
  * INT 9
@@ -280,7 +280,7 @@ int VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits);
  *  If setting a palette, it will return the pointer received on success,
  * NULL on failure.
  */
-CARD32 *VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
+extern _X_EXPORT CARD32 *VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
 			     CARD32 *data, Bool secondary, Bool wait_retrace);
 #define VBEFreePaletteData(data)	xfree(data)
 
@@ -294,7 +294,7 @@ typedef struct _VBEpmi {
     int tbl_len;
 } VBEpmi;
 
-VBEpmi *VBEGetVBEpmi(vbeInfoPtr pVbe);
+extern _X_EXPORT VBEpmi *VBEGetVBEpmi(vbeInfoPtr pVbe);
 #define VESAFreeVBEpmi(pmi)	xfree(pmi)
 
 /* high level helper functions */
@@ -315,12 +315,12 @@ typedef struct {
     int stateMode;
 } vbeSaveRestoreRec, *vbeSaveRestorePtr;
 
-void
+extern _X_EXPORT void
 VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr,
 		   vbeSaveRestoreFunction function);
 
-int VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int Clock);
-Bool VBEDPMSSet(vbeInfoPtr pVbe, int mode);
+extern _X_EXPORT int VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int Clock);
+extern _X_EXPORT Bool VBEDPMSSet(vbeInfoPtr pVbe, int mode);
 
 struct vbePanelID {
     short hsize;
@@ -335,7 +335,7 @@ struct vbePanelID {
     char reserved[14];
 };
 
-void VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data);
-struct vbePanelID *VBEReadPanelID(vbeInfoPtr pVbe);
+extern _X_EXPORT void VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data);
+extern _X_EXPORT struct vbePanelID *VBEReadPanelID(vbeInfoPtr pVbe);
 
 #endif
diff --git a/hw/xfree86/vbe/vbeModes.c b/hw/xfree86/vbe/vbeModes.c
index 78cca5a..fb730a7 100644
--- a/hw/xfree86/vbe/vbeModes.c
+++ b/hw/xfree86/vbe/vbeModes.c
@@ -89,7 +89,7 @@ GetDepthFlag(vbeInfoPtr pVbe, int id)
 /*
  * Find supported mode depths.
  */
-_X_EXPORT int
+int
 VBEFindSupportedDepths(vbeInfoPtr pVbe, VbeInfoBlock *vbe, int *flags24,
 			int modeTypes)
 {
@@ -269,7 +269,7 @@ CheckMode(ScrnInfoPtr pScrn, vbeInfoPtr pVbe, VbeInfoBlock *vbe, int id,
  * list.
  */
 
-_X_EXPORT DisplayModePtr
+DisplayModePtr
 VBEGetModePool(ScrnInfoPtr pScrn, vbeInfoPtr pVbe, VbeInfoBlock *vbe,
 	       int modeTypes)
 {
@@ -343,7 +343,7 @@ VBEGetModePool(ScrnInfoPtr pScrn, vbeInfoPtr pVbe, VbeInfoBlock *vbe,
     return modePool;
 }
 
-_X_EXPORT void
+void
 VBESetModeNames(DisplayModePtr pMode)
 {
     if (!pMode)
@@ -369,7 +369,7 @@ VBESetModeNames(DisplayModePtr pMode)
  * parameters for each BIOS mode.  Note: This is only supported in
  * VBE version 3.0 or later.
  */
-_X_EXPORT void
+void
 VBESetModeParameters(ScrnInfoPtr pScrn, vbeInfoPtr pVbe)
 {
     DisplayModePtr pMode;
@@ -432,7 +432,7 @@ VBESetModeParameters(ScrnInfoPtr pScrn, vbeInfoPtr pVbe)
 /*
  * These wrappers are to allow (temporary) funtionality divergences.
  */
-_X_EXPORT int
+int
 VBEValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
 		  char **modeNames, ClockRangePtr clockRanges,
 		  int *linePitches, int minPitch, int maxPitch, int pitchInc,
@@ -445,7 +445,7 @@ VBEValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
 			     apertureSize, strategy);
 }
 
-_X_EXPORT void
+void
 VBEPrintModes(ScrnInfoPtr scrp)
 {
     xf86PrintModes(scrp);
diff --git a/hw/xfree86/vbe/vbeModes.h b/hw/xfree86/vbe/vbeModes.h
index c28cdaa..4477987 100644
--- a/hw/xfree86/vbe/vbeModes.h
+++ b/hw/xfree86/vbe/vbeModes.h
@@ -67,24 +67,24 @@ typedef struct _VbeModeInfoData {
 #define V_MODETYPE_VGA		0x02
 #define V_MODETYPE_BAD		0x04
 
-extern int VBEFindSupportedDepths(vbeInfoPtr pVbe, VbeInfoBlock *vbe,
+extern _X_EXPORT int VBEFindSupportedDepths(vbeInfoPtr pVbe, VbeInfoBlock *vbe,
 				  int *flags24, int modeTypes);
-extern DisplayModePtr VBEGetModePool(ScrnInfoPtr pScrn, vbeInfoPtr pVbe,
+extern _X_EXPORT DisplayModePtr VBEGetModePool(ScrnInfoPtr pScrn, vbeInfoPtr pVbe,
 					VbeInfoBlock *vbe, int modeTypes);
-extern void VBESetModeNames(DisplayModePtr pMode);
-extern void VBESetModeParameters(ScrnInfoPtr pScrn, vbeInfoPtr pVbe);
+extern _X_EXPORT void VBESetModeNames(DisplayModePtr pMode);
+extern _X_EXPORT void VBESetModeParameters(ScrnInfoPtr pScrn, vbeInfoPtr pVbe);
 
 
 /*
  * Note: These are alternatives to the standard helpers.  They should
  * usually just wrap the standard helpers.
  */
-extern int VBEValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
+extern _X_EXPORT int VBEValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
 			    char **modeNames, ClockRangePtr clockRanges,
 			    int *linePitches, int minPitch, int maxPitch,
 			    int pitchInc, int minHeight, int maxHeight,
 			    int virtualX, int virtualY, int apertureSize,
 			    LookupModeFlags strategy);
-extern void VBEPrintModes(ScrnInfoPtr scrp);
+extern _X_EXPORT void VBEPrintModes(ScrnInfoPtr scrp);
 
 #endif /* VBE_MODES_H */
diff --git a/hw/xfree86/vgahw/vgaHW.c b/hw/xfree86/vgahw/vgaHW.c
index 85b15d5..1c278d1 100644
--- a/hw/xfree86/vgahw/vgaHW.c
+++ b/hw/xfree86/vgahw/vgaHW.c
@@ -328,7 +328,7 @@ stdWriteEnable(vgaHWPtr hwp, CARD8 value)
     outb(hwp->PIOOffset + VGA_ENABLE, value);
 }
 
-_X_EXPORT void
+void
 vgaHWSetStdFuncs(vgaHWPtr hwp)
 {
     hwp->writeCrtc		= stdWriteCrtc;
@@ -535,7 +535,7 @@ mmioWriteEnable(vgaHWPtr hwp, CARD8 value)
     moutb(VGA_ENABLE, value);
 }
 
-_X_EXPORT void
+void
 vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset)
 {
     hwp->writeCrtc		= mmioWriteCrtc;
@@ -571,7 +571,7 @@ vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset)
  *	Protect VGA registers and memory from corruption during loads.
  */
 
-_X_EXPORT void
+void
 vgaHWProtect(ScrnInfoPtr pScrn, Bool on)
 {
   vgaHWPtr hwp = VGAHWPTR(pScrn);
@@ -604,7 +604,7 @@ vgaHWProtect(ScrnInfoPtr pScrn, Bool on)
   }
 }
 
-_X_EXPORT vgaHWProtectProc *vgaHWProtectWeak(void) {
+vgaHWProtectProc *vgaHWProtectWeak(void) {
   return vgaHWProtect;
 }
 
@@ -612,7 +612,7 @@ _X_EXPORT vgaHWProtectProc *vgaHWProtectWeak(void) {
  * vgaHWBlankScreen -- blank the screen.
  */
 
-_X_EXPORT void
+void
 vgaHWBlankScreen(ScrnInfoPtr pScrn, Bool on)
 {
   vgaHWPtr hwp = VGAHWPTR(pScrn);
@@ -631,7 +631,7 @@ vgaHWBlankScreen(ScrnInfoPtr pScrn, Bool on)
   vgaHWSeqReset(hwp, FALSE);
 }
 
-_X_EXPORT vgaHWBlankScreenProc *vgaHWBlankScreenWeak(void) {
+vgaHWBlankScreenProc *vgaHWBlankScreenWeak(void) {
   return vgaHWBlankScreen;
 }  
 
@@ -639,7 +639,7 @@ _X_EXPORT vgaHWBlankScreenProc *vgaHWBlankScreenWeak(void) {
  * vgaHWSaveScreen -- blank the screen.
  */
 
-_X_EXPORT Bool
+Bool
 vgaHWSaveScreen(ScreenPtr pScreen, int mode)
 {
    ScrnInfoPtr pScrn = NULL;
@@ -670,7 +670,7 @@ vgaHWSaveScreen(ScreenPtr pScreen, int mode)
  * for this function must be written.
  */
 
-_X_EXPORT void
+void
 vgaHWDPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags)
 {
   unsigned char seq1 = 0, crtc17 = 0;
@@ -715,7 +715,7 @@ vgaHWDPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags)
  *      perform a sequencer reset.
  */
 
-_X_EXPORT void
+void
 vgaHWSeqReset(vgaHWPtr hwp, Bool start)
 {
   if (start)
@@ -725,7 +725,7 @@ vgaHWSeqReset(vgaHWPtr hwp, Bool start)
 }
 
 
-_X_EXPORT void
+void
 vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
 {
 #if SAVE_TEXT || SAVE_FONT1 || SAVE_FONT2
@@ -839,7 +839,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
 }
 
 
-_X_EXPORT void
+void
 vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore)
 {
     vgaHWPtr hwp = VGAHWPTR(scrninfp);
@@ -871,7 +871,7 @@ vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore)
 }
 
 
-_X_EXPORT void
+void
 vgaHWRestoreColormap(ScrnInfoPtr scrninfp, vgaRegPtr restore)
 {
     vgaHWPtr hwp = VGAHWPTR(scrninfp);
@@ -897,7 +897,7 @@ vgaHWRestoreColormap(ScrnInfoPtr scrninfp, vgaRegPtr restore)
  *      restore the VGA state
  */
 
-_X_EXPORT void
+void
 vgaHWRestore(ScrnInfoPtr scrninfp, vgaRegPtr restore, int flags)
 {
     if (flags & VGA_SR_MODE)
@@ -910,7 +910,7 @@ vgaHWRestore(ScrnInfoPtr scrninfp, vgaRegPtr restore, int flags)
 	vgaHWRestoreColormap(scrninfp, restore);
 }
 
-_X_EXPORT void
+void
 vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save)
 {
 #if  SAVE_TEXT || SAVE_FONT1 || SAVE_FONT2
@@ -1011,7 +1011,7 @@ vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save)
 #endif /* SAVE_TEXT || SAVE_FONT1 || SAVE_FONT2 */
 }
 
-_X_EXPORT void
+void
 vgaHWSaveMode(ScrnInfoPtr scrninfp, vgaRegPtr save)
 {
     vgaHWPtr hwp = VGAHWPTR(scrninfp);
@@ -1055,7 +1055,7 @@ vgaHWSaveMode(ScrnInfoPtr scrninfp, vgaRegPtr save)
 }
 
 
-_X_EXPORT void
+void
 vgaHWSaveColormap(ScrnInfoPtr scrninfp, vgaRegPtr save)
 {
     vgaHWPtr hwp = VGAHWPTR(scrninfp);
@@ -1156,7 +1156,7 @@ vgaHWSaveColormap(ScrnInfoPtr scrninfp, vgaRegPtr save)
  *      save the current VGA state
  */
 
-_X_EXPORT void
+void
 vgaHWSave(ScrnInfoPtr scrninfp, vgaRegPtr save, int flags)
 {
     if (save == NULL)
@@ -1179,7 +1179,7 @@ vgaHWSave(ScrnInfoPtr scrninfp, vgaRegPtr save, int flags)
  *      Return FALSE on failure.
  */
 
-_X_EXPORT Bool
+Bool
 vgaHWInit(ScrnInfoPtr scrninfp, DisplayModePtr mode)
 {
     unsigned int       i;
@@ -1399,7 +1399,7 @@ vgaHWInit(ScrnInfoPtr scrninfp, DisplayModePtr mode)
      * --  TSI @ UQV,  1998.08.21
      */
 
-_X_EXPORT CARD32
+CARD32
 vgaHWHBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits, 
 	       unsigned int Flags)
 {
@@ -1440,7 +1440,7 @@ vgaHWHBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits,
      * very first scanline in a double- or multi-scanned mode.  This last case
      * needs further investigation.
      */
-_X_EXPORT CARD32
+CARD32
 vgaHWVBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits, 
 	       unsigned int Flags)
 {
@@ -1532,7 +1532,7 @@ vgaHWAllocRegs(vgaRegPtr regp)
 }
 
 
-_X_EXPORT Bool
+Bool
 vgaHWAllocDefaultRegs(vgaRegPtr regp)
 {
     regp->numCRTC = VGA_NUM_CRTC;
@@ -1544,7 +1544,7 @@ vgaHWAllocDefaultRegs(vgaRegPtr regp)
 }
 
 
-_X_EXPORT Bool
+Bool
 vgaHWSetRegCounts(ScrnInfoPtr scrp, int numCRTC, int numSequencer,
 		  int numGraphics, int numAttribute)
 {
@@ -1614,7 +1614,7 @@ vgaHWSetRegCounts(ScrnInfoPtr scrp, int numCRTC, int numSequencer,
 }
 
 
-_X_EXPORT Bool
+Bool
 vgaHWCopyReg(vgaRegPtr dst, vgaRegPtr src)
 {
     vgaHWFreeRegs(dst);
@@ -1633,7 +1633,7 @@ vgaHWCopyReg(vgaRegPtr dst, vgaRegPtr src)
 }
 
 
-_X_EXPORT Bool
+Bool
 vgaHWGetHWRec(ScrnInfoPtr scrp)
 {
     vgaRegPtr regp;
@@ -1729,7 +1729,7 @@ vgaHWGetHWRec(ScrnInfoPtr scrp)
 }
 
 
-_X_EXPORT void
+void
 vgaHWFreeHWRec(ScrnInfoPtr scrp)
 {
     if (vgaHWPrivateIndex >= 0) {
@@ -1751,7 +1751,7 @@ vgaHWFreeHWRec(ScrnInfoPtr scrp)
 }
 
 
-_X_EXPORT Bool
+Bool
 vgaHWMapMem(ScrnInfoPtr scrp)
 {
     vgaHWPtr hwp = VGAHWPTR(scrp);
@@ -1781,7 +1781,7 @@ vgaHWMapMem(ScrnInfoPtr scrp)
 }
 
 
-_X_EXPORT void
+void
 vgaHWUnmapMem(ScrnInfoPtr scrp)
 {
     vgaHWPtr hwp = VGAHWPTR(scrp);
@@ -1797,14 +1797,14 @@ vgaHWUnmapMem(ScrnInfoPtr scrp)
     hwp->Base = NULL;
 }
 
-_X_EXPORT int
+int
 vgaHWGetIndex()
 {
     return vgaHWPrivateIndex;
 }
 
 
-_X_EXPORT void
+void
 vgaHWGetIOBase(vgaHWPtr hwp)
 {
     hwp->IOBase = (hwp->readMiscOut(hwp) & 0x01) ?
@@ -1815,14 +1815,14 @@ vgaHWGetIOBase(vgaHWPtr hwp)
 }
 
 
-_X_EXPORT void
+void
 vgaHWLock(vgaHWPtr hwp)
 {
     /* Protect CRTC[0-7] */
     hwp->writeCrtc(hwp, 0x11, hwp->readCrtc(hwp, 0x11) | 0x80);
 }
 
-_X_EXPORT void
+void
 vgaHWUnlock(vgaHWPtr hwp)
 {
     /* Unprotect CRTC[0-7] */
@@ -1830,14 +1830,14 @@ vgaHWUnlock(vgaHWPtr hwp)
 }
 
 
-_X_EXPORT void
+void
 vgaHWEnable(vgaHWPtr hwp)
 {
     hwp->writeEnable(hwp, hwp->readEnable(hwp) | 0x01);
 }
 
 
-_X_EXPORT void
+void
 vgaHWDisable(vgaHWPtr hwp)
 {
     hwp->writeEnable(hwp, hwp->readEnable(hwp) & ~0x01);
@@ -1897,7 +1897,7 @@ vgaHWSetOverscan(ScrnInfoPtr pScrn, int overscan)
 }
 
 
-_X_EXPORT Bool
+Bool
 vgaHWHandleColormaps(ScreenPtr pScreen)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -1940,7 +1940,7 @@ struct _vgaDdcSave {
     unsigned char msr;
 };
 
-_X_EXPORT void
+void
 vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed)
 {
     vgaHWPtr hwp = VGAHWPTR(pScrn);
@@ -1999,13 +1999,13 @@ vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed)
     }
 }
 
-_X_EXPORT DDC1SetSpeedProc
+DDC1SetSpeedProc
 vgaHWddc1SetSpeedWeak(void)
 {
     return vgaHWddc1SetSpeed;
 }
 
-_X_EXPORT SaveScreenProcPtr vgaHWSaveScreenWeak(void)
+SaveScreenProcPtr vgaHWSaveScreenWeak(void)
 {
     return vgaHWSaveScreen;
 }
diff --git a/hw/xfree86/vgahw/vgaHW.h b/hw/xfree86/vgahw/vgaHW.h
index a38ea75..0761ddb 100644
--- a/hw/xfree86/vgahw/vgaHW.h
+++ b/hw/xfree86/vgahw/vgaHW.h
@@ -28,7 +28,7 @@
 #define DPMS_SERVER
 #include <X11/extensions/dpms.h>
 
-extern int vgaHWGetIndex(void);
+extern _X_EXPORT int vgaHWGetIndex(void);
 
 /*
  * access macro
@@ -192,45 +192,45 @@ typedef struct _vgaHWRec {
 typedef void vgaHWProtectProc(ScrnInfoPtr, Bool);
 typedef void vgaHWBlankScreenProc(ScrnInfoPtr, Bool);
 
-void vgaHWSetStdFuncs(vgaHWPtr hwp);
-void vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset);
-void vgaHWProtect(ScrnInfoPtr pScrn, Bool on);
-vgaHWProtectProc *vgaHWProtectWeak(void);
-Bool vgaHWSaveScreen(ScreenPtr pScreen, int mode);
-void vgaHWBlankScreen(ScrnInfoPtr pScrn, Bool on);
-vgaHWBlankScreenProc *vgaHWBlankScreenWeak(void);
-void vgaHWSeqReset(vgaHWPtr hwp, Bool start);
-void vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore);
-void vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore);
-void vgaHWRestoreColormap(ScrnInfoPtr scrninfp, vgaRegPtr restore);
-void vgaHWRestore(ScrnInfoPtr scrninfp, vgaRegPtr restore, int flags);
-void vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save);
-void vgaHWSaveMode(ScrnInfoPtr scrninfp, vgaRegPtr save);
-void vgaHWSaveColormap(ScrnInfoPtr scrninfp, vgaRegPtr save);
-void vgaHWSave(ScrnInfoPtr scrninfp, vgaRegPtr save, int flags);
-Bool vgaHWInit(ScrnInfoPtr scrnp, DisplayModePtr mode);
-Bool vgaHWSetRegCounts(ScrnInfoPtr scrp, int numCRTC, int numSequencer,
+extern _X_EXPORT void vgaHWSetStdFuncs(vgaHWPtr hwp);
+extern _X_EXPORT void vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset);
+extern _X_EXPORT void vgaHWProtect(ScrnInfoPtr pScrn, Bool on);
+extern _X_EXPORT vgaHWProtectProc *vgaHWProtectWeak(void);
+extern _X_EXPORT Bool vgaHWSaveScreen(ScreenPtr pScreen, int mode);
+extern _X_EXPORT void vgaHWBlankScreen(ScrnInfoPtr pScrn, Bool on);
+extern _X_EXPORT vgaHWBlankScreenProc *vgaHWBlankScreenWeak(void);
+extern _X_EXPORT void vgaHWSeqReset(vgaHWPtr hwp, Bool start);
+extern _X_EXPORT void vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore);
+extern _X_EXPORT void vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore);
+extern _X_EXPORT void vgaHWRestoreColormap(ScrnInfoPtr scrninfp, vgaRegPtr restore);
+extern _X_EXPORT void vgaHWRestore(ScrnInfoPtr scrninfp, vgaRegPtr restore, int flags);
+extern _X_EXPORT void vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save);
+extern _X_EXPORT void vgaHWSaveMode(ScrnInfoPtr scrninfp, vgaRegPtr save);
+extern _X_EXPORT void vgaHWSaveColormap(ScrnInfoPtr scrninfp, vgaRegPtr save);
+extern _X_EXPORT void vgaHWSave(ScrnInfoPtr scrninfp, vgaRegPtr save, int flags);
+extern _X_EXPORT Bool vgaHWInit(ScrnInfoPtr scrnp, DisplayModePtr mode);
+extern _X_EXPORT Bool vgaHWSetRegCounts(ScrnInfoPtr scrp, int numCRTC, int numSequencer,
                   	int numGraphics, int numAttribute);
-Bool vgaHWCopyReg(vgaRegPtr dst, vgaRegPtr src);
-Bool vgaHWGetHWRec(ScrnInfoPtr scrp);
-void vgaHWFreeHWRec(ScrnInfoPtr scrp);
-Bool vgaHWMapMem(ScrnInfoPtr scrp);
-void vgaHWUnmapMem(ScrnInfoPtr scrp);
-void vgaHWGetIOBase(vgaHWPtr hwp);
-void vgaHWLock(vgaHWPtr hwp);
-void vgaHWUnlock(vgaHWPtr hwp);
-void vgaHWEnable(vgaHWPtr hwp);
-void vgaHWDisable(vgaHWPtr hwp);
-void vgaHWDPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags);
-Bool vgaHWHandleColormaps(ScreenPtr pScreen);
-void vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed);
-CARD32 vgaHWHBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits, 
+extern _X_EXPORT Bool vgaHWCopyReg(vgaRegPtr dst, vgaRegPtr src);
+extern _X_EXPORT Bool vgaHWGetHWRec(ScrnInfoPtr scrp);
+extern _X_EXPORT void vgaHWFreeHWRec(ScrnInfoPtr scrp);
+extern _X_EXPORT Bool vgaHWMapMem(ScrnInfoPtr scrp);
+extern _X_EXPORT void vgaHWUnmapMem(ScrnInfoPtr scrp);
+extern _X_EXPORT void vgaHWGetIOBase(vgaHWPtr hwp);
+extern _X_EXPORT void vgaHWLock(vgaHWPtr hwp);
+extern _X_EXPORT void vgaHWUnlock(vgaHWPtr hwp);
+extern _X_EXPORT void vgaHWEnable(vgaHWPtr hwp);
+extern _X_EXPORT void vgaHWDisable(vgaHWPtr hwp);
+extern _X_EXPORT void vgaHWDPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags);
+extern _X_EXPORT Bool vgaHWHandleColormaps(ScreenPtr pScreen);
+extern _X_EXPORT void vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed);
+extern _X_EXPORT CARD32 vgaHWHBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits,
 	       unsigned int Flags);
-CARD32 vgaHWVBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits, 
+extern _X_EXPORT CARD32 vgaHWVBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits,
 	       unsigned int Flags);
-Bool vgaHWAllocDefaultRegs(vgaRegPtr regp);
+extern _X_EXPORT Bool vgaHWAllocDefaultRegs(vgaRegPtr regp);
 
-DDC1SetSpeedProc vgaHWddc1SetSpeedWeak(void);
-SaveScreenProcPtr vgaHWSaveScreenWeak(void);
+extern _X_EXPORT DDC1SetSpeedProc vgaHWddc1SetSpeedWeak(void);
+extern _X_EXPORT SaveScreenProcPtr vgaHWSaveScreenWeak(void);
 
 #endif /* _VGAHW_H */
diff --git a/hw/xfree86/xaa/xaa.h b/hw/xfree86/xaa/xaa.h
index d6ccc31..7db6b95 100644
--- a/hw/xfree86/xaa/xaa.h
+++ b/hw/xfree86/xaa/xaa.h
@@ -1379,22 +1379,22 @@ typedef struct _XAAInfoRec {
 #define SET_SYNC_FLAG(infoRec)	(infoRec)->NeedToSync = TRUE
 
 
-Bool 
+extern _X_EXPORT Bool
 XAAInit(
     ScreenPtr pScreen,
     XAAInfoRecPtr infoRec
 );
 
-XAAInfoRecPtr XAACreateInfoRec(void);
+extern _X_EXPORT XAAInfoRecPtr XAACreateInfoRec(void);
 
-void
+extern _X_EXPORT void
 XAADestroyInfoRec(
     XAAInfoRecPtr infoRec
 );
 
 typedef void (*DepthChangeFuncPtr) (ScrnInfoPtr pScrn, int depth);
 
-Bool
+extern _X_EXPORT Bool
 XAAInitDualFramebufferOverlay(
    ScreenPtr pScreen, 
    DepthChangeFuncPtr callback
diff --git a/hw/xfree86/xaa/xaaBitBlt.c b/hw/xfree86/xaa/xaaBitBlt.c
index 5830147..ebba74e 100644
--- a/hw/xfree86/xaa/xaaBitBlt.c
+++ b/hw/xfree86/xaa/xaaBitBlt.c
@@ -22,7 +22,7 @@
 #include "xaalocal.h"
 
 
-_X_EXPORT RegionPtr
+RegionPtr
 XAABitBlt(
     DrawablePtr pSrcDrawable,
     DrawablePtr pDstDrawable,
diff --git a/hw/xfree86/xaa/xaaBitOrder.c b/hw/xfree86/xaa/xaaBitOrder.c
index 22e8261..9b12467 100644
--- a/hw/xfree86/xaa/xaaBitOrder.c
+++ b/hw/xfree86/xaa/xaaBitOrder.c
@@ -4,10 +4,9 @@
 #endif
 
 #include <X11/Xmd.h>
-#include <X11/Xfuncproto.h>
-CARD32 XAAReverseBitOrder(CARD32 v);
+#include "xaalocal.h"
 
-_X_EXPORT CARD32
+CARD32
 XAAReverseBitOrder(CARD32 v)
 {
  return (((0x01010101 & v) << 7) | ((0x02020202 & v) << 5) | 
diff --git a/hw/xfree86/xaa/xaaBitmap.c b/hw/xfree86/xaa/xaaBitmap.c
index cda1687..f7ae78d 100644
--- a/hw/xfree86/xaa/xaaBitmap.c
+++ b/hw/xfree86/xaa/xaaBitmap.c
@@ -255,7 +255,7 @@ BitmapScanline_Shifted_Inverted_Careful(
     avoid the invert.
 */ 
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAAWriteBitmapColorExpand3)(
 #else
@@ -373,7 +373,7 @@ SECOND_PASS:
 
 #ifndef FIXEDBASE
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAAWriteBitmapScanlineColorExpand3)(
 #else
diff --git a/hw/xfree86/xaa/xaaCpyArea.c b/hw/xfree86/xaa/xaaCpyArea.c
index 846cb22..6a898cd 100644
--- a/hw/xfree86/xaa/xaaCpyArea.c
+++ b/hw/xfree86/xaa/xaaCpyArea.c
@@ -21,7 +21,7 @@
  */
 
 
-_X_EXPORT RegionPtr
+RegionPtr
 XAACopyArea(
     DrawablePtr pSrcDrawable,
     DrawablePtr pDstDrawable,
@@ -74,7 +74,7 @@ XAACopyArea(
 }
 
 
-_X_EXPORT void
+void
 XAADoBitBlt(
     DrawablePtr	    pSrc, 
     DrawablePtr	    pDst,
@@ -193,7 +193,7 @@ XAADoBitBlt(
 
 }
 
-_X_EXPORT void
+void
 XAADoImageWrite(
     DrawablePtr	    pSrc, 
     DrawablePtr	    pDst,
@@ -222,7 +222,7 @@ XAADoImageWrite(
 }
 
 
-_X_EXPORT void
+void
 XAADoImageRead(
     DrawablePtr	    pSrc, 
     DrawablePtr	    pDst,
@@ -252,7 +252,7 @@ XAADoImageRead(
 }
 
 
-_X_EXPORT void 
+void
 XAAScreenToScreenBitBlt(
     ScrnInfoPtr pScrn,
     int nbox,
diff --git a/hw/xfree86/xaa/xaaCpyPlane.c b/hw/xfree86/xaa/xaaCpyPlane.c
index d8ad144..aa4c040 100644
--- a/hw/xfree86/xaa/xaaCpyPlane.c
+++ b/hw/xfree86/xaa/xaaCpyPlane.c
@@ -39,7 +39,7 @@ static void XAACopyPlaneNtoNColorExpand(DrawablePtr pSrc, DrawablePtr pDst,
 
 static unsigned long TmpBitPlane; 
 
-_X_EXPORT RegionPtr
+RegionPtr
 XAACopyPlaneColorExpansion(
     DrawablePtr	pSrc,
     DrawablePtr	pDst,
@@ -159,7 +159,7 @@ ALLOC_FAILED:
     }
 }
 
-_X_EXPORT void
+void
 XAAPushPixelsSolidColorExpansion(
     GCPtr	pGC,
     PixmapPtr	pBitMap,
diff --git a/hw/xfree86/xaa/xaaCpyWin.c b/hw/xfree86/xaa/xaaCpyWin.c
index 38cbe17..31c421e 100644
--- a/hw/xfree86/xaa/xaaCpyWin.c
+++ b/hw/xfree86/xaa/xaaCpyWin.c
@@ -21,7 +21,7 @@
     Written by Harm Hanemaayer (H.Hanemaayer at inter.nl.net).
 */
 
-_X_EXPORT void 
+void
 XAACopyWindow(
     WindowPtr pWin,
     DDXPointRec ptOldOrg,
diff --git a/hw/xfree86/xaa/xaaDashLine.c b/hw/xfree86/xaa/xaaDashLine.c
index 9621738..63233e0 100644
--- a/hw/xfree86/xaa/xaaDashLine.c
+++ b/hw/xfree86/xaa/xaaDashLine.c
@@ -18,7 +18,7 @@
 #include "xaalocal.h"
 
 
-_X_EXPORT void
+void
 #ifdef POLYSEGMENT
 XAAPolySegmentDashed(
     DrawablePtr	pDrawable,
diff --git a/hw/xfree86/xaa/xaaFallback.c b/hw/xfree86/xaa/xaaFallback.c
index 42d9fd5..7ab4031 100644
--- a/hw/xfree86/xaa/xaaFallback.c
+++ b/hw/xfree86/xaa/xaaFallback.c
@@ -332,7 +332,7 @@ XAAPushPixelsFallback(
     XAA_GC_OP_EPILOGUE(pGC);
 }
 
-_X_EXPORT GCOps XAAFallbackOps = {
+GCOps XAAFallbackOps = {
     XAAFillSpansFallback, XAASetSpansFallback, 
     XAAPutImageFallback, XAACopyAreaFallback, 
     XAACopyPlaneFallback, XAAPolyPointFallback, 
@@ -346,7 +346,7 @@ _X_EXPORT GCOps XAAFallbackOps = {
     {NULL}		/* devPrivate */
 };
 
-_X_EXPORT GCOps *XAAGetFallbackOps(void)
+GCOps *XAAGetFallbackOps(void)
 {
     return &XAAFallbackOps;
 }
diff --git a/hw/xfree86/xaa/xaaFillArc.c b/hw/xfree86/xaa/xaaFillArc.c
index 33d79b8..d3ebc22 100644
--- a/hw/xfree86/xaa/xaaFillArc.c
+++ b/hw/xfree86/xaa/xaaFillArc.c
@@ -160,7 +160,7 @@ XAAFillArcSliceSolid(DrawablePtr pDraw, GCPtr pGC, xArc *arc)
 }
 
 
-_X_EXPORT void
+void
 XAAPolyFillArcSolid(pDraw, pGC, narcs, parcs)
     DrawablePtr	pDraw;
     GCPtr	pGC;
diff --git a/hw/xfree86/xaa/xaaFillPoly.c b/hw/xfree86/xaa/xaaFillPoly.c
index 138c5a1..6f11e35 100644
--- a/hw/xfree86/xaa/xaaFillPoly.c
+++ b/hw/xfree86/xaa/xaaFillPoly.c
@@ -115,7 +115,7 @@
 	extents.
 */
 
-_X_EXPORT int
+int
 XAAIsEasyPolygon(
    DDXPointPtr ptsIn,
    int count, 
@@ -194,7 +194,7 @@ XAAIsEasyPolygon(
     return POLY_IS_EASY;
 }
 
-_X_EXPORT void
+void
 XAAFillPolygonSolid(
     DrawablePtr	pDraw,
     GCPtr	pGC,
@@ -343,7 +343,7 @@ XAAFillPolygonSolid(
 
 
 
-_X_EXPORT void
+void
 XAAFillPolygonHelper(
     ScrnInfoPtr pScrn,
     DDXPointPtr	ptsIn,
@@ -658,7 +658,7 @@ CacheBltRectHelper (
 	\**********************/
 
 
-_X_EXPORT void
+void
 XAAFillPolygonStippled(
     DrawablePtr	pDraw,
     GCPtr	pGC,
@@ -818,7 +818,7 @@ XAAFillPolygonStippled(
 	\*******************/
 
 
-_X_EXPORT void
+void
 XAAFillPolygonTiled(
     DrawablePtr	pDraw,
     GCPtr	pGC,
diff --git a/hw/xfree86/xaa/xaaFillRect.c b/hw/xfree86/xaa/xaaFillRect.c
index d4449f6..7c319bb 100644
--- a/hw/xfree86/xaa/xaaFillRect.c
+++ b/hw/xfree86/xaa/xaaFillRect.c
@@ -24,7 +24,7 @@ static void XAARenderCacheBltRects(GCPtr, int, BoxPtr, int, int);
 static void XAARenderImageWriteRects(GCPtr, int, BoxPtr, int, int);
 static void XAARenderPixmapCopyRects(GCPtr, int, BoxPtr, int, int);
 
-_X_EXPORT void
+void
 XAAPolyFillRect(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -372,7 +372,7 @@ XAARenderPixmapCopyRects(
 	|   Solid    |
 	\************/
 
-_X_EXPORT void
+void
 XAAFillSolidRects(
     ScrnInfoPtr pScrn,
     int	fg, int rop,
@@ -399,7 +399,7 @@ XAAFillSolidRects(
 	\*********************/
 
 
-_X_EXPORT void
+void
 XAAFillMono8x8PatternRectsScreenOrigin(
     ScrnInfoPtr pScrn,
     int	fg, int bg, int rop,
@@ -449,7 +449,7 @@ XAAFillMono8x8PatternRectsScreenOrigin(
      SET_SYNC_FLAG(infoRec);
 }
 
-_X_EXPORT void
+void
 XAAFillMono8x8PatternRects(
     ScrnInfoPtr pScrn,
     int	fg, int bg, int rop,
@@ -511,7 +511,7 @@ XAAFillMono8x8PatternRects(
 	\**********************/
 
 
-_X_EXPORT void
+void
 XAAFillColor8x8PatternRectsScreenOrigin(
    ScrnInfoPtr pScrn,
    int rop,
@@ -546,7 +546,7 @@ XAAFillColor8x8PatternRectsScreenOrigin(
     SET_SYNC_FLAG(infoRec);
 }
 
-_X_EXPORT void
+void
 XAAFillColor8x8PatternRects(
    ScrnInfoPtr pScrn,
    int rop,
@@ -587,7 +587,7 @@ XAAFillColor8x8PatternRects(
 	|  Cache Blits  |
 	\***************/
 
-_X_EXPORT void 
+void
 XAAFillCacheBltRects(
    ScrnInfoPtr pScrn,
    int rop,
@@ -709,7 +709,7 @@ XAAFillCacheBltRects(
 
 
 
-_X_EXPORT void 
+void
 XAAFillCacheExpandRects(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -873,7 +873,7 @@ WriteColumn(
     }
 }
 
-_X_EXPORT void 
+void
 XAAFillImageWriteRects(
     ScrnInfoPtr pScrn,
     int rop,
@@ -928,7 +928,7 @@ XAAFillImageWriteRects(
 	\*************/
 
 
-_X_EXPORT void
+void
 XAAClipAndRenderRects(
    GCPtr pGC, 
    ClipAndRenderRectsFunc BoxFunc, 
@@ -1018,7 +1018,7 @@ XAAClipAndRenderRects(
 }
 
 
-_X_EXPORT int
+int
 XAAGetRectClipBoxes(
     GCPtr pGC,
     BoxPtr pboxClippedBase,
diff --git a/hw/xfree86/xaa/xaaGC.c b/hw/xfree86/xaa/xaaGC.c
index 46471ec..e6083d5 100644
--- a/hw/xfree86/xaa/xaaGC.c
+++ b/hw/xfree86/xaa/xaaGC.c
@@ -27,14 +27,14 @@ static void XAAChangeClip(GCPtr pGC, int type, pointer pvalue, int nrects);
 static void XAADestroyClip(GCPtr pGC);
 static void XAACopyClip(GCPtr pgcDst, GCPtr pgcSrc);
 
-_X_EXPORT GCFuncs XAAGCFuncs = {
+GCFuncs XAAGCFuncs = {
     XAAValidateGC, XAAChangeGC, XAACopyGC, XAADestroyGC,
     XAAChangeClip, XAADestroyClip, XAACopyClip
 };
 
 extern GCOps XAAPixmapOps;
 
-_X_EXPORT Bool
+Bool
 XAACreateGC(GCPtr pGC)
 {
     ScreenPtr    pScreen = pGC->pScreen;
diff --git a/hw/xfree86/xaa/xaaGCmisc.c b/hw/xfree86/xaa/xaaGCmisc.c
index 0946072..5823cc0 100644
--- a/hw/xfree86/xaa/xaaGCmisc.c
+++ b/hw/xfree86/xaa/xaaGCmisc.c
@@ -19,7 +19,7 @@
 #include "gcstruct.h"
 #include "pixmapstr.h"
 
-_X_EXPORT void
+void
 XAAValidateCopyArea(
    GCPtr         pGC,
    unsigned long changes,
@@ -37,7 +37,7 @@ XAAValidateCopyArea(
 	pGC->ops->CopyArea = XAAFallbackOps.CopyArea;
 }
 
-_X_EXPORT void
+void
 XAAValidatePutImage(
    GCPtr         pGC,
    unsigned long changes,
@@ -56,7 +56,7 @@ XAAValidatePutImage(
 	pGC->ops->PutImage = XAAFallbackOps.PutImage;
 }
 
-_X_EXPORT void
+void
 XAAValidateCopyPlane(
    GCPtr         pGC,
    unsigned long changes,
@@ -75,7 +75,7 @@ XAAValidateCopyPlane(
 	pGC->ops->CopyPlane = XAAFallbackOps.CopyPlane;
 }
 
-_X_EXPORT void
+void
 XAAValidatePushPixels(
    GCPtr         pGC,
    unsigned long changes,
@@ -106,7 +106,7 @@ XAAValidatePushPixels(
    Validate functions if it breaks this assumption */
 
 
-_X_EXPORT void
+void
 XAAValidateFillSpans(
    GCPtr         pGC,
    unsigned long changes,
@@ -182,7 +182,7 @@ XAAValidateFillSpans(
    these, it will need to supply a new Validate functions if it breaks
    this assumption */
 
-_X_EXPORT void
+void
 XAAValidatePolyGlyphBlt(
    GCPtr         pGC,
    unsigned long changes,
@@ -237,7 +237,7 @@ XAAValidatePolyGlyphBlt(
    }
 }
 
-_X_EXPORT void
+void
 XAAValidateImageGlyphBlt(
    GCPtr         pGC,
    unsigned long changes,
@@ -298,7 +298,7 @@ XAAValidateImageGlyphBlt(
 }
 
 
-_X_EXPORT void
+void
 XAAValidatePolylines(
    GCPtr         pGC,
    unsigned long changes,
diff --git a/hw/xfree86/xaa/xaaImage.c b/hw/xfree86/xaa/xaaImage.c
index 29ab1c0..85461c8 100644
--- a/hw/xfree86/xaa/xaaImage.c
+++ b/hw/xfree86/xaa/xaaImage.c
@@ -16,7 +16,7 @@
 #include "xaa.h"
 #include "xaalocal.h"
 
-_X_EXPORT void XAAMoveDWORDS_FixedBase(
+void XAAMoveDWORDS_FixedBase(
    register CARD32* dest,
    register CARD32* src,
    register int dwords )
@@ -38,7 +38,7 @@ _X_EXPORT void XAAMoveDWORDS_FixedBase(
      *dest = *(src + 2);
 }
 
-_X_EXPORT void XAAMoveDWORDS(
+void XAAMoveDWORDS(
    register CARD32* dest,
    register CARD32* src,
    register int dwords )
@@ -60,7 +60,7 @@ _X_EXPORT void XAAMoveDWORDS(
      *(dest + 2) = *(src + 2);
 }
 
-_X_EXPORT void XAAMoveDWORDS_FixedSrc(
+void XAAMoveDWORDS_FixedSrc(
    register CARD32* dest,
    register CARD32* src,
    register int dwords )
@@ -172,7 +172,7 @@ XAAWritePixmap32To24(
 
 }
 
-_X_EXPORT void 
+void
 XAAWritePixmap (
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -305,7 +305,7 @@ BAD_ALIGNMENT:
 }
 
 
-_X_EXPORT void 
+void
 XAAWritePixmapScanline (
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -388,7 +388,7 @@ BAD_ALIGNMENT:
 }
 
 
-_X_EXPORT void
+void
 XAAPutImage(
     DrawablePtr pDraw,
     GCPtr       pGC,
diff --git a/hw/xfree86/xaa/xaaInit.c b/hw/xfree86/xaa/xaaInit.c
index dbd91a2..326da61 100644
--- a/hw/xfree86/xaa/xaaInit.c
+++ b/hw/xfree86/xaa/xaaInit.c
@@ -49,22 +49,22 @@ static DevPrivateKey XAAGCKey = &XAAGCKeyIndex;
 static int XAAPixmapKeyIndex;
 static DevPrivateKey XAAPixmapKey = &XAAPixmapKeyIndex;
 
-_X_EXPORT DevPrivateKey XAAGetScreenKey(void) {
+DevPrivateKey XAAGetScreenKey(void) {
     return XAAScreenKey;
 }
 
-_X_EXPORT DevPrivateKey XAAGetGCKey(void) {
+DevPrivateKey XAAGetGCKey(void) {
     return XAAGCKey;
 }
 
-_X_EXPORT DevPrivateKey XAAGetPixmapKey(void) {
+DevPrivateKey XAAGetPixmapKey(void) {
     return XAAPixmapKey;
 }
 
 /* temp kludge */
 static Bool SwitchedOut = FALSE;
 
-_X_EXPORT XAAInfoRecPtr
+XAAInfoRecPtr
 XAACreateInfoRec()
 {
     XAAInfoRecPtr infoRec;
@@ -76,7 +76,7 @@ XAACreateInfoRec()
     return infoRec;
 }
 
-_X_EXPORT void 
+void
 XAADestroyInfoRec(XAAInfoRecPtr infoRec)
 {
     if(!infoRec) return;
@@ -94,7 +94,7 @@ XAADestroyInfoRec(XAAInfoRecPtr infoRec)
 }
 
 
-_X_EXPORT Bool 
+Bool
 XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
diff --git a/hw/xfree86/xaa/xaaInitAccel.c b/hw/xfree86/xaa/xaaInitAccel.c
index d8b2e95..4087142 100644
--- a/hw/xfree86/xaa/xaaInitAccel.c
+++ b/hw/xfree86/xaa/xaaInitAccel.c
@@ -109,7 +109,7 @@ static XF86ModuleVersionInfo xaaVersRec =
 
 _X_EXPORT XF86ModuleData xaaModuleData = { &xaaVersRec, NULL, NULL };
 
-_X_EXPORT Bool
+Bool
 XAAInitAccel(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
 {
     int index = pScreen->myNum;
diff --git a/hw/xfree86/xaa/xaaLine.c b/hw/xfree86/xaa/xaaLine.c
index 093d65f..7469de1 100644
--- a/hw/xfree86/xaa/xaaLine.c
+++ b/hw/xfree86/xaa/xaaLine.c
@@ -18,7 +18,7 @@
 #include "xaalocal.h"
 
 
-_X_EXPORT void
+void
 #ifdef POLYSEGMENT
 XAAPolySegment(
     DrawablePtr	pDrawable,
diff --git a/hw/xfree86/xaa/xaaLineMisc.c b/hw/xfree86/xaa/xaaLineMisc.c
index 4e19b55..6cef4bc 100644
--- a/hw/xfree86/xaa/xaaLineMisc.c
+++ b/hw/xfree86/xaa/xaaLineMisc.c
@@ -15,7 +15,7 @@
 #include "xaalocal.h"
    
 
-_X_EXPORT void 
+void
 XAASolidHorVertLineAsRects(
    ScrnInfoPtr pScrn,
    int x, int y, int len, int dir
@@ -29,7 +29,7 @@ XAASolidHorVertLineAsRects(
 }
    
 
-_X_EXPORT void 
+void
 XAASolidHorVertLineAsTwoPoint(
    ScrnInfoPtr pScrn,
    int x, int y, int len, int dir
@@ -44,7 +44,7 @@ XAASolidHorVertLineAsTwoPoint(
 	(*infoRec->SubsequentSolidTwoPointLine)(pScrn, x, y, x, y + len, 0);
 }
    
-_X_EXPORT void 
+void
 XAASolidHorVertLineAsBresenham(
    ScrnInfoPtr pScrn,
    int x, int y, int len, int dir
@@ -60,7 +60,7 @@ XAASolidHorVertLineAsBresenham(
 }
 
 
-_X_EXPORT void
+void
 XAAComputeDash(GCPtr pGC)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
diff --git a/hw/xfree86/xaa/xaaNonTEGlyph.c b/hw/xfree86/xaa/xaaNonTEGlyph.c
index e291e31..7431ba2 100644
--- a/hw/xfree86/xaa/xaaNonTEGlyph.c
+++ b/hw/xfree86/xaa/xaaNonTEGlyph.c
@@ -37,7 +37,7 @@
 /* if the backing rectangle and text are of the same dimensions
 	then we can draw in one pass */
 
-_X_EXPORT void 
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAANonTEGlyphRenderer3)(
 #else
@@ -90,7 +90,7 @@ EXPNAME(XAANonTEGlyphRenderer)(
 #ifndef FIXEDBASE
 /*  Scanline version of above gets built for LSBFIRST and MSBFIRST */
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAANonTEGlyphRendererScanline3)(
 #else
diff --git a/hw/xfree86/xaa/xaaNonTEText.c b/hw/xfree86/xaa/xaaNonTEText.c
index f8f79ca..d32c0bb 100644
--- a/hw/xfree86/xaa/xaaNonTEText.c
+++ b/hw/xfree86/xaa/xaaNonTEText.c
@@ -58,7 +58,7 @@ static int PolyGlyphBltNonTEColorExpansion(ScrnInfoPtr pScrn,
 ********************************************************************/
 
 
-_X_EXPORT int
+int
 XAAPolyText8NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr	pGC,
@@ -86,7 +86,7 @@ XAAPolyText8NonTEColorExpansion(
 }
 
 
-_X_EXPORT int
+int
 XAAPolyText16NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr	pGC,
@@ -116,7 +116,7 @@ XAAPolyText16NonTEColorExpansion(
 }
 
 
-_X_EXPORT void
+void
 XAAImageText8NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr	pGC,
@@ -141,7 +141,7 @@ XAAImageText8NonTEColorExpansion(
 }
 
 
-_X_EXPORT void
+void
 XAAImageText16NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr	pGC,
@@ -177,7 +177,7 @@ XAAImageText16NonTEColorExpansion(
 ********************************************************************/
 
 
-_X_EXPORT void
+void
 XAAImageGlyphBltNonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -197,7 +197,7 @@ XAAImageGlyphBltNonTEColorExpansion(
 	pGC->pCompositeClip, nglyph, (unsigned char*)pglyphBase, ppci);
 }
 
-_X_EXPORT void
+void
 XAAPolyGlyphBltNonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -541,7 +541,7 @@ PolyGlyphBltNonTEColorExpansion(
    indicates that part of the text string's bounding box is visible
    but not necessarily that any of the characters are visible */
 
-_X_EXPORT void XAANonTEGlyphRenderer(
+void XAANonTEGlyphRenderer(
    ScrnInfoPtr pScrn,
    int x, int y, int n,
    NonTEGlyphPtr glyphs,
diff --git a/hw/xfree86/xaa/xaaOffscreen.c b/hw/xfree86/xaa/xaaOffscreen.c
index 3d88e58..7c9d532 100644
--- a/hw/xfree86/xaa/xaaOffscreen.c
+++ b/hw/xfree86/xaa/xaaOffscreen.c
@@ -27,7 +27,7 @@
 #include "xf86fbman.h"
 #include "servermd.h"
 
-_X_EXPORT void
+void
 XAAMoveOutOffscreenPixmaps(ScreenPtr pScreen)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
@@ -44,7 +44,7 @@ XAAMoveOutOffscreenPixmaps(ScreenPtr pScreen)
 
 
 
-_X_EXPORT void
+void
 XAAMoveInOffscreenPixmaps(ScreenPtr pScreen)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
@@ -103,7 +103,7 @@ XAAMoveInOffscreenPixmaps(ScreenPtr pScreen)
 }
 
 
-_X_EXPORT void
+void
 XAARemoveAreaCallback(FBAreaPtr area)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(area->pScreen);
@@ -117,7 +117,7 @@ XAARemoveAreaCallback(FBAreaPtr area)
     DELIST_OFFSCREEN_PIXMAP(pPix);
 }
 
-_X_EXPORT void
+void
 XAAMoveOutOffscreenPixmap(PixmapPtr pPix) 
 {
     ScreenPtr pScreen = pPix->drawable.pScreen;
diff --git a/hw/xfree86/xaa/xaaOverlay.c b/hw/xfree86/xaa/xaaOverlay.c
index a104e74..2956a3d 100644
--- a/hw/xfree86/xaa/xaaOverlay.c
+++ b/hw/xfree86/xaa/xaaOverlay.c
@@ -112,7 +112,7 @@ XAASetColorKey8_32(
     SET_SYNC_FLAG(infoRec);
 }
 
-_X_EXPORT void
+void
 XAASetupOverlay8_32Planar(ScreenPtr pScreen)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
diff --git a/hw/xfree86/xaa/xaaOverlayDF.c b/hw/xfree86/xaa/xaaOverlayDF.c
index f860c99..8db816e 100644
--- a/hw/xfree86/xaa/xaaOverlayDF.c
+++ b/hw/xfree86/xaa/xaaOverlayDF.c
@@ -164,7 +164,7 @@ static DevPrivateKey XAAOverlayKey = &XAAOverlayKeyIndex;
    }
 
 
-_X_EXPORT Bool
+Bool
 XAAInitDualFramebufferOverlay(
     ScreenPtr pScreen, 
     DepthChangeFuncPtr callback
diff --git a/hw/xfree86/xaa/xaaPCache.c b/hw/xfree86/xaa/xaaPCache.c
index 76d3f80..dbbeac6 100644
--- a/hw/xfree86/xaa/xaaPCache.c
+++ b/hw/xfree86/xaa/xaaPCache.c
@@ -160,7 +160,7 @@ FreePixmapCachePrivate(XAAPixmapCachePrivatePtr pPriv)
     xfree(pPriv);
 }
 
-_X_EXPORT void
+void
 XAAClosePixmapCache(ScreenPtr pScreen)
 {
    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
@@ -630,7 +630,7 @@ GOT_EM:
 }
 
 
-_X_EXPORT void 
+void
 XAAInitPixmapCache(	
     ScreenPtr pScreen, 
     RegionPtr areas,
@@ -1097,7 +1097,7 @@ static CARD32 StippleMasks[4] = {
 };
 #endif
 
-_X_EXPORT Bool
+Bool
 XAACheckStippleReducibility(PixmapPtr pPixmap)
 {
     XAAPixmapPtr pPriv = XAA_GET_PIXMAP_PRIVATE(pPixmap);
@@ -1195,7 +1195,7 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
 }
 
 
-_X_EXPORT Bool
+Bool
 XAACheckTileReducibility(PixmapPtr pPixmap, Bool checkMono)
 {
     XAAPixmapPtr pPriv = XAA_GET_PIXMAP_PRIVATE(pPixmap);
@@ -1401,7 +1401,7 @@ XAACheckTileReducibility(PixmapPtr pPixmap, Bool checkMono)
 }
 
 
-_X_EXPORT void XAATileCache(
+void XAATileCache(
    ScrnInfoPtr pScrn, 
    XAACacheInfoPtr pCache,
    int w, int h
@@ -1433,7 +1433,7 @@ _X_EXPORT void XAATileCache(
    SET_SYNC_FLAG(infoRec);
 }
 
-_X_EXPORT XAACacheInfoPtr
+XAACacheInfoPtr
 XAACacheTile(ScrnInfoPtr pScrn, PixmapPtr pPix)
 {
    int w = pPix->drawable.width;
@@ -1495,7 +1495,7 @@ XAACacheTile(ScrnInfoPtr pScrn, PixmapPtr pPix)
    return pCache;
 }
 
-_X_EXPORT XAACacheInfoPtr
+XAACacheInfoPtr
 XAACacheMonoStipple(ScrnInfoPtr pScrn, PixmapPtr pPix)
 {
    int w = pPix->drawable.width;
@@ -1593,7 +1593,7 @@ XAACacheMonoStipple(ScrnInfoPtr pScrn, PixmapPtr pPix)
    return pCache;
 }
 
-_X_EXPORT XAACacheInfoPtr
+XAACacheInfoPtr
 XAACachePlanarMonoStipple(ScrnInfoPtr pScrn, PixmapPtr pPix)
 {
    int w = pPix->drawable.width;
@@ -1657,13 +1657,13 @@ XAACachePlanarMonoStipple(ScrnInfoPtr pScrn, PixmapPtr pPix)
    return pCache;
 }
 
-_X_EXPORT XAACachePlanarMonoStippleProc
-_X_EXPORT XAAGetCachePlanarMonoStipple(void)
+XAACachePlanarMonoStippleProc
+XAAGetCachePlanarMonoStipple(void)
 {
     return XAACachePlanarMonoStipple;
 }
 
-_X_EXPORT XAACacheInfoPtr
+XAACacheInfoPtr
 XAACacheStipple(ScrnInfoPtr pScrn, PixmapPtr pPix, int fg, int bg)
 {
    int w = pPix->drawable.width;
@@ -1742,7 +1742,7 @@ XAACacheStipple(ScrnInfoPtr pScrn, PixmapPtr pPix, int fg, int bg)
 
 
 
-_X_EXPORT XAACacheInfoPtr
+XAACacheInfoPtr
 XAACacheMono8x8Pattern(ScrnInfoPtr pScrn, int pat0, int pat1)
 {
    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
@@ -1773,7 +1773,7 @@ XAACacheMono8x8Pattern(ScrnInfoPtr pScrn, int pat0, int pat1)
 
 
 
-_X_EXPORT XAACacheInfoPtr
+XAACacheInfoPtr
 XAACacheColor8x8Pattern(ScrnInfoPtr pScrn, PixmapPtr pPix, int fg, int bg)
 {
    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
@@ -1843,7 +1843,7 @@ XAACacheColor8x8Pattern(ScrnInfoPtr pScrn, PixmapPtr pPix, int fg, int bg)
 }
 
 
-_X_EXPORT void 
+void
 XAAWriteBitmapToCache(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1857,7 +1857,7 @@ XAAWriteBitmapToCache(
 					0, fg, bg, GXcopy, ~0);
 }
 
-_X_EXPORT void 
+void
 XAAWriteBitmapToCacheLinear(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1895,7 +1895,7 @@ XAAWriteBitmapToCacheLinear(
 }
 
 
-_X_EXPORT void 
+void
 XAAWritePixmapToCache(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1911,7 +1911,7 @@ XAAWritePixmapToCache(
 
 
 
-_X_EXPORT void 
+void
 XAAWritePixmapToCacheLinear(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1955,7 +1955,7 @@ XAAWritePixmapToCacheLinear(
 }
 
 
-_X_EXPORT void
+void
 XAAWriteMono8x8PatternToCache(
    ScrnInfoPtr pScrn, 
    XAACacheInfoPtr pCache
@@ -1997,7 +1997,7 @@ XAAWriteMono8x8PatternToCache(
    xfree(data);
 }
 
-_X_EXPORT void
+void
 XAAWriteColor8x8PatternToCache(
    ScrnInfoPtr pScrn, 
    PixmapPtr pPix, 
@@ -2093,7 +2093,7 @@ XAAWriteColor8x8PatternToCache(
 
 
 
-_X_EXPORT int
+int
 XAAStippledFillChooser(GCPtr pGC)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
@@ -2178,7 +2178,7 @@ XAAStippledFillChooser(GCPtr pGC)
 }
 
 
-_X_EXPORT int
+int
 XAAOpaqueStippledFillChooser(GCPtr pGC)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
@@ -2253,7 +2253,7 @@ XAAOpaqueStippledFillChooser(GCPtr pGC)
 
 
 
-_X_EXPORT int
+int
 XAATiledFillChooser(GCPtr pGC)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
@@ -2326,7 +2326,7 @@ static int RotateMasksY[4] = {
    0xFFFFFFFF, 0x00FFFFFF, 0x0000FFFF, 0x000000FF
 };
 
-_X_EXPORT void
+void
 XAARotateMonoPattern(
     int *pat0, int *pat1,
     int xorg, int yorg,
@@ -2355,7 +2355,7 @@ XAARotateMonoPattern(
 
 
 
-_X_EXPORT void
+void
 XAAInvalidatePixmapCache(ScreenPtr pScreen)
 {
    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
diff --git a/hw/xfree86/xaa/xaaPict.c b/hw/xfree86/xaa/xaaPict.c
index 16f49b9..784c649 100644
--- a/hw/xfree86/xaa/xaaPict.c
+++ b/hw/xfree86/xaa/xaaPict.c
@@ -48,7 +48,7 @@
 #include "xf86fbman.h"
 #include "servermd.h"
 
-_X_EXPORT Bool
+Bool
 XAAGetPixelFromRGBA (
     CARD32 *pixel,
     CARD16 red,
@@ -91,7 +91,7 @@ XAAGetPixelFromRGBA (
 }
 
 
-_X_EXPORT Bool
+Bool
 XAAGetRGBAFromPixel(
     CARD32 pixel,
     CARD16 *red,
@@ -154,7 +154,7 @@ XAAGetRGBAFromPixel(
 
 /* 8:8:8 + PICT_a8 -> 8:8:8:8 texture */
 
-_X_EXPORT void
+void
 XAA_888_plus_PICT_a8_to_8888 (
     CARD32 color,
     CARD8  *alphaPtr,   /* in bytes */
@@ -180,7 +180,7 @@ XAA_888_plus_PICT_a8_to_8888 (
     (pDraw->type == DRAWABLE_WINDOW || \
      (pDraw->type == DRAWABLE_PIXMAP && IS_OFFSCREEN_PIXMAP(pDraw)))
 
-_X_EXPORT Bool
+Bool
 XAADoComposite (
     CARD8      op,
     PicturePtr pSrc,
@@ -494,7 +494,7 @@ XAACompositeSrcCopy (PicturePtr pSrc,
     return;
 }
 
-_X_EXPORT void
+void
 XAAComposite (CARD8      op,
 	      PicturePtr pSrc,
 	      PicturePtr pMask,
@@ -562,7 +562,7 @@ XAAComposite (CARD8      op,
     XAA_RENDER_EPILOGUE(pScreen, Composite, XAAComposite);
 }
 
-_X_EXPORT Bool
+Bool
 XAADoGlyphs (CARD8         op,
 	   PicturePtr    pSrc,
 	   PicturePtr    pDst,
@@ -607,7 +607,7 @@ XAADoGlyphs (CARD8         op,
 }	   
 	 
 	
-_X_EXPORT void
+void
 XAAGlyphs (CARD8         op,
 	   PicturePtr    pSrc,
 	   PicturePtr    pDst,
diff --git a/hw/xfree86/xaa/xaaROP.c b/hw/xfree86/xaa/xaaROP.c
index e05453f..155daa4 100644
--- a/hw/xfree86/xaa/xaaROP.c
+++ b/hw/xfree86/xaa/xaaROP.c
@@ -14,7 +14,7 @@
 #include "xaalocal.h"
 
 
-_X_EXPORT int XAACopyROP[16] =
+int XAACopyROP[16] =
 {
    ROP_0,               /* GXclear */
    ROP_DSa,             /* GXand */
@@ -34,7 +34,7 @@ _X_EXPORT int XAACopyROP[16] =
    ROP_1                /* GXset */
 };
 
-_X_EXPORT int XAACopyROP_PM[16] =
+int XAACopyROP_PM[16] =
 {
    ROP_0,		/* not used */
    ROP_DSPnoa,
@@ -55,7 +55,7 @@ _X_EXPORT int XAACopyROP_PM[16] =
 };
 
 
-_X_EXPORT int XAAPatternROP[16]=
+int XAAPatternROP[16]=
 {
    ROP_0,
    ROP_DPa,
@@ -75,7 +75,7 @@ _X_EXPORT int XAAPatternROP[16]=
    ROP_1
 };
 
-_X_EXPORT int XAAPatternROP_PM[16] =
+int XAAPatternROP_PM[16] =
 {
    ROP_DPna,
    ROP_DPSnoa,
@@ -95,27 +95,27 @@ _X_EXPORT int XAAPatternROP_PM[16] =
    ROP_DPo
 };
 
-_X_EXPORT int XAAGetCopyROP(int i)
+int XAAGetCopyROP(int i)
 {
     return XAACopyROP[i];
 }
 
-_X_EXPORT int XAAGetCopyROP_PM(int i)
+int XAAGetCopyROP_PM(int i)
 {
     return XAACopyROP_PM[i];
 }
 
-_X_EXPORT int XAAGetPatternROP(int i)
+int XAAGetPatternROP(int i)
 {
     return XAAPatternROP[i];
 }
 
-_X_EXPORT int XAAGetPatternROP_PM(int i)
+int XAAGetPatternROP_PM(int i)
 {
     return XAAPatternROP_PM[i];
 }
 
-_X_EXPORT int
+int
 XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
@@ -150,7 +150,7 @@ XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop)
 }
 
 
-_X_EXPORT int
+int
 XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop)
 {
     XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
diff --git a/hw/xfree86/xaa/xaaRect.c b/hw/xfree86/xaa/xaaRect.c
index 35acdb0..0a7e174 100644
--- a/hw/xfree86/xaa/xaaRect.c
+++ b/hw/xfree86/xaa/xaaRect.c
@@ -20,7 +20,7 @@
 */
 
 
-_X_EXPORT void
+void
 XAAPolyRectangleThinSolid(
     DrawablePtr  pDrawable,
     GCPtr        pGC,    
diff --git a/hw/xfree86/xaa/xaaSpans.c b/hw/xfree86/xaa/xaaSpans.c
index a3859bf..46d6d07 100644
--- a/hw/xfree86/xaa/xaaSpans.c
+++ b/hw/xfree86/xaa/xaaSpans.c
@@ -32,7 +32,7 @@ static void XAARenderCacheExpandSpans(
 static void XAARenderPixmapCopySpans(
 	GCPtr, int, DDXPointPtr, int*, int, int, int);
 
-_X_EXPORT void
+void
 XAAFillSpans(
     DrawablePtr pDraw,
     GC		*pGC,
@@ -396,7 +396,7 @@ XAARenderPixmapCopySpans(
 	\****************/
 
 
-_X_EXPORT void 
+void
 XAAFillSolidSpans(
    ScrnInfoPtr pScrn,
    int fg, int rop,
@@ -432,7 +432,7 @@ XAAFillSolidSpans(
 	\***************/
 
 
-_X_EXPORT void 
+void
 XAAFillMono8x8PatternSpansScreenOrigin(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -491,7 +491,7 @@ XAAFillMono8x8PatternSpansScreenOrigin(
 }
 
 
-_X_EXPORT void 
+void
 XAAFillMono8x8PatternSpans(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -559,7 +559,7 @@ XAAFillMono8x8PatternSpans(
 	\****************/
 
 
-_X_EXPORT void 
+void
 XAAFillColor8x8PatternSpansScreenOrigin(
    ScrnInfoPtr pScrn,
    int rop,
@@ -605,7 +605,7 @@ XAAFillColor8x8PatternSpansScreenOrigin(
 }
 
 
-_X_EXPORT void 
+void
 XAAFillColor8x8PatternSpans(
    ScrnInfoPtr pScrn,
    int rop,
@@ -654,7 +654,7 @@ XAAFillColor8x8PatternSpans(
 	\*****************/
 
 
-_X_EXPORT void 
+void
 XAAFillCacheBltSpans(
    ScrnInfoPtr pScrn,
    int rop,
@@ -713,7 +713,7 @@ XAAFillCacheBltSpans(
 	\****************/
 
 
-_X_EXPORT void 
+void
 XAAFillCacheExpandSpans(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -774,7 +774,7 @@ XAAFillCacheExpandSpans(
 
 
 
-_X_EXPORT void
+void
 XAAClipAndRenderSpans(
     GCPtr pGC, 
     DDXPointPtr	ppt,
diff --git a/hw/xfree86/xaa/xaaStateChange.c b/hw/xfree86/xaa/xaaStateChange.c
index c88c79c..57d8aa3 100644
--- a/hw/xfree86/xaa/xaaStateChange.c
+++ b/hw/xfree86/xaa/xaaStateChange.c
@@ -1497,7 +1497,7 @@ static Bool XAAStateWrapSetupForCPUToScreenTexture2(ScrnInfoPtr pScrn, int op,
 #endif
 
 /* Setup Function */
-_X_EXPORT Bool
+Bool
 XAAInitStateWrap(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
 {
    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
diff --git a/hw/xfree86/xaa/xaaStipple.c b/hw/xfree86/xaa/xaaStipple.c
index de877d2..c1d6f8a 100644
--- a/hw/xfree86/xaa/xaaStipple.c
+++ b/hw/xfree86/xaa/xaaStipple.c
@@ -23,7 +23,7 @@ static CARD32* StippleOver32_Inverted(CARD32*, CARD32*, int, int, int);
 #define stipple_get_scanline_func EXPNAME(XAAGetStippleScanlineFunc)
 #endif
 
-_X_EXPORT StippleScanlineProcPtr stipple_scanline_func[6] = {
+StippleScanlineProcPtr stipple_scanline_func[6] = {
    StipplePowerOfTwo,
    StippleUpTo32,
    StippleOver32,
@@ -32,7 +32,7 @@ _X_EXPORT StippleScanlineProcPtr stipple_scanline_func[6] = {
    StippleOver32_Inverted
 };
 
-_X_EXPORT StippleScanlineProcPtr *stipple_get_scanline_func(void) {
+StippleScanlineProcPtr *stipple_get_scanline_func(void) {
    return stipple_scanline_func;
 }
 
@@ -83,7 +83,7 @@ _X_EXPORT StippleScanlineProcPtr *stipple_get_scanline_func(void) {
 
 #if !defined(FIXEDBASE) && !defined(MSBFIRST) && !defined(TRIPLE_BITS)
 
-_X_EXPORT unsigned int XAAShiftMasks[32] = {
+unsigned int XAAShiftMasks[32] = {
   /* gcc is rather pedantic about SHIFT_R(0xFFFFFFFF,32) */
           0x00000000    , SHIFT_R(0xFFFFFFFF,31),
   SHIFT_R(0xFFFFFFFF,30), SHIFT_R(0xFFFFFFFF,29),
@@ -105,7 +105,7 @@ _X_EXPORT unsigned int XAAShiftMasks[32] = {
 
 #endif
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAAFillColorExpandRects3)(
 #else
@@ -241,7 +241,7 @@ SECOND_PASS:
 
 
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAAFillColorExpandSpans3)(
 #else
@@ -352,7 +352,7 @@ SECOND_PASS:
 
 #ifndef FIXEDBASE
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAAFillScanlineColorExpandRects3)(
 #else
@@ -465,7 +465,7 @@ SECOND_PASS:
      SET_SYNC_FLAG(infoRec);
 }
 
-_X_EXPORT void
+void
 #ifdef TRIPLE_BITS
 EXPNAME(XAAFillScanlineColorExpandSpans3)(
 #else
diff --git a/hw/xfree86/xaa/xaaTEGlyph.c b/hw/xfree86/xaa/xaaTEGlyph.c
index 86fb66c..41e638e 100644
--- a/hw/xfree86/xaa/xaaTEGlyph.c
+++ b/hw/xfree86/xaa/xaaTEGlyph.c
@@ -78,7 +78,7 @@ static CARD32 *DrawTETextScanlineWidth9(CARD32 *base, unsigned int **glyphp,
 #define glyph_get_scanline_func EXPNAME(XAAGetGlyphScanlineFunc)
 
 
-_X_EXPORT GlyphScanlineFuncPtr glyph_scanline_func[32] = {
+GlyphScanlineFuncPtr glyph_scanline_func[32] = {
    DrawTETextScanlineGeneric, DrawTETextScanlineGeneric,  
    DrawTETextScanlineGeneric, DrawTETextScanlineGeneric,
    DrawTETextScanlineGeneric, 
@@ -126,7 +126,7 @@ _X_EXPORT GlyphScanlineFuncPtr glyph_scanline_func[32] = {
    DrawTETextScanlineGeneric, DrawTETextScanlineGeneric
 };
 
-_X_EXPORT GlyphScanlineFuncPtr *glyph_get_scanline_func(void) {
+GlyphScanlineFuncPtr *glyph_get_scanline_func(void) {
    return glyph_scanline_func;
 }
 
@@ -143,7 +143,7 @@ _X_EXPORT GlyphScanlineFuncPtr *glyph_get_scanline_func(void) {
 /* This gets built for MSBFIRST or LSBFIRST with FIXEDBASE or not.
 	A total of 4 versions */
 
-_X_EXPORT void
+void
 EXPNAME(XAATEGlyphRenderer)(
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -239,7 +239,7 @@ THE_END:
 
 ********************************************************************/
 
-_X_EXPORT void
+void
 EXPNAME(XAATEGlyphRenderer3)(
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -340,7 +340,7 @@ THE_END:
 #ifndef FIXEDBASE
 /*  Scanline version of above gets built for LSBFIRST and MSBFIRST */
 
-_X_EXPORT void
+void
 EXPNAME(XAATEGlyphRendererScanline)(
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -415,7 +415,7 @@ THE_END:
     SET_SYNC_FLAG(infoRec);
 }
 
-_X_EXPORT void
+void
 EXPNAME(XAATEGlyphRendererScanline3)(
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
diff --git a/hw/xfree86/xaa/xaaTEText.c b/hw/xfree86/xaa/xaaTEText.c
index 7357862..fc44572 100644
--- a/hw/xfree86/xaa/xaaTEText.c
+++ b/hw/xfree86/xaa/xaaTEText.c
@@ -50,7 +50,7 @@ static void XAAGlyphBltTEColorExpansion(ScrnInfoPtr pScrn, int xInit,
 ********************************************************************/
 
 
-_X_EXPORT int
+int
 XAAPolyText8TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -74,7 +74,7 @@ XAAPolyText8TEColorExpansion(
 }
 
 
-_X_EXPORT int
+int
 XAAPolyText16TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -99,7 +99,7 @@ XAAPolyText16TEColorExpansion(
 }
 
 
-_X_EXPORT void
+void
 XAAImageText8TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -123,7 +123,7 @@ XAAImageText8TEColorExpansion(
 }
 
 
-_X_EXPORT void
+void
 XAAImageText16TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -158,7 +158,7 @@ XAAImageText16TEColorExpansion(
 ********************************************************************/
 
 
-_X_EXPORT void
+void
 XAAImageGlyphBltTEColorExpansion(
     DrawablePtr pDrawable,
     GCPtr pGC,
@@ -178,7 +178,7 @@ XAAImageGlyphBltTEColorExpansion(
 	pGC->pCompositeClip, nglyph, (unsigned char*)pglyphBase, ppci);
 }
 
-_X_EXPORT void
+void
 XAAPolyGlyphBltTEColorExpansion(
     DrawablePtr pDrawable,
     GCPtr pGC,
diff --git a/hw/xfree86/xaa/xaaTables.c b/hw/xfree86/xaa/xaaTables.c
index b6b7185..c7fa28a 100644
--- a/hw/xfree86/xaa/xaaTables.c
+++ b/hw/xfree86/xaa/xaaTables.c
@@ -6,7 +6,7 @@
  * bit order within a byte.
  */
 
-_X_EXPORT unsigned int byte_expand3[256] =
+unsigned int byte_expand3[256] =
 {
     0x000000, 0x000007, 0x000038, 0x00003F, 0x0001C0, 0x0001C7, 0x0001F8, 0x0001FF,
     0x000E00, 0x000E07, 0x000E38, 0x000E3F, 0x000FC0, 0x000FC7, 0x000FF8, 0x000FFF,
@@ -50,7 +50,7 @@ _X_EXPORT unsigned int byte_expand3[256] =
  * byte.
  */
 
-_X_EXPORT unsigned int byte_reversed_expand3[256] =
+unsigned int byte_reversed_expand3[256] =
 {
     0x000000, 0x0000E0, 0x00001C, 0x0000FC, 0x008003, 0x0080E3, 0x00801F, 0x0080FF,
     0x007000, 0x0070E0, 0x00701C, 0x0070FC, 0x00F003, 0x00F0E3, 0x00F01F, 0x00F0FF,
diff --git a/hw/xfree86/xaa/xaaWideLine.c b/hw/xfree86/xaa/xaaWideLine.c
index aacc305..a684d66 100644
--- a/hw/xfree86/xaa/xaaWideLine.c
+++ b/hw/xfree86/xaa/xaaWideLine.c
@@ -785,7 +785,7 @@ XAALineJoin (
 }
 
 
-_X_EXPORT void
+void
 XAAPolylinesWideSolid (
    DrawablePtr  pDrawable,
    GCPtr        pGC,
diff --git a/hw/xfree86/xaa/xaaWrapper.c b/hw/xfree86/xaa/xaaWrapper.c
index e8f36ff..8841894 100644
--- a/hw/xfree86/xaa/xaaWrapper.c
+++ b/hw/xfree86/xaa/xaaWrapper.c
@@ -265,7 +265,7 @@ xaaWrapperListInstalledColormaps(ScreenPtr pScreen, Colormap *pCmapIds)
     return n;
 }
 
-_X_EXPORT Bool
+Bool
 xaaSetupWrapper(ScreenPtr pScreen, XAAInfoRecPtr infoPtr, int depth, SyncFunc *func)
 {
     Bool ret;
diff --git a/hw/xfree86/xaa/xaaWrapper.h b/hw/xfree86/xaa/xaaWrapper.h
index a141d84..f554741 100644
--- a/hw/xfree86/xaa/xaaWrapper.h
+++ b/hw/xfree86/xaa/xaaWrapper.h
@@ -4,7 +4,7 @@
 
 typedef void (*SyncFunc)(ScreenPtr);
 
-Bool xaaSetupWrapper(ScreenPtr pScreen,
+extern _X_EXPORT Bool xaaSetupWrapper(ScreenPtr pScreen,
 		     XAAInfoRecPtr infoPtr, int depth, SyncFunc *func);
 
 #endif
diff --git a/hw/xfree86/xaa/xaalocal.h b/hw/xfree86/xaa/xaalocal.h
index 69a5905..5e3d373 100644
--- a/hw/xfree86/xaa/xaalocal.h
+++ b/hw/xfree86/xaa/xaalocal.h
@@ -97,18 +97,18 @@ typedef struct _XAAPixmap {
 } XAAPixmapRec, *XAAPixmapPtr;
 
 
-Bool 
+extern _X_EXPORT Bool
 XAACreateGC(
     GCPtr pGC
 );
 
-Bool
+extern _X_EXPORT Bool
 XAAInitAccel(
     ScreenPtr pScreen, 
     XAAInfoRecPtr infoRec
 );
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 XAABitBlt(
     DrawablePtr pSrcDrawable,
     DrawablePtr pDstDrawable,
@@ -123,7 +123,7 @@ XAABitBlt(
     unsigned long bitPlane
 );
 
-void 
+extern _X_EXPORT void
 XAAScreenToScreenBitBlt(
     ScrnInfoPtr pScrn,
     int nbox,
@@ -135,7 +135,7 @@ XAAScreenToScreenBitBlt(
     unsigned int planemask
 );
 
-void
+extern _X_EXPORT void
 XAADoBitBlt(
     DrawablePtr	    pSrc, 
     DrawablePtr     pDst,
@@ -144,7 +144,7 @@ XAADoBitBlt(
     DDXPointPtr	    pptSrc
 );
 
-void
+extern _X_EXPORT void
 XAADoImageWrite(
     DrawablePtr	    pSrc, 
     DrawablePtr     pDst,
@@ -153,7 +153,7 @@ XAADoImageWrite(
     DDXPointPtr	    pptSrc
 );
 
-void
+extern _X_EXPORT void
 XAADoImageRead(
     DrawablePtr     pSrc,
     DrawablePtr     pDst,
@@ -162,7 +162,7 @@ XAADoImageRead(
     DDXPointPtr     pptSrc
 );
 
-void 
+extern _X_EXPORT void
 XAACopyWindow(
     WindowPtr pWin,
     DDXPointRec ptOldOrg,
@@ -170,7 +170,7 @@ XAACopyWindow(
 );
 
 
-RegionPtr 
+extern _X_EXPORT RegionPtr
 XAACopyArea(
     DrawablePtr pSrcDrawable,
     DrawablePtr pDstDrawable,
@@ -183,56 +183,56 @@ XAACopyArea(
     int dsty
 );
 
-void
+extern _X_EXPORT void
 XAAValidateCopyArea(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw
 );
 
-void
+extern _X_EXPORT void
 XAAValidatePutImage(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw 
 );
 
-void
+extern _X_EXPORT void
 XAAValidateCopyPlane(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw
 );
 
-void
+extern _X_EXPORT void
 XAAValidatePushPixels(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw
 );
 
-void
+extern _X_EXPORT void
 XAAValidateFillSpans(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw
 );
 
-void
+extern _X_EXPORT void
 XAAValidatePolyGlyphBlt(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw
 );
 
-void
+extern _X_EXPORT void
 XAAValidateImageGlyphBlt(
    GCPtr         pGC,
    unsigned long changes,
    DrawablePtr   pDraw
 );
 
-void
+extern _X_EXPORT void
 XAAValidatePolylines(
    GCPtr         pGC,
    unsigned long changes,
@@ -240,7 +240,7 @@ XAAValidatePolylines(
 );
 
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 XAACopyPlaneColorExpansion(
     DrawablePtr		pSrc,
     DrawablePtr		pDst,
@@ -255,7 +255,7 @@ XAACopyPlaneColorExpansion(
 );
 
 
-void
+extern _X_EXPORT void
 XAAPushPixelsSolidColorExpansion(
     GCPtr	pGC,
     PixmapPtr	pBitMap,
@@ -266,7 +266,7 @@ XAAPushPixelsSolidColorExpansion(
     int		yOrg
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpandMSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -278,7 +278,7 @@ XAAWriteBitmapColorExpandMSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpand3MSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -290,7 +290,7 @@ XAAWriteBitmapColorExpand3MSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpandMSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -302,7 +302,7 @@ XAAWriteBitmapColorExpandMSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpand3MSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -314,7 +314,7 @@ XAAWriteBitmapColorExpand3MSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpandLSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -326,7 +326,7 @@ XAAWriteBitmapColorExpandLSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpand3LSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -338,7 +338,7 @@ XAAWriteBitmapColorExpand3LSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpandLSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -350,7 +350,7 @@ XAAWriteBitmapColorExpandLSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapColorExpand3LSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -363,7 +363,7 @@ XAAWriteBitmapColorExpand3LSBFirst (
 );
 
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpandMSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -375,7 +375,7 @@ XAAWriteBitmapScanlineColorExpandMSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpand3MSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -387,7 +387,7 @@ XAAWriteBitmapScanlineColorExpand3MSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpandMSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -399,7 +399,7 @@ XAAWriteBitmapScanlineColorExpandMSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpand3MSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -411,7 +411,7 @@ XAAWriteBitmapScanlineColorExpand3MSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpandLSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -423,7 +423,7 @@ XAAWriteBitmapScanlineColorExpandLSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpand3LSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -435,7 +435,7 @@ XAAWriteBitmapScanlineColorExpand3LSBFirst (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpandLSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -447,7 +447,7 @@ XAAWriteBitmapScanlineColorExpandLSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void
+extern _X_EXPORT void
 XAAWriteBitmapScanlineColorExpand3LSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h,
@@ -459,7 +459,7 @@ XAAWriteBitmapScanlineColorExpand3LSBFirstFixedBase (
     unsigned int planemask 
 );
 
-void 
+extern _X_EXPORT void
 XAAWritePixmap (
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -471,7 +471,7 @@ XAAWritePixmap (
    int bpp, int depth
 );
 
-void 
+extern _X_EXPORT void
 XAAWritePixmapScanline (
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -486,7 +486,7 @@ XAAWritePixmapScanline (
 typedef void (*ClipAndRenderRectsFunc)(GCPtr, int, BoxPtr, int, int); 
 
 
-void
+extern _X_EXPORT void
 XAAClipAndRenderRects(
    GCPtr pGC, 
    ClipAndRenderRectsFunc func, 
@@ -499,7 +499,7 @@ XAAClipAndRenderRects(
 typedef void (*ClipAndRenderSpansFunc)(GCPtr, int, DDXPointPtr, int*, 
 							int, int, int);
 
-void
+extern _X_EXPORT void
 XAAClipAndRenderSpans(
     GCPtr pGC, 
     DDXPointPtr	ppt,
@@ -512,7 +512,7 @@ XAAClipAndRenderSpans(
 );
 
 
-void
+extern _X_EXPORT void
 XAAFillSolidRects(
     ScrnInfoPtr pScrn,
     int fg, int rop,
@@ -521,7 +521,7 @@ XAAFillSolidRects(
     BoxPtr	pBox 
 );
 
-void
+extern _X_EXPORT void
 XAAFillMono8x8PatternRects(
     ScrnInfoPtr pScrn,
     int	fg, int bg, int rop,
@@ -532,7 +532,7 @@ XAAFillMono8x8PatternRects(
     int xorg, int yorg
 );
 
-void
+extern _X_EXPORT void
 XAAFillMono8x8PatternRectsScreenOrigin(
     ScrnInfoPtr pScrn,
     int	fg, int bg, int rop,
@@ -544,7 +544,7 @@ XAAFillMono8x8PatternRectsScreenOrigin(
 );
 
 
-void
+extern _X_EXPORT void
 XAAFillColor8x8PatternRectsScreenOrigin(
    ScrnInfoPtr pScrn,
    int rop,
@@ -555,7 +555,7 @@ XAAFillColor8x8PatternRectsScreenOrigin(
    XAACacheInfoPtr pCache
 );
 
-void
+extern _X_EXPORT void
 XAAFillColor8x8PatternRects(
    ScrnInfoPtr pScrn,
    int rop,
@@ -566,7 +566,7 @@ XAAFillColor8x8PatternRects(
    XAACacheInfoPtr pCache
 );
 
-void 
+extern _X_EXPORT void
 XAAFillCacheBltRects(
    ScrnInfoPtr pScrn,
    int rop,
@@ -577,7 +577,7 @@ XAAFillCacheBltRects(
    XAACacheInfoPtr pCache
 );
 
-void 
+extern _X_EXPORT void
 XAAFillCacheExpandRects(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -588,7 +588,7 @@ XAAFillCacheExpandRects(
    PixmapPtr pPix
 );
 
-void 
+extern _X_EXPORT void
 XAAFillImageWriteRects(
     ScrnInfoPtr pScrn,
     int rop,
@@ -599,7 +599,7 @@ XAAFillImageWriteRects(
     PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAPolyFillRect(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -608,7 +608,7 @@ XAAPolyFillRect(
 );
 
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererMSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -616,7 +616,7 @@ XAATEGlyphRendererMSBFirstFixedBase (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRenderer3MSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -624,7 +624,7 @@ XAATEGlyphRenderer3MSBFirstFixedBase (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererMSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -632,7 +632,7 @@ XAATEGlyphRendererMSBFirst (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRenderer3MSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -640,7 +640,7 @@ XAATEGlyphRenderer3MSBFirst (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererLSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -649,7 +649,7 @@ XAATEGlyphRendererLSBFirstFixedBase (
 );
 
 
-void
+extern _X_EXPORT void
 XAATEGlyphRenderer3LSBFirstFixedBase (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -657,7 +657,7 @@ XAATEGlyphRenderer3LSBFirstFixedBase (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererLSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -665,7 +665,7 @@ XAATEGlyphRendererLSBFirst (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRenderer3LSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -674,7 +674,7 @@ XAATEGlyphRenderer3LSBFirst (
 );
 
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererScanlineMSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -682,7 +682,7 @@ XAATEGlyphRendererScanlineMSBFirst (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererScanline3MSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -690,7 +690,7 @@ XAATEGlyphRendererScanline3MSBFirst (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererScanlineLSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -698,7 +698,7 @@ XAATEGlyphRendererScanlineLSBFirst (
     int fg, int bg, int rop, unsigned planemask
 );
 
-void
+extern _X_EXPORT void
 XAATEGlyphRendererScanline3LSBFirst (
     ScrnInfoPtr pScrn,
     int x, int y, int w, int h, int skipleft, int startline, 
@@ -707,28 +707,28 @@ XAATEGlyphRendererScanline3LSBFirst (
 );
 
 
-extern CARD32 *(*XAAGlyphScanlineFuncMSBFirstFixedBase[32])(
+extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncMSBFirstFixedBase[32])(
    CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width
 );
 
-extern CARD32 *(*XAAGlyphScanlineFuncMSBFirst[32])(
+extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncMSBFirst[32])(
    CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width
 );
 
-extern CARD32 *(*XAAGlyphScanlineFuncLSBFirstFixedBase[32])(
+extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncLSBFirstFixedBase[32])(
    CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width
 );
 
-extern CARD32 *(*XAAGlyphScanlineFuncLSBFirst[32])(
+extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncLSBFirst[32])(
    CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width
 );
 
-GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncMSBFirstFixedBase(void);
-GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncMSBFirst(void);
-GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncLSBFirstFixedBase(void);
-GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncLSBFirst(void);
+extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncMSBFirstFixedBase(void);
+extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncMSBFirst(void);
+extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncLSBFirstFixedBase(void);
+extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncLSBFirst(void);
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRectsLSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -739,7 +739,7 @@ XAAFillColorExpandRectsLSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRects3LSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -750,7 +750,7 @@ XAAFillColorExpandRects3LSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRectsLSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -761,7 +761,7 @@ XAAFillColorExpandRectsLSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRects3LSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -772,7 +772,7 @@ XAAFillColorExpandRects3LSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRectsMSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -783,7 +783,7 @@ XAAFillColorExpandRectsMSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRects3MSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -794,7 +794,7 @@ XAAFillColorExpandRects3MSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRectsMSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -805,7 +805,7 @@ XAAFillColorExpandRectsMSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandRects3MSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -816,7 +816,7 @@ XAAFillColorExpandRects3MSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandRectsLSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -827,7 +827,7 @@ XAAFillScanlineColorExpandRectsLSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandRects3LSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -838,7 +838,7 @@ XAAFillScanlineColorExpandRects3LSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandRectsMSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -849,7 +849,7 @@ XAAFillScanlineColorExpandRectsMSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandRects3MSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -860,7 +860,7 @@ XAAFillScanlineColorExpandRects3MSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpansLSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -873,7 +873,7 @@ XAAFillColorExpandSpansLSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpans3LSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -886,7 +886,7 @@ XAAFillColorExpandSpans3LSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpansLSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -899,7 +899,7 @@ XAAFillColorExpandSpansLSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpans3LSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -912,7 +912,7 @@ XAAFillColorExpandSpans3LSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpansMSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -925,7 +925,7 @@ XAAFillColorExpandSpansMSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpans3MSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -938,7 +938,7 @@ XAAFillColorExpandSpans3MSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpansMSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -951,7 +951,7 @@ XAAFillColorExpandSpansMSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillColorExpandSpans3MSBFirstFixedBase(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -964,7 +964,7 @@ XAAFillColorExpandSpans3MSBFirstFixedBase(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandSpansLSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -977,7 +977,7 @@ XAAFillScanlineColorExpandSpansLSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandSpans3LSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -990,7 +990,7 @@ XAAFillScanlineColorExpandSpans3LSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAPutImage(
     DrawablePtr pDraw,
     GCPtr       pGC,
@@ -1004,7 +1004,7 @@ XAAPutImage(
     char        *pImage
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandSpansMSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -1017,7 +1017,7 @@ XAAFillScanlineColorExpandSpansMSBFirst(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillScanlineColorExpandSpans3MSBFirst(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -1031,32 +1031,32 @@ XAAFillScanlineColorExpandSpans3MSBFirst(
 );
 
 
-extern CARD32 *(*XAAStippleScanlineFuncMSBFirstFixedBase[6])(
+extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncMSBFirstFixedBase[6])(
    CARD32* base, CARD32* src, int offset, int width, int dwords
 );
 
-extern CARD32 *(*XAAStippleScanlineFuncMSBFirst[6])(
+extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncMSBFirst[6])(
    CARD32* base, CARD32* src, int offset, int width, int dwords
 );
 
-extern CARD32 *(*XAAStippleScanlineFuncLSBFirstFixedBase[6])(
+extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncLSBFirstFixedBase[6])(
    CARD32* base, CARD32* src, int offset, int width, int dwords
 );
 
-extern CARD32 *(*XAAStippleScanlineFuncLSBFirst[6])(
+extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncLSBFirst[6])(
    CARD32* base, CARD32* src, int offset, int width, int dwords
 );
 
-StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirstFixedBase(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirst(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirstFixedBase(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirst(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirstFixedBase(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirst(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirstFixedBase(void);
-StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirst(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirstFixedBase(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirst(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirstFixedBase(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirst(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirstFixedBase(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirst(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirstFixedBase(void);
+extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirst(void);
 
-int
+extern _X_EXPORT int
 XAAPolyText8TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1065,7 +1065,7 @@ XAAPolyText8TEColorExpansion(
     char *chars
 );
 
-int
+extern _X_EXPORT int
 XAAPolyText16TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1074,7 +1074,7 @@ XAAPolyText16TEColorExpansion(
     unsigned short *chars
 );
 
-void
+extern _X_EXPORT void
 XAAImageText8TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1083,7 +1083,7 @@ XAAImageText8TEColorExpansion(
     char *chars
 );
 
-void
+extern _X_EXPORT void
 XAAImageText16TEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1092,7 +1092,7 @@ XAAImageText16TEColorExpansion(
     unsigned short *chars
 );
 
-void
+extern _X_EXPORT void
 XAAImageGlyphBltTEColorExpansion(
     DrawablePtr pDrawable,
     GCPtr pGC,
@@ -1102,7 +1102,7 @@ XAAImageGlyphBltTEColorExpansion(
     pointer pglyphBase
 );
 
-void
+extern _X_EXPORT void
 XAAPolyGlyphBltTEColorExpansion(
     DrawablePtr pDrawable,
     GCPtr pGC,
@@ -1113,7 +1113,7 @@ XAAPolyGlyphBltTEColorExpansion(
 );
 
 
-int
+extern _X_EXPORT int
 XAAPolyText8NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1122,7 +1122,7 @@ XAAPolyText8NonTEColorExpansion(
     char *chars
 );
 
-int
+extern _X_EXPORT int
 XAAPolyText16NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1131,7 +1131,7 @@ XAAPolyText16NonTEColorExpansion(
     unsigned short *chars
 );
 
-void
+extern _X_EXPORT void
 XAAImageText8NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1140,7 +1140,7 @@ XAAImageText8NonTEColorExpansion(
     char *chars
 );
 
-void
+extern _X_EXPORT void
 XAAImageText16NonTEColorExpansion(
     DrawablePtr pDraw,
     GCPtr pGC,
@@ -1149,7 +1149,7 @@ XAAImageText16NonTEColorExpansion(
     unsigned short *chars
 );
 
-void
+extern _X_EXPORT void
 XAAImageGlyphBltNonTEColorExpansion(
     DrawablePtr pDrawable,
     GCPtr pGC,
@@ -1159,7 +1159,7 @@ XAAImageGlyphBltNonTEColorExpansion(
     pointer pglyphBase
 );
 
-void
+extern _X_EXPORT void
 XAAPolyGlyphBltNonTEColorExpansion(
     DrawablePtr pDrawable,
     GCPtr pGC,
@@ -1170,7 +1170,7 @@ XAAPolyGlyphBltNonTEColorExpansion(
 );
 
 
-void XAANonTEGlyphRenderer(
+extern _X_EXPORT void XAANonTEGlyphRenderer(
    ScrnInfoPtr pScrn,
    int x, int y, int n,
    NonTEGlyphPtr glyphs,
@@ -1179,7 +1179,7 @@ void XAANonTEGlyphRenderer(
    unsigned int planemask
 );
 
-void 
+extern _X_EXPORT void
 XAAFillSolidSpans(
    ScrnInfoPtr pScrn,
    int fg, int rop,
@@ -1189,7 +1189,7 @@ XAAFillSolidSpans(
    int *pwidth, int fSorted 
 );
 
-void 
+extern _X_EXPORT void
 XAAFillMono8x8PatternSpans(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -1201,7 +1201,7 @@ XAAFillMono8x8PatternSpans(
    int xorg, int yorg 
 );
 
-void 
+extern _X_EXPORT void
 XAAFillMono8x8PatternSpansScreenOrigin(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -1213,7 +1213,7 @@ XAAFillMono8x8PatternSpansScreenOrigin(
    int xorg, int yorg 
 );
 
-void 
+extern _X_EXPORT void
 XAAFillColor8x8PatternSpansScreenOrigin(
    ScrnInfoPtr pScrn,
    int rop,
@@ -1225,7 +1225,7 @@ XAAFillColor8x8PatternSpansScreenOrigin(
    int xorigin, int yorigin 
 );
 
-void 
+extern _X_EXPORT void
 XAAFillColor8x8PatternSpans(
    ScrnInfoPtr pScrn,
    int rop,
@@ -1237,7 +1237,7 @@ XAAFillColor8x8PatternSpans(
    int xorigin, int yorigin 
 );
 
-void
+extern _X_EXPORT void
 XAAFillCacheBltSpans(
    ScrnInfoPtr pScrn,
    int rop,
@@ -1250,7 +1250,7 @@ XAAFillCacheBltSpans(
    int xorg, int yorg
 );
 
-void 
+extern _X_EXPORT void
 XAAFillCacheExpandSpans(
    ScrnInfoPtr pScrn,
    int fg, int bg, int rop,
@@ -1263,7 +1263,7 @@ XAAFillCacheExpandSpans(
    PixmapPtr pPix
 );
 
-void
+extern _X_EXPORT void
 XAAFillSpans(
     DrawablePtr pDrawable,
     GC		*pGC,
@@ -1274,14 +1274,14 @@ XAAFillSpans(
 );
 
 
-void 
+extern _X_EXPORT void
 XAAInitPixmapCache(
     ScreenPtr pScreen, 
     RegionPtr areas,
     pointer data
 );
 
-void 
+extern _X_EXPORT void
 XAAWriteBitmapToCache(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1290,7 +1290,7 @@ XAAWriteBitmapToCache(
    int fg, int bg
 );
  
-void 
+extern _X_EXPORT void
 XAAWriteBitmapToCacheLinear(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1299,7 +1299,7 @@ XAAWriteBitmapToCacheLinear(
    int fg, int bg
 );
 
-void 
+extern _X_EXPORT void
 XAAWritePixmapToCache(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1308,7 +1308,7 @@ XAAWritePixmapToCache(
    int bpp, int depth
 );
 
-void 
+extern _X_EXPORT void
 XAAWritePixmapToCacheLinear(
    ScrnInfoPtr pScrn,
    int x, int y, int w, int h,
@@ -1317,26 +1317,26 @@ XAAWritePixmapToCacheLinear(
    int bpp, int depth
 );
 
-void 
+extern _X_EXPORT void
 XAASolidHorVertLineAsRects(
    ScrnInfoPtr pScrn,
    int x, int y, int len, int dir
 );
 
-void 
+extern _X_EXPORT void
 XAASolidHorVertLineAsTwoPoint(
    ScrnInfoPtr pScrn,
    int x, int y, int len, int dir
 );
 
-void 
+extern _X_EXPORT void
 XAASolidHorVertLineAsBresenham(
    ScrnInfoPtr pScrn,
    int x, int y, int len, int dir
 );
 
 
-void
+extern _X_EXPORT void
 XAAPolyRectangleThinSolid(
     DrawablePtr  pDrawable,
     GCPtr        pGC,    
@@ -1345,7 +1345,7 @@ XAAPolyRectangleThinSolid(
 );
 
 
-void
+extern _X_EXPORT void
 XAAPolylinesWideSolid (
    DrawablePtr	pDrawable,
    GCPtr	pGC,
@@ -1354,7 +1354,7 @@ XAAPolylinesWideSolid (
    DDXPointPtr	pPts
 );
 
-void
+extern _X_EXPORT void
 XAAFillPolygonSolid(
     DrawablePtr	pDrawable,
     GCPtr	pGC,
@@ -1364,7 +1364,7 @@ XAAFillPolygonSolid(
     DDXPointPtr	ptsIn 
 );
 
-void
+extern _X_EXPORT void
 XAAFillPolygonStippled(
     DrawablePtr	pDrawable,
     GCPtr	pGC,
@@ -1375,7 +1375,7 @@ XAAFillPolygonStippled(
 );
 
 
-void
+extern _X_EXPORT void
 XAAFillPolygonTiled(
     DrawablePtr	pDrawable,
     GCPtr	pGC,
@@ -1386,7 +1386,7 @@ XAAFillPolygonTiled(
 );
 
 
-int
+extern _X_EXPORT int
 XAAIsEasyPolygon(
    DDXPointPtr ptsIn,
    int count, 
@@ -1397,7 +1397,7 @@ XAAIsEasyPolygon(
    int shape
 );
 
-void
+extern _X_EXPORT void
 XAAFillPolygonHelper(
     ScrnInfoPtr pScrn,
     DDXPointPtr	ptsIn,
@@ -1413,7 +1413,7 @@ XAAFillPolygonHelper(
     XAACacheInfoPtr pCache
 );
 
-void
+extern _X_EXPORT void
 XAAPolySegment(
     DrawablePtr	pDrawable,
     GCPtr	pGC,
@@ -1421,7 +1421,7 @@ XAAPolySegment(
     xSegment	*pSeg
 );
 
-void
+extern _X_EXPORT void
 XAAPolyLines(
     DrawablePtr pDrawable,
     GCPtr	pGC,
@@ -1430,7 +1430,7 @@ XAAPolyLines(
     DDXPointPtr pptInit
 );
 
-void
+extern _X_EXPORT void
 XAAPolySegmentDashed(
     DrawablePtr	pDrawable,
     GCPtr	pGC,
@@ -1438,7 +1438,7 @@ XAAPolySegmentDashed(
     xSegment	*pSeg
 );
 
-void
+extern _X_EXPORT void
 XAAPolyLinesDashed(
     DrawablePtr pDrawable,
     GCPtr	pGC,
@@ -1448,44 +1448,44 @@ XAAPolyLinesDashed(
 );
 
 
-void 
+extern _X_EXPORT void
 XAAWriteMono8x8PatternToCache(ScrnInfoPtr pScrn, XAACacheInfoPtr pCache);
 
-void 
+extern _X_EXPORT void
 XAAWriteColor8x8PatternToCache(
    ScrnInfoPtr pScrn, 
    PixmapPtr pPix, 
    XAACacheInfoPtr pCache
 );
 
-void 
+extern _X_EXPORT void
 XAARotateMonoPattern(
     int *pat0, int *pat1,
     int xoffset, int yoffset,
     Bool msbfirst
 );
 
-void XAAComputeDash(GCPtr pGC);
+extern _X_EXPORT void XAAComputeDash(GCPtr pGC);
 
-void XAAMoveDWORDS_FixedBase(
+extern _X_EXPORT void XAAMoveDWORDS_FixedBase(
    register CARD32* dest,
    register CARD32* src,
    register int dwords 
 );
 
-void XAAMoveDWORDS_FixedSrc(
+extern _X_EXPORT void XAAMoveDWORDS_FixedSrc(
    register CARD32* dest,
    register CARD32* src,
    register int dwords 
 );
 
-void XAAMoveDWORDS(
+extern _X_EXPORT void XAAMoveDWORDS(
    register CARD32* dest,
    register CARD32* src,
    register int dwords 
 );
 
-int
+extern _X_EXPORT int
 XAAGetRectClipBoxes(
     GCPtr pGC,
     BoxPtr pboxClippedBase,
@@ -1493,54 +1493,54 @@ XAAGetRectClipBoxes(
     xRectangle *prectInit
 );
 
-void
+extern _X_EXPORT void
 XAASetupOverlay8_32Planar(ScreenPtr);
 
-void
+extern _X_EXPORT void
 XAAPolyFillArcSolid(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc *parcs);
  
-XAACacheInfoPtr
+extern _X_EXPORT XAACacheInfoPtr
 XAACacheTile(ScrnInfoPtr Scrn, PixmapPtr pPix);
 
-XAACacheInfoPtr
+extern _X_EXPORT XAACacheInfoPtr
 XAACacheMonoStipple(ScrnInfoPtr Scrn, PixmapPtr pPix);
 
-XAACacheInfoPtr
+extern _X_EXPORT XAACacheInfoPtr
 XAACachePlanarMonoStipple(ScrnInfoPtr Scrn, PixmapPtr pPix);
 
 typedef XAACacheInfoPtr (*XAACachePlanarMonoStippleProc)(ScrnInfoPtr, PixmapPtr);
-XAACachePlanarMonoStippleProc XAAGetCachePlanarMonoStipple(void);
+extern _X_EXPORT XAACachePlanarMonoStippleProc XAAGetCachePlanarMonoStipple(void);
 
-XAACacheInfoPtr
+extern _X_EXPORT XAACacheInfoPtr
 XAACacheStipple(ScrnInfoPtr Scrn, PixmapPtr pPix, int fg, int bg);
 
-XAACacheInfoPtr
+extern _X_EXPORT XAACacheInfoPtr
 XAACacheMono8x8Pattern(ScrnInfoPtr Scrn, int pat0, int pat1);
 
-XAACacheInfoPtr
+extern _X_EXPORT XAACacheInfoPtr
 XAACacheColor8x8Pattern(ScrnInfoPtr Scrn, PixmapPtr pPix, int fg, int bg);
 
-void 
+extern _X_EXPORT void
 XAATileCache(ScrnInfoPtr pScrn, XAACacheInfoPtr pCache, int w, int h);
  
-void XAAClosePixmapCache(ScreenPtr pScreen);
+extern _X_EXPORT void XAAClosePixmapCache(ScreenPtr pScreen);
 void XAAInvalidatePixmapCache(ScreenPtr pScreen);
 
-Bool XAACheckStippleReducibility(PixmapPtr pPixmap);
-Bool XAACheckTileReducibility(PixmapPtr pPixmap, Bool checkMono);
+extern _X_EXPORT Bool XAACheckStippleReducibility(PixmapPtr pPixmap);
+extern _X_EXPORT Bool XAACheckTileReducibility(PixmapPtr pPixmap, Bool checkMono);
 
-int XAAStippledFillChooser(GCPtr pGC);
-int XAAOpaqueStippledFillChooser(GCPtr pGC);
-int XAATiledFillChooser(GCPtr pGC);
+extern _X_EXPORT int XAAStippledFillChooser(GCPtr pGC);
+extern _X_EXPORT int XAAOpaqueStippledFillChooser(GCPtr pGC);
+extern _X_EXPORT int XAATiledFillChooser(GCPtr pGC);
 
-void XAAMoveInOffscreenPixmaps(ScreenPtr pScreen);
-void XAAMoveOutOffscreenPixmaps(ScreenPtr pScreen);
-void XAARemoveAreaCallback(FBAreaPtr area);
-void XAAMoveOutOffscreenPixmap(PixmapPtr pPix); 
-Bool XAAInitStateWrap(ScreenPtr pScreen, XAAInfoRecPtr infoRec);
+extern _X_EXPORT void XAAMoveInOffscreenPixmaps(ScreenPtr pScreen);
+extern _X_EXPORT void XAAMoveOutOffscreenPixmaps(ScreenPtr pScreen);
+extern _X_EXPORT void XAARemoveAreaCallback(FBAreaPtr area);
+extern _X_EXPORT void XAAMoveOutOffscreenPixmap(PixmapPtr pPix);
+extern _X_EXPORT Bool XAAInitStateWrap(ScreenPtr pScreen, XAAInfoRecPtr infoRec);
 
 #ifdef RENDER
-void
+extern _X_EXPORT void
 XAAComposite (CARD8      op,
 	      PicturePtr pSrc,
 	      PicturePtr pMask,
@@ -1555,7 +1555,7 @@ XAAComposite (CARD8      op,
 	      CARD16     height);
 
 
-Bool
+extern _X_EXPORT Bool
 XAADoComposite (CARD8      op,
               PicturePtr pSrc,
               PicturePtr pMask,
@@ -1570,7 +1570,7 @@ XAADoComposite (CARD8      op,
               CARD16     height);
 
 
-void
+extern _X_EXPORT void
 XAAGlyphs (CARD8         op,
 	   PicturePtr    pSrc,
 	   PicturePtr    pDst,
@@ -1581,7 +1581,7 @@ XAAGlyphs (CARD8         op,
 	   GlyphListPtr  list,
 	   GlyphPtr      *glyphs);
 
-Bool
+extern _X_EXPORT Bool
 XAADoGlyphs (CARD8         op,
            PicturePtr    pSrc,
            PicturePtr    pDst,
@@ -1595,7 +1595,7 @@ XAADoGlyphs (CARD8         op,
 
 
 /* helpers */
-void
+extern _X_EXPORT void
 XAA_888_plus_PICT_a8_to_8888 (
     CARD32 color,
     CARD8  *alphaPtr,   /* in bytes */
@@ -1606,7 +1606,7 @@ XAA_888_plus_PICT_a8_to_8888 (
     int    height
 );
 
-Bool
+extern _X_EXPORT Bool
 XAAGetRGBAFromPixel(
     CARD32 pixel,
     CARD16 *red,
@@ -1617,7 +1617,7 @@ XAAGetRGBAFromPixel(
 );
 
 
-Bool
+extern _X_EXPORT Bool
 XAAGetPixelFromRGBA (
     CARD32 *pixel,
     CARD16 red,
@@ -1630,18 +1630,18 @@ XAAGetPixelFromRGBA (
 #endif
 
 /* XXX should be static */
-extern GCOps XAAFallbackOps;
-extern GCOps *XAAGetFallbackOps(void);
-extern GCFuncs XAAGCFuncs;
-extern DevPrivateKey XAAGetScreenKey(void);
-extern DevPrivateKey XAAGetGCKey(void);
-extern DevPrivateKey XAAGetPixmapKey(void);
+extern _X_EXPORT GCOps XAAFallbackOps;
+extern _X_EXPORT GCOps *XAAGetFallbackOps(void);
+extern _X_EXPORT GCFuncs XAAGCFuncs;
+extern _X_EXPORT DevPrivateKey XAAGetScreenKey(void);
+extern _X_EXPORT DevPrivateKey XAAGetGCKey(void);
+extern _X_EXPORT DevPrivateKey XAAGetPixmapKey(void);
 
-extern unsigned int XAAShiftMasks[32];
+extern _X_EXPORT unsigned int XAAShiftMasks[32];
 
-extern unsigned int byte_expand3[256], byte_reversed_expand3[256];
+extern _X_EXPORT unsigned int byte_expand3[256], byte_reversed_expand3[256];
 
-CARD32 XAAReverseBitOrder(CARD32 data);
+extern _X_EXPORT CARD32 XAAReverseBitOrder(CARD32 data);
 
 #define GET_XAASCREENPTR_FROM_SCREEN(pScreen)\
     dixLookupPrivate(&(pScreen)->devPrivates, XAAGetScreenKey())
diff --git a/hw/xfree86/xaa/xaarop.h b/hw/xfree86/xaa/xaarop.h
index 548993c..edfd75a 100644
--- a/hw/xfree86/xaa/xaarop.h
+++ b/hw/xfree86/xaa/xaarop.h
@@ -294,18 +294,18 @@
 #define NO_SRC_ROP(rop) \
    ((rop == GXnoop) || (rop == GXset) || (rop == GXclear) || (rop == GXinvert))
 
-int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop);
-int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop);
+extern _X_EXPORT int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop);
+extern _X_EXPORT int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop);
 
 /* XXX These four should be static, but it breaks the 6.7.0 ABI. */
-extern int XAACopyROP[16];
-extern int XAACopyROP_PM[16];
-extern int XAAPatternROP[16];
-extern int XAAPatternROP_PM[16];
+extern _X_EXPORT int XAACopyROP[16];
+extern _X_EXPORT int XAACopyROP_PM[16];
+extern _X_EXPORT int XAAPatternROP[16];
+extern _X_EXPORT int XAAPatternROP_PM[16];
 
-extern int XAAGetCopyROP(int i);
-extern int XAAGetCopyROP_PM(int i);
-extern int XAAGetPatternROP(int i);
-extern int XAAGetPatternROP_PM(int i);
+extern _X_EXPORT int XAAGetCopyROP(int i);
+extern _X_EXPORT int XAAGetCopyROP_PM(int i);
+extern _X_EXPORT int XAAGetPatternROP(int i);
+extern _X_EXPORT int XAAGetPatternROP_PM(int i);
 
 #endif /* _XAAROP_H */
diff --git a/hw/xfree86/xf8_16bpp/cfb8_16.h b/hw/xfree86/xf8_16bpp/cfb8_16.h
index 3a3a68d..d847a60 100644
--- a/hw/xfree86/xf8_16bpp/cfb8_16.h
+++ b/hw/xfree86/xf8_16bpp/cfb8_16.h
@@ -28,7 +28,7 @@
 
 /* this has to stay misnamed for ABI reasons */
 
-_X_EXPORT Bool
+extern _X_EXPORT Bool
 cfb8_16ScreenInit(ScreenPtr pScreen, pointer pbits16, pointer pbits8,
                   int xsize, int ysize, int dpix, int dpiy,
                   int width16, int width8);
diff --git a/hw/xfree86/xf8_16bpp/xf8_16module.c b/hw/xfree86/xf8_16bpp/xf8_16module.c
index 1a739b0..dd4f011 100644
--- a/hw/xfree86/xf8_16bpp/xf8_16module.c
+++ b/hw/xfree86/xf8_16bpp/xf8_16module.c
@@ -34,7 +34,7 @@
 #include "fboverlay.h"
 #include "cfb8_16.h"
 
-_X_EXPORT Bool
+Bool
 cfb8_16ScreenInit(ScreenPtr pScreen, pointer pbits16, pointer pbits8,
                   int xsize, int ysize, int dpix, int dpiy,
                   int width16, int width8)
diff --git a/include/XIstubs.h b/include/XIstubs.h
index 6797e07..ba2f861 100644
--- a/include/XIstubs.h
+++ b/include/XIstubs.h
@@ -26,27 +26,27 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #ifndef XI_STUBS_H
 #define XI_STUBS_H 1
 
-void
+extern _X_EXPORT void
 CloseInputDevice (
 	DeviceIntPtr           /* d */,
 	ClientPtr              /* client */);
 
-void
+extern _X_EXPORT void
 AddOtherInputDevices (void);
 
-void
+extern _X_EXPORT void
 OpenInputDevice (
 	DeviceIntPtr           /* dev */,
 	ClientPtr              /* client */,
 	int *                  /* status */);
 
-int
+extern _X_EXPORT int
 SetDeviceMode (
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
 	int                    /* mode */);
 
-int
+extern _X_EXPORT int
 SetDeviceValuators (
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
@@ -54,7 +54,7 @@ SetDeviceValuators (
 	int                    /* first_valuator */,
 	int                    /* num_valuators */);
 
-int
+extern _X_EXPORT int
 ChangeDeviceControl (
 	ClientPtr             /* client */,
 	DeviceIntPtr          /* dev */,
diff --git a/include/colormap.h b/include/colormap.h
index 8513c0a..a3467c9 100644
--- a/include/colormap.h
+++ b/include/colormap.h
@@ -76,7 +76,7 @@ typedef struct _CMEntry *EntryPtr;
 /* moved to screenint.h: typedef struct _ColormapRec *ColormapPtr */
 typedef struct _colorResource *colorResourcePtr;
 
-extern int CreateColormap(
+extern _X_EXPORT int CreateColormap(
     Colormap /*mid*/,
     ScreenPtr /*pScreen*/,
     VisualPtr /*pVisual*/,
@@ -84,24 +84,24 @@ extern int CreateColormap(
     int /*alloc*/,
     int /*client*/);
 
-extern int FreeColormap(
+extern _X_EXPORT int FreeColormap(
     pointer /*pmap*/,
     XID /*mid*/);
 
-extern int TellLostMap(
+extern _X_EXPORT int TellLostMap(
     WindowPtr /*pwin*/,
     pointer /* Colormap *pmid */);
 
-extern int TellGainedMap(
+extern _X_EXPORT int TellGainedMap(
     WindowPtr /*pwin*/,
     pointer /* Colormap *pmid */);
 
-extern int CopyColormapAndFree(
+extern _X_EXPORT int CopyColormapAndFree(
     Colormap /*mid*/,
     ColormapPtr /*pSrc*/,
     int /*client*/);
 
-extern int AllocColor(
+extern _X_EXPORT int AllocColor(
     ColormapPtr /*pmap*/,
     unsigned short* /*pred*/,
     unsigned short* /*pgreen*/,
@@ -109,11 +109,11 @@ extern int AllocColor(
     Pixel* /*pPix*/,
     int /*client*/);
 
-extern void FakeAllocColor(
+extern _X_EXPORT void FakeAllocColor(
     ColormapPtr /*pmap*/,
     xColorItem * /*item*/);
 
-extern void FakeFreeColor(
+extern _X_EXPORT void FakeFreeColor(
     ColormapPtr /*pmap*/,
     Pixel /*pixel*/);
 
@@ -121,7 +121,7 @@ typedef int (*ColorCompareProcPtr)(
     EntryPtr /*pent*/,
     xrgb * /*prgb*/);
 
-extern int FindColor(
+extern _X_EXPORT int FindColor(
     ColormapPtr /*pmap*/,
     EntryPtr /*pentFirst*/,
     int /*size*/,
@@ -131,17 +131,17 @@ extern int FindColor(
     int /*client*/,
     ColorCompareProcPtr /*comp*/);
 
-extern int QueryColors(
+extern _X_EXPORT int QueryColors(
     ColormapPtr /*pmap*/,
     int /*count*/,
     Pixel* /*ppixIn*/,
     xrgb* /*prgbList*/);
 
-extern int FreeClientPixels(
+extern _X_EXPORT int FreeClientPixels(
     pointer /*pcr*/,
     XID /*fakeid*/);
 
-extern int AllocColorCells(
+extern _X_EXPORT int AllocColorCells(
     int /*client*/,
     ColormapPtr /*pmap*/,
     int /*colors*/,
@@ -150,7 +150,7 @@ extern int AllocColorCells(
     Pixel* /*ppix*/,
     Pixel* /*masks*/);
 
-extern int AllocColorPlanes(
+extern _X_EXPORT int AllocColorPlanes(
     int /*client*/,
     ColormapPtr /*pmap*/,
     int /*colors*/,
@@ -163,19 +163,19 @@ extern int AllocColorPlanes(
     Pixel* /*pgmask*/,
     Pixel* /*pbmask*/);
 
-extern int FreeColors(
+extern _X_EXPORT int FreeColors(
     ColormapPtr /*pmap*/,
     int /*client*/,
     int /*count*/,
     Pixel* /*pixels*/,
     Pixel /*mask*/);
 
-extern int StoreColors(
+extern _X_EXPORT int StoreColors(
     ColormapPtr /*pmap*/,
     int /*count*/,
     xColorItem* /*defs*/);
 
-extern int IsMapInstalled(
+extern _X_EXPORT int IsMapInstalled(
     Colormap /*map*/,
     WindowPtr /*pWin*/);
 
diff --git a/include/cursor.h b/include/cursor.h
index f7c16e3..acc95c3 100644
--- a/include/cursor.h
+++ b/include/cursor.h
@@ -64,16 +64,16 @@ struct _DeviceIntRec;
 typedef struct _Cursor *CursorPtr;
 typedef struct _CursorMetric *CursorMetricPtr;
 
-extern int cursorScreenDevPriv[MAXSCREENS];
+extern _X_EXPORT int cursorScreenDevPriv[MAXSCREENS];
 #define CursorScreenKey(pScreen) (cursorScreenDevPriv + (pScreen)->myNum)
 
-extern CursorPtr rootCursor;
+extern _X_EXPORT CursorPtr rootCursor;
 
-extern int FreeCursor(
+extern _X_EXPORT int FreeCursor(
     pointer /*pCurs*/,
     XID /*cid*/);
 
-extern int AllocARGBCursor(
+extern _X_EXPORT int AllocARGBCursor(
     unsigned char* /*psrcbits*/,
     unsigned char* /*pmaskbits*/,
     CARD32* /*argb*/,
@@ -88,7 +88,7 @@ extern int AllocARGBCursor(
     ClientPtr /*client*/,
     XID /*cid*/);
 
-extern int AllocGlyphCursor(
+extern _X_EXPORT int AllocGlyphCursor(
     Font /*source*/,
     unsigned int /*sourceChar*/,
     Font /*mask*/,
@@ -103,39 +103,39 @@ extern int AllocGlyphCursor(
     ClientPtr /*client*/,
     XID /*cid*/);
 
-extern CursorPtr CreateRootCursor(
+extern _X_EXPORT CursorPtr CreateRootCursor(
     char* /*pfilename*/,
     unsigned int /*glyph*/);
 
-extern int ServerBitsFromGlyph(
+extern _X_EXPORT int ServerBitsFromGlyph(
     FontPtr /*pfont*/,
     unsigned int /*ch*/,
     CursorMetricPtr /*cm*/,
     unsigned char ** /*ppbits*/);
 
-extern Bool CursorMetricsFromGlyph(
+extern _X_EXPORT Bool CursorMetricsFromGlyph(
     FontPtr /*pfont*/,
     unsigned /*ch*/,
     CursorMetricPtr /*cm*/);
 
-extern void CheckCursorConfinement(
+extern _X_EXPORT void CheckCursorConfinement(
     WindowPtr /*pWin*/);
 
-extern void NewCurrentScreen(
+extern _X_EXPORT void NewCurrentScreen(
     struct _DeviceIntRec* /*pDev*/,
     ScreenPtr /*newScreen*/,
     int /*x*/,
     int /*y*/);
 
-extern Bool PointerConfinedToScreen(struct _DeviceIntRec* /* pDev */);
+extern _X_EXPORT Bool PointerConfinedToScreen(struct _DeviceIntRec* /* pDev */);
 
-extern void GetSpritePosition(
+extern _X_EXPORT void GetSpritePosition(
     struct _DeviceIntRec* /* pDev */,
     int * /*px*/,
     int * /*py*/);
 
 #ifdef PANORAMIX
-extern int XineramaGetCursorScreen(struct _DeviceIntRec* pDev);
+extern _X_EXPORT int XineramaGetCursorScreen(struct _DeviceIntRec* pDev);
 #endif /* PANORAMIX */
 
 #endif /* CURSOR_H */
diff --git a/include/dix.h b/include/dix.h
index 1e3e78d..4aa03c2 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -119,15 +119,15 @@ typedef struct _Client *ClientPtr; /* also in misc.h */
 
 typedef struct _WorkQueue	*WorkQueuePtr;
 
-extern ClientPtr clients[MAXCLIENTS];
-extern ClientPtr serverClient;
-extern int currentMaxClients;
-extern char dispatchExceptionAtReset;
+extern _X_EXPORT ClientPtr clients[MAXCLIENTS];
+extern _X_EXPORT ClientPtr serverClient;
+extern _X_EXPORT int currentMaxClients;
+extern _X_EXPORT char dispatchExceptionAtReset;
 
 typedef int HWEventQueueType;
 typedef HWEventQueueType* HWEventQueuePtr;
 
-extern HWEventQueuePtr checkForInput[2];
+extern _X_EXPORT HWEventQueuePtr checkForInput[2];
 
 typedef struct _TimeStamp {
     CARD32 months;	/* really ~49.7 days */
@@ -136,94 +136,94 @@ typedef struct _TimeStamp {
 
 /* dispatch.c */
 
-extern void SetInputCheck(
+extern _X_EXPORT void SetInputCheck(
     HWEventQueuePtr /*c0*/,
     HWEventQueuePtr /*c1*/);
 
-extern void CloseDownClient(
+extern _X_EXPORT void CloseDownClient(
     ClientPtr /*client*/);
 
-extern void UpdateCurrentTime(void);
+extern _X_EXPORT void UpdateCurrentTime(void);
 
-extern void UpdateCurrentTimeIf(void);
+extern _X_EXPORT void UpdateCurrentTimeIf(void);
 
-extern int dixDestroyPixmap(
+extern _X_EXPORT int dixDestroyPixmap(
     pointer /*value*/,
     XID /*pid*/);
 
-extern void InitClient(
+extern _X_EXPORT void InitClient(
     ClientPtr /*client*/,
     int /*i*/,
     pointer /*ospriv*/);
 
-extern ClientPtr NextAvailableClient(
+extern _X_EXPORT ClientPtr NextAvailableClient(
     pointer /*ospriv*/);
 
-extern void SendErrorToClient(
+extern _X_EXPORT void SendErrorToClient(
     ClientPtr /*client*/,
     unsigned int /*majorCode*/,
     unsigned int /*minorCode*/,
     XID /*resId*/,
     int /*errorCode*/);
 
-extern void MarkClientException(
+extern _X_EXPORT void MarkClientException(
     ClientPtr /*client*/);
 
 /* dixutils.c */
 
-extern void CopyISOLatin1Lowered(
+extern _X_EXPORT void CopyISOLatin1Lowered(
     unsigned char * /*dest*/,
     unsigned char * /*source*/,
     int /*length*/);
 
-extern int CompareISOLatin1Lowered(
+extern _X_EXPORT int CompareISOLatin1Lowered(
     unsigned char * /*a*/,
     int alen,
     unsigned char * /*b*/,
     int blen);
 
-extern int dixLookupWindow(
+extern _X_EXPORT int dixLookupWindow(
     WindowPtr *result,
     XID id,
     ClientPtr client,
     Mask access_mode);
 
-extern int dixLookupDrawable(
+extern _X_EXPORT int dixLookupDrawable(
     DrawablePtr *result,
     XID id,
     ClientPtr client,
     Mask type_mask,
     Mask access_mode);
 
-extern int dixLookupGC(
+extern _X_EXPORT int dixLookupGC(
     GCPtr *result,
     XID id,
     ClientPtr client,
     Mask access_mode);
 
-extern int dixLookupClient(
+extern _X_EXPORT int dixLookupClient(
     ClientPtr *result,
     XID id,
     ClientPtr client,
     Mask access_mode);
 
-extern void NoopDDA(void);
+extern _X_EXPORT void NoopDDA(void);
 
-extern int AlterSaveSetForClient(
+extern _X_EXPORT int AlterSaveSetForClient(
     ClientPtr /*client*/,
     WindowPtr /*pWin*/,
     unsigned /*mode*/,
     Bool /*toRoot*/,
     Bool /*map*/);
   
-extern void DeleteWindowFromAnySaveSet(
+extern _X_EXPORT void DeleteWindowFromAnySaveSet(
     WindowPtr /*pWin*/);
 
-extern void BlockHandler(
+extern _X_EXPORT void BlockHandler(
     pointer /*pTimeout*/,
     pointer /*pReadmask*/);
 
-extern void WakeupHandler(
+extern _X_EXPORT void WakeupHandler(
     int /*result*/,
     pointer /*pReadmask*/);
 
@@ -232,23 +232,23 @@ typedef void (* WakeupHandlerProcPtr)(
     int /* result */,
     pointer /* pReadmask */);
 
-extern Bool RegisterBlockAndWakeupHandlers(
+extern _X_EXPORT Bool RegisterBlockAndWakeupHandlers(
     BlockHandlerProcPtr /*blockHandler*/,
     WakeupHandlerProcPtr /*wakeupHandler*/,
     pointer /*blockData*/);
 
-extern void RemoveBlockAndWakeupHandlers(
+extern _X_EXPORT void RemoveBlockAndWakeupHandlers(
     BlockHandlerProcPtr /*blockHandler*/,
     WakeupHandlerProcPtr /*wakeupHandler*/,
     pointer /*blockData*/);
 
-extern void InitBlockAndWakeupHandlers(void);
+extern _X_EXPORT void InitBlockAndWakeupHandlers(void);
 
-extern void ProcessWorkQueue(void);
+extern _X_EXPORT void ProcessWorkQueue(void);
 
-extern void ProcessWorkQueueZombies(void);
+extern _X_EXPORT void ProcessWorkQueueZombies(void);
 
-extern Bool QueueWorkProc(
+extern _X_EXPORT Bool QueueWorkProc(
     Bool (* /*function*/)(
         ClientPtr /*clientUnused*/,
         pointer /*closure*/),
@@ -260,106 +260,106 @@ typedef Bool (* ClientSleepProcPtr)(
     ClientPtr /*client*/,
     pointer /*closure*/);
 
-extern Bool ClientSleep(
+extern _X_EXPORT Bool ClientSleep(
     ClientPtr /*client*/,
     ClientSleepProcPtr /* function */,
     pointer /*closure*/);
 
 #ifndef ___CLIENTSIGNAL_DEFINED___
 #define ___CLIENTSIGNAL_DEFINED___
-extern Bool ClientSignal(
+extern _X_EXPORT Bool ClientSignal(
     ClientPtr /*client*/);
 #endif /* ___CLIENTSIGNAL_DEFINED___ */
 
-extern void ClientWakeup(
+extern _X_EXPORT void ClientWakeup(
     ClientPtr /*client*/);
 
-extern Bool ClientIsAsleep(
+extern _X_EXPORT Bool ClientIsAsleep(
     ClientPtr /*client*/);
 
 /* atom.c */
 
-extern Atom MakeAtom(
+extern _X_EXPORT Atom MakeAtom(
     char * /*string*/,
     unsigned /*len*/,
     Bool /*makeit*/);
 
-extern Bool ValidAtom(
+extern _X_EXPORT Bool ValidAtom(
     Atom /*atom*/);
 
-extern char *NameForAtom(
+extern _X_EXPORT char *NameForAtom(
     Atom /*atom*/);
 
-extern void AtomError(void);
+extern _X_EXPORT void AtomError(void);
 
-extern void FreeAllAtoms(void);
+extern _X_EXPORT void FreeAllAtoms(void);
 
-extern void InitAtoms(void);
+extern _X_EXPORT void InitAtoms(void);
 
 /* main.c */
 
-extern void SetVendorRelease(int release);
+extern _X_EXPORT void SetVendorRelease(int release);
 
-extern void SetVendorString(char *string);
+extern _X_EXPORT void SetVendorString(char *string);
 
 /* events.c */
 
-extern void SetMaskForEvent(
+extern _X_EXPORT void SetMaskForEvent(
     int /* deviceid */,
     Mask /* mask */,
     int /* event */);
 
-extern void ConfineToShape(
+extern _X_EXPORT void ConfineToShape(
     DeviceIntPtr /* pDev */, 
     RegionPtr /* shape */, 
     int*      /* px */,
     int*      /* py */);
 
-extern Bool IsParent(
+extern _X_EXPORT Bool IsParent(
     WindowPtr /* maybeparent */,
     WindowPtr /* child */);
 
-extern WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev);
+extern _X_EXPORT WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev);
 
-extern WindowPtr GetSpriteWindow(DeviceIntPtr pDev);
+extern _X_EXPORT WindowPtr GetSpriteWindow(DeviceIntPtr pDev);
 
 
-extern void NoticeEventTime(xEventPtr /* xE */);
+extern _X_EXPORT void NoticeEventTime(xEventPtr /* xE */);
 
-extern void EnqueueEvent(
+extern _X_EXPORT void EnqueueEvent(
     xEventPtr /* xE */,
     DeviceIntPtr /* device */,
     int	/* count */);
 
-extern void ActivatePointerGrab(
+extern _X_EXPORT void ActivatePointerGrab(
     DeviceIntPtr /* mouse */,
     GrabPtr /* grab */,
     TimeStamp /* time */,
     Bool /* autoGrab */);
 
-extern void DeactivatePointerGrab(
+extern _X_EXPORT void DeactivatePointerGrab(
     DeviceIntPtr /* mouse */);
 
-extern void ActivateKeyboardGrab(
+extern _X_EXPORT void ActivateKeyboardGrab(
     DeviceIntPtr /* keybd */,
     GrabPtr /* grab */,
     TimeStamp /* time */,
     Bool /* passive */);
 
-extern void DeactivateKeyboardGrab(
+extern _X_EXPORT void DeactivateKeyboardGrab(
     DeviceIntPtr /* keybd */);
 
-extern void AllowSome(
+extern _X_EXPORT void AllowSome(
     ClientPtr	/* client */,
     TimeStamp /* time */,
     DeviceIntPtr /* thisDev */,
     int /* newState */,
     Bool /* core */);
 
-extern void ReleaseActiveGrabs(
+extern _X_EXPORT void ReleaseActiveGrabs(
     ClientPtr client);
 
-extern int DeliverEventsToWindow(
+extern _X_EXPORT int DeliverEventsToWindow(
     DeviceIntPtr /* pWin */,
     WindowPtr /* pWin */,
     xEventPtr /* pEvents */,
@@ -368,7 +368,7 @@ extern int DeliverEventsToWindow(
     GrabPtr /* grab */,
     int /* mskidx */);
 
-extern int DeliverDeviceEvents(
+extern _X_EXPORT int DeliverDeviceEvents(
     WindowPtr /* pWin */,
     xEventPtr /* xE */,
     GrabPtr /* grab */,
@@ -376,58 +376,58 @@ extern int DeliverDeviceEvents(
     DeviceIntPtr /* dev */,
     int /* count */);
 
-extern void DefineInitialRootWindow(
+extern _X_EXPORT void DefineInitialRootWindow(
     WindowPtr /* win */);
 
-extern void InitializeSprite(
+extern _X_EXPORT void InitializeSprite(
     DeviceIntPtr /* pDev */,
     WindowPtr    /* pWin */);
 
-extern void UpdateSpriteForScreen(
+extern _X_EXPORT void UpdateSpriteForScreen(
     DeviceIntPtr /* pDev */,
     ScreenPtr /* pScreen */);
 
-extern void WindowHasNewCursor(
+extern _X_EXPORT void WindowHasNewCursor(
     WindowPtr /* pWin */);
 
-extern Bool CheckDeviceGrabs(
+extern _X_EXPORT Bool CheckDeviceGrabs(
     DeviceIntPtr /* device */,
     xEventPtr /* xE */,
     int /* checkFirst */,
     int /* count */);
 
-extern void DeliverFocusedEvent(
+extern _X_EXPORT void DeliverFocusedEvent(
     DeviceIntPtr /* keybd */,
     xEventPtr /* xE */,
     WindowPtr /* window */,
     int /* count */);
 
-extern void DeliverGrabbedEvent(
+extern _X_EXPORT void DeliverGrabbedEvent(
     xEventPtr /* xE */,
     DeviceIntPtr /* thisDev */,
     Bool /* deactivateGrab */,
     int /* count */);
 
 #ifdef XKB
-extern void FixKeyState(
+extern _X_EXPORT void FixKeyState(
     xEvent * /* xE */,
     DeviceIntPtr /* keybd */);
 #endif /* XKB */
 
-extern void RecalculateDeliverableEvents(
+extern _X_EXPORT void RecalculateDeliverableEvents(
     WindowPtr /* pWin */);
 
-extern int OtherClientGone(
+extern _X_EXPORT int OtherClientGone(
     pointer /* value */,
     XID /* id */);
 
-extern void DoFocusEvents(
+extern _X_EXPORT void DoFocusEvents(
     DeviceIntPtr /* dev */,
     WindowPtr /* fromWin */,
     WindowPtr /* toWin */,
     int /* mode */);
 
-extern int SetInputFocus(
+extern _X_EXPORT int SetInputFocus(
     ClientPtr /* client */,
     DeviceIntPtr /* dev */,
     Window /* focusID */,
@@ -435,7 +435,7 @@ extern int SetInputFocus(
     Time /* ctime */,
     Bool /* followOK */);
 
-extern int GrabDevice(
+extern _X_EXPORT int GrabDevice(
     ClientPtr /* client */,
     DeviceIntPtr /* dev */,
     unsigned /* this_mode */,
@@ -447,38 +447,38 @@ extern int GrabDevice(
     CARD8 * /* status */,
     Bool /* coreGrab */);
 
-extern void InitEvents(void);
+extern _X_EXPORT void InitEvents(void);
 
-extern void CloseDownEvents(void);
+extern _X_EXPORT void CloseDownEvents(void);
 
-extern void DeleteWindowFromAnyEvents(
+extern _X_EXPORT void DeleteWindowFromAnyEvents(
     WindowPtr	/* pWin */,
     Bool /* freeResources */);
 
 
-extern Mask EventMaskForClient(
+extern _X_EXPORT Mask EventMaskForClient(
     WindowPtr /* pWin */,
     ClientPtr /* client */);
 
 
 
-extern int DeliverEvents(
+extern _X_EXPORT int DeliverEvents(
     WindowPtr /*pWin*/,
     xEventPtr /*xE*/,
     int /*count*/,
     WindowPtr /*otherParent*/);
 
-extern Bool
+extern _X_EXPORT Bool
 CheckMotion(
     xEvent* /* xE */, 
     DeviceIntPtr /* pDev */);
 
-extern void WriteEventsToClient(
+extern _X_EXPORT void WriteEventsToClient(
     ClientPtr /*pClient*/,
     int	     /*count*/,
     xEventPtr /*events*/);
 
-extern int TryClientEvents(
+extern _X_EXPORT int TryClientEvents(
     ClientPtr /*client*/,
     DeviceIntPtr /* device */,
     xEventPtr /*pEvents*/,
@@ -487,34 +487,34 @@ extern int TryClientEvents(
     Mask /*filter*/,
     GrabPtr /*grab*/);
 
-extern void WindowsRestructured(void);
+extern _X_EXPORT void WindowsRestructured(void);
 
-extern Bool SetClientPointer(
+extern _X_EXPORT Bool SetClientPointer(
         ClientPtr /* client */, 
         ClientPtr /* setter */, 
         DeviceIntPtr /* device */);
 
-extern DeviceIntPtr PickPointer(
+extern _X_EXPORT DeviceIntPtr PickPointer(
     ClientPtr /* client */);
 
-extern DeviceIntPtr PickKeyboard(
+extern _X_EXPORT DeviceIntPtr PickKeyboard(
     ClientPtr /* client */);
 
-extern Bool IsInterferingGrab(
+extern _X_EXPORT Bool IsInterferingGrab(
         ClientPtr /* client */,
         DeviceIntPtr /* dev */,
         xEvent* /* events */);
 
 #ifdef PANORAMIX
-extern void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
+extern _X_EXPORT void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
 #endif
 
 #ifdef RANDR
-void
+extern _X_EXPORT void
 ScreenRestructured (ScreenPtr pScreen);
 #endif
 
-extern int ffs(int i);
+extern _X_EXPORT int ffs(int i);
 
 /*
  *  callback manager stuff
@@ -528,30 +528,30 @@ typedef struct _CallbackList *CallbackListPtr; /* also in misc.h */
 typedef void (*CallbackProcPtr) (
     CallbackListPtr *, pointer, pointer);
 
-extern Bool AddCallback(
+extern _X_EXPORT Bool AddCallback(
     CallbackListPtr * /*pcbl*/,
     CallbackProcPtr /*callback*/,
     pointer /*data*/);
 
-extern Bool DeleteCallback(
+extern _X_EXPORT Bool DeleteCallback(
     CallbackListPtr * /*pcbl*/,
     CallbackProcPtr /*callback*/,
     pointer /*data*/);
 
-extern void CallCallbacks(
+extern _X_EXPORT void CallCallbacks(
     CallbackListPtr * /*pcbl*/,
     pointer /*call_data*/);
 
-extern void DeleteCallbackList(
+extern _X_EXPORT void DeleteCallbackList(
     CallbackListPtr * /*pcbl*/);
 
-extern void InitCallbackManager(void);
+extern _X_EXPORT void InitCallbackManager(void);
 
 /*
  *  ServerGrabCallback stuff
  */
 
-extern CallbackListPtr ServerGrabCallback;
+extern _X_EXPORT CallbackListPtr ServerGrabCallback;
 
 typedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
 	      CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
@@ -565,7 +565,7 @@ typedef struct {
  *  EventCallback stuff
  */
 
-extern CallbackListPtr EventCallback;
+extern _X_EXPORT CallbackListPtr EventCallback;
 
 typedef struct {
     ClientPtr client;
@@ -577,52 +577,52 @@ typedef struct {
  *  DeviceEventCallback stuff
  */
 
-extern CallbackListPtr DeviceEventCallback;
+extern _X_EXPORT CallbackListPtr DeviceEventCallback;
 
 typedef struct {
     xEventPtr events;
     int count;
 } DeviceEventInfoRec;
 
-extern int XItoCoreType(int xi_type);
-extern Bool DevHasCursor(DeviceIntPtr pDev);
-extern Bool IsPointerDevice( DeviceIntPtr dev);
-extern Bool IsKeyboardDevice(DeviceIntPtr dev);
-extern Bool IsPointerEvent(xEvent* xE);
+extern _X_EXPORT int XItoCoreType(int xi_type);
+extern _X_EXPORT Bool DevHasCursor(DeviceIntPtr pDev);
+extern _X_EXPORT Bool IsPointerDevice( DeviceIntPtr dev);
+extern _X_EXPORT Bool IsKeyboardDevice(DeviceIntPtr dev);
+extern _X_EXPORT Bool IsPointerEvent(xEvent* xE);
 
 /*
  * These are deprecated compatibility functions and will be removed soon!
  * Please use the noted replacements instead.
  */
 /* replaced by dixLookupWindow */
-extern WindowPtr SecurityLookupWindow(
+extern _X_EXPORT WindowPtr SecurityLookupWindow(
     XID id,
     ClientPtr client,
     Mask access_mode);
 /* replaced by dixLookupWindow */
-extern WindowPtr LookupWindow(
+extern _X_EXPORT WindowPtr LookupWindow(
     XID id,
     ClientPtr client);
 
 /* replaced by dixLookupDrawable */
-extern pointer SecurityLookupDrawable(
+extern _X_EXPORT pointer SecurityLookupDrawable(
     XID id,
     ClientPtr client,
     Mask access_mode);
 
 /* replaced by dixLookupDrawable */
-extern pointer LookupDrawable(
+extern _X_EXPORT pointer LookupDrawable(
     XID id,
     ClientPtr client);
 
 /* replaced by dixLookupClient */
-extern ClientPtr LookupClient(
+extern _X_EXPORT ClientPtr LookupClient(
     XID id,
     ClientPtr client);
 
 /* GE stuff */
-extern void SetGenericFilter(int extension, Mask* filters);
-extern int ExtGrabDevice(ClientPtr client,
+extern _X_EXPORT void SetGenericFilter(int extension, Mask* filters);
+extern _X_EXPORT int ExtGrabDevice(ClientPtr client,
                          DeviceIntPtr dev,
                          int device_mode,
                          WindowPtr grabWindow,
diff --git a/include/dixevents.h b/include/dixevents.h
index 1ce2ad0..b915345 100644
--- a/include/dixevents.h
+++ b/include/dixevents.h
@@ -26,62 +26,62 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #ifndef DIXEVENTS_H
 #define DIXEVENTS_H
 
-extern void SetCriticalEvent(int /* event */);
+extern _X_EXPORT void SetCriticalEvent(int /* event */);
 
-extern CursorPtr GetSpriteCursor(DeviceIntPtr /*pDev*/);
+extern _X_EXPORT CursorPtr GetSpriteCursor(DeviceIntPtr /*pDev*/);
 
-extern int ProcAllowEvents(ClientPtr /* client */);
+extern _X_EXPORT int ProcAllowEvents(ClientPtr /* client */);
 
-extern int MaybeDeliverEventsToClient(
+extern _X_EXPORT int MaybeDeliverEventsToClient(
 	WindowPtr              /* pWin */,
 	xEvent *               /* pEvents */,
 	int                    /* count */,
 	Mask                   /* filter */,
 	ClientPtr              /* dontClient */);
 
-extern int ProcWarpPointer(ClientPtr /* client */);
+extern _X_EXPORT int ProcWarpPointer(ClientPtr /* client */);
 
-extern int EventSelectForWindow(
+extern _X_EXPORT int EventSelectForWindow(
 	WindowPtr              /* pWin */,
 	ClientPtr              /* client */,
 	Mask                   /* mask */);
 
-extern int EventSuppressForWindow(
+extern _X_EXPORT int EventSuppressForWindow(
 	WindowPtr              /* pWin */,
 	ClientPtr              /* client */,
 	Mask                   /* mask */,
 	Bool *                 /* checkOptional */);
 
-extern int ProcSetInputFocus(ClientPtr /* client */);
+extern _X_EXPORT int ProcSetInputFocus(ClientPtr /* client */);
 
-extern int ProcGetInputFocus(ClientPtr /* client */);
+extern _X_EXPORT int ProcGetInputFocus(ClientPtr /* client */);
 
-extern int ProcGrabPointer(ClientPtr /* client */);
+extern _X_EXPORT int ProcGrabPointer(ClientPtr /* client */);
 
-extern int ProcChangeActivePointerGrab(ClientPtr /* client */);
+extern _X_EXPORT int ProcChangeActivePointerGrab(ClientPtr /* client */);
 
-extern int ProcUngrabPointer(ClientPtr /* client */);
+extern _X_EXPORT int ProcUngrabPointer(ClientPtr /* client */);
 
-extern int ProcGrabKeyboard(ClientPtr /* client */);
+extern _X_EXPORT int ProcGrabKeyboard(ClientPtr /* client */);
 
-extern int ProcUngrabKeyboard(ClientPtr /* client */);
+extern _X_EXPORT int ProcUngrabKeyboard(ClientPtr /* client */);
 
-extern int ProcQueryPointer(ClientPtr /* client */);
+extern _X_EXPORT int ProcQueryPointer(ClientPtr /* client */);
 
-extern int ProcSendEvent(ClientPtr /* client */);
+extern _X_EXPORT int ProcSendEvent(ClientPtr /* client */);
 
-extern int ProcUngrabKey(ClientPtr /* client */);
+extern _X_EXPORT int ProcUngrabKey(ClientPtr /* client */);
 
-extern int ProcGrabKey(ClientPtr /* client */);
+extern _X_EXPORT int ProcGrabKey(ClientPtr /* client */);
 
-extern int ProcGrabButton(ClientPtr /* client */);
+extern _X_EXPORT int ProcGrabButton(ClientPtr /* client */);
 
-extern int ProcUngrabButton(ClientPtr /* client */);
+extern _X_EXPORT int ProcUngrabButton(ClientPtr /* client */);
 
-extern int ProcRecolorCursor(ClientPtr /* client */);
+extern _X_EXPORT int ProcRecolorCursor(ClientPtr /* client */);
 
 #ifdef PANORAMIX
-extern void PostSyntheticMotion(DeviceIntPtr pDev, 
+extern _X_EXPORT void PostSyntheticMotion(DeviceIntPtr pDev,
                                 int x, 
                                 int y, 
                                 int screen,
diff --git a/include/dixfont.h b/include/dixfont.h
index d61dd7e..97bd712 100644
--- a/include/dixfont.h
+++ b/include/dixfont.h
@@ -33,45 +33,45 @@ SOFTWARE.
 
 typedef struct _DIXFontProp *DIXFontPropPtr;
 
-extern Bool SetDefaultFont(char * /*defaultfontname*/);
+extern _X_EXPORT Bool SetDefaultFont(char * /*defaultfontname*/);
 
-extern void QueueFontWakeup(FontPathElementPtr /*fpe*/);
+extern _X_EXPORT void QueueFontWakeup(FontPathElementPtr /*fpe*/);
 
-extern void RemoveFontWakeup(FontPathElementPtr /*fpe*/);
+extern _X_EXPORT void RemoveFontWakeup(FontPathElementPtr /*fpe*/);
 
-extern void FontWakeup(pointer /*data*/,
+extern _X_EXPORT void FontWakeup(pointer /*data*/,
 		       int /*count*/,
 		       pointer /*LastSelectMask*/);
 
-extern int OpenFont(ClientPtr /*client*/,
+extern _X_EXPORT int OpenFont(ClientPtr /*client*/,
 		    XID /*fid*/,
 		    Mask /*flags*/,
 		    unsigned /*lenfname*/,
 		    char * /*pfontname*/);
 
-extern int CloseFont(pointer /*pfont*/,
+extern _X_EXPORT int CloseFont(pointer /*pfont*/,
 		     XID /*fid*/);
 
 typedef struct _xQueryFontReply *xQueryFontReplyPtr;
 
-extern void QueryFont(FontPtr /*pFont*/,
+extern _X_EXPORT void QueryFont(FontPtr /*pFont*/,
 		      xQueryFontReplyPtr /*pReply*/,
 		      int /*nProtoCCIStructs*/);
 
-extern int ListFonts(ClientPtr /*client*/,
+extern _X_EXPORT int ListFonts(ClientPtr /*client*/,
 		     unsigned char * /*pattern*/,
 		     unsigned int /*length*/,
 		     unsigned int /*max_names*/);
 
-int
+extern _X_EXPORT int
 doListFontsWithInfo(ClientPtr /*client*/,
 		    LFWIclosurePtr /*c*/);
 
-extern int doPolyText(ClientPtr /*client*/,
+extern _X_EXPORT int doPolyText(ClientPtr /*client*/,
 		      PTclosurePtr /*c*/
 );
 
-extern int PolyText(ClientPtr /*client*/,
+extern _X_EXPORT int PolyText(ClientPtr /*client*/,
 		    DrawablePtr /*pDraw*/,
 		    GCPtr /*pGC*/,
 		    unsigned char * /*pElt*/,
@@ -81,10 +81,10 @@ extern int PolyText(ClientPtr /*client*/,
 		    int /*reqType*/,
 		    XID /*did*/);
 
-extern int doImageText(ClientPtr /*client*/,
+extern _X_EXPORT int doImageText(ClientPtr /*client*/,
 		       ITclosurePtr /*c*/);
 
-extern int ImageText(ClientPtr /*client*/,
+extern _X_EXPORT int ImageText(ClientPtr /*client*/,
 		     DrawablePtr /*pDraw*/,
 		     GCPtr /*pGC*/,
 		     int /*nChars*/,
@@ -94,52 +94,90 @@ extern int ImageText(ClientPtr /*client*/,
 		     int /*reqType*/,
 		     XID /*did*/);
 
-extern int SetFontPath(ClientPtr /*client*/,
+extern _X_EXPORT int SetFontPath(ClientPtr /*client*/,
 		       int /*npaths*/,
 		       unsigned char * /*paths*/,
 		       int * /*error*/);
 
-extern int SetDefaultFontPath(char * /*path*/);
+extern _X_EXPORT int SetDefaultFontPath(char * /*path*/);
 
-extern int GetFontPath(ClientPtr client,
+extern _X_EXPORT int GetFontPath(ClientPtr client,
 		       int *count,
 		       int *length,
 		       unsigned char **result);
 
-extern void DeleteClientFontStuff(ClientPtr /*client*/);
+extern _X_EXPORT void DeleteClientFontStuff(ClientPtr /*client*/);
 
 /* Quartz support on Mac OS X pulls in the QuickDraw
    framework whose InitFonts function conflicts here. */
 #ifdef __APPLE__
 #define InitFonts Darwin_X_InitFonts
 #endif
-extern void InitFonts(void);
+extern _X_EXPORT void InitFonts(void);
 
-extern void FreeFonts(void);
+extern _X_EXPORT void FreeFonts(void);
 
-extern FontPtr find_old_font(XID /*id*/);
+extern _X_EXPORT FontPtr find_old_font(XID /*id*/);
 
-extern void GetGlyphs(FontPtr     /*font*/,
+extern _X_EXPORT void GetGlyphs(FontPtr     /*font*/,
 		      unsigned long /*count*/,
 		      unsigned char * /*chars*/,
 		      FontEncoding /*fontEncoding*/,
 		      unsigned long * /*glyphcount*/,
 		      CharInfoPtr * /*glyphs*/);
 
-extern void QueryGlyphExtents(FontPtr     /*pFont*/,
+extern _X_EXPORT void QueryGlyphExtents(FontPtr     /*pFont*/,
 			      CharInfoPtr * /*charinfo*/,
 			      unsigned long /*count*/,
 			      ExtentInfoPtr /*info*/);
 
-extern Bool QueryTextExtents(FontPtr     /*pFont*/,
+extern _X_EXPORT Bool QueryTextExtents(FontPtr     /*pFont*/,
 			     unsigned long /*count*/,
 			     unsigned char * /*chars*/,
 			     ExtentInfoPtr /*info*/);
 
-extern Bool ParseGlyphCachingMode(char * /*str*/);
+extern _X_EXPORT Bool ParseGlyphCachingMode(char * /*str*/);
 
-extern void InitGlyphCaching(void);
+extern _X_EXPORT void InitGlyphCaching(void);
 
-extern void SetGlyphCachingMode(int /*newmode*/);
+extern _X_EXPORT void SetGlyphCachingMode(int /*newmode*/);
+
+/*
+ * libXfont stubs.
+ */
+extern _X_EXPORT int client_auth_generation(ClientPtr client);
+
+extern _X_EXPORT void DeleteFontClientID(Font id);
+
+extern _X_EXPORT FontResolutionPtr GetClientResolutions(int *num);
+
+extern _X_EXPORT int GetDefaultPointSize(void);
+
+extern _X_EXPORT Font GetNewFontClientID(void);
+
+extern _X_EXPORT int init_fs_handlers(FontPathElementPtr fpe,
+				      BlockHandlerProcPtr block_handler);
+
+extern _X_EXPORT int RegisterFPEFunctions(NameCheckFunc name_func,
+					  InitFpeFunc init_func,
+					  FreeFpeFunc free_func,
+					  ResetFpeFunc reset_func,
+					  OpenFontFunc open_func,
+					  CloseFontFunc close_func,
+					  ListFontsFunc list_func,
+					  StartLfwiFunc start_lfwi_func,
+					  NextLfwiFunc next_lfwi_func,
+					  WakeupFpeFunc wakeup_func,
+					  ClientDiedFunc client_died,
+					  LoadGlyphsFunc load_glyphs,
+					  StartLaFunc start_list_alias_func,
+					  NextLaFunc next_list_alias_func,
+					  SetPathFunc set_path_func);
+
+extern _X_EXPORT void remove_fs_handlers(FontPathElementPtr fpe,
+					 BlockHandlerProcPtr blockHandler,
+					 Bool all);
+
+extern _X_EXPORT int StoreFontClientFont(FontPtr pfont, Font id);
 
 #endif				/* DIXFONT_H */
diff --git a/include/dixgrabs.h b/include/dixgrabs.h
index 29aa828..36ab2b9 100644
--- a/include/dixgrabs.h
+++ b/include/dixgrabs.h
@@ -26,7 +26,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #ifndef DIXGRABS_H
 #define DIXGRABS_H 1
 
-extern GrabPtr CreateGrab(
+extern _X_EXPORT GrabPtr CreateGrab(
 	int /* client */,
 	DeviceIntPtr /* device */,
 	WindowPtr /* window */,
@@ -41,20 +41,20 @@ extern GrabPtr CreateGrab(
 	WindowPtr /* confineTo */,
 	CursorPtr /* cursor */);
 
-extern int DeletePassiveGrab(
+extern _X_EXPORT int DeletePassiveGrab(
 	pointer /* value */,
 	XID /* id */);
 
-extern Bool GrabMatchesSecond(
+extern _X_EXPORT Bool GrabMatchesSecond(
 	GrabPtr /* pFirstGrab */,
 	GrabPtr /* pSecondGrab */,
 	Bool /*ignoreDevice*/);
 
-extern int AddPassiveGrabToList(
+extern _X_EXPORT int AddPassiveGrabToList(
 	ClientPtr /* client */,
 	GrabPtr /* pGrab */);
 
-extern Bool DeletePassiveGrabFromList(
+extern _X_EXPORT Bool DeletePassiveGrabFromList(
 	GrabPtr /* pMinuendGrab */);
 
 #endif /* DIXGRABS_H */
diff --git a/include/dixstruct.h b/include/dixstruct.h
index 4bfe371..4ca061b 100644
--- a/include/dixstruct.h
+++ b/include/dixstruct.h
@@ -41,7 +41,7 @@ SOFTWARE.
 #define MAX_REQUEST_LOG 100
 #endif
 
-extern CallbackListPtr ClientStateCallback;
+extern _X_EXPORT CallbackListPtr ClientStateCallback;
 
 typedef struct {
     ClientPtr 		client;
@@ -54,7 +54,7 @@ typedef void (*ReplySwapPtr) (
 		int		/* size */,
 		void *		/* pbuf */);
 
-extern void ReplyNotSwappd (
+extern _X_EXPORT void ReplyNotSwappd (
 		ClientPtr	/* pClient */,
 		int		/* size */,
 		void *		/* pbuf */);
@@ -140,17 +140,17 @@ typedef struct _Client {
 /*
  * Scheduling interface
  */
-extern long SmartScheduleTime;
-extern long SmartScheduleInterval;
-extern long SmartScheduleSlice;
-extern long SmartScheduleMaxSlice;
-extern Bool SmartScheduleDisable;
-extern void SmartScheduleStartTimer(void);
-extern void SmartScheduleStopTimer(void);
+extern _X_EXPORT long SmartScheduleTime;
+extern _X_EXPORT long SmartScheduleInterval;
+extern _X_EXPORT long SmartScheduleSlice;
+extern _X_EXPORT long SmartScheduleMaxSlice;
+extern _X_EXPORT Bool SmartScheduleDisable;
+extern _X_EXPORT void SmartScheduleStartTimer(void);
+extern _X_EXPORT void SmartScheduleStopTimer(void);
 #define SMART_MAX_PRIORITY  (20)
 #define SMART_MIN_PRIORITY  (-20)
 
-extern Bool SmartScheduleInit(void);
+extern _X_EXPORT Bool SmartScheduleInit(void);
 
 
 /* This prototype is used pervasively in Xext, dix */
@@ -166,14 +166,14 @@ typedef struct _WorkQueue {
     pointer     closure;
 }           WorkQueueRec;
 
-extern TimeStamp currentTime;
-extern TimeStamp lastDeviceEventTime;
+extern _X_EXPORT TimeStamp currentTime;
+extern _X_EXPORT TimeStamp lastDeviceEventTime;
 
-extern int CompareTimeStamps(
+extern _X_EXPORT int CompareTimeStamps(
     TimeStamp /*a*/,
     TimeStamp /*b*/);
 
-extern TimeStamp ClientTimeToServerTime(CARD32 /*c*/);
+extern _X_EXPORT TimeStamp ClientTimeToServerTime(CARD32 /*c*/);
 
 typedef struct _CallbackRec {
   CallbackProcPtr proc;
@@ -191,14 +191,14 @@ typedef struct _CallbackList {
 
 /* proc vectors */
 
-extern int (* InitialVector[3]) (ClientPtr /*client*/);
+extern _X_EXPORT int (* InitialVector[3]) (ClientPtr /*client*/);
 
-extern int (* ProcVector[256]) (ClientPtr /*client*/);
+extern _X_EXPORT int (* ProcVector[256]) (ClientPtr /*client*/);
 
-extern int (* SwappedProcVector[256]) (ClientPtr /*client*/);
+extern _X_EXPORT int (* SwappedProcVector[256]) (ClientPtr /*client*/);
 
-extern ReplySwapPtr ReplySwapVector[256];
+extern _X_EXPORT ReplySwapPtr ReplySwapVector[256];
 
-extern int ProcBadRequest(ClientPtr /*client*/);
+extern _X_EXPORT int ProcBadRequest(ClientPtr /*client*/);
 
 #endif				/* DIXSTRUCT_H */
diff --git a/include/exevents.h b/include/exevents.h
index 8788295..be65210 100644
--- a/include/exevents.h
+++ b/include/exevents.h
@@ -41,24 +41,24 @@ typedef struct _XIClientRec {
         int minor_version;
 } XIClientRec, *XIClientPtr;
 
-extern void RegisterOtherDevice (
+extern _X_EXPORT void RegisterOtherDevice (
 	DeviceIntPtr           /* device */);
 
-extern int
+extern _X_EXPORT int
 UpdateDeviceState (
 	DeviceIntPtr           /* device */,
 	xEventPtr              /*  xE    */,
         int                    /* count  */);
 
-extern void ProcessOtherEvent (
+extern _X_EXPORT void ProcessOtherEvent (
 	xEventPtr /* FIXME deviceKeyButtonPointer * xE */,
 	DeviceIntPtr           /* other */,
 	int                    /* count */);
 
-extern int InitProximityClassDeviceStruct(
+extern _X_EXPORT int InitProximityClassDeviceStruct(
 	DeviceIntPtr           /* dev */);
 
-extern void InitValuatorAxisStruct(
+extern _X_EXPORT void InitValuatorAxisStruct(
 	DeviceIntPtr           /* dev */,
 	int                    /* axnum */,
 	int                    /* minval */,
@@ -67,14 +67,14 @@ extern void InitValuatorAxisStruct(
 	int                    /* min_res */,
 	int                    /* max_res */);
 
-extern void DeviceFocusEvent(
+extern _X_EXPORT void DeviceFocusEvent(
 	DeviceIntPtr           /* dev */,
 	int                    /* type */,
 	int                    /* mode */,
 	int                    /* detail */,
 	WindowPtr              /* pWin */);
 
-extern int GrabButton(
+extern _X_EXPORT int GrabButton(
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
 	BYTE                   /* this_device_mode */,
@@ -88,7 +88,7 @@ extern int GrabButton(
 	Window                 /* rconfineTo */,
 	Mask                   /* eventMask */);
 
-extern int GrabKey(
+extern _X_EXPORT int GrabKey(
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
 	BYTE                   /* this_device_mode */,
@@ -100,7 +100,7 @@ extern int GrabKey(
 	BOOL                   /* ownerEvents */,
 	Mask                   /* mask */);
 
-extern int SelectForWindow(
+extern _X_EXPORT int SelectForWindow(
 	DeviceIntPtr           /* dev */,
 	WindowPtr              /* pWin */,
 	ClientPtr              /* client */,
@@ -108,20 +108,20 @@ extern int SelectForWindow(
 	Mask                   /* exclusivemasks */,
 	Mask                   /* validmasks */);
 
-extern int AddExtensionClient (
+extern _X_EXPORT int AddExtensionClient (
 	WindowPtr              /* pWin */,
 	ClientPtr              /* client */,
 	Mask                   /* mask */,
 	int                    /* mskidx */);
 
-extern void RecalculateDeviceDeliverableEvents(
+extern _X_EXPORT void RecalculateDeviceDeliverableEvents(
 	WindowPtr              /* pWin */);
 
-extern int InputClientGone(
+extern _X_EXPORT int InputClientGone(
 	WindowPtr              /* pWin */,
 	XID                    /* id */);
 
-extern int SendEvent (
+extern _X_EXPORT int SendEvent (
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* d */,
 	Window                 /* dest */,
@@ -130,13 +130,13 @@ extern int SendEvent (
 	Mask                   /* mask */,
 	int                    /* count */);
 
-extern int SetButtonMapping (
+extern _X_EXPORT int SetButtonMapping (
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
 	int                    /* nElts */,
 	BYTE *                 /* map */);
 
-extern int SetModifierMapping(
+extern _X_EXPORT int SetModifierMapping(
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
 	int                    /* len */,
@@ -145,14 +145,14 @@ extern int SetModifierMapping(
 	KeyCode *              /* inputMap */,
 	KeyClassPtr *          /* k */);
 
-extern void SendDeviceMappingNotify(
+extern _X_EXPORT void SendDeviceMappingNotify(
         ClientPtr              /* client, */,
 	CARD8                  /* request, */,
 	KeyCode                /* firstKeyCode */,
 	CARD8                  /* count */,
 	DeviceIntPtr           /* dev */);
 
-extern int ChangeKeyMapping(
+extern _X_EXPORT int ChangeKeyMapping(
 	ClientPtr              /* client */,
 	DeviceIntPtr           /* dev */,
 	unsigned               /* len */,
@@ -162,15 +162,15 @@ extern int ChangeKeyMapping(
 	CARD8                  /* keySymsPerKeyCode */,
 	KeySym *               /* map */);
 
-extern void DeleteWindowFromAnyExtEvents(
+extern _X_EXPORT void DeleteWindowFromAnyExtEvents(
 	WindowPtr              /* pWin */,
 	Bool                   /* freeResources */);
 
-extern int MaybeSendDeviceMotionNotifyHint (
+extern _X_EXPORT int MaybeSendDeviceMotionNotifyHint (
 	deviceKeyButtonPointer * /* pEvents */,
 	Mask                   /* mask */);
 
-extern void CheckDeviceGrabAndHintWindow (
+extern _X_EXPORT void CheckDeviceGrabAndHintWindow (
 	WindowPtr              /* pWin */,
 	int                    /* type */,
 	deviceKeyButtonPointer * /* xE */,
@@ -178,34 +178,34 @@ extern void CheckDeviceGrabAndHintWindow (
 	ClientPtr              /* client */,
 	Mask                   /* deliveryMask */);
 
-extern void MaybeStopDeviceHint(
+extern _X_EXPORT void MaybeStopDeviceHint(
 	DeviceIntPtr           /* dev */,
 	ClientPtr              /* client */);
 
-extern int DeviceEventSuppressForWindow(
+extern _X_EXPORT int DeviceEventSuppressForWindow(
 	WindowPtr              /* pWin */,
 	ClientPtr              /* client */,
 	Mask                   /* mask */,
 	int                    /* maskndx */);
 
-extern void SendEventToAllWindows(
+extern _X_EXPORT void SendEventToAllWindows(
         DeviceIntPtr           /* dev */,
         Mask                   /* mask */,
         xEvent *               /* ev */,
         int                    /* count */);
 
 /* Input device properties */
-extern void XIDeleteAllDeviceProperties(
+extern _X_EXPORT void XIDeleteAllDeviceProperties(
         DeviceIntPtr            /* device */
 );
 
-extern int XIDeleteDeviceProperty(
+extern _X_EXPORT int XIDeleteDeviceProperty(
         DeviceIntPtr            /* device */,
         Atom                    /* property */,
         Bool                    /* fromClient */
 );
 
-extern int XIChangeDeviceProperty(
+extern _X_EXPORT int XIChangeDeviceProperty(
         DeviceIntPtr            /* dev */,
         Atom                    /* property */,
         Atom                    /* type */,
@@ -216,19 +216,19 @@ extern int XIChangeDeviceProperty(
         Bool                    /* sendevent*/
         );
 
-extern int XIGetDeviceProperty(
+extern _X_EXPORT int XIGetDeviceProperty(
         DeviceIntPtr            /* dev */,
         Atom                    /* property */,
         XIPropertyValuePtr*     /* value */
 );
 
-extern int XISetDevicePropertyDeletable(
+extern _X_EXPORT int XISetDevicePropertyDeletable(
         DeviceIntPtr            /* dev */,
         Atom                    /* property */,
         Bool                    /* deletable */
 );
 
-extern long XIRegisterPropertyHandler(
+extern _X_EXPORT long XIRegisterPropertyHandler(
         DeviceIntPtr         dev,
         int (*SetProperty) (DeviceIntPtr dev,
                             Atom property,
@@ -240,15 +240,15 @@ extern long XIRegisterPropertyHandler(
                                Atom property)
 );
 
-extern void XIUnRegisterPropertyHandler(
+extern _X_EXPORT void XIUnRegisterPropertyHandler(
         DeviceIntPtr          dev,
         long                  id
 );
 
-extern Atom XIGetKnownProperty(
+extern _X_EXPORT Atom XIGetKnownProperty(
         char*                 name
 );
 
-extern DeviceIntPtr XIGetDevice(xEvent *ev);
+extern _X_EXPORT DeviceIntPtr XIGetDevice(xEvent *ev);
 
 #endif /* EXEVENTS_H */
diff --git a/include/extension.h b/include/extension.h
index 14526e9..29a11c3 100644
--- a/include/extension.h
+++ b/include/extension.h
@@ -50,17 +50,17 @@ SOFTWARE.
 
 _XFUNCPROTOBEGIN
 
-extern unsigned short StandardMinorOpcode(ClientPtr /*client*/);
+extern _X_EXPORT unsigned short StandardMinorOpcode(ClientPtr /*client*/);
 
-extern unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/);
+extern _X_EXPORT unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/);
 
-extern Bool EnableDisableExtension(char *name, Bool enable);
+extern _X_EXPORT Bool EnableDisableExtension(char *name, Bool enable);
 
-extern void EnableDisableExtensionError(char *name, Bool enable);
+extern _X_EXPORT void EnableDisableExtensionError(char *name, Bool enable);
 
-extern void InitExtensions(int argc, char **argv);
+extern _X_EXPORT void InitExtensions(int argc, char **argv);
 
-extern void CloseDownExtensions(void);
+extern _X_EXPORT void CloseDownExtensions(void);
 
 _XFUNCPROTOEND
 
diff --git a/include/extinit.h b/include/extinit.h
index d996480..340433a 100644
--- a/include/extinit.h
+++ b/include/extinit.h
@@ -32,17 +32,17 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 #include "extnsionst.h"
 
-void
+extern _X_EXPORT void
 XInputExtensionInit(
 	void
 	);
 
-Bool
+extern _X_EXPORT Bool
 DeviceIsPointerType(
         DeviceIntPtr dev
         );
 
-void
+extern _X_EXPORT void
 AssignTypeAndName (
 	DeviceIntPtr           /* dev */,
 	Atom                   /* type */,
diff --git a/include/extnsionst.h b/include/extnsionst.h
index 59acd0e..19c76fc 100644
--- a/include/extnsionst.h
+++ b/include/extnsionst.h
@@ -80,9 +80,9 @@ typedef struct _ExtensionEntry {
  */
 typedef void (*EventSwapPtr) (xEvent *, xEvent *);
 
-extern EventSwapPtr EventSwapVector[128];
+extern _X_EXPORT EventSwapPtr EventSwapVector[128];
 
-extern void NotImplemented (	/* FIXME: this may move to another file... */
+extern _X_EXPORT void NotImplemented (	/* FIXME: this may move to another file... */
 	xEvent *,
 	xEvent *);
 
@@ -91,7 +91,7 @@ extern void NotImplemented (	/* FIXME: this may move to another file... */
 
 #define    GetGCValue(pGC, GCElement)    (pGC->GCElement)
 
-extern ExtensionEntry *AddExtension(
+extern _X_EXPORT ExtensionEntry *AddExtension(
     char* /*name*/,
     int /*NumEvents*/,
     int /*NumErrors*/,
@@ -101,12 +101,12 @@ extern ExtensionEntry *AddExtension(
     unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/)
 );
 
-extern Bool AddExtensionAlias(
+extern _X_EXPORT Bool AddExtensionAlias(
     char* /*alias*/,
     ExtensionEntry * /*extension*/);
 
-extern ExtensionEntry *CheckExtension(const char *extname);
-extern ExtensionEntry *GetExtensionEntry(int major);
+extern _X_EXPORT ExtensionEntry *CheckExtension(const char *extname);
+extern _X_EXPORT ExtensionEntry *GetExtensionEntry(int major);
 
 #endif /* EXTENSIONSTRUCT_H */
 
diff --git a/include/gc.h b/include/gc.h
index bf4c268..e75cc5e 100644
--- a/include/gc.h
+++ b/include/gc.h
@@ -84,16 +84,16 @@ typedef struct _GCInterest *GCInterestPtr;
 typedef struct _GC    *GCPtr;
 typedef struct _GCOps *GCOpsPtr;
 
-extern void ValidateGC(
+extern _X_EXPORT void ValidateGC(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/);
 
-extern int ChangeGC(
+extern _X_EXPORT int ChangeGC(
     GCPtr/*pGC*/,
     BITS32 /*mask*/,
     XID* /*pval*/);
 
-extern int DoChangeGC(
+extern _X_EXPORT int DoChangeGC(
     GCPtr/*pGC*/,
     BITS32 /*mask*/,
     XID* /*pval*/,
@@ -104,14 +104,14 @@ typedef union {
     pointer ptr;
 } ChangeGCVal, *ChangeGCValPtr;
 
-extern int dixChangeGC(
+extern _X_EXPORT int dixChangeGC(
     ClientPtr /*client*/,
     GCPtr /*pGC*/,
     BITS32 /*mask*/,
     CARD32 * /*pval*/,
     ChangeGCValPtr /*pCGCV*/);
 
-extern GCPtr CreateGC(
+extern _X_EXPORT GCPtr CreateGC(
     DrawablePtr /*pDrawable*/,
     BITS32 /*mask*/,
     XID* /*pval*/,
@@ -119,43 +119,43 @@ extern GCPtr CreateGC(
     XID /*gcid*/,
     ClientPtr /*client*/);
 
-extern int CopyGC(
+extern _X_EXPORT int CopyGC(
     GCPtr/*pgcSrc*/,
     GCPtr/*pgcDst*/,
     BITS32 /*mask*/);
 
-extern int FreeGC(
+extern _X_EXPORT int FreeGC(
     pointer /*pGC*/,
     XID /*gid*/);
 
-extern GCPtr CreateScratchGC(
+extern _X_EXPORT GCPtr CreateScratchGC(
     ScreenPtr /*pScreen*/,
     unsigned /*depth*/);
 
-extern void FreeGCperDepth(
+extern _X_EXPORT void FreeGCperDepth(
     int /*screenNum*/);
 
-extern Bool CreateGCperDepth(
+extern _X_EXPORT Bool CreateGCperDepth(
     int /*screenNum*/);
 
-extern Bool CreateDefaultStipple(
+extern _X_EXPORT Bool CreateDefaultStipple(
     int /*screenNum*/);
 
-extern void FreeDefaultStipple(
+extern _X_EXPORT void FreeDefaultStipple(
     int /*screenNum*/);
 
-extern int SetDashes(
+extern _X_EXPORT int SetDashes(
     GCPtr /*pGC*/,
     unsigned /*offset*/,
     unsigned /*ndash*/,
     unsigned char* /*pdash*/);
 
-extern int VerifyRectOrder(
+extern _X_EXPORT int VerifyRectOrder(
     int /*nrects*/,
     xRectangle* /*prects*/,
     int /*ordering*/);
 
-extern int SetClipRects(
+extern _X_EXPORT int SetClipRects(
     GCPtr /*pGC*/,
     int /*xOrigin*/,
     int /*yOrigin*/,
@@ -163,11 +163,11 @@ extern int SetClipRects(
     xRectangle* /*prects*/,
     int /*ordering*/);
 
-extern GCPtr GetScratchGC(
+extern _X_EXPORT GCPtr GetScratchGC(
     unsigned /*depth*/,
     ScreenPtr /*pScreen*/);
 
-extern void FreeScratchGC(
+extern _X_EXPORT void FreeScratchGC(
     GCPtr /*pGC*/);
 
 #endif /* GC_H */
diff --git a/include/globals.h b/include/globals.h
index c3d2dcf..e70e7c6 100644
--- a/include/globals.h
+++ b/include/globals.h
@@ -6,135 +6,139 @@
 
 /* Global X server variables that are visible to mi, dix, os, and ddx */
 
-extern CARD32 defaultScreenSaverTime;
-extern CARD32 defaultScreenSaverInterval;
-extern CARD32 ScreenSaverTime;
-extern CARD32 ScreenSaverInterval;
+extern _X_EXPORT CARD32 defaultScreenSaverTime;
+extern _X_EXPORT CARD32 defaultScreenSaverInterval;
+extern _X_EXPORT CARD32 ScreenSaverTime;
+extern _X_EXPORT CARD32 ScreenSaverInterval;
 
 #ifdef SCREENSAVER
-extern Bool screenSaverSuspended;
+extern _X_EXPORT Bool screenSaverSuspended;
 #endif
 
-extern char *defaultFontPath;
-extern int monitorResolution;
-extern int defaultColorVisualClass;
+extern _X_EXPORT char *defaultFontPath;
+extern _X_EXPORT int monitorResolution;
+extern _X_EXPORT int defaultColorVisualClass;
 
-extern WindowPtr WindowTable[MAXSCREENS];
-extern int GrabInProgress;
-extern Bool noTestExtensions;
+extern _X_EXPORT WindowPtr WindowTable[MAXSCREENS];
+extern _X_EXPORT int GrabInProgress;
+extern _X_EXPORT Bool noTestExtensions;
 
-extern DDXPointRec dixScreenOrigins[MAXSCREENS];
+extern _X_EXPORT DDXPointRec dixScreenOrigins[MAXSCREENS];
 
-extern char *ConnectionInfo;
+extern _X_EXPORT char *ConnectionInfo;
 
 #ifdef DPMSExtension
-extern CARD32 defaultDPMSStandbyTime;
-extern CARD32 defaultDPMSSuspendTime;
-extern CARD32 defaultDPMSOffTime;
-extern CARD32 DPMSStandbyTime;
-extern CARD32 DPMSSuspendTime;
-extern CARD32 DPMSOffTime;
-extern CARD16 DPMSPowerLevel;
-extern Bool defaultDPMSEnabled;
-extern Bool DPMSEnabled;
-extern Bool DPMSEnabledSwitch;
-extern Bool DPMSDisabledSwitch;
-extern Bool DPMSCapableFlag;
+extern _X_EXPORT CARD32 defaultDPMSStandbyTime;
+extern _X_EXPORT CARD32 defaultDPMSSuspendTime;
+extern _X_EXPORT CARD32 defaultDPMSOffTime;
+extern _X_EXPORT CARD32 DPMSStandbyTime;
+extern _X_EXPORT CARD32 DPMSSuspendTime;
+extern _X_EXPORT CARD32 DPMSOffTime;
+extern _X_EXPORT CARD16 DPMSPowerLevel;
+extern _X_EXPORT Bool defaultDPMSEnabled;
+extern _X_EXPORT Bool DPMSEnabled;
+extern _X_EXPORT Bool DPMSEnabledSwitch;
+extern _X_EXPORT Bool DPMSDisabledSwitch;
+extern _X_EXPORT Bool DPMSCapableFlag;
 #endif
 
 #ifdef PANORAMIX
-extern Bool PanoramiXExtensionDisabledHack;
+extern _X_EXPORT Bool PanoramiXExtensionDisabledHack;
 #endif
 
 #ifdef COMPOSITE
-extern Bool noCompositeExtension;
+extern _X_EXPORT Bool noCompositeExtension;
 #endif
 
 #ifdef DAMAGE
-extern Bool noDamageExtension;
+extern _X_EXPORT Bool noDamageExtension;
 #endif
 
 #ifdef DBE
-extern Bool noDbeExtension;
+extern _X_EXPORT Bool noDbeExtension;
 #endif
 
 #ifdef DPMSExtension
-extern Bool noDPMSExtension;
+extern _X_EXPORT Bool noDPMSExtension;
 #endif
 
 #ifdef GLXEXT
-extern Bool noGlxExtension;
+extern _X_EXPORT Bool noGlxExtension;
 #endif
 
 #ifdef SCREENSAVER
-extern Bool noScreenSaverExtension;
+extern _X_EXPORT Bool noScreenSaverExtension;
 #endif
 
 #ifdef MITSHM
-extern Bool noMITShmExtension;
+extern _X_EXPORT Bool noMITShmExtension;
 #endif
 
 #ifdef MULTIBUFFER
-extern Bool noMultibufferExtension;
+extern _X_EXPORT Bool noMultibufferExtension;
 #endif
 
 #ifdef RANDR
-extern Bool noRRExtension;
+extern _X_EXPORT Bool noRRExtension;
 #endif
 
 #ifdef RENDER
-extern Bool noRenderExtension;
+extern _X_EXPORT Bool noRenderExtension;
 #endif
 
 #ifdef XCSECURITY
-extern Bool noSecurityExtension;
+extern _X_EXPORT Bool noSecurityExtension;
 #endif
 
 #ifdef RES
-extern Bool noResExtension;
+extern _X_EXPORT Bool noResExtension;
 #endif
 
 #ifdef XF86BIGFONT
-extern Bool noXFree86BigfontExtension;
+extern _X_EXPORT Bool noXFree86BigfontExtension;
 #endif
 
 #ifdef XFreeXDGA
-extern Bool noXFree86DGAExtension;
+extern _X_EXPORT Bool noXFree86DGAExtension;
 #endif
 
 #ifdef XF86DRI
-extern Bool noXFree86DRIExtension;
+extern _X_EXPORT Bool noXFree86DRIExtension;
 #endif
 
 #ifdef XF86VIDMODE
-extern Bool noXFree86VidModeExtension;
+extern _X_EXPORT Bool noXFree86VidModeExtension;
 #endif
 
 #ifdef XFIXES
-extern Bool noXFixesExtension;
+extern _X_EXPORT Bool noXFixesExtension;
 #endif
 
 #ifdef XKB
-/* |noXkbExtension| is defined in xc/programs/Xserver/xkb/xkbInit.c */
-extern Bool noXkbExtension;
+/* noXkbExtension is defined in xkb/xkbInit.c */
+extern _X_EXPORT Bool noXkbExtension;
 #endif
 
 #ifdef PANORAMIX
-extern Bool noPanoramiXExtension;
+extern _X_EXPORT Bool noPanoramiXExtension;
 #endif
 
 #ifdef XSELINUX
-extern Bool noSELinuxExtension;
+extern _X_EXPORT Bool noSELinuxExtension;
 
 #define SELINUX_MODE_DEFAULT    0
 #define SELINUX_MODE_DISABLED   1
 #define SELINUX_MODE_PERMISSIVE 2
 #define SELINUX_MODE_ENFORCING  3
-extern int selinuxEnforcingState;
+extern _X_EXPORT int selinuxEnforcingState;
 #endif
 
 #ifdef XV
-extern Bool noXvExtension;
+extern _X_EXPORT Bool noXvExtension;
+#endif
+
+#ifdef DRI2
+extern _X_EXPORT Bool noDRI2Extension;
 #endif
 
 #endif /* !_XSERV_GLOBAL_H_ */
diff --git a/include/hotplug.h b/include/hotplug.h
index b4f1bb6..d074df3 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -26,7 +26,7 @@
 #ifndef HOTPLUG_H
 #define HOTPLUG_H
 
-void config_init(void);
-void config_fini(void);
+extern _X_EXPORT void config_init(void);
+extern _X_EXPORT void config_fini(void);
 
 #endif /* HOTPLUG_H */
diff --git a/include/input.h b/include/input.h
index c78f0b7..6a8cda0 100644
--- a/include/input.h
+++ b/include/input.h
@@ -121,8 +121,8 @@ typedef struct _EventList {
 } EventList, *EventListPtr;
 
 /* The DIX stores incoming input events in this list */
-extern EventListPtr InputEventList;
-extern int InputEventListLen;
+extern _X_EXPORT EventListPtr InputEventList;
+extern _X_EXPORT int InputEventListLen;
 
 typedef int (*DeviceProc)(
     DeviceIntPtr /*device*/,
@@ -208,8 +208,8 @@ typedef struct {
     unsigned char id;
 } LedCtrl;
 
-extern KeybdCtrl	defaultKeyboardControl;
-extern PtrCtrl		defaultPointerControl;
+extern _X_EXPORT KeybdCtrl	defaultKeyboardControl;
+extern _X_EXPORT PtrCtrl	defaultPointerControl;
 
 typedef struct _InputOption {
     char                *key;
@@ -217,77 +217,77 @@ typedef struct _InputOption {
     struct _InputOption *next;
 } InputOption;
 
-extern void InitCoreDevices(void);
+extern _X_EXPORT void InitCoreDevices(void);
 
-extern DeviceIntPtr AddInputDevice(
+extern _X_EXPORT DeviceIntPtr AddInputDevice(
     ClientPtr /*client*/,
     DeviceProc /*deviceProc*/,
     Bool /*autoStart*/);
 
-extern Bool EnableDevice(
+extern _X_EXPORT Bool EnableDevice(
     DeviceIntPtr /*device*/);
 
-extern Bool ActivateDevice(
+extern _X_EXPORT Bool ActivateDevice(
     DeviceIntPtr /*device*/);
 
-extern Bool DisableDevice(
+extern _X_EXPORT Bool DisableDevice(
     DeviceIntPtr /*device*/);
 
-extern int InitAndStartDevices(void);
+extern _X_EXPORT int InitAndStartDevices(void);
 
-extern void CloseDownDevices(void);
+extern _X_EXPORT void CloseDownDevices(void);
 
-extern void UndisplayDevices(void);
+extern _X_EXPORT void UndisplayDevices(void);
 
-extern int RemoveDevice(
+extern _X_EXPORT int RemoveDevice(
     DeviceIntPtr /*dev*/);
 
-extern int NumMotionEvents(void);
+extern _X_EXPORT int NumMotionEvents(void);
 
-extern void RegisterPointerDevice(
+extern _X_EXPORT void RegisterPointerDevice(
     DeviceIntPtr /*device*/);
 
-extern void RegisterKeyboardDevice(
+extern _X_EXPORT void RegisterKeyboardDevice(
     DeviceIntPtr /*device*/);
 
-extern int dixLookupDevice(
+extern _X_EXPORT int dixLookupDevice(
     DeviceIntPtr *         /* dev */,
     int                    /* id */,
     ClientPtr              /* client */,
     Mask                   /* access_mode */);
 
-extern void QueryMinMaxKeyCodes(
+extern _X_EXPORT void QueryMinMaxKeyCodes(
     KeyCode* /*minCode*/,
     KeyCode* /*maxCode*/);
 
-extern Bool SetKeySymsMap(
+extern _X_EXPORT Bool SetKeySymsMap(
     KeySymsPtr /*dst*/,
     KeySymsPtr /*src*/);
 
-extern Bool InitKeyClassDeviceStruct(
+extern _X_EXPORT Bool InitKeyClassDeviceStruct(
     DeviceIntPtr /*device*/,
     KeySymsPtr /*pKeySyms*/,
     CARD8 /*pModifiers*/[]);
 
-extern Bool InitButtonClassDeviceStruct(
+extern _X_EXPORT Bool InitButtonClassDeviceStruct(
     DeviceIntPtr /*device*/,
     int /*numButtons*/,
     CARD8* /*map*/);
 
-extern Bool InitValuatorClassDeviceStruct(
+extern _X_EXPORT Bool InitValuatorClassDeviceStruct(
     DeviceIntPtr /*device*/,
     int /*numAxes*/,
     int /*numMotionEvents*/,
     int /*mode*/);
 
-extern Bool InitPointerAccelerationScheme(
+extern _X_EXPORT Bool InitPointerAccelerationScheme(
     DeviceIntPtr /*dev*/,
     int /*scheme*/);
 
-extern Bool InitAbsoluteClassDeviceStruct(
+extern _X_EXPORT Bool InitAbsoluteClassDeviceStruct(
     DeviceIntPtr /*device*/);
 
-extern Bool InitFocusClassDeviceStruct(
+extern _X_EXPORT Bool InitFocusClassDeviceStruct(
     DeviceIntPtr /*device*/);
 
 typedef void (*BellProcPtr)(
@@ -300,7 +300,7 @@ typedef void (*KbdCtrlProcPtr)(
     DeviceIntPtr /*device*/,
     KeybdCtrl * /*ctrl*/);
 
-extern Bool InitKbdFeedbackClassDeviceStruct(
+extern _X_EXPORT Bool InitKbdFeedbackClassDeviceStruct(
     DeviceIntPtr /*device*/,
     BellProcPtr /*bellProc*/,
     KbdCtrlProcPtr /*controlProc*/);
@@ -309,7 +309,7 @@ typedef void (*PtrCtrlProcPtr)(
     DeviceIntPtr /*device*/,
     PtrCtrl * /*ctrl*/);
 
-extern Bool InitPtrFeedbackClassDeviceStruct(
+extern _X_EXPORT Bool InitPtrFeedbackClassDeviceStruct(
     DeviceIntPtr /*device*/,
     PtrCtrlProcPtr /*controlProc*/);
 
@@ -317,7 +317,7 @@ typedef void (*StringCtrlProcPtr)(
     DeviceIntPtr /*device*/,
     StringCtrl * /*ctrl*/);
 
-extern Bool InitStringFeedbackClassDeviceStruct(
+extern _X_EXPORT Bool InitStringFeedbackClassDeviceStruct(
     DeviceIntPtr /*device*/,
     StringCtrlProcPtr /*controlProc*/,
     int /*max_symbols*/,
@@ -328,7 +328,7 @@ typedef void (*BellCtrlProcPtr)(
     DeviceIntPtr /*device*/,
     BellCtrl * /*ctrl*/);
 
-extern Bool InitBellFeedbackClassDeviceStruct(
+extern _X_EXPORT Bool InitBellFeedbackClassDeviceStruct(
     DeviceIntPtr /*device*/,
     BellProcPtr /*bellProc*/,
     BellCtrlProcPtr /*controlProc*/);
@@ -337,7 +337,7 @@ typedef void (*LedCtrlProcPtr)(
     DeviceIntPtr /*device*/,
     LedCtrl * /*ctrl*/);
 
-extern Bool InitLedFeedbackClassDeviceStruct(
+extern _X_EXPORT Bool InitLedFeedbackClassDeviceStruct(
     DeviceIntPtr /*device*/,
     LedCtrlProcPtr /*controlProc*/);
 
@@ -346,11 +346,11 @@ typedef void (*IntegerCtrlProcPtr)(
     IntegerCtrl * /*ctrl*/);
 
 
-extern Bool InitIntegerFeedbackClassDeviceStruct(
+extern _X_EXPORT Bool InitIntegerFeedbackClassDeviceStruct(
     DeviceIntPtr /*device*/,
     IntegerCtrlProcPtr /*controlProc*/);
 
-extern Bool InitPointerDeviceStruct(
+extern _X_EXPORT Bool InitPointerDeviceStruct(
     DevicePtr /*device*/,
     CARD8* /*map*/,
     int /*numButtons*/,
@@ -358,88 +358,88 @@ extern Bool InitPointerDeviceStruct(
     int /*numMotionEvents*/,
     int /*numAxes*/);
 
-extern Bool InitKeyboardDeviceStruct(
+extern _X_EXPORT Bool InitKeyboardDeviceStruct(
     DevicePtr /*device*/,
     KeySymsPtr /*pKeySyms*/,
     CARD8 /*pModifiers*/[],
     BellProcPtr /*bellProc*/,
     KbdCtrlProcPtr /*controlProc*/);
 
-extern void SendMappingNotify(
+extern _X_EXPORT void SendMappingNotify(
     DeviceIntPtr /* pDev */,
     unsigned int /*request*/,
     unsigned int /*firstKeyCode*/,
     unsigned int /*count*/,
     ClientPtr	/* client */);
 
-extern Bool BadDeviceMap(
+extern _X_EXPORT Bool BadDeviceMap(
     BYTE* /*buff*/,
     int /*length*/,
     unsigned /*low*/,
     unsigned /*high*/,
     XID* /*errval*/);
 
-extern Bool AllModifierKeysAreUp(
+extern _X_EXPORT Bool AllModifierKeysAreUp(
     DeviceIntPtr /*device*/,
     CARD8* /*map1*/,
     int /*per1*/,
     CARD8* /*map2*/,
     int /*per2*/);
 
-extern void NoteLedState(
+extern _X_EXPORT void NoteLedState(
     DeviceIntPtr /*keybd*/,
     int /*led*/,
     Bool /*on*/);
 
-extern void MaybeStopHint(
+extern _X_EXPORT void MaybeStopHint(
     DeviceIntPtr /*device*/,
     ClientPtr /*client*/);
 
-extern void ProcessPointerEvent(
+extern _X_EXPORT void ProcessPointerEvent(
     xEventPtr /*xE*/,
     DeviceIntPtr /*mouse*/,
     int /*count*/);
 
-extern void ProcessKeyboardEvent(
+extern _X_EXPORT void ProcessKeyboardEvent(
     xEventPtr /*xE*/,
     DeviceIntPtr /*keybd*/,
     int /*count*/);
 
 #ifdef XKB
-extern void CoreProcessPointerEvent(
+extern _X_EXPORT void CoreProcessPointerEvent(
     xEventPtr /*xE*/,
     DeviceIntPtr /*mouse*/,
     int /*count*/) _X_DEPRECATED;
 
-extern _X_DEPRECATED void CoreProcessKeyboardEvent(
+extern _X_EXPORT _X_DEPRECATED void CoreProcessKeyboardEvent(
     xEventPtr /*xE*/,
     DeviceIntPtr /*keybd*/,
     int /*count*/) _X_DEPRECATED;
 #endif
 
-extern Bool LegalModifier(
+extern _X_EXPORT Bool LegalModifier(
     unsigned int /*key*/, 
     DeviceIntPtr /*pDev*/);
 
-extern void ProcessInputEvents(void);
+extern _X_EXPORT void ProcessInputEvents(void);
 
-extern void InitInput(
+extern _X_EXPORT void InitInput(
     int  /*argc*/,
     char ** /*argv*/);
 
-extern int GetMaximumEventsNum(void);
+extern _X_EXPORT int GetMaximumEventsNum(void);
 
-extern int GetEventList(EventListPtr* list);
-extern EventListPtr InitEventList(int num_events);
-extern void SetMinimumEventSize(EventListPtr list,
+extern _X_EXPORT int GetEventList(EventListPtr* list);
+extern _X_EXPORT EventListPtr InitEventList(int num_events);
+extern _X_EXPORT void SetMinimumEventSize(EventListPtr list,
                                 int num_events,
                                 int min_size);
-extern void FreeEventList(EventListPtr list, int num_events);
+extern _X_EXPORT void FreeEventList(EventListPtr list, int num_events);
 
-extern void CreateClassesChangedEvent(EventListPtr event, 
+extern _X_EXPORT void CreateClassesChangedEvent(EventListPtr event,
                                       DeviceIntPtr master,
                                       DeviceIntPtr slave);
-extern int GetPointerEvents(
+extern _X_EXPORT int GetPointerEvents(
     EventListPtr events,
     DeviceIntPtr pDev,
     int type,
@@ -449,13 +449,13 @@ extern int GetPointerEvents(
     int num_valuators,
     int *valuators);
 
-extern int GetKeyboardEvents(
+extern _X_EXPORT int GetKeyboardEvents(
     EventListPtr events,
     DeviceIntPtr pDev,
     int type,
     int key_code);
 
-extern int GetKeyboardValuatorEvents(
+extern _X_EXPORT int GetKeyboardValuatorEvents(
     EventListPtr events,
     DeviceIntPtr pDev,
     int type,
@@ -464,7 +464,7 @@ extern int GetKeyboardValuatorEvents(
     int num_valuator,
     int *valuators);
 
-extern int GetProximityEvents(
+extern _X_EXPORT int GetProximityEvents(
     EventListPtr events,
     DeviceIntPtr pDev,
     int type,
@@ -472,20 +472,20 @@ extern int GetProximityEvents(
     int num_valuators,
     int *valuators);
 
-extern void PostSyntheticMotion(
+extern _X_EXPORT void PostSyntheticMotion(
     DeviceIntPtr pDev,
     int x,
     int y,
     int screen,
     unsigned long time);
 
-extern int GetMotionHistorySize(
+extern _X_EXPORT int GetMotionHistorySize(
     void);
 
-extern void AllocateMotionHistory(
+extern _X_EXPORT void AllocateMotionHistory(
     DeviceIntPtr pDev);
 
-extern int GetMotionHistory(
+extern _X_EXPORT int GetMotionHistory(
     DeviceIntPtr pDev,
     xTimecoord **buff,
     unsigned long start,
@@ -493,29 +493,29 @@ extern int GetMotionHistory(
     ScreenPtr pScreen,
     BOOL core);
 
-extern int AttachDevice(ClientPtr client,
+extern _X_EXPORT int AttachDevice(ClientPtr client,
                         DeviceIntPtr slave,
                         DeviceIntPtr master);
 
-extern DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd);
+extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd);
 
-extern int AllocMasterDevice(ClientPtr client,
+extern _X_EXPORT int AllocMasterDevice(ClientPtr client,
                              char* name,
                              DeviceIntPtr* ptr,
                              DeviceIntPtr* keybd);
-extern void DeepCopyDeviceClasses(DeviceIntPtr from,
+extern _X_EXPORT void DeepCopyDeviceClasses(DeviceIntPtr from,
                                   DeviceIntPtr to);
 
-extern int FocusSemaphoresIsset(WindowPtr win);
+extern _X_EXPORT int FocusSemaphoresIsset(WindowPtr win);
 
 /* Implemented by the DDX. */
-extern int NewInputDeviceRequest(
+extern _X_EXPORT int NewInputDeviceRequest(
     InputOption *options,
     DeviceIntPtr *dev);
 extern void DeleteInputDeviceRequest(
     DeviceIntPtr dev);
 
-extern void DDXRingBell(
+extern _X_EXPORT void DDXRingBell(
     int volume,
     int pitch,
     int duration);
diff --git a/include/inputstr.h b/include/inputstr.h
index 4719d37..039d5bc 100644
--- a/include/inputstr.h
+++ b/include/inputstr.h
@@ -63,7 +63,7 @@ SOFTWARE.
 
 #define EMASKSIZE	MAXDEVICES + 1
 
-extern DevPrivateKey CoreDevicePrivateKey;
+extern _X_EXPORT DevPrivateKey CoreDevicePrivateKey;
 
 /* Kludge: OtherClients and InputClients must be compatible, see code */
 
@@ -486,7 +486,7 @@ typedef struct {
     DeviceIntPtr	pointer;
 } InputInfo;
 
-extern InputInfo inputInfo;
+extern _X_EXPORT InputInfo inputInfo;
 
 /* for keeping the events for devices grabbed synchronously */
 typedef struct _QdEvent *QdEventPtr;
diff --git a/include/misc.h b/include/misc.h
index 85f9e5d..6a920cc 100644
--- a/include/misc.h
+++ b/include/misc.h
@@ -72,9 +72,6 @@ OF THIS SOFTWARE.
  *
  */
 
-extern unsigned long globalSerialNumber;
-extern unsigned long serverGeneration;
-
 #include <X11/Xosdefs.h>
 #include <X11/Xfuncproto.h>
 #include <X11/Xmd.h>
@@ -227,17 +224,17 @@ typedef struct _xReq *xReqPtr;
 		 ((char *) &(dst))[0] = ((char *) &(src))[1];\
 		 ((char *) &(dst))[1] = ((char *) &(src))[0]; }
 
-extern void SwapLongs(
+extern _X_EXPORT void SwapLongs(
     CARD32 *list,
     unsigned long count);
 
-extern void SwapShorts(
+extern _X_EXPORT void SwapShorts(
     short *list,
     unsigned long count);
 
-extern void MakePredeclaredAtoms(void);
+extern _X_EXPORT void MakePredeclaredAtoms(void);
 
-extern int Ones(
+extern _X_EXPORT int Ones(
     unsigned long /*mask*/);
 
 typedef struct _xPoint *DDXPointPtr;
@@ -256,4 +253,7 @@ typedef struct _CharInfo *CharInfoPtr; /* also in fonts/include/font.h */
 #define _XTYPEDEF_CHARINFOPTR
 #endif
 
+extern _X_EXPORT unsigned long globalSerialNumber;
+extern _X_EXPORT unsigned long serverGeneration;
+
 #endif /* MISC_H */
diff --git a/include/opaque.h b/include/opaque.h
index 07a0715..b3c7c70 100644
--- a/include/opaque.h
+++ b/include/opaque.h
@@ -33,46 +33,46 @@ from The Open Group.
 
 #include "globals.h"
 
-extern char *defaultTextFont;
-extern char *defaultCursorFont;
-extern int MaxClients;
-extern volatile char isItTimeToYield;
-extern volatile char dispatchException;
+extern _X_EXPORT char *defaultTextFont;
+extern _X_EXPORT char *defaultCursorFont;
+extern _X_EXPORT int MaxClients;
+extern _X_EXPORT volatile char isItTimeToYield;
+extern _X_EXPORT volatile char dispatchException;
 
 /* bit values for dispatchException */
 #define DE_RESET     1
 #define DE_TERMINATE 2
 #define DE_PRIORITYCHANGE 4  /* set when a client's priority changes */
 
-extern CARD32 TimeOutValue;
-extern int ScreenSaverBlanking;
-extern int ScreenSaverAllowExposures;
-extern int defaultScreenSaverBlanking;
-extern int defaultScreenSaverAllowExposures;
-extern char *display;
-
-extern int defaultBackingStore;
-extern Bool disableBackingStore;
-extern Bool enableBackingStore;
-extern Bool PartialNetwork;
+extern _X_EXPORT CARD32 TimeOutValue;
+extern _X_EXPORT int ScreenSaverBlanking;
+extern _X_EXPORT int ScreenSaverAllowExposures;
+extern _X_EXPORT int defaultScreenSaverBlanking;
+extern _X_EXPORT int defaultScreenSaverAllowExposures;
+extern _X_EXPORT char *display;
+
+extern _X_EXPORT int defaultBackingStore;
+extern _X_EXPORT Bool disableBackingStore;
+extern _X_EXPORT Bool enableBackingStore;
+extern _X_EXPORT Bool PartialNetwork;
 #ifndef NOLOGOHACK
-extern int logoScreenSaver;
+extern _X_EXPORT int logoScreenSaver;
 #endif
 #ifdef RLIMIT_DATA
-extern int limitDataSpace;
+extern _X_EXPORT int limitDataSpace;
 #endif
 #ifdef RLIMIT_STACK
-extern int limitStackSpace;
+extern _X_EXPORT int limitStackSpace;
 #endif
 #ifdef RLIMIT_NOFILE
-extern int limitNoFile;
+extern _X_EXPORT int limitNoFile;
 #endif
-extern Bool defeatAccessControl;
-extern long maxBigRequestSize;
-extern Bool party_like_its_1989;
-extern Bool whiteRoot;
+extern _X_EXPORT Bool defeatAccessControl;
+extern _X_EXPORT long maxBigRequestSize;
+extern _X_EXPORT Bool party_like_its_1989;
+extern _X_EXPORT Bool whiteRoot;
 
-extern Bool CoreDump;
+extern _X_EXPORT Bool CoreDump;
 
 
 #endif /* OPAQUE_H */
diff --git a/include/os.h b/include/os.h
index 77e9448..b1f6922 100644
--- a/include/os.h
+++ b/include/os.h
@@ -93,85 +93,85 @@ typedef struct _NewClientRec *NewClientPtr;
 #define SIGVAL void
 #endif
 
-extern void (*OsVendorVErrorFProc)(const char *, va_list args);
+extern _X_EXPORT void (*OsVendorVErrorFProc)(const char *, va_list args);
 
-extern int WaitForSomething(
+extern _X_EXPORT int WaitForSomething(
     int* /*pClientsReady*/
 );
 
-extern int ReadRequestFromClient(ClientPtr /*client*/);
+extern _X_EXPORT int ReadRequestFromClient(ClientPtr /*client*/);
 
-extern Bool InsertFakeRequest(
+extern _X_EXPORT Bool InsertFakeRequest(
     ClientPtr /*client*/, 
     char* /*data*/, 
     int /*count*/);
 
-extern void ResetCurrentRequest(ClientPtr /*client*/);
+extern _X_EXPORT void ResetCurrentRequest(ClientPtr /*client*/);
 
-extern void FlushAllOutput(void);
+extern _X_EXPORT void FlushAllOutput(void);
 
-extern void FlushIfCriticalOutputPending(void);
+extern _X_EXPORT void FlushIfCriticalOutputPending(void);
 
-extern void SetCriticalOutputPending(void);
+extern _X_EXPORT void SetCriticalOutputPending(void);
 
-extern int WriteToClient(ClientPtr /*who*/, int /*count*/, const void* /*buf*/);
+extern _X_EXPORT int WriteToClient(ClientPtr /*who*/, int /*count*/, const void* /*buf*/);
 
-extern void ResetOsBuffers(void);
+extern _X_EXPORT void ResetOsBuffers(void);
 
-extern void InitConnectionLimits(void);
+extern _X_EXPORT void InitConnectionLimits(void);
 
-extern void NotifyParentProcess(void);
+extern _X_EXPORT void NotifyParentProcess(void);
 
-extern void CreateWellKnownSockets(void);
+extern _X_EXPORT void CreateWellKnownSockets(void);
 
-extern void ResetWellKnownSockets(void);
+extern _X_EXPORT void ResetWellKnownSockets(void);
 
-extern void CloseWellKnownConnections(void);
+extern _X_EXPORT void CloseWellKnownConnections(void);
 
-extern XID AuthorizationIDOfClient(ClientPtr /*client*/);
+extern _X_EXPORT XID AuthorizationIDOfClient(ClientPtr /*client*/);
 
-extern char *ClientAuthorized(
+extern _X_EXPORT char *ClientAuthorized(
     ClientPtr /*client*/,
     unsigned int /*proto_n*/,
     char* /*auth_proto*/,
     unsigned int /*string_n*/,
     char* /*auth_string*/);
 
-extern Bool EstablishNewConnections(
+extern _X_EXPORT Bool EstablishNewConnections(
     ClientPtr /*clientUnused*/,
     pointer /*closure*/);
 
-extern void CheckConnections(void);
+extern _X_EXPORT void CheckConnections(void);
 
-extern void CloseDownConnection(ClientPtr /*client*/);
+extern _X_EXPORT void CloseDownConnection(ClientPtr /*client*/);
 
-extern void AddGeneralSocket(int /*fd*/);
+extern _X_EXPORT void AddGeneralSocket(int /*fd*/);
 
-extern void RemoveGeneralSocket(int /*fd*/);
+extern _X_EXPORT void RemoveGeneralSocket(int /*fd*/);
 
-extern void AddEnabledDevice(int /*fd*/);
+extern _X_EXPORT void AddEnabledDevice(int /*fd*/);
 
-extern void RemoveEnabledDevice(int /*fd*/);
+extern _X_EXPORT void RemoveEnabledDevice(int /*fd*/);
 
-extern int OnlyListenToOneClient(ClientPtr /*client*/);
+extern _X_EXPORT int OnlyListenToOneClient(ClientPtr /*client*/);
 
-extern void ListenToAllClients(void);
+extern _X_EXPORT void ListenToAllClients(void);
 
-extern void IgnoreClient(ClientPtr /*client*/);
+extern _X_EXPORT void IgnoreClient(ClientPtr /*client*/);
 
-extern void AttendClient(ClientPtr /*client*/);
+extern _X_EXPORT void AttendClient(ClientPtr /*client*/);
 
-extern void MakeClientGrabImpervious(ClientPtr /*client*/);
+extern _X_EXPORT void MakeClientGrabImpervious(ClientPtr /*client*/);
 
-extern void MakeClientGrabPervious(ClientPtr /*client*/);
+extern _X_EXPORT void MakeClientGrabPervious(ClientPtr /*client*/);
 
 #ifdef XQUARTZ
 extern void ListenOnOpenFD(int /* fd */, int /* noxauth */);
 #endif
 
-extern CARD32 GetTimeInMillis(void);
+extern _X_EXPORT CARD32 GetTimeInMillis(void);
 
-extern void AdjustWaitForDelay(
+extern _X_EXPORT void AdjustWaitForDelay(
     pointer /*waitTime*/,
     unsigned long /*newdelay*/);
 
@@ -182,69 +182,69 @@ typedef CARD32 (*OsTimerCallback)(
     CARD32 /* time */,
     pointer /* arg */);
 
-extern void TimerInit(void);
+extern _X_EXPORT void TimerInit(void);
 
-extern Bool TimerForce(OsTimerPtr /* timer */);
+extern _X_EXPORT Bool TimerForce(OsTimerPtr /* timer */);
 
 #define TimerAbsolute (1<<0)
 #define TimerForceOld (1<<1)
 
-extern OsTimerPtr TimerSet(
+extern _X_EXPORT OsTimerPtr TimerSet(
     OsTimerPtr /* timer */,
     int /* flags */,
     CARD32 /* millis */,
     OsTimerCallback /* func */,
     pointer /* arg */);
 
-extern void TimerCheck(void);
-extern void TimerCancel(OsTimerPtr /* pTimer */);
-extern void TimerFree(OsTimerPtr /* pTimer */);
+extern _X_EXPORT void TimerCheck(void);
+extern _X_EXPORT void TimerCancel(OsTimerPtr /* pTimer */);
+extern _X_EXPORT void TimerFree(OsTimerPtr /* pTimer */);
 
-extern void SetScreenSaverTimer(void);
-extern void FreeScreenSaverTimer(void);
+extern _X_EXPORT void SetScreenSaverTimer(void);
+extern _X_EXPORT void FreeScreenSaverTimer(void);
 
-extern SIGVAL AutoResetServer(int /*sig*/);
+extern _X_EXPORT SIGVAL AutoResetServer(int /*sig*/);
 
-extern SIGVAL GiveUp(int /*sig*/);
+extern _X_EXPORT SIGVAL GiveUp(int /*sig*/);
 
-extern void UseMsg(void);
+extern _X_EXPORT void UseMsg(void);
 
-extern void ProcessCommandLine(int /*argc*/, char* /*argv*/[]);
+extern _X_EXPORT void ProcessCommandLine(int /*argc*/, char* /*argv*/[]);
 
-extern int set_font_authorizations(
+extern _X_EXPORT int set_font_authorizations(
     char ** /* authorizations */, 
     int * /*authlen */, 
     pointer /* client */);
 
 #ifndef _HAVE_XALLOC_DECLS
 #define _HAVE_XALLOC_DECLS
-extern pointer Xalloc(unsigned long /*amount*/);
-extern pointer Xcalloc(unsigned long /*amount*/);
-extern pointer Xrealloc(pointer /*ptr*/, unsigned long /*amount*/);
-extern void Xfree(pointer /*ptr*/);
+extern _X_EXPORT pointer Xalloc(unsigned long /*amount*/);
+extern _X_EXPORT pointer Xcalloc(unsigned long /*amount*/);
+extern _X_EXPORT pointer Xrealloc(pointer /*ptr*/, unsigned long /*amount*/);
+extern _X_EXPORT void Xfree(pointer /*ptr*/);
 #endif
 
-extern pointer XNFalloc(unsigned long /*amount*/);
-extern pointer XNFcalloc(unsigned long /*amount*/);
-extern pointer XNFrealloc(pointer /*ptr*/, unsigned long /*amount*/);
+extern _X_EXPORT pointer XNFalloc(unsigned long /*amount*/);
+extern _X_EXPORT pointer XNFcalloc(unsigned long /*amount*/);
+extern _X_EXPORT pointer XNFrealloc(pointer /*ptr*/, unsigned long /*amount*/);
 
-extern char *Xstrdup(const char *s);
-extern char *XNFstrdup(const char *s);
-extern char *Xprintf(const char *fmt, ...);
-extern char *Xvprintf(const char *fmt, va_list va);
-extern char *XNFprintf(const char *fmt, ...);
-extern char *XNFvprintf(const char *fmt, va_list va);
+extern _X_EXPORT char *Xstrdup(const char *s);
+extern _X_EXPORT char *XNFstrdup(const char *s);
+extern _X_EXPORT char *Xprintf(const char *fmt, ...);
+extern _X_EXPORT char *Xvprintf(const char *fmt, va_list va);
+extern _X_EXPORT char *XNFprintf(const char *fmt, ...);
+extern _X_EXPORT char *XNFvprintf(const char *fmt, va_list va);
 
 typedef SIGVAL (*OsSigHandlerPtr)(int /* sig */);
 
-extern OsSigHandlerPtr OsSignal(int /* sig */, OsSigHandlerPtr /* handler */);
+extern _X_EXPORT OsSigHandlerPtr OsSignal(int /* sig */, OsSigHandlerPtr /* handler */);
 
-extern int auditTrailLevel;
+extern _X_EXPORT int auditTrailLevel;
 
-extern void LockServer(void);
-extern void UnlockServer(void);
+extern _X_EXPORT void LockServer(void);
+extern _X_EXPORT void UnlockServer(void);
 
-extern int OsLookupColor(
+extern _X_EXPORT int OsLookupColor(
     int	/*screen*/,
     char * /*name*/,
     unsigned /*len*/,
@@ -252,24 +252,24 @@ extern int OsLookupColor(
     unsigned short * /*pgreen*/,
     unsigned short * /*pblue*/);
 
-extern void OsInit(void);
+extern _X_EXPORT void OsInit(void);
 
-extern void OsCleanup(Bool);
+extern _X_EXPORT void OsCleanup(Bool);
 
-extern void OsVendorFatalError(void);
+extern _X_EXPORT void OsVendorFatalError(void);
 
-extern void OsVendorInit(void);
+extern _X_EXPORT void OsVendorInit(void);
 
-void OsBlockSignals (void);
+extern _X_EXPORT void OsBlockSignals (void);
 
-void OsReleaseSignals (void);
+extern _X_EXPORT void OsReleaseSignals (void);
 
 #if !defined(WIN32)
-extern int System(char *);
-extern pointer Popen(char *, char *);
-extern int Pclose(pointer);
-extern pointer Fopen(char *, char *);
-extern int Fclose(pointer);
+extern _X_EXPORT int System(char *);
+extern _X_EXPORT pointer Popen(char *, char *);
+extern _X_EXPORT int Pclose(pointer);
+extern _X_EXPORT pointer Fopen(char *, char *);
+extern _X_EXPORT int Fclose(pointer);
 #else
 #define System(a) system(a)
 #define Popen(a,b) popen(a,b)
@@ -278,16 +278,16 @@ extern int Fclose(pointer);
 #define Fclose(a) fclose(a)
 #endif
 
-extern void CheckUserParameters(int argc, char **argv, char **envp);
-extern void CheckUserAuthorization(void);
+extern _X_EXPORT void CheckUserParameters(int argc, char **argv, char **envp);
+extern _X_EXPORT void CheckUserAuthorization(void);
 
-extern int AddHost(
+extern _X_EXPORT int AddHost(
     ClientPtr	/*client*/,
     int         /*family*/,
     unsigned    /*length*/,
     pointer     /*pAddr*/);
 
-extern Bool ForEachHostInFamily (
+extern _X_EXPORT Bool ForEachHostInFamily (
     int	    /*family*/,
     Bool    (* /*func*/ )(
             unsigned char * /* addr */,
@@ -295,13 +295,13 @@ extern Bool ForEachHostInFamily (
             pointer         /* closure */),
     pointer /*closure*/);
 
-extern int RemoveHost(
+extern _X_EXPORT int RemoveHost(
     ClientPtr	/*client*/,
     int         /*family*/,
     unsigned    /*length*/,
     pointer     /*pAddr*/);
 
-extern int GetHosts(
+extern _X_EXPORT int GetHosts(
     pointer * /*data*/,
     int	    * /*pnHosts*/,
     int	    * /*pLen*/,
@@ -309,11 +309,11 @@ extern int GetHosts(
 
 typedef struct sockaddr * sockaddrPtr;
 
-extern int InvalidHost(sockaddrPtr /*saddr*/, int /*len*/, ClientPtr client);
+extern _X_EXPORT int InvalidHost(sockaddrPtr /*saddr*/, int /*len*/, ClientPtr client);
 
-extern int LocalClient(ClientPtr /* client */);
+extern _X_EXPORT int LocalClient(ClientPtr /* client */);
 
-extern int LocalClientCred(ClientPtr, int *, int *);
+extern _X_EXPORT int LocalClientCred(ClientPtr, int *, int *);
 
 #define LCC_UID_SET	(1 << 0)
 #define LCC_GID_SET	(1 << 1)
@@ -330,42 +330,42 @@ typedef struct {
     int zoneid;		/* Only set on Solaris 10 & later */
 } LocalClientCredRec;
 
-extern int GetLocalClientCreds(ClientPtr, LocalClientCredRec **);
-extern void FreeLocalClientCreds(LocalClientCredRec *); 
+extern _X_EXPORT int GetLocalClientCreds(ClientPtr, LocalClientCredRec **);
+extern _X_EXPORT void FreeLocalClientCreds(LocalClientCredRec *);
 
-extern int ChangeAccessControl(ClientPtr /*client*/, int /*fEnabled*/);
+extern _X_EXPORT int ChangeAccessControl(ClientPtr /*client*/, int /*fEnabled*/);
 
-extern int GetAccessControl(void);
+extern _X_EXPORT int GetAccessControl(void);
 
 
-extern void AddLocalHosts(void);
+extern _X_EXPORT void AddLocalHosts(void);
 
-extern void ResetHosts(char *display);
+extern _X_EXPORT void ResetHosts(char *display);
 
-extern void EnableLocalHost(void);
+extern _X_EXPORT void EnableLocalHost(void);
 
-extern void DisableLocalHost(void);
+extern _X_EXPORT void DisableLocalHost(void);
 
-extern void AccessUsingXdmcp(void);
+extern _X_EXPORT void AccessUsingXdmcp(void);
 
-extern void DefineSelf(int /*fd*/);
+extern _X_EXPORT void DefineSelf(int /*fd*/);
 
-extern void AugmentSelf(pointer /*from*/, int /*len*/);
+extern _X_EXPORT void AugmentSelf(pointer /*from*/, int /*len*/);
 
-extern void InitAuthorization(char * /*filename*/);
+extern _X_EXPORT void InitAuthorization(char * /*filename*/);
 
 /* extern int LoadAuthorization(void); */
 
-extern void RegisterAuthorizations(void);
+extern _X_EXPORT void RegisterAuthorizations(void);
 
-extern int AuthorizationFromID (
+extern _X_EXPORT int AuthorizationFromID (
 	XID 		id,
 	unsigned short	*name_lenp,
 	char		**namep,
 	unsigned short	*data_lenp,
 	char		**datap);
 
-extern XID CheckAuthorization(
+extern _X_EXPORT XID CheckAuthorization(
     unsigned int /*namelength*/,
     char * /*name*/,
     unsigned int /*datalength*/,
@@ -374,21 +374,21 @@ extern XID CheckAuthorization(
     char ** /*reason*/
 );
 
-extern void ResetAuthorization(void);
+extern _X_EXPORT void ResetAuthorization(void);
 
-extern int RemoveAuthorization (
+extern _X_EXPORT int RemoveAuthorization (
     unsigned short	name_length,
     char		*name,
     unsigned short	data_length,
     char		*data);
 
-extern int AddAuthorization(
+extern _X_EXPORT int AddAuthorization(
     unsigned int	/*name_length*/,
     char *		/*name*/,
     unsigned int	/*data_length*/,
     char *		/*data*/);
 
-extern XID GenerateAuthorization(
+extern _X_EXPORT XID GenerateAuthorization(
     unsigned int   /* name_length */,
     char	*  /* name */,
     unsigned int   /* data_length */,
@@ -396,9 +396,9 @@ extern XID GenerateAuthorization(
     unsigned int * /* data_length_return */,
     char	** /* data_return */);
 
-extern int ddxProcessArgument(int /*argc*/, char * /*argv*/ [], int /*i*/);
+extern _X_EXPORT int ddxProcessArgument(int /*argc*/, char * /*argv*/ [], int /*i*/);
 
-extern void ddxUseMsg(void);
+extern _X_EXPORT void ddxUseMsg(void);
 
 /* int ReqLen(xReq *req, ClientPtr client)
  * Given a pointer to a *complete* request, return its length in bytes.
@@ -424,7 +424,7 @@ extern void ddxUseMsg(void);
 		    : (otherReqTypePtr)(((CARD32*)_pxReq)+1))
 
 /* stuff for ReplyCallback */
-extern CallbackListPtr ReplyCallback;
+extern _X_EXPORT CallbackListPtr ReplyCallback;
 typedef struct {
     ClientPtr client;
     const void *replyData;
@@ -434,31 +434,31 @@ typedef struct {
 } ReplyInfoRec;
 
 /* stuff for FlushCallback */
-extern CallbackListPtr FlushCallback;
+extern _X_EXPORT CallbackListPtr FlushCallback;
 
-extern void AbortDDX(void);
-extern void ddxGiveUp(void);
-extern int TimeSinceLastInputEvent(void);
+extern _X_EXPORT void AbortDDX(void);
+extern _X_EXPORT void ddxGiveUp(void);
+extern _X_EXPORT int TimeSinceLastInputEvent(void);
 
 /* strcasecmp.c */
 #if NEED_STRCASECMP
 #define strcasecmp xstrcasecmp
-extern int xstrcasecmp(const char *s1, const char *s2);
+extern _X_EXPORT int xstrcasecmp(const char *s1, const char *s2);
 #endif
 
 #if NEED_STRNCASECMP
 #define strncasecmp xstrncasecmp
-extern int xstrncasecmp(const char *s1, const char *s2, size_t n);
+extern _X_EXPORT int xstrncasecmp(const char *s1, const char *s2, size_t n);
 #endif
 
 #if NEED_STRCASESTR
 #define strcasestr xstrcasestr
-extern char *xstrcasestr(const char *s, const char *find);
+extern _X_EXPORT char *xstrcasestr(const char *s, const char *find);
 #endif
 
 #ifndef HAS_STRLCPY
-extern size_t strlcpy(char *dst, const char *src, size_t siz);
-extern size_t strlcat(char *dst, const char *src, size_t siz);
+extern _X_EXPORT size_t strlcpy(char *dst, const char *src, size_t siz);
+extern _X_EXPORT size_t strlcat(char *dst, const char *src, size_t siz);
 #endif
 
 /* Logging. */
@@ -491,21 +491,21 @@ typedef enum {
 #define _printf_attribute(a,b) /**/
 #endif
 
-extern const char *LogInit(const char *fname, const char *backup);
-extern void LogClose(void);
-extern Bool LogSetParameter(LogParameter param, int value);
-extern void LogVWrite(int verb, const char *f, va_list args);
-extern void LogWrite(int verb, const char *f, ...) _printf_attribute(2,3);
-extern void LogVMessageVerb(MessageType type, int verb, const char *format,
+extern _X_EXPORT const char *LogInit(const char *fname, const char *backup);
+extern _X_EXPORT void LogClose(void);
+extern _X_EXPORT Bool LogSetParameter(LogParameter param, int value);
+extern _X_EXPORT void LogVWrite(int verb, const char *f, va_list args);
+extern _X_EXPORT void LogWrite(int verb, const char *f, ...) _printf_attribute(2,3);
+extern _X_EXPORT void LogVMessageVerb(MessageType type, int verb, const char *format,
 			    va_list args);
-extern void LogMessageVerb(MessageType type, int verb, const char *format,
+extern _X_EXPORT void LogMessageVerb(MessageType type, int verb, const char *format,
 			   ...) _printf_attribute(3,4);
-extern void LogMessage(MessageType type, const char *format, ...)
+extern _X_EXPORT void LogMessage(MessageType type, const char *format, ...)
 			_printf_attribute(2,3);
-extern void FreeAuditTimer(void);
-extern void AuditF(const char *f, ...) _printf_attribute(1,2);
-extern void VAuditF(const char *f, va_list args);
-extern void FatalError(const char *f, ...) _printf_attribute(1,2)
+extern _X_EXPORT void FreeAuditTimer(void);
+extern _X_EXPORT void AuditF(const char *f, ...) _printf_attribute(1,2);
+extern _X_EXPORT void VAuditF(const char *f, va_list args);
+extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2)
 #if defined(__GNUC__) && (__GNUC__ > 2)
 __attribute((noreturn))
 #endif
@@ -517,11 +517,11 @@ __attribute((noreturn))
 #define DebugF(...) /* */
 #endif
 
-extern void VErrorF(const char *f, va_list args);
-extern void ErrorF(const char *f, ...) _printf_attribute(1,2);
-extern void Error(char *str);
-extern void LogPrintMarkers(void);
+extern _X_EXPORT void VErrorF(const char *f, va_list args);
+extern _X_EXPORT void ErrorF(const char *f, ...) _printf_attribute(1,2);
+extern _X_EXPORT void Error(char *str);
+extern _X_EXPORT void LogPrintMarkers(void);
 
-extern void xorg_backtrace(void);
+extern _X_EXPORT void xorg_backtrace(void);
 
 #endif /* OS_H */
diff --git a/include/pixmap.h b/include/pixmap.h
index 5ff0b8c..55a9c81 100644
--- a/include/pixmap.h
+++ b/include/pixmap.h
@@ -93,7 +93,7 @@ typedef union _PixUnion {
 #define WindowDrawable(type) \
 	((type == DRAWABLE_WINDOW) || (type == UNDRAWABLE_WINDOW))
 
-extern PixmapPtr GetScratchPixmapHeader(
+extern _X_EXPORT PixmapPtr GetScratchPixmapHeader(
     ScreenPtr /*pScreen*/,
     int /*width*/,
     int /*height*/,
@@ -102,16 +102,16 @@ extern PixmapPtr GetScratchPixmapHeader(
     int /*devKind*/,
     pointer /*pPixData*/);
 
-extern void FreeScratchPixmapHeader(
+extern _X_EXPORT void FreeScratchPixmapHeader(
     PixmapPtr /*pPixmap*/);
 
-extern Bool CreateScratchPixmapsForScreen(
+extern _X_EXPORT Bool CreateScratchPixmapsForScreen(
     int /*scrnum*/);
 
-extern void FreeScratchPixmapsForScreen(
+extern _X_EXPORT void FreeScratchPixmapsForScreen(
     int /*scrnum*/);
 
-extern PixmapPtr AllocatePixmap(
+extern _X_EXPORT PixmapPtr AllocatePixmap(
     ScreenPtr /*pScreen*/,
     int /*pixDataSize*/);
 
diff --git a/include/privates.h b/include/privates.h
index e3fa83c..3c5c321 100644
--- a/include/privates.h
+++ b/include/privates.h
@@ -27,31 +27,31 @@ typedef struct _Private PrivateRec;
  * Request pre-allocated private space for your driver/module.
  * Calling this is not necessary if only a pointer by itself is needed.
  */
-extern int
+extern _X_EXPORT int
 dixRequestPrivate(const DevPrivateKey key, unsigned size);
 
 /*
  * Allocates a new private and attaches it to an existing object.
  */
-extern pointer *
+extern _X_EXPORT pointer *
 dixAllocatePrivate(PrivateRec **privates, const DevPrivateKey key);
 
 /*
  * Look up a private pointer.
  */
-pointer
+extern _X_EXPORT pointer
 dixLookupPrivate(PrivateRec **privates, const DevPrivateKey key);
 
 /*
  * Look up the address of a private pointer.
  */
-pointer *
+extern _X_EXPORT pointer *
 dixLookupPrivateAddr(PrivateRec **privates, const DevPrivateKey key);
 
 /*
  * Set a private pointer.
  */
-int
+extern _X_EXPORT int
 dixSetPrivate(PrivateRec **privates, const DevPrivateKey key, pointer val);
 
 /*
@@ -63,24 +63,24 @@ typedef struct _PrivateCallback {
     pointer *value;	/* address of private pointer */
 } PrivateCallbackRec;
 
-extern int
+extern _X_EXPORT int
 dixRegisterPrivateInitFunc(const DevPrivateKey key, 
 			   CallbackProcPtr callback, pointer userdata);
 
-extern int
+extern _X_EXPORT int
 dixRegisterPrivateDeleteFunc(const DevPrivateKey key,
 			     CallbackProcPtr callback, pointer userdata);
 
 /*
  * Frees private data.
  */
-extern void
+extern _X_EXPORT void
 dixFreePrivates(PrivateRec *privates);
 
 /*
  * Resets the subsystem, called from the main loop.
  */
-extern int
+extern _X_EXPORT int
 dixResetPrivates(void);
 
 /*
@@ -93,14 +93,14 @@ dixResetPrivates(void);
  * Looks up the offset where the devPrivates field is located.
  * Returns -1 if no offset has been registered for the resource type.
  */
-extern int
+extern _X_EXPORT int
 dixLookupPrivateOffset(RESTYPE type);
 
 /*
  * Specifies the offset where the devPrivates field is located.
  * A negative value indicates no devPrivates field is available.
  */
-extern int
+extern _X_EXPORT int
 dixRegisterPrivateOffset(RESTYPE type, int offset);
 
 /*
diff --git a/include/property.h b/include/property.h
index 1207e81..075eb4a 100644
--- a/include/property.h
+++ b/include/property.h
@@ -52,14 +52,14 @@ SOFTWARE.
 
 typedef struct _Property *PropertyPtr;
 
-extern int dixLookupProperty(
+extern _X_EXPORT int dixLookupProperty(
     PropertyPtr * /*result*/,
     WindowPtr /*pWin*/,
     Atom /*proprty*/,
     ClientPtr /*pClient*/,
     Mask /*access_mode*/);
 
-extern int dixChangeWindowProperty(
+extern _X_EXPORT int dixChangeWindowProperty(
     ClientPtr /*pClient*/,
     WindowPtr /*pWin*/,
     Atom /*property*/,
@@ -70,7 +70,7 @@ extern int dixChangeWindowProperty(
     pointer /*value*/,
     Bool /*sendevent*/);
 
-extern int ChangeWindowProperty(
+extern _X_EXPORT int ChangeWindowProperty(
     WindowPtr /*pWin*/,
     Atom /*property*/,
     Atom /*type*/,
@@ -80,12 +80,12 @@ extern int ChangeWindowProperty(
     pointer /*value*/,
     Bool /*sendevent*/);
 
-extern int DeleteProperty(
+extern _X_EXPORT int DeleteProperty(
     ClientPtr /*client*/,
     WindowPtr /*pWin*/,
     Atom /*propName*/);
 
-extern void DeleteAllWindowProperties(
+extern _X_EXPORT void DeleteAllWindowProperties(
     WindowPtr /*pWin*/);
 
 #endif  /* PROPERTY_H */
diff --git a/include/ptrveloc.h b/include/ptrveloc.h
index 384f9a6..e491051 100644
--- a/include/ptrveloc.h
+++ b/include/ptrveloc.h
@@ -100,31 +100,31 @@ typedef struct _DeviceVelocityRec {
 } DeviceVelocityRec, *DeviceVelocityPtr;
 
 
-extern void
+extern _X_EXPORT void
 InitVelocityData(DeviceVelocityPtr s);
 
-extern void
+extern _X_EXPORT void
 InitFilterChain(DeviceVelocityPtr s, float rdecay, float degression,
                 int lutsize, int stages);
 
-extern int
+extern _X_EXPORT int
 SetAccelerationProfile(DeviceVelocityPtr s, int profile_num);
 
-extern DeviceVelocityPtr
+extern _X_EXPORT DeviceVelocityPtr
 GetDevicePredictableAccelData(DeviceIntPtr pDev);
 
-extern void
+extern _X_EXPORT void
 SetDeviceSpecificAccelerationProfile(DeviceVelocityPtr s,
                                      PointerAccelerationProfileFunc profile);
 
-extern void
+extern _X_EXPORT void
 AccelerationDefaultCleanup(DeviceIntPtr pDev);
 
-extern void
+extern _X_EXPORT void
 acceleratePointerPredictable(DeviceIntPtr pDev, int first_valuator,
                              int num_valuators, int *valuators, int evtime);
 
-extern void
+extern _X_EXPORT void
 acceleratePointerLightweight(DeviceIntPtr pDev, int first_valuator,
                          int num_valuators, int *valuators, int ignore);
 
diff --git a/include/regionstr.h b/include/regionstr.h
index db712f8..eead1a1 100644
--- a/include/regionstr.h
+++ b/include/regionstr.h
@@ -66,9 +66,9 @@ typedef struct pixman_region16 RegionRec, *RegionPtr;
 
 typedef struct pixman_region16_data RegDataRec, *RegDataPtr;
 
-extern BoxRec miEmptyBox;
-extern RegDataRec miEmptyData;
-extern RegDataRec miBrokenData;
+extern _X_EXPORT BoxRec miEmptyBox;
+extern _X_EXPORT RegDataRec miEmptyData;
+extern _X_EXPORT RegDataRec miBrokenData;
 
 #define REGION_NIL(reg) ((reg)->data && !(reg)->data->numRects)
 /* not a region */
@@ -198,96 +198,96 @@ extern RegDataRec miBrokenData;
 
 /* moved from mi.h */
 
-extern void InitRegions (void);
+extern _X_EXPORT void InitRegions (void);
 
-extern RegionPtr miRegionCreate(
+extern _X_EXPORT RegionPtr miRegionCreate(
     BoxPtr /*rect*/,
     int /*size*/);
 
-extern void miRegionInit(
+extern _X_EXPORT void miRegionInit(
     RegionPtr /*pReg*/,
     BoxPtr /*rect*/,
     int /*size*/);
 
-extern void miRegionDestroy(
+extern _X_EXPORT void miRegionDestroy(
     RegionPtr /*pReg*/);
 
-extern void miRegionUninit(
+extern _X_EXPORT void miRegionUninit(
     RegionPtr /*pReg*/);
 
-extern Bool miRegionCopy(
+extern _X_EXPORT Bool miRegionCopy(
     RegionPtr /*dst*/,
     RegionPtr /*src*/);
 
-extern Bool miIntersect(
+extern _X_EXPORT Bool miIntersect(
     RegionPtr /*newReg*/,
     RegionPtr /*reg1*/,
     RegionPtr /*reg2*/);
 
-extern Bool miUnion(
+extern _X_EXPORT Bool miUnion(
     RegionPtr /*newReg*/,
     RegionPtr /*reg1*/,
     RegionPtr /*reg2*/);
 
-extern Bool miRegionAppend(
+extern _X_EXPORT Bool miRegionAppend(
     RegionPtr /*dstrgn*/,
     RegionPtr /*rgn*/);
 
-extern Bool miRegionValidate(
+extern _X_EXPORT Bool miRegionValidate(
     RegionPtr /*badreg*/,
     Bool * /*pOverlap*/);
 
-extern RegionPtr miRectsToRegion(
+extern _X_EXPORT RegionPtr miRectsToRegion(
     int /*nrects*/,
     xRectanglePtr /*prect*/,
     int /*ctype*/);
 
-extern Bool miSubtract(
+extern _X_EXPORT Bool miSubtract(
     RegionPtr /*regD*/,
     RegionPtr /*regM*/,
     RegionPtr /*regS*/);
 
-extern Bool miInverse(
+extern _X_EXPORT Bool miInverse(
     RegionPtr /*newReg*/,
     RegionPtr /*reg1*/,
     BoxPtr /*invRect*/);
 
-extern int miRectIn(
+extern _X_EXPORT int miRectIn(
     RegionPtr /*region*/,
     BoxPtr /*prect*/);
 
-extern void miTranslateRegion(
+extern _X_EXPORT void miTranslateRegion(
     RegionPtr /*pReg*/,
     int /*x*/,
     int /*y*/);
 
-extern void miRegionReset(
+extern _X_EXPORT void miRegionReset(
     RegionPtr /*pReg*/,
     BoxPtr /*pBox*/);
 
-extern Bool miRegionBreak(
+extern _X_EXPORT Bool miRegionBreak(
     RegionPtr /*pReg*/);
 
-extern Bool miPointInRegion(
+extern _X_EXPORT Bool miPointInRegion(
     RegionPtr /*pReg*/,
     int /*x*/,
     int /*y*/,
     BoxPtr /*box*/);
 
-extern Bool miRegionEqual(
+extern _X_EXPORT Bool miRegionEqual(
     RegionPtr /*pReg1*/,
     RegionPtr /*pReg2*/);
 
-extern Bool miRegionNotEmpty(
+extern _X_EXPORT Bool miRegionNotEmpty(
     RegionPtr /*pReg*/);
 
-extern void miRegionEmpty(
+extern _X_EXPORT void miRegionEmpty(
     RegionPtr /*pReg*/);
 
-extern BoxPtr miRegionExtents(
+extern _X_EXPORT BoxPtr miRegionExtents(
     RegionPtr /*pReg*/);
 
-extern void miPrintRegion(
+extern _X_EXPORT void miPrintRegion(
     RegionPtr /*pReg*/);
 
 #endif /* REGIONSTRUCT_H */
diff --git a/include/registry.h b/include/registry.h
index 29e5fdf..325f765 100644
--- a/include/registry.h
+++ b/include/registry.h
@@ -28,22 +28,22 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  * Registration functions.  The name string is not copied, so it must
  * not be a stack variable.
  */
-void RegisterResourceName(RESTYPE type, char *name);
-void RegisterExtensionNames(ExtensionEntry *ext);
+extern _X_EXPORT void RegisterResourceName(RESTYPE type, char *name);
+extern _X_EXPORT void RegisterExtensionNames(ExtensionEntry *ext);
 
 /*
  * Lookup functions.  The returned string must not be modified or freed.
  */
-const char *LookupMajorName(int major);
-const char *LookupRequestName(int major, int minor);
-const char *LookupEventName(int event);
-const char *LookupErrorName(int error);
-const char *LookupResourceName(RESTYPE rtype);
+extern _X_EXPORT const char *LookupMajorName(int major);
+extern _X_EXPORT const char *LookupRequestName(int major, int minor);
+extern _X_EXPORT const char *LookupEventName(int event);
+extern _X_EXPORT const char *LookupErrorName(int error);
+extern _X_EXPORT const char *LookupResourceName(RESTYPE rtype);
 
 /*
  * Setup and teardown
  */
-void dixResetRegistry(void);
+extern _X_EXPORT void dixResetRegistry(void);
 
 #else /* XREGISTRY */
 
diff --git a/include/resource.h b/include/resource.h
index b8105d4..cb6e064 100644
--- a/include/resource.h
+++ b/include/resource.h
@@ -122,7 +122,7 @@ typedef unsigned long RESTYPE;
 #define BAD_RESOURCE 0xe0000000
 
 /* Resource state callback */
-extern CallbackListPtr ResourceStateCallback;
+extern _X_EXPORT CallbackListPtr ResourceStateCallback;
 
 typedef enum {ResourceStateAdding,
 	      ResourceStateFreeing} ResourceState;
@@ -154,15 +154,15 @@ typedef Bool (*FindComplexResType)(
     XID /*id*/,
     pointer /*cdata*/);
 
-extern RESTYPE CreateNewResourceType(
+extern _X_EXPORT RESTYPE CreateNewResourceType(
     DeleteType /*deleteFunc*/);
 
-extern RESTYPE CreateNewResourceClass(void);
+extern _X_EXPORT RESTYPE CreateNewResourceClass(void);
 
-extern Bool InitClientResources(
+extern _X_EXPORT Bool InitClientResources(
     ClientPtr /*client*/);
 
-extern XID FakeClientID(
+extern _X_EXPORT XID FakeClientID(
     int /*client*/);
 
 /* Quartz support on Mac OS X uses the CarbonCore
@@ -170,74 +170,74 @@ extern XID FakeClientID(
 #ifdef __APPLE__
 #define AddResource Darwin_X_AddResource
 #endif
-extern Bool AddResource(
+extern _X_EXPORT Bool AddResource(
     XID /*id*/,
     RESTYPE /*type*/,
     pointer /*value*/);
 
-extern void FreeResource(
+extern _X_EXPORT void FreeResource(
     XID /*id*/,
     RESTYPE /*skipDeleteFuncType*/);
 
-extern void FreeResourceByType(
+extern _X_EXPORT void FreeResourceByType(
     XID /*id*/,
     RESTYPE /*type*/,
     Bool /*skipFree*/);
 
-extern Bool ChangeResourceValue(
+extern _X_EXPORT Bool ChangeResourceValue(
     XID /*id*/,
     RESTYPE /*rtype*/,
     pointer /*value*/);
 
-extern void FindClientResourcesByType(
+extern _X_EXPORT void FindClientResourcesByType(
     ClientPtr /*client*/,
     RESTYPE /*type*/,
     FindResType /*func*/,
     pointer /*cdata*/);
 
-extern void FindAllClientResources(
+extern _X_EXPORT void FindAllClientResources(
     ClientPtr /*client*/,
     FindAllRes /*func*/,
     pointer /*cdata*/);
 
-extern void FreeClientNeverRetainResources(
+extern _X_EXPORT void FreeClientNeverRetainResources(
     ClientPtr /*client*/);
 
-extern void FreeClientResources(
+extern _X_EXPORT void FreeClientResources(
     ClientPtr /*client*/);
 
-extern void FreeAllResources(void);
+extern _X_EXPORT void FreeAllResources(void);
 
-extern Bool LegalNewID(
+extern _X_EXPORT Bool LegalNewID(
     XID /*id*/,
     ClientPtr /*client*/);
 
-extern pointer LookupClientResourceComplex(
+extern _X_EXPORT pointer LookupClientResourceComplex(
     ClientPtr client,
     RESTYPE type,
     FindComplexResType func,
     pointer cdata);
 
-extern int dixLookupResource(
+extern _X_EXPORT int dixLookupResource(
     pointer *result,
     XID id,
     RESTYPE rtype,
     ClientPtr client,
     Mask access_mode);
 
-extern void GetXIDRange(
+extern _X_EXPORT void GetXIDRange(
     int /*client*/,
     Bool /*server*/,
     XID * /*minp*/,
     XID * /*maxp*/);
 
-extern unsigned int GetXIDList(
+extern _X_EXPORT unsigned int GetXIDList(
     ClientPtr /*client*/,
     unsigned int /*count*/,
     XID * /*pids*/);
 
-extern RESTYPE lastResourceType;
-extern RESTYPE TypeMask;
+extern _X_EXPORT RESTYPE lastResourceType;
+extern _X_EXPORT RESTYPE TypeMask;
 
 /*
  * These are deprecated compatibility functions and will be removed soon!
@@ -245,26 +245,26 @@ extern RESTYPE TypeMask;
  */
 
 /* replaced by dixLookupResource */
-extern pointer SecurityLookupIDByType(
+extern _X_EXPORT pointer SecurityLookupIDByType(
     ClientPtr client,
     XID id,
     RESTYPE rtype,
     Mask access_mode);
 
 /* replaced by dixLookupResource */
-extern pointer SecurityLookupIDByClass(
+extern _X_EXPORT pointer SecurityLookupIDByClass(
     ClientPtr client,
     XID id,
     RESTYPE classes,
     Mask access_mode);
 
 /* replaced by dixLookupResource */
-extern pointer LookupIDByType(
+extern _X_EXPORT pointer LookupIDByType(
     XID id,
     RESTYPE rtype);
 
 /* replaced by dixLookupResource */
-extern pointer LookupIDByClass(
+extern _X_EXPORT pointer LookupIDByClass(
     XID id,
     RESTYPE classes);
 
diff --git a/include/screenint.h b/include/screenint.h
index 6d074a3..4e6c574 100644
--- a/include/screenint.h
+++ b/include/screenint.h
@@ -55,7 +55,7 @@ typedef struct _Visual *VisualPtr;
 typedef struct _Depth  *DepthPtr;
 typedef struct _Screen *ScreenPtr;
 
-extern int AddScreen(
+extern _X_EXPORT int AddScreen(
     Bool (* /*pfnInit*/)(
 	int /*index*/,
 	ScreenPtr /*pScreen*/,
diff --git a/include/scrnintstr.h b/include/scrnintstr.h
index a309077..ab50e7a 100644
--- a/include/scrnintstr.h
+++ b/include/scrnintstr.h
@@ -611,9 +611,9 @@ typedef struct _ScreenInfo {
     int		unused;
 } ScreenInfo;
 
-extern ScreenInfo screenInfo;
+extern _X_EXPORT ScreenInfo screenInfo;
 
-extern void InitOutput(
+extern _X_EXPORT void InitOutput(
     ScreenInfo 	* /*pScreenInfo*/,
     int     	/*argc*/,
     char    	** /*argv*/);
diff --git a/include/selection.h b/include/selection.h
index dd9b056..3271f6a 100644
--- a/include/selection.h
+++ b/include/selection.h
@@ -70,12 +70,12 @@ typedef struct _Selection {
  *  Selection API
  */
 
-int dixLookupSelection(Selection **result, Atom name,
+extern _X_EXPORT int dixLookupSelection(Selection **result, Atom name,
 		       ClientPtr client, Mask access_mode);
 
-extern Selection *CurrentSelections;
+extern _X_EXPORT Selection *CurrentSelections;
 
-extern CallbackListPtr SelectionCallback;
+extern _X_EXPORT CallbackListPtr SelectionCallback;
 
 typedef enum {
     SelectionSetOwner,
@@ -94,11 +94,11 @@ typedef struct {
  *  Selection server internals
  */
 
-void InitSelections(void);
+extern _X_EXPORT void InitSelections(void);
 
-void DeleteWindowFromAnySelections(WindowPtr pWin);
+extern _X_EXPORT void DeleteWindowFromAnySelections(WindowPtr pWin);
 
-void DeleteClientFromAnySelections(ClientPtr client);
+extern _X_EXPORT void DeleteClientFromAnySelections(ClientPtr client);
 
 #endif /* SELECTION_H */
 
diff --git a/include/servermd.h b/include/servermd.h
index dec9f3b..e1d644e 100644
--- a/include/servermd.h
+++ b/include/servermd.h
@@ -288,6 +288,7 @@ SOFTWARE.
 #define LOG2_BYTES_PER_SCANLINE_PAD	2
 #endif
 
+#include <X11/Xfuncproto.h>
 /* 
  *   This returns the number of padding units, for depth d and width w.
  * For bitmaps this can be calculated with the macros above.
@@ -303,7 +304,7 @@ typedef struct _PaddingInfo {
 	int	bytesPerPixel;	/* only set when notPower2 is TRUE */
 	int	bitsPerPixel;	/* bits per pixel */
 } PaddingInfo;
-extern PaddingInfo PixmapWidthPaddingInfo[];
+extern _X_EXPORT PaddingInfo PixmapWidthPaddingInfo[];
 
 /* The only portable way to get the bpp from the depth is to look it up */
 #define BitsPerPixel(d) (PixmapWidthPaddingInfo[d].bitsPerPixel)
diff --git a/include/swaprep.h b/include/swaprep.h
index bebd3a8..8c02737 100644
--- a/include/swaprep.h
+++ b/include/swaprep.h
@@ -26,239 +26,239 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #ifndef SWAPREP_H
 #define SWAPREP_H 1
 
-extern void Swap32Write(
+extern _X_EXPORT void Swap32Write(
     ClientPtr /* pClient */,
     int /* size */,
     CARD32 * /* pbuf */);
 
-extern void CopySwap32Write(
+extern _X_EXPORT void CopySwap32Write(
     ClientPtr /* pClient */,
     int /* size */,
     CARD32 * /* pbuf */);
 
-extern void CopySwap16Write(
+extern _X_EXPORT void CopySwap16Write(
     ClientPtr /* pClient */,
     int /* size */,
     short * /* pbuf */);
 
-extern void SGenericReply(
+extern _X_EXPORT void SGenericReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGenericReply * /* pRep */);
 
-extern void SGetWindowAttributesReply(
+extern _X_EXPORT void SGetWindowAttributesReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetWindowAttributesReply * /* pRep */);
 
-extern void SGetGeometryReply(
+extern _X_EXPORT void SGetGeometryReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetGeometryReply * /* pRep */);
 
-extern void SQueryTreeReply(
+extern _X_EXPORT void SQueryTreeReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryTreeReply * /* pRep */);
 
-extern void SInternAtomReply(
+extern _X_EXPORT void SInternAtomReply(
     ClientPtr /* pClient */,
     int /* size */,
     xInternAtomReply * /* pRep */);
 
-extern void SGetAtomNameReply(
+extern _X_EXPORT void SGetAtomNameReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetAtomNameReply * /* pRep */);
 
-extern void SGetPropertyReply(
+extern _X_EXPORT void SGetPropertyReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetPropertyReply * /* pRep */);
 
-extern void SListPropertiesReply(
+extern _X_EXPORT void SListPropertiesReply(
     ClientPtr /* pClient */,
     int /* size */,
     xListPropertiesReply * /* pRep */);
 
-extern void SGetSelectionOwnerReply(
+extern _X_EXPORT void SGetSelectionOwnerReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetSelectionOwnerReply * /* pRep */);
 
-extern void SQueryPointerReply(
+extern _X_EXPORT void SQueryPointerReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryPointerReply * /* pRep */);
 
-extern void SwapTimeCoordWrite(
+extern _X_EXPORT void SwapTimeCoordWrite(
     ClientPtr /* pClient */,
     int /* size */,
     xTimecoord * /* pRep */);
 
-extern void SGetMotionEventsReply(
+extern _X_EXPORT void SGetMotionEventsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetMotionEventsReply * /* pRep */);
 
-extern void STranslateCoordsReply(
+extern _X_EXPORT void STranslateCoordsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xTranslateCoordsReply * /* pRep */);
 
-extern void SGetInputFocusReply(
+extern _X_EXPORT void SGetInputFocusReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetInputFocusReply * /* pRep */);
 
-extern void SQueryKeymapReply(
+extern _X_EXPORT void SQueryKeymapReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryKeymapReply * /* pRep */);
 
-extern void SQueryFontReply(
+extern _X_EXPORT void SQueryFontReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryFontReply * /* pRep */);
 
-extern void SQueryTextExtentsReply(
+extern _X_EXPORT void SQueryTextExtentsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryTextExtentsReply * /* pRep */);
 
-extern void SListFontsReply(
+extern _X_EXPORT void SListFontsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xListFontsReply * /* pRep */);
 
-extern void SListFontsWithInfoReply(
+extern _X_EXPORT void SListFontsWithInfoReply(
     ClientPtr /* pClient */,
     int /* size */,
     xListFontsWithInfoReply * /* pRep */);
 
-extern void SGetFontPathReply(
+extern _X_EXPORT void SGetFontPathReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetFontPathReply * /* pRep */);
 
-extern void SGetImageReply(
+extern _X_EXPORT void SGetImageReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetImageReply * /* pRep */);
 
-extern void SListInstalledColormapsReply(
+extern _X_EXPORT void SListInstalledColormapsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xListInstalledColormapsReply * /* pRep */);
 
-extern void SAllocColorReply(
+extern _X_EXPORT void SAllocColorReply(
     ClientPtr /* pClient */,
     int /* size */,
     xAllocColorReply * /* pRep */);
 
-extern void SAllocNamedColorReply(
+extern _X_EXPORT void SAllocNamedColorReply(
     ClientPtr /* pClient */,
     int /* size */,
     xAllocNamedColorReply * /* pRep */);
 
-extern void SAllocColorCellsReply(
+extern _X_EXPORT void SAllocColorCellsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xAllocColorCellsReply * /* pRep */);
 
-extern void SAllocColorPlanesReply(
+extern _X_EXPORT void SAllocColorPlanesReply(
     ClientPtr /* pClient */,
     int /* size */,
     xAllocColorPlanesReply * /* pRep */);
 
-extern void SQColorsExtend(
+extern _X_EXPORT void SQColorsExtend(
     ClientPtr /* pClient */,
     int /* size */,
     xrgb * /* prgb */);
 
-extern void SQueryColorsReply(
+extern _X_EXPORT void SQueryColorsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryColorsReply * /* pRep */);
 
-extern void SLookupColorReply(
+extern _X_EXPORT void SLookupColorReply(
     ClientPtr /* pClient */,
     int /* size */,
     xLookupColorReply * /* pRep */);
 
-extern void SQueryBestSizeReply(
+extern _X_EXPORT void SQueryBestSizeReply(
     ClientPtr /* pClient */,
     int /* size */,
     xQueryBestSizeReply * /* pRep */);
 
-extern void SListExtensionsReply(
+extern _X_EXPORT void SListExtensionsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xListExtensionsReply * /* pRep */);
 
-extern void SGetKeyboardMappingReply(
+extern _X_EXPORT void SGetKeyboardMappingReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetKeyboardMappingReply * /* pRep */);
 
-extern void SGetPointerMappingReply(
+extern _X_EXPORT void SGetPointerMappingReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetPointerMappingReply * /* pRep */);
 
-extern void SGetModifierMappingReply(
+extern _X_EXPORT void SGetModifierMappingReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetModifierMappingReply * /* pRep */);
 
-extern void SGetKeyboardControlReply(
+extern _X_EXPORT void SGetKeyboardControlReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetKeyboardControlReply * /* pRep */);
 
-extern void SGetPointerControlReply(
+extern _X_EXPORT void SGetPointerControlReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetPointerControlReply * /* pRep */);
 
-extern void SGetScreenSaverReply(
+extern _X_EXPORT void SGetScreenSaverReply(
     ClientPtr /* pClient */,
     int /* size */,
     xGetScreenSaverReply * /* pRep */);
 
-extern void SLHostsExtend(
+extern _X_EXPORT void SLHostsExtend(
     ClientPtr /* pClient */,
     int /* size */,
     char * /* buf */);
 
-extern void SListHostsReply(
+extern _X_EXPORT void SListHostsReply(
     ClientPtr /* pClient */,
     int /* size */,
     xListHostsReply * /* pRep */);
 
-extern void SErrorEvent(
+extern _X_EXPORT void SErrorEvent(
     xError * /* from */,
     xError * /* to */);
 
-extern void SwapConnSetupInfo(
+extern _X_EXPORT void SwapConnSetupInfo(
     char * /* pInfo */,
     char * /* pInfoTBase */);
 
-extern void WriteSConnectionInfo(
+extern _X_EXPORT void WriteSConnectionInfo(
     ClientPtr /* pClient */,
     unsigned long /* size */,
     char * /* pInfo */);
 
-extern void SwapConnSetupPrefix(
+extern _X_EXPORT void SwapConnSetupPrefix(
     xConnSetupPrefix * /* pcspFrom */,
     xConnSetupPrefix * /* pcspTo */);
 
-extern void WriteSConnSetupPrefix(
+extern _X_EXPORT void WriteSConnSetupPrefix(
     ClientPtr /* pClient */,
     xConnSetupPrefix * /* pcsp */);
 
 #undef SWAPREP_PROC
-#define SWAPREP_PROC(func) void func(xEvent * /* from */, xEvent * /* to */)
+#define SWAPREP_PROC(func) extern _X_EXPORT void func(xEvent * /* from */, xEvent * /* to */)
 
 SWAPREP_PROC(SCirculateEvent);
 SWAPREP_PROC(SClientMessageEvent);
diff --git a/include/swapreq.h b/include/swapreq.h
index 83e524b..8038f02 100644
--- a/include/swapreq.h
+++ b/include/swapreq.h
@@ -26,15 +26,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #ifndef SWAPREQ_H
 #define SWAPREQ_H 1
 
-extern void SwapColorItem(
+extern _X_EXPORT void SwapColorItem(
     xColorItem	* /* pItem */);
 
-extern void SwapConnClientPrefix(
+extern _X_EXPORT void SwapConnClientPrefix(
     xConnClientPrefix * /* pCCP */);
 
 #undef SWAPREQ_PROC
 
-#define SWAPREQ_PROC(func) int func(ClientPtr /* client */)
+#define SWAPREQ_PROC(func) extern _X_EXPORT int func(ClientPtr /* client */)
 
 SWAPREQ_PROC(SProcAllocColor);
 SWAPREQ_PROC(SProcAllocColorCells);
diff --git a/include/window.h b/include/window.h
index 04cbe26..038e639 100644
--- a/include/window.h
+++ b/include/window.h
@@ -77,30 +77,30 @@ typedef int (*VisitWindowProcPtr)(
     WindowPtr /*pWin*/,
     pointer /*data*/);
 
-extern int TraverseTree(
+extern _X_EXPORT int TraverseTree(
     WindowPtr /*pWin*/,
     VisitWindowProcPtr /*func*/,
     pointer /*data*/);
 
-extern int WalkTree(
+extern _X_EXPORT int WalkTree(
     ScreenPtr /*pScreen*/,
     VisitWindowProcPtr /*func*/,
     pointer /*data*/);
 
-extern Bool CreateRootWindow(
+extern _X_EXPORT Bool CreateRootWindow(
     ScreenPtr /*pScreen*/);
 
-extern void InitRootWindow(
+extern _X_EXPORT void InitRootWindow(
     WindowPtr /*pWin*/);
 
 typedef WindowPtr (* RealChildHeadProc) (WindowPtr pWin);
 
-void RegisterRealChildHeadProc (RealChildHeadProc proc);
+extern void _X_EXPORT RegisterRealChildHeadProc (RealChildHeadProc proc);
 
-extern WindowPtr RealChildHead(
+extern _X_EXPORT WindowPtr RealChildHead(
     WindowPtr /*pWin*/);
 
-extern WindowPtr CreateWindow(
+extern _X_EXPORT WindowPtr CreateWindow(
     Window /*wid*/,
     WindowPtr /*pParent*/,
     int /*x*/,
@@ -116,11 +116,11 @@ extern WindowPtr CreateWindow(
     VisualID /*visual*/,
     int* /*error*/);
 
-extern int DeleteWindow(
+extern _X_EXPORT int DeleteWindow(
     pointer /*pWin*/,
     XID /*wid*/);
 
-extern int DestroySubwindows(
+extern _X_EXPORT int DestroySubwindows(
     WindowPtr /*pWin*/,
     ClientPtr /*client*/);
 
@@ -129,18 +129,18 @@ extern int DestroySubwindows(
 #ifdef __APPLE__
 #define ChangeWindowAttributes Darwin_X_ChangeWindowAttributes
 #endif
-extern int ChangeWindowAttributes(
+extern _X_EXPORT int ChangeWindowAttributes(
     WindowPtr /*pWin*/,
     Mask /*vmask*/,
     XID* /*vlist*/,
     ClientPtr /*client*/);
 
-extern int ChangeWindowDeviceCursor(
+extern _X_EXPORT int ChangeWindowDeviceCursor(
     WindowPtr /*pWin*/,
     struct _DeviceIntRec* /*pDev*/,
     struct _Cursor* /*pCursor*/);
 
-extern struct _Cursor* WindowGetDeviceCursor(
+extern _X_EXPORT struct _Cursor* WindowGetDeviceCursor(
     WindowPtr /*pWin*/,
     struct _DeviceIntRec* /*pDev*/);
 
@@ -150,16 +150,16 @@ extern struct _Cursor* WindowGetDeviceCursor(
 #define GetWindowAttributes(w,c,x) Darwin_X_GetWindowAttributes(w,c,x)
 extern void Darwin_X_GetWindowAttributes(
 #else
-extern void GetWindowAttributes(
+extern _X_EXPORT void GetWindowAttributes(
 #endif
     WindowPtr /*pWin*/,
     ClientPtr /*client*/,
     xGetWindowAttributesReply* /* wa */);
 
-extern RegionPtr CreateUnclippedWinSize(
+extern _X_EXPORT RegionPtr CreateUnclippedWinSize(
     WindowPtr /*pWin*/);
 
-extern void GravityTranslate(
+extern _X_EXPORT void GravityTranslate(
     int /*x*/,
     int /*y*/,
     int /*oldx*/,
@@ -170,103 +170,103 @@ extern void GravityTranslate(
     int* /*destx*/,
     int* /*desty*/);
 
-extern int ConfigureWindow(
+extern _X_EXPORT int ConfigureWindow(
     WindowPtr /*pWin*/,
     Mask /*mask*/,
     XID* /*vlist*/,
     ClientPtr /*client*/);
 
-extern int CirculateWindow(
+extern _X_EXPORT int CirculateWindow(
     WindowPtr /*pParent*/,
     int /*direction*/,
     ClientPtr /*client*/);
 
-extern int ReparentWindow(
+extern _X_EXPORT int ReparentWindow(
     WindowPtr /*pWin*/,
     WindowPtr /*pParent*/,
     int /*x*/,
     int /*y*/,
     ClientPtr /*client*/);
 
-extern int MapWindow(
+extern _X_EXPORT int MapWindow(
     WindowPtr /*pWin*/,
     ClientPtr /*client*/);
 
-extern void MapSubwindows(
+extern _X_EXPORT void MapSubwindows(
     WindowPtr /*pParent*/,
     ClientPtr /*client*/);
 
-extern int UnmapWindow(
+extern _X_EXPORT int UnmapWindow(
     WindowPtr /*pWin*/,
     Bool /*fromConfigure*/);
 
-extern void UnmapSubwindows(
+extern _X_EXPORT void UnmapSubwindows(
     WindowPtr /*pWin*/);
 
-extern void HandleSaveSet(
+extern _X_EXPORT void HandleSaveSet(
     ClientPtr /*client*/);
 
-extern Bool PointInWindowIsVisible(
+extern _X_EXPORT Bool PointInWindowIsVisible(
     WindowPtr /*pWin*/,
     int /*x*/,
     int /*y*/);
 
-extern RegionPtr NotClippedByChildren(
+extern _X_EXPORT RegionPtr NotClippedByChildren(
     WindowPtr /*pWin*/);
 
-extern void SendVisibilityNotify(
+extern _X_EXPORT void SendVisibilityNotify(
     WindowPtr /*pWin*/);
 
-extern int dixSaveScreens(
+extern _X_EXPORT int dixSaveScreens(
     ClientPtr client,
     int on,
     int mode);
 
-extern int SaveScreens(
+extern _X_EXPORT int SaveScreens(
     int on,
     int mode);
 
-extern WindowPtr FindWindowWithOptional(
+extern _X_EXPORT WindowPtr FindWindowWithOptional(
     WindowPtr /*w*/);
 
-extern void CheckWindowOptionalNeed(
+extern _X_EXPORT void CheckWindowOptionalNeed(
     WindowPtr /*w*/);
 
-extern Bool MakeWindowOptional(
+extern _X_EXPORT Bool MakeWindowOptional(
     WindowPtr /*pWin*/);
 
-extern WindowPtr MoveWindowInStack(
+extern _X_EXPORT WindowPtr MoveWindowInStack(
     WindowPtr /*pWin*/,
     WindowPtr /*pNextSib*/);
 
-void SetWinSize(
+extern _X_EXPORT void SetWinSize(
     WindowPtr /*pWin*/);
 
-void SetBorderSize(
+extern _X_EXPORT void SetBorderSize(
     WindowPtr /*pWin*/);
 
-void ResizeChildrenWinSize(
+extern _X_EXPORT void ResizeChildrenWinSize(
     WindowPtr /*pWin*/,
     int /*dx*/,
     int /*dy*/,
     int /*dw*/,
     int /*dh*/);
 
-extern void ShapeExtensionInit(void);
+extern _X_EXPORT void ShapeExtensionInit(void);
 
-extern void SendShapeNotify(
+extern _X_EXPORT void SendShapeNotify(
     WindowPtr /* pWin */,
     int /* which */ );
 
-extern RegionPtr CreateBoundingShape(
+extern _X_EXPORT RegionPtr CreateBoundingShape(
     WindowPtr /* pWin */ );
 
-extern RegionPtr CreateClipShape(
+extern _X_EXPORT RegionPtr CreateClipShape(
     WindowPtr /* pWin */ );
 
-extern void DisableMapUnmapEvents(
+extern _X_EXPORT void DisableMapUnmapEvents(
     WindowPtr /* pWin */ );
-extern void EnableMapUnmapEvents(
+extern _X_EXPORT void EnableMapUnmapEvents(
     WindowPtr /* pWin */ );
 
 #endif /* WINDOW_H */
diff --git a/include/windowstr.h b/include/windowstr.h
index 159ee36..ccd42a7 100644
--- a/include/windowstr.h
+++ b/include/windowstr.h
@@ -201,7 +201,7 @@ typedef struct _Window {
  * fields (or filling the appropriate default value)
  */
 
-extern Mask	    DontPropagateMasks[];
+extern _X_EXPORT Mask	DontPropagateMasks[];
 
 #define wTrackParent(w,field)	((w)->optional ? \
 				    (w)->optional->field \
@@ -248,7 +248,7 @@ typedef struct _ScreenSaverStuff {
 
 #define HasSaverWindow(i)   (savedScreenInfo[i].pWindow != NullWindow)
 
-extern int screenIsSaved;
-extern ScreenSaverStuffRec savedScreenInfo[MAXSCREENS];
+extern _X_EXPORT int screenIsSaved;
+extern _X_EXPORT ScreenSaverStuffRec savedScreenInfo[MAXSCREENS];
 
 #endif /* WINDOWSTRUCT_H */
diff --git a/include/xkbfile.h b/include/xkbfile.h
index d12aad5..40197c0 100644
--- a/include/xkbfile.h
+++ b/include/xkbfile.h
@@ -80,97 +80,97 @@ typedef void	(*XkbFileAddOnFunc)(
 
 _XFUNCPROTOBEGIN
 
-extern	char *	XkbIndentText(
+extern _X_EXPORT char *	XkbIndentText(
     unsigned	/* size */
 );
 
-extern	char *	XkbAtomText(
+extern _X_EXPORT char *	XkbAtomText(
     Atom 	/* atm */,
     unsigned	/* format */
 );
 
-extern char *	XkbKeysymText(
+extern _X_EXPORT char *	XkbKeysymText(
     KeySym	/* sym */,
     unsigned	/* format */
 );
 
-extern char *	XkbStringText(
+extern _X_EXPORT char *	XkbStringText(
     char *	/* str */,
     unsigned	/* format */
 );
 
-extern char *	XkbKeyNameText(
+extern _X_EXPORT char *	XkbKeyNameText(
     char *	/* name */,
     unsigned	/* format */
 );
 
-extern char *
+extern _X_EXPORT char *
 XkbModIndexText(
     unsigned	/* ndx */,
     unsigned	/* format */
 );
 
-extern char *
+extern _X_EXPORT char *
 XkbModMaskText(
     unsigned	/* mask */,
     unsigned	/* format */
 );
 
-extern char *	XkbVModIndexText(
+extern _X_EXPORT char *	XkbVModIndexText(
     XkbDescPtr	/* xkb */,
     unsigned	/* ndx */,
     unsigned	/* format */
 );
 
-extern	char *	XkbVModMaskText(
+extern _X_EXPORT char *	XkbVModMaskText(
     XkbDescPtr	/* xkb */,
     unsigned	/* modMask */,
     unsigned	/* mask */,
     unsigned	/* format */
 );
 
-extern char *	XkbConfigText(
+extern _X_EXPORT char *	XkbConfigText(
     unsigned 	/* config */,
     unsigned 	/* format */
 );
 
-extern char *	XkbSIMatchText(
+extern _X_EXPORT char *	XkbSIMatchText(
     unsigned	/* type */,
     unsigned	/* format */
 );
 
-extern char *	XkbIMWhichStateMaskText(
+extern _X_EXPORT char *	XkbIMWhichStateMaskText(
     unsigned	/* use_which */,
     unsigned	/* format */
 );
 
-extern char *	XkbControlsMaskText(
+extern _X_EXPORT char *	XkbControlsMaskText(
     unsigned	/* ctrls */,
     unsigned	/* format */
 );
 
-extern char *	XkbGeomFPText(
+extern _X_EXPORT char *	XkbGeomFPText(
     int		/* val */,
     unsigned 	/* format */
 );
 
-extern char *	XkbDoodadTypeText(
+extern _X_EXPORT char *	XkbDoodadTypeText(
     unsigned	/* type */,
     unsigned	/* format */
 );
 
-extern char *	XkbActionTypeText(
+extern _X_EXPORT char *	XkbActionTypeText(
     unsigned	/* type */,
     unsigned	/* format */
 );
 
-extern char *	XkbActionText(
+extern _X_EXPORT char *	XkbActionText(
     XkbDescPtr	/* xkb */,
     XkbAction *	/* action */,
     unsigned	/* format */
 );
 
-extern char *	XkbBehaviorText(
+extern _X_EXPORT char *	XkbBehaviorText(
     XkbDescPtr 		/* xkb */,
     XkbBehavior *	/* behavior */,
     unsigned		/* format */
@@ -187,11 +187,11 @@ extern char *	XkbBehaviorText(
 #define	XkbKSIsDeadKey(k)	\
 		(((k)>=XK_dead_grave)&&((k)<=XK_dead_semivoiced_sound))
 
-extern	unsigned _XkbKSCheckCase(
+extern _X_EXPORT unsigned _XkbKSCheckCase(
    KeySym	/* sym */
 );
 
-extern	int	 XkbFindKeycodeByName(
+extern _X_EXPORT int	 XkbFindKeycodeByName(
     XkbDescPtr	/* xkb */,
     char *	/* name */,
     Bool	/* use_aliases */
@@ -199,7 +199,7 @@ extern	int	 XkbFindKeycodeByName(
 
 /***====================================================================***/
 
-extern	Atom	XkbInternAtom(
+extern _X_EXPORT Atom	XkbInternAtom(
     char *	/* name */,
     Bool	/* onlyIfExists */
 );
@@ -225,19 +225,19 @@ typedef struct _XkbDrawable {
 
 /***====================================================================***/
 
-extern	unsigned	XkbConvertGetByNameComponents(
+extern _X_EXPORT unsigned	XkbConvertGetByNameComponents(
     Bool		/* toXkm */,
     unsigned 		/* orig */
 );
 
-extern	Bool	XkbNameMatchesPattern(
+extern _X_EXPORT Bool	XkbNameMatchesPattern(
     char *		/* name */,
     char *		/* pattern */
 );
 
 /***====================================================================***/
 
-extern	Bool	XkbWriteXKBKeycodes(
+extern _X_EXPORT Bool	XkbWriteXKBKeycodes(
     FILE *		/* file */,
     XkbDescPtr          /* result */,
     Bool		/* topLevel */,
@@ -246,7 +246,7 @@ extern	Bool	XkbWriteXKBKeycodes(
     void *		/* priv */
 );
 
-extern	Bool	XkbWriteXKBKeyTypes(
+extern _X_EXPORT Bool	XkbWriteXKBKeyTypes(
     FILE *		/* file */,
     XkbDescPtr  	/* result */,
     Bool		/* topLevel */,
@@ -255,7 +255,7 @@ extern	Bool	XkbWriteXKBKeyTypes(
     void *		/* priv */
 );
 
-extern	Bool	XkbWriteXKBCompatMap(
+extern _X_EXPORT Bool	XkbWriteXKBCompatMap(
     FILE *		/* file */,
     XkbDescPtr	/* result */,
     Bool		/* topLevel */,
@@ -264,7 +264,7 @@ extern	Bool	XkbWriteXKBCompatMap(
     void *		/* priv */
 );
 
-extern	Bool	XkbWriteXKBSymbols(
+extern _X_EXPORT Bool	XkbWriteXKBSymbols(
     FILE *		/* file */,
     XkbDescPtr	/* result */,
     Bool		/* topLevel */,
@@ -273,7 +273,7 @@ extern	Bool	XkbWriteXKBSymbols(
     void *		/* priv */
 );
 
-extern	Bool	XkbWriteXKBGeometry(
+extern _X_EXPORT Bool	XkbWriteXKBGeometry(
     FILE *		/* file */,
     XkbDescPtr	/* result */,
     Bool		/* topLevel */,
@@ -282,11 +282,11 @@ extern	Bool	XkbWriteXKBGeometry(
     void *		/* priv */
 );
 
-extern	void	XkbEnsureSafeMapName(
+extern _X_EXPORT void	XkbEnsureSafeMapName(
     char *		/* name */
 );
 
-extern	Bool	XkbWriteXKBKeymapForNames(
+extern _X_EXPORT Bool	XkbWriteXKBKeymapForNames(
     FILE *			/* file */,
     XkbComponentNamesPtr	/* names */,
     XkbDescPtr			/* xkb */,
@@ -296,11 +296,11 @@ extern	Bool	XkbWriteXKBKeymapForNames(
 
 /***====================================================================***/
 
-extern Bool	XkmProbe(
+extern _X_EXPORT Bool	XkmProbe(
     FILE *		/* file */
 );
 
-extern unsigned	XkmReadFile(
+extern _X_EXPORT unsigned	XkmReadFile(
     FILE *		/* file */,
     unsigned		/* need */,
     unsigned		/* want */,
diff --git a/include/xkbrules.h b/include/xkbrules.h
index 648e2e9..ff77ddc 100644
--- a/include/xkbrules.h
+++ b/include/xkbrules.h
@@ -103,24 +103,24 @@ typedef struct _XkbRF_Rules {
 
 _XFUNCPROTOBEGIN
 
-extern Bool	XkbRF_GetComponents(
+extern _X_EXPORT Bool	XkbRF_GetComponents(
     XkbRF_RulesPtr		/* rules */,
     XkbRF_VarDefsPtr		/* var_defs */,
     XkbComponentNamesPtr	/* names */
 );
 
-extern XkbRF_RulePtr	XkbRF_AddRule(
+extern _X_EXPORT XkbRF_RulePtr	XkbRF_AddRule(
     XkbRF_RulesPtr	/* rules */
 );
 
-extern XkbRF_GroupPtr XkbRF_AddGroup(XkbRF_RulesPtr  rules);
+extern _X_EXPORT XkbRF_GroupPtr XkbRF_AddGroup(XkbRF_RulesPtr  rules);
 
-extern Bool	XkbRF_LoadRules(
+extern _X_EXPORT Bool	XkbRF_LoadRules(
     FILE *		/* file */,
     XkbRF_RulesPtr	/* rules */
 );
 
-extern Bool XkbRF_LoadRulesByName(
+extern _X_EXPORT Bool XkbRF_LoadRulesByName(
     char *		/* base */,
     char *		/* locale */,
     XkbRF_RulesPtr	/* rules */
@@ -128,46 +128,46 @@ extern Bool XkbRF_LoadRulesByName(
 
 /***====================================================================***/
 
-extern XkbRF_VarDescPtr	XkbRF_AddVarDesc(
+extern _X_EXPORT XkbRF_VarDescPtr	XkbRF_AddVarDesc(
     XkbRF_DescribeVarsPtr	/* vars */
 );
 
-extern XkbRF_VarDescPtr	XkbRF_AddVarDescCopy(
+extern _X_EXPORT XkbRF_VarDescPtr	XkbRF_AddVarDescCopy(
     XkbRF_DescribeVarsPtr	/* vars */,
     XkbRF_VarDescPtr		/* copy_from */
 );
 
-extern XkbRF_DescribeVarsPtr XkbRF_AddVarToDescribe(
+extern _X_EXPORT XkbRF_DescribeVarsPtr XkbRF_AddVarToDescribe(
     XkbRF_RulesPtr		/* rules */,
     char *			/* name */
 );
 
-extern Bool	XkbRF_LoadDescriptions(
+extern _X_EXPORT Bool	XkbRF_LoadDescriptions(
     FILE *		/* file */,
     XkbRF_RulesPtr	/* rules */
 );
 
-extern Bool XkbRF_LoadDescriptionsByName(
+extern _X_EXPORT Bool XkbRF_LoadDescriptionsByName(
     char *		/* base */,
     char *		/* locale */,
     XkbRF_RulesPtr	/* rules */
 );
 
-extern XkbRF_RulesPtr XkbRF_Load(
+extern _X_EXPORT XkbRF_RulesPtr XkbRF_Load(
     char *		/* base */,
     char *		/* locale */,
     Bool		/* wantDesc */,
     Bool		/* wantRules */
 );
 
-extern XkbRF_RulesPtr XkbRF_Create(
+extern _X_EXPORT XkbRF_RulesPtr XkbRF_Create(
     int			/* sz_rules */,
     int			/* sz_extra */
 );
 
 /***====================================================================***/
 
-extern void XkbRF_Free(
+extern _X_EXPORT void XkbRF_Free(
     XkbRF_RulesPtr	/* rules */,
     Bool		/* freeRules */
 );
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 32661a9..ac1d822 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -273,10 +273,10 @@ typedef struct
 	device->public.realInputProc = oldprocs->realInputProc; \
 	device->unwrapProc = oldprocs->unwrapProc;
 
-extern DevPrivateKey xkbDevicePrivateKey;
+extern _X_EXPORT DevPrivateKey xkbDevicePrivateKey;
 #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
 
-extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
+extern _X_EXPORT void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
 
 /***====================================================================***/
 
@@ -289,18 +289,20 @@ extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
 
 /***====================================================================***/
 
-extern int	XkbReqCode;
-extern int	XkbEventBase;
-extern int	XkbDisableLockActions;
-extern int	XkbKeyboardErrorCode;
-extern char *	XkbBaseDirectory;
-extern char *	XkbBinDirectory;
+extern _X_EXPORT int	XkbReqCode;
+extern _X_EXPORT int	XkbEventBase;
+extern _X_EXPORT int	XkbDisableLockActions;
+extern _X_EXPORT int	XkbKeyboardErrorCode;
+extern _X_EXPORT char *	XkbBaseDirectory;
+extern _X_EXPORT char *	XkbBinDirectory;
+extern _X_EXPORT int	XkbDfltRepeatDelay;
+extern _X_EXPORT int	XkbDfltRepeatInterval;
 
-extern Bool	noXkbExtension;
+extern _X_EXPORT Bool	noXkbExtension;
 
-extern pointer	XkbLastRepeatEvent;
+extern _X_EXPORT pointer	XkbLastRepeatEvent;
 
-extern CARD32	xkbDebugFlags;
+extern _X_EXPORT CARD32	xkbDebugFlags;
 
 #define	_XkbAlloc(s)		xalloc((s))
 #define	_XkbCalloc(n,s)		Xcalloc((n)*(s))
@@ -317,9 +319,9 @@ extern CARD32	xkbDebugFlags;
 #define	_XkbErrCode3(a,b,c)	_XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
 #define	_XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
 
-extern	int	DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify;
-extern	int	DeviceButtonPress,DeviceButtonRelease;
-extern	int	DeviceEnterNotify,DeviceLeaveNotify;
+extern	_X_EXPORT int	DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify;
+extern	_X_EXPORT int	DeviceButtonPress,DeviceButtonRelease;
+extern	_X_EXPORT int	DeviceEnterNotify,DeviceLeaveNotify;
 
 #define	_XkbIsPressEvent(t)	(((t)==KeyPress)||((t)==DeviceKeyPress))
 #define	_XkbIsReleaseEvent(t)	(((t)==KeyRelease)||((t)==DeviceKeyRelease))
@@ -342,31 +344,31 @@ extern	int	DeviceEnterNotify,DeviceLeaveNotify;
 
 _XFUNCPROTOBEGIN
 
-extern void XkbUseMsg(
+extern _X_EXPORT void XkbUseMsg(
     void
 );
 
-extern int XkbProcessArguments(
+extern _X_EXPORT int XkbProcessArguments(
     int				/* argc */,
     char **			/* argv */,
     int				/* i */
 );
 
-extern	void	XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
+extern _X_EXPORT void	XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
 
-extern	void	XkbFreeCompatMap(
+extern _X_EXPORT void	XkbFreeCompatMap(
     XkbDescPtr			/* xkb */,
     unsigned int		/* which */,
     Bool			/* freeMap */
 );
 
-extern	void XkbFreeNames(
+extern _X_EXPORT void XkbFreeNames(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* which */,
 	Bool			/* freeMap */
 );
 
-extern int _XkbLookupAnyDevice(
+extern _X_EXPORT int _XkbLookupAnyDevice(
     DeviceIntPtr *pDev,
     int id,
     ClientPtr client,
@@ -374,7 +376,7 @@ extern int _XkbLookupAnyDevice(
     int *xkb_err
 );
 
-extern int _XkbLookupKeyboard(
+extern _X_EXPORT int _XkbLookupKeyboard(
     DeviceIntPtr *pDev,
     int id,
     ClientPtr client,
@@ -382,7 +384,7 @@ extern int _XkbLookupKeyboard(
     int *xkb_err
 );
 
-extern int _XkbLookupBellDevice(
+extern _X_EXPORT int _XkbLookupBellDevice(
     DeviceIntPtr *pDev,
     int id,
     ClientPtr client,
@@ -390,7 +392,7 @@ extern int _XkbLookupBellDevice(
     int *xkb_err
 );
 
-extern int _XkbLookupLedDevice(
+extern _X_EXPORT int _XkbLookupLedDevice(
     DeviceIntPtr *pDev,
     int id,
     ClientPtr client,
@@ -398,7 +400,7 @@ extern int _XkbLookupLedDevice(
     int *xkb_err
 );
 
-extern int _XkbLookupButtonDevice(
+extern _X_EXPORT int _XkbLookupButtonDevice(
     DeviceIntPtr *pDev,
     int id,
     ClientPtr client,
@@ -406,63 +408,63 @@ extern int _XkbLookupButtonDevice(
     int *xkb_err
 );
 
-extern	XkbDescPtr XkbAllocKeyboard(
+extern _X_EXPORT XkbDescPtr XkbAllocKeyboard(
 	void
 );
 
-extern	Status XkbAllocClientMap(
+extern _X_EXPORT Status XkbAllocClientMap(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* which */,
 	unsigned int		/* nTypes */
 );
 
-extern	Status XkbAllocServerMap(
+extern _X_EXPORT Status XkbAllocServerMap(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* which */,
 	unsigned int		/* nNewActions */
 );
 
-extern	void	XkbFreeClientMap(
+extern _X_EXPORT void	XkbFreeClientMap(
     XkbDescPtr			/* xkb */,
     unsigned int		/* what */,
     Bool			/* freeMap */
 );
 
-extern	void	XkbFreeServerMap(
+extern _X_EXPORT void	XkbFreeServerMap(
     XkbDescPtr			/* xkb */,
     unsigned int		/* what */,
     Bool			/* freeMap */
 );
 
-extern	Status XkbAllocIndicatorMaps(
+extern _X_EXPORT Status XkbAllocIndicatorMaps(
 	XkbDescPtr		/* xkb */
 );
 
-extern	Status	XkbAllocCompatMap(
+extern _X_EXPORT Status	XkbAllocCompatMap(
     XkbDescPtr			/* xkb */,
     unsigned int		/* which */,
     unsigned int		/* nInterpret */
 );
 
-extern	Status XkbAllocNames(
+extern _X_EXPORT Status XkbAllocNames(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* which */,
 	int			/* nTotalRG */,
 	int			/* nTotalAliases */
 );
 
-extern	Status	XkbAllocControls(
+extern _X_EXPORT Status	XkbAllocControls(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* which*/
 );
 
-extern	Status	XkbCopyKeyTypes(
+extern _X_EXPORT Status	XkbCopyKeyTypes(
     XkbKeyTypePtr		/* from */,
     XkbKeyTypePtr		/* into */,
     int				/* num_types */
 );
 
-extern	Status	XkbResizeKeyType(
+extern _X_EXPORT Status	XkbResizeKeyType(
     XkbDescPtr		/* xkb */,
     int			/* type_ndx */,
     int			/* map_count */,
@@ -470,61 +472,61 @@ extern	Status	XkbResizeKeyType(
     int			/* new_num_lvls */
 );
 
-extern	void	XkbFreeKeyboard(
+extern _X_EXPORT void	XkbFreeKeyboard(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* which */,
 	Bool			/* freeDesc */
 );
 
-extern  void XkbSetActionKeyMods(
+extern _X_EXPORT  void XkbSetActionKeyMods(
 	XkbDescPtr		/* xkb */,
 	XkbAction *		/* act */,
 	unsigned int 		/* mods */
 );
 
-extern	unsigned int XkbMaskForVMask(
+extern _X_EXPORT unsigned int XkbMaskForVMask(
     XkbDescPtr		/* xkb */,
     unsigned int	/* vmask */
 );
 
-extern Bool XkbVirtualModsToReal(
+extern _X_EXPORT Bool XkbVirtualModsToReal(
 	XkbDescPtr	/* xkb */,
 	unsigned int	/* virtua_mask */,
 	unsigned int *	/* mask_rtrn */
 );
 
-extern	unsigned int	XkbAdjustGroup(
+extern _X_EXPORT unsigned int	XkbAdjustGroup(
     int			/* group */,
     XkbControlsPtr	/* ctrls */
 );
 
-extern KeySym *XkbResizeKeySyms(
+extern _X_EXPORT KeySym *XkbResizeKeySyms(
     XkbDescPtr		/* xkb */,
     int 		/* key */,
     int 		/* needed */
 );
 
-extern XkbAction *XkbResizeKeyActions(
+extern _X_EXPORT XkbAction *XkbResizeKeyActions(
     XkbDescPtr		/* xkb */,
     int 		/* key */,
     int 		/* needed */
 );
 
-extern void XkbUpdateKeyTypesFromCore(
+extern _X_EXPORT void XkbUpdateKeyTypesFromCore(
     DeviceIntPtr	/* pXDev */,
     KeyCode 		/* first */,
     CARD8 		/* num */,
     XkbChangesPtr	/* pChanges */
 );
 
-extern	void XkbUpdateDescActions(	
+extern _X_EXPORT void XkbUpdateDescActions(
     XkbDescPtr		/* xkb */,
     KeyCode		/* first */,
     CARD8		/* num */,
     XkbChangesPtr	/* changes */
 );
 
-extern void XkbUpdateActions(
+extern _X_EXPORT void XkbUpdateActions(
     DeviceIntPtr	/* pXDev */,
     KeyCode 		/* first */,
     CARD8 		/* num */,
@@ -533,12 +535,12 @@ extern void XkbUpdateActions(
     XkbEventCausePtr	/* cause */
 );
 
-extern void XkbUpdateCoreDescription(
+extern _X_EXPORT void XkbUpdateCoreDescription(
     DeviceIntPtr	/* keybd */,
     Bool		/* resize */
 );
 
-extern void XkbApplyMappingChange(
+extern _X_EXPORT void XkbApplyMappingChange(
     DeviceIntPtr	/* pXDev */,
     CARD8 		/* request */,
     KeyCode 		/* firstKey */,
@@ -546,14 +548,14 @@ extern void XkbApplyMappingChange(
     ClientPtr		/* client */
 );
 
-extern void XkbSetIndicators(
+extern _X_EXPORT void XkbSetIndicators(
     DeviceIntPtr		/* pXDev */,
     CARD32			/* affect */,
     CARD32			/* values */,
     XkbEventCausePtr		/* cause */
 );
 
-extern void XkbUpdateIndicators(
+extern _X_EXPORT void XkbUpdateIndicators(
     DeviceIntPtr		/* keybd */,
     CARD32		 	/* changed */,
     Bool			/* check_edevs */,
@@ -561,14 +563,14 @@ extern void XkbUpdateIndicators(
     XkbEventCausePtr		/* cause */
 );
 
-extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
+extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
     DeviceIntPtr		/* dev */,
     KbdFeedbackPtr		/* kf */,
     LedFeedbackPtr		/* lf */,
     unsigned int		/* needed_parts */
 );
 
-extern XkbSrvLedInfoPtr XkbCopySrvLedInfo(
+extern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo(
     DeviceIntPtr		/* dev */,
     XkbSrvLedInfoPtr		/* src */,
     KbdFeedbackPtr		/* kf */,
@@ -576,14 +578,14 @@ extern XkbSrvLedInfoPtr XkbCopySrvLedInfo(
 );
 
 
-extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
+extern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo(
     DeviceIntPtr		/* dev */,
     unsigned int		/* class */,
     unsigned int		/* id */,
     unsigned int		/* needed_parts */
 );
 
-extern void XkbApplyLedNameChanges(
+extern _X_EXPORT void XkbApplyLedNameChanges(
     DeviceIntPtr		/* dev */,
     XkbSrvLedInfoPtr		/* sli */,
     unsigned int		/* changed_names */,
@@ -592,7 +594,7 @@ extern void XkbApplyLedNameChanges(
     XkbEventCausePtr		/* cause */
 );
 
-extern void XkbApplyLedMapChanges(
+extern _X_EXPORT void XkbApplyLedMapChanges(
     DeviceIntPtr		/* dev */,
     XkbSrvLedInfoPtr		/* sli */,
     unsigned int		/* changed_maps */,
@@ -601,7 +603,7 @@ extern void XkbApplyLedMapChanges(
     XkbEventCausePtr		/* cause */
 );
 
-extern void XkbApplyLedStateChanges(
+extern _X_EXPORT void XkbApplyLedStateChanges(
     DeviceIntPtr		/* dev */,
     XkbSrvLedInfoPtr		/* sli */,
     unsigned int		/* changed_leds */,
@@ -610,7 +612,7 @@ extern void XkbApplyLedStateChanges(
     XkbEventCausePtr		/* cause */
 );
 
-extern void XkbFlushLedEvents(	
+extern _X_EXPORT void XkbFlushLedEvents(
     DeviceIntPtr		/* dev */,
     DeviceIntPtr		/* kbd */,
     XkbSrvLedInfoPtr		/* sli */,
@@ -619,45 +621,45 @@ extern void XkbFlushLedEvents(
     XkbEventCausePtr		/* cause */
 );
 
-extern unsigned int XkbIndicatorsToUpdate(
+extern _X_EXPORT unsigned int XkbIndicatorsToUpdate(
     DeviceIntPtr		/* dev */,
     unsigned long		/* state_changes */,
     Bool			/* enabled_ctrl_changes */
 );
 
-extern void XkbComputeDerivedState(
+extern _X_EXPORT void XkbComputeDerivedState(
     XkbSrvInfoPtr		/* xkbi */
 );
 
-extern void XkbCheckSecondaryEffects(
+extern _X_EXPORT void XkbCheckSecondaryEffects(
     XkbSrvInfoPtr		/* xkbi */,
     unsigned int		/* which */,
     XkbChangesPtr		/* changes */,
     XkbEventCausePtr		/* cause */
 );
 
-extern void XkbCheckIndicatorMaps(
+extern _X_EXPORT void XkbCheckIndicatorMaps(
     DeviceIntPtr		/* dev */,
     XkbSrvLedInfoPtr		/* sli */,
     unsigned int		/* which */
 );
 
-extern unsigned int XkbStateChangedFlags(
+extern _X_EXPORT unsigned int XkbStateChangedFlags(
     XkbStatePtr			/* old */,
     XkbStatePtr			/* new */
 );
 
-extern	void XkbSendStateNotify(
+extern _X_EXPORT void XkbSendStateNotify(
        DeviceIntPtr	/* kbd */,
        xkbStateNotify *	/* pSN */
 );
 
-extern	void XkbSendMapNotify(
+extern _X_EXPORT void XkbSendMapNotify(
        DeviceIntPtr	/* kbd */,
        xkbMapNotify *	/* ev */
 );
 
-extern	int  XkbComputeControlsNotify(
+extern _X_EXPORT int  XkbComputeControlsNotify(
 	DeviceIntPtr		/* kbd */,
 	XkbControlsPtr		/* old */,
 	XkbControlsPtr		/* new */,
@@ -665,17 +667,17 @@ extern	int  XkbComputeControlsNotify(
 	Bool			/* forceCtrlProc */
 );
 
-extern	void XkbSendControlsNotify(
+extern _X_EXPORT void XkbSendControlsNotify(
        DeviceIntPtr		/* kbd */,
        xkbControlsNotify *	/* ev */
 );
 
-extern	void XkbSendCompatMapNotify(
+extern _X_EXPORT void XkbSendCompatMapNotify(
 	DeviceIntPtr		/* kbd */,
 	xkbCompatMapNotify *	/* ev */
 );
 
-extern	void XkbHandleBell(
+extern _X_EXPORT void XkbHandleBell(
        BOOL		/* force */,
        BOOL		/* eventOnly */,
        DeviceIntPtr	/* kbd */,
@@ -687,47 +689,47 @@ extern	void XkbHandleBell(
        ClientPtr	/* pClient */
 );
 
-extern	void XkbSendAccessXNotify(
+extern _X_EXPORT void XkbSendAccessXNotify(
        DeviceIntPtr		/* kbd */,
        xkbAccessXNotify *	/* pEv */
 );
 
-extern	void XkbSendNamesNotify(
+extern _X_EXPORT void XkbSendNamesNotify(
        DeviceIntPtr	/* kbd */,
        xkbNamesNotify *	/* ev */
 );
 
-extern	void XkbSendActionMessage(
+extern _X_EXPORT void XkbSendActionMessage(
        DeviceIntPtr		/* kbd */,
        xkbActionMessage *	/* ev */
 );
 
-extern	void XkbSendExtensionDeviceNotify(
+extern _X_EXPORT void XkbSendExtensionDeviceNotify(
        DeviceIntPtr			/* kbd */,
        ClientPtr			/* client */,
        xkbExtensionDeviceNotify *	/* ev */
 );
 
-extern void XkbSendNotification(
+extern _X_EXPORT void XkbSendNotification(
     DeviceIntPtr		/* kbd */,
     XkbChangesPtr		/* pChanges */,
     XkbEventCausePtr		/* cause */
 );
 
-extern void XkbProcessKeyboardEvent(
+extern _X_EXPORT void XkbProcessKeyboardEvent(
     struct _xEvent * 		/* xE */,
     DeviceIntPtr		/* keybd */,
     int 			/* count */
 );
 
-extern void XkbHandleActions(
+extern _X_EXPORT void XkbHandleActions(
     DeviceIntPtr		/* dev */,
     DeviceIntPtr		/* kbd */,
     struct _xEvent * 		/* xE */,
     int 			/* count */
 );
 
-extern Bool XkbEnableDisableControls(
+extern _X_EXPORT Bool XkbEnableDisableControls(
     XkbSrvInfoPtr	/* xkbi */,
     unsigned long	/* change */,
     unsigned long	/* newValues */,
@@ -735,145 +737,145 @@ extern Bool XkbEnableDisableControls(
     XkbEventCausePtr	/* cause */
 );
 
-extern void AccessXInit(
+extern _X_EXPORT void AccessXInit(
     DeviceIntPtr        /* dev */
 );
 
-extern Bool AccessXFilterPressEvent(
+extern _X_EXPORT Bool AccessXFilterPressEvent(
     struct _xEvent *	/* xE */,
     DeviceIntPtr	/* keybd */,
     int				/* count */
 );
 
-extern Bool AccessXFilterReleaseEvent(
+extern _X_EXPORT Bool AccessXFilterReleaseEvent(
     struct _xEvent *	/* xE */,
     DeviceIntPtr	/* keybd */,
     int				/* count */
 );
 
-extern void AccessXCancelRepeatKey(
+extern _X_EXPORT void AccessXCancelRepeatKey(
     XkbSrvInfoPtr	/* xkbi */,
     KeyCode		/* key */
 );
 
-extern void AccessXComputeCurveFactor(
+extern _X_EXPORT void AccessXComputeCurveFactor(
     XkbSrvInfoPtr	/* xkbi */,
     XkbControlsPtr	/* ctrls */
 );
 
-extern	XkbInterestPtr XkbFindClientResource(
+extern _X_EXPORT XkbInterestPtr XkbFindClientResource(
        DevicePtr	/* inDev */,
        ClientPtr	/* client */
 );
 
-extern	XkbInterestPtr XkbAddClientResource(
+extern _X_EXPORT XkbInterestPtr XkbAddClientResource(
        DevicePtr	/* inDev */,
        ClientPtr	/* client */,
        XID		/* id */
 );
 
-extern	int XkbRemoveResourceClient(
+extern _X_EXPORT int XkbRemoveResourceClient(
        DevicePtr	/* inDev */,
        XID		/* id */
 );
 
-extern int XkbDDXInitDevice(
+extern _X_EXPORT int XkbDDXInitDevice(
     DeviceIntPtr        /* dev */
 );
 
-extern	int XkbDDXAccessXBeep(
+extern _X_EXPORT int XkbDDXAccessXBeep(
     DeviceIntPtr        /* dev */,
     unsigned int	/* what */,
     unsigned int	/* which */
 );
 
-extern	void XkbDDXKeyClick(
+extern _X_EXPORT void XkbDDXKeyClick(
     DeviceIntPtr	/* dev */,
     int			/* keycode */,
     int			/* synthetic */
 );
 
-extern 	int XkbDDXUsesSoftRepeat(
+extern _X_EXPORT int XkbDDXUsesSoftRepeat(
     DeviceIntPtr	/* dev */
 );
 
-extern	void XkbDDXKeybdCtrlProc(
+extern _X_EXPORT void XkbDDXKeybdCtrlProc(
 	DeviceIntPtr	/* dev */,
 	KeybdCtrl *	/* ctrl */
 );
 
-extern void XkbDDXChangeControls(
+extern _X_EXPORT void XkbDDXChangeControls(
 	DeviceIntPtr	/* dev */,
 	XkbControlsPtr 	/* old */,
 	XkbControlsPtr 	/* new */
 );
 
-extern void XkbDDXUpdateDeviceIndicators(
+extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(
 	DeviceIntPtr		/* dev */,
 	XkbSrvLedInfoPtr	/* sli */,
 	CARD32			/* newState */
 );
 
-extern void XkbDDXFakePointerMotion(
+extern _X_EXPORT void XkbDDXFakePointerMotion(
  	unsigned int	/* flags */,
 	int		/* x */,
 	int		/* y */
 );
 
-extern void XkbDDXFakeDeviceButton(
+extern _X_EXPORT void XkbDDXFakeDeviceButton(
 	DeviceIntPtr	/* dev */,
 	Bool		/* press */,
 	int		/* button */
 );
 
-extern int XkbDDXTerminateServer(
+extern _X_EXPORT int XkbDDXTerminateServer(
 	DeviceIntPtr	/* dev */,
 	KeyCode		/* key */,
 	XkbAction *	/* act */
 );
 
-extern int XkbDDXSwitchScreen(
+extern _X_EXPORT int XkbDDXSwitchScreen(
 	DeviceIntPtr	/* dev */,
 	KeyCode		/* key */,
 	XkbAction *	/* act */
 );
 
-extern int XkbDDXPrivate(
+extern _X_EXPORT int XkbDDXPrivate(
 	DeviceIntPtr	/* dev */,
 	KeyCode		/* key */,
 	XkbAction *	/* act */
 );
 
-extern void XkbDisableComputedAutoRepeats(
+extern _X_EXPORT void XkbDisableComputedAutoRepeats(
 	DeviceIntPtr 	/* pXDev */,
 	unsigned int	/* key */
 );
 
-extern void XkbSetRepeatKeys(
+extern _X_EXPORT void XkbSetRepeatKeys(
 	DeviceIntPtr 	/* pXDev */,
 	int		/* key */,
 	int	 	/* onoff */
 );
 
-extern	int XkbLatchModifiers(
+extern _X_EXPORT int XkbLatchModifiers(
 	DeviceIntPtr 	/* pXDev */,
 	CARD8 		/* mask */,
 	CARD8 		/* latches */
 );
 
-extern	int XkbLatchGroup(
+extern _X_EXPORT int XkbLatchGroup(
 	DeviceIntPtr  	/* pXDev */,
 	int	  	/* group */
 );
 
-extern	void XkbClearAllLatchesAndLocks(
+extern _X_EXPORT void XkbClearAllLatchesAndLocks(
 	DeviceIntPtr		/* dev */,
 	XkbSrvInfoPtr		/* xkbi */,
 	Bool			/* genEv */,
 	XkbEventCausePtr	/* cause */
 );
 
-extern	void	XkbSetRulesDflts(
+extern _X_EXPORT void	XkbSetRulesDflts(
 	char *			/* rulesFile */,
 	char *			/* model */,
 	char *			/* layout */,
@@ -881,15 +883,15 @@ extern	void	XkbSetRulesDflts(
 	char *			/* options */
 );
 
-extern	void	XkbDeleteRulesDflts(
+extern _X_EXPORT void	XkbDeleteRulesDflts(
 	void
 );
 
-extern	void	XkbInitDevice(
+extern _X_EXPORT void	XkbInitDevice(
 	DeviceIntPtr 	/* pXDev */
 );
 
-extern	Bool	XkbInitKeyboardDeviceStruct(
+extern _X_EXPORT Bool	XkbInitKeyboardDeviceStruct(
 	DeviceIntPtr 		/* pXDev */,
 	XkbComponentNamesPtr	/* pNames */,
 	KeySymsPtr		/* pSyms */,
@@ -898,46 +900,46 @@ extern	Bool	XkbInitKeyboardDeviceStruct(
 	KbdCtrlProcPtr		/* ctrlProc */
 );
 
-extern	int SProcXkbDispatch(
+extern _X_EXPORT int SProcXkbDispatch(
 	ClientPtr		/* client */
 );
 
-extern XkbGeometryPtr XkbLookupNamedGeometry(
+extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(
 	DeviceIntPtr		/* dev */,
 	Atom			/* name */,
 	Bool *			/* shouldFree */
 );
 
-extern char *	_XkbDupString(
+extern _X_EXPORT char *	_XkbDupString(
 	char *			/* str */
 );
 
-extern void	XkbConvertCase(
+extern _X_EXPORT void	XkbConvertCase(
 	KeySym 			/* sym */,
 	KeySym *		/* lower */,
 	KeySym *		/* upper */
 );
 
-extern	Status	 XkbChangeKeycodeRange(	
+extern _X_EXPORT Status	 XkbChangeKeycodeRange(
 	XkbDescPtr		/* xkb */,
 	int 			/* minKC */,
 	int 			/* maxKC */,
 	XkbChangesPtr		/* changes */
 );
 
-extern int XkbFinishDeviceInit(
+extern _X_EXPORT int XkbFinishDeviceInit(
 	DeviceIntPtr		/* pXDev */
 );
 
-extern void XkbFreeSrvLedInfo(
+extern _X_EXPORT void XkbFreeSrvLedInfo(
 	XkbSrvLedInfoPtr	/* sli */
 );
 
-extern void XkbFreeInfo(
+extern _X_EXPORT void XkbFreeInfo(
 	XkbSrvInfoPtr		/* xkbi */
 );
 
-extern Status XkbChangeTypesOfKey(
+extern _X_EXPORT Status XkbChangeTypesOfKey(
 	XkbDescPtr		/* xkb */,
 	int			/* key */,
 	int			/* nGroups */,
@@ -946,7 +948,7 @@ extern Status XkbChangeTypesOfKey(
 	XkbMapChangesPtr	/* changes */
 );
 
-extern int XkbKeyTypesForCoreSymbols(
+extern _X_EXPORT int XkbKeyTypesForCoreSymbols(
 	XkbDescPtr		/* xkb */,
 	int			/* map_width */,
 	KeySym *		/* core_syms */,
@@ -955,19 +957,19 @@ extern int XkbKeyTypesForCoreSymbols(
 	KeySym *		/* xkb_syms_rtrn */
 );
 
-extern Bool XkbApplyCompatMapToKey(
+extern _X_EXPORT Bool XkbApplyCompatMapToKey(
 	XkbDescPtr		/* xkb */,
 	KeyCode			/* key */,
 	XkbChangesPtr		/* changes */
 );
 
-extern Bool XkbApplyVirtualModChanges(
+extern _X_EXPORT Bool XkbApplyVirtualModChanges(
 	XkbDescPtr		/* xkb */,
 	unsigned int		/* changed */,
 	XkbChangesPtr		/* changes */
 );
 
-extern void XkbSendNewKeyboardNotify(
+extern _X_EXPORT void XkbSendNewKeyboardNotify(
 	DeviceIntPtr		/* kbd */,
 	xkbNewKeyboardNotify *	/* pNKN */
 );
@@ -996,13 +998,13 @@ typedef struct _XkbSrvListInfo {
 	int		nFound[_XkbListNumComponents];
 } XkbSrvListInfoRec,*XkbSrvListInfoPtr;
 
-extern	Status	XkbDDXList(
+extern _X_EXPORT Status	XkbDDXList(
 	DeviceIntPtr		/* dev */,
 	XkbSrvListInfoPtr	/* listing */,
 	ClientPtr		/* client */
 );
 
-extern	unsigned int XkbDDXLoadKeymapByNames(
+extern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames(
 	DeviceIntPtr		/* keybd */,
 	XkbComponentNamesPtr	/* names */,
 	unsigned int		/* want */,
@@ -1012,7 +1014,7 @@ extern	unsigned int XkbDDXLoadKeymapByNames(
 	int 			/* keymapNameRtrnLen */
 );
 
-extern	Bool XkbDDXNamesFromRules(
+extern _X_EXPORT Bool XkbDDXNamesFromRules(
 	DeviceIntPtr		/* keybd */,
 	char *			/* rules */,
 	XkbRF_VarDefsPtr	/* defs */,
diff --git a/mi/Makefile.am b/mi/Makefile.am
index 7d76929..e6a4e60 100644
--- a/mi/Makefile.am
+++ b/mi/Makefile.am
@@ -3,7 +3,7 @@ noinst_LTLIBRARIES = libmi.la
 if XORG
 sdk_HEADERS = mibank.h micmap.h miline.h mipointer.h mi.h mibstore.h \
               migc.h mipointrst.h mizerarc.h micoord.h mifillarc.h \
-              mispans.h miwideline.h mistruct.h mifpoly.h
+              mispans.h miwideline.h mistruct.h mifpoly.h mioverlay.h
 endif
 
 AM_CFLAGS = $(DIX_CFLAGS)
diff --git a/mi/mi.h b/mi/mi.h
index 444d3ad..23f9abb 100644
--- a/mi/mi.h
+++ b/mi/mi.h
@@ -65,7 +65,7 @@ typedef struct _miDash *miDashPtr;
 
 /* miarc.c */
 
-extern void miPolyArc(
+extern _X_EXPORT void miPolyArc(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*narcs*/,
@@ -74,7 +74,7 @@ extern void miPolyArc(
 
 /* mibitblt.c */
 
-extern RegionPtr miCopyArea(
+extern _X_EXPORT RegionPtr miCopyArea(
     DrawablePtr /*pSrcDrawable*/,
     DrawablePtr /*pDstDrawable*/,
     GCPtr /*pGC*/,
@@ -86,7 +86,7 @@ extern RegionPtr miCopyArea(
     int /*yOut*/
 );
 
-extern RegionPtr miCopyPlane(
+extern _X_EXPORT RegionPtr miCopyPlane(
     DrawablePtr /*pSrcDrawable*/,
     DrawablePtr /*pDstDrawable*/,
     GCPtr /*pGC*/,
@@ -99,7 +99,7 @@ extern RegionPtr miCopyPlane(
     unsigned long /*bitPlane*/
 );
 
-extern void miGetImage(
+extern _X_EXPORT void miGetImage(
     DrawablePtr /*pDraw*/,
     int /*sx*/,
     int /*sy*/,
@@ -110,7 +110,7 @@ extern void miGetImage(
     char * /*pdstLine*/
 );
 
-extern void miPutImage(
+extern _X_EXPORT void miPutImage(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*depth*/,
@@ -125,7 +125,7 @@ extern void miPutImage(
 
 /* micursor.c */
 
-extern void miRecolorCursor(
+extern _X_EXPORT void miRecolorCursor(
     DeviceIntPtr /* pDev */,
     ScreenPtr /*pScr*/,
     CursorPtr /*pCurs*/,
@@ -134,7 +134,7 @@ extern void miRecolorCursor(
 
 /* midash.c */
 
-extern void miStepDash(
+extern _X_EXPORT void miStepDash(
     int /*dist*/,
     int * /*pDashIndex*/,
     unsigned char * /*pDash*/,
@@ -149,35 +149,35 @@ extern void miStepDash(
 typedef struct _DeviceRec *DevicePtr;
 #endif
 
-extern Bool mieqInit(
+extern _X_EXPORT Bool mieqInit(
     void
 );
 
-extern void mieqResizeEvents(
+extern _X_EXPORT void mieqResizeEvents(
     int /* min_size */
 );
 
-extern void mieqEnqueue(
+extern _X_EXPORT void mieqEnqueue(
     DeviceIntPtr /*pDev*/,
     xEventPtr /*e*/
 );
 
-extern void mieqSwitchScreen(
+extern _X_EXPORT void mieqSwitchScreen(
     DeviceIntPtr /* pDev */,
     ScreenPtr /*pScreen*/,
     Bool /*fromDIX*/
 );
 
-extern void mieqProcessInputEvents(
+extern _X_EXPORT void mieqProcessInputEvents(
     void
 );
 
 typedef void (*mieqHandler)(int, xEventPtr, DeviceIntPtr, int);
-void mieqSetHandler(int event, mieqHandler handler);
+void _X_EXPORT mieqSetHandler(int event, mieqHandler handler);
 
 /* miexpose.c */
 
-extern RegionPtr miHandleExposures(
+extern _X_EXPORT RegionPtr miHandleExposures(
     DrawablePtr /*pSrcDrawable*/,
     DrawablePtr /*pDstDrawable*/,
     GCPtr /*pGC*/,
@@ -190,7 +190,7 @@ extern RegionPtr miHandleExposures(
     unsigned long /*plane*/
 );
 
-extern void miSendGraphicsExpose(
+extern _X_EXPORT void miSendGraphicsExpose(
     ClientPtr /*client*/,
     RegionPtr /*pRgn*/,
     XID /*drawable*/,
@@ -198,33 +198,33 @@ extern void miSendGraphicsExpose(
     int /*minor*/
 );
 
-extern void miSendExposures(
+extern _X_EXPORT void miSendExposures(
     WindowPtr /*pWin*/,
     RegionPtr /*pRgn*/,
     int /*dx*/,
     int /*dy*/
 );
 
-extern void miWindowExposures(
+extern _X_EXPORT void miWindowExposures(
     WindowPtr /*pWin*/,
     RegionPtr /*prgn*/,
     RegionPtr /*other_exposed*/
 );
 
-extern void miPaintWindow(
+extern _X_EXPORT void miPaintWindow(
     WindowPtr /*pWin*/,
     RegionPtr /*prgn*/,
     int /*what*/
 );
 
-extern void miClearDrawable(
+extern _X_EXPORT void miClearDrawable(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/
 );
 
 /* mifillrct.c */
 
-extern void miPolyFillRect(
+extern _X_EXPORT void miPolyFillRect(
     DrawablePtr /*pDrawable*/,
     GCPtr /*pGC*/,
     int /*nrectFill*/,
@@ -233,7 +233,7 @@ extern void miPolyFillRect(
 
 /* miglblt.c */
 
-extern void miPolyGlyphBlt(
+extern _X_EXPORT void miPolyGlyphBlt(
     DrawablePtr /*pDrawable*/,
     GCPtr /*pGC*/,
     int /*x*/,
@@ -243,7 +243,7 @@ extern void miPolyGlyphBlt(
     pointer /*pglyphBase*/
 );
 
-extern void miImageGlyphBlt(
+extern _X_EXPORT void miImageGlyphBlt(
     DrawablePtr /*pDrawable*/,
     GCPtr /*pGC*/,
     int /*x*/,
@@ -255,7 +255,7 @@ extern void miImageGlyphBlt(
 
 /* mipoly.c */
 
-extern void miFillPolygon(
+extern _X_EXPORT void miFillPolygon(
     DrawablePtr /*dst*/,
     GCPtr /*pgc*/,
     int /*shape*/,
@@ -266,7 +266,7 @@ extern void miFillPolygon(
 
 /* mipolycon.c */
 
-extern Bool miFillConvexPoly(
+extern _X_EXPORT Bool miFillConvexPoly(
     DrawablePtr /*dst*/,
     GCPtr /*pgc*/,
     int /*count*/,
@@ -275,7 +275,7 @@ extern Bool miFillConvexPoly(
 
 /* mipolygen.c */
 
-extern Bool miFillGeneralPoly(
+extern _X_EXPORT Bool miFillGeneralPoly(
     DrawablePtr /*dst*/,
     GCPtr /*pgc*/,
     int /*count*/,
@@ -284,7 +284,7 @@ extern Bool miFillGeneralPoly(
 
 /* mipolypnt.c */
 
-extern void miPolyPoint(
+extern _X_EXPORT void miPolyPoint(
     DrawablePtr /*pDrawable*/,
     GCPtr /*pGC*/,
     int /*mode*/,
@@ -294,7 +294,7 @@ extern void miPolyPoint(
 
 /* mipolyrect.c */
 
-extern void miPolyRectangle(
+extern _X_EXPORT void miPolyRectangle(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*nrects*/,
@@ -303,7 +303,7 @@ extern void miPolyRectangle(
 
 /* mipolyseg.c */
 
-extern void miPolySegment(
+extern _X_EXPORT void miPolySegment(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*nseg*/,
@@ -312,7 +312,7 @@ extern void miPolySegment(
 
 /* mipolytext.c */
 
-extern int miPolyText8(
+extern _X_EXPORT int miPolyText8(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*x*/,
@@ -321,7 +321,7 @@ extern int miPolyText8(
     char * /*chars*/
 );
 
-extern int miPolyText16(
+extern _X_EXPORT int miPolyText16(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*x*/,
@@ -330,7 +330,7 @@ extern int miPolyText16(
     unsigned short * /*chars*/
 );
 
-extern void miImageText8(
+extern _X_EXPORT void miImageText8(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*x*/,
@@ -339,7 +339,7 @@ extern void miImageText8(
     char * /*chars*/
 );
 
-extern void miImageText16(
+extern _X_EXPORT void miImageText16(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*x*/,
@@ -350,7 +350,7 @@ extern void miImageText16(
 
 /* mipushpxl.c */
 
-extern void miPushPixels(
+extern _X_EXPORT void miPushPixels(
     GCPtr /*pGC*/,
     PixmapPtr /*pBitMap*/,
     DrawablePtr /*pDrawable*/,
@@ -364,22 +364,22 @@ extern void miPushPixels(
 
 /* see also region.h */
 
-extern Bool miRectAlloc(
+extern _X_EXPORT Bool miRectAlloc(
     RegionPtr /*pRgn*/,
     int /*n*/
 );
 
 #ifdef DEBUG
-extern Bool miValidRegion(
+extern _X_EXPORT Bool miValidRegion(
     RegionPtr /*prgn*/
 );
 #endif
 
-extern Bool miRegionBroken(RegionPtr pReg);
+extern _X_EXPORT Bool miRegionBroken(RegionPtr pReg);
 
 /* miscrinit.c */
 
-extern Bool miModifyPixmapHeader(
+extern _X_EXPORT Bool miModifyPixmapHeader(
     PixmapPtr /*pPixmap*/,
     int /*width*/,
     int /*height*/,
@@ -389,17 +389,17 @@ extern Bool miModifyPixmapHeader(
     pointer /*pPixData*/
 );
 
-extern Bool miCreateScreenResources(
+extern _X_EXPORT Bool miCreateScreenResources(
     ScreenPtr /*pScreen*/
 );
 
-extern Bool miScreenDevPrivateInit(
+extern _X_EXPORT Bool miScreenDevPrivateInit(
     ScreenPtr /*pScreen*/,
     int /*width*/,
     pointer /*pbits*/
 );
 
-extern Bool miScreenInit(
+extern _X_EXPORT Bool miScreenInit(
     ScreenPtr /*pScreen*/,
     pointer /*pbits*/,
     int /*xsize*/,
@@ -415,13 +415,13 @@ extern Bool miScreenInit(
     VisualPtr /*visuals*/
 );
 
-extern DevPrivateKey miAllocateGCPrivateIndex(
+extern _X_EXPORT DevPrivateKey miAllocateGCPrivateIndex(
     void
 );
 
 /* mivaltree.c */
 
-extern int miShapedWindowIn(
+extern _X_EXPORT int miShapedWindowIn(
     ScreenPtr /*pScreen*/,
     RegionPtr /*universe*/,
     RegionPtr /*bounding*/,
@@ -436,17 +436,17 @@ typedef void
 typedef RegionPtr
 (*GetRedirectBorderClipProcPtr) (WindowPtr pWindow);
 
-void
+extern _X_EXPORT void
 miRegisterRedirectBorderClipProc (SetRedirectBorderClipProcPtr setBorderClip,
 				  GetRedirectBorderClipProcPtr getBorderClip);
 
-extern int miValidateTree(
+extern _X_EXPORT int miValidateTree(
     WindowPtr /*pParent*/,
     WindowPtr /*pChild*/,
     VTKind /*kind*/
 );
 
-extern void miWideLine(
+extern _X_EXPORT void miWideLine(
     DrawablePtr /*pDrawable*/,
     GCPtr /*pGC*/,
     int /*mode*/,
@@ -454,7 +454,7 @@ extern void miWideLine(
     DDXPointPtr /*pPts*/
 );
 
-extern void miWideDash(
+extern _X_EXPORT void miWideDash(
     DrawablePtr /*pDrawable*/,
     GCPtr /*pGC*/,
     int /*mode*/,
@@ -464,7 +464,7 @@ extern void miWideDash(
 
 /* miwindow.c */
 
-extern void miClearToBackground(
+extern _X_EXPORT void miClearToBackground(
     WindowPtr /*pWin*/,
     int /*x*/,
     int /*y*/,
@@ -473,21 +473,21 @@ extern void miClearToBackground(
     Bool /*generateExposures*/
 );
 
-extern void miMarkWindow(
+extern _X_EXPORT void miMarkWindow(
     WindowPtr /*pWin*/
 );
 
-extern Bool miMarkOverlappedWindows(
+extern _X_EXPORT Bool miMarkOverlappedWindows(
     WindowPtr /*pWin*/,
     WindowPtr /*pFirst*/,
     WindowPtr * /*ppLayerWin*/
 );
 
-extern void miHandleValidateExposures(
+extern _X_EXPORT void miHandleValidateExposures(
     WindowPtr /*pWin*/
 );
 
-extern void miMoveWindow(
+extern _X_EXPORT void miMoveWindow(
     WindowPtr /*pWin*/,
     int /*x*/,
     int /*y*/,
@@ -495,7 +495,7 @@ extern void miMoveWindow(
     VTKind /*kind*/
 );
 
-extern void miSlideAndSizeWindow(
+extern _X_EXPORT void miSlideAndSizeWindow(
     WindowPtr /*pWin*/,
     int /*x*/,
     int /*y*/,
@@ -504,30 +504,30 @@ extern void miSlideAndSizeWindow(
     WindowPtr /*pSib*/
 );
 
-extern WindowPtr miGetLayerWindow(
+extern _X_EXPORT WindowPtr miGetLayerWindow(
     WindowPtr /*pWin*/
 );
 
-extern void miSetShape(
+extern _X_EXPORT void miSetShape(
     WindowPtr /*pWin*/
 );
 
-extern void miChangeBorderWidth(
+extern _X_EXPORT void miChangeBorderWidth(
     WindowPtr /*pWin*/,
     unsigned int /*width*/
 );
 
-extern void miMarkUnrealizedWindow(
+extern _X_EXPORT void miMarkUnrealizedWindow(
     WindowPtr /*pChild*/,
     WindowPtr /*pWin*/,
     Bool /*fromConfigure*/
 );
 
-extern void miSegregateChildren(WindowPtr pWin, RegionPtr pReg, int depth);
+extern _X_EXPORT void miSegregateChildren(WindowPtr pWin, RegionPtr pReg, int depth);
 
 /* mizerarc.c */
 
-extern void miZeroPolyArc(
+extern _X_EXPORT void miZeroPolyArc(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*narcs*/,
@@ -536,7 +536,7 @@ extern void miZeroPolyArc(
 
 /* mizerline.c */
 
-extern void miZeroLine(
+extern _X_EXPORT void miZeroLine(
     DrawablePtr /*dst*/,
     GCPtr /*pgc*/,
     int /*mode*/,
@@ -544,7 +544,7 @@ extern void miZeroLine(
     DDXPointRec * /*pptInit*/
 );
 
-extern void miZeroDashLine(
+extern _X_EXPORT void miZeroDashLine(
     DrawablePtr /*dst*/,
     GCPtr /*pgc*/,
     int /*mode*/,
@@ -552,7 +552,7 @@ extern void miZeroDashLine(
     DDXPointRec * /*pptInit*/
 );
 
-extern void miPolyFillArc(
+extern _X_EXPORT void miPolyFillArc(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     int /*narcs*/,
diff --git a/mi/miarc.c b/mi/miarc.c
index f0c863f..bec3391 100644
--- a/mi/miarc.c
+++ b/mi/miarc.c
@@ -1041,7 +1041,7 @@ miFillWideEllipse(
  * fuller explanation of this.)
  */
 
-_X_EXPORT void
+void
 miPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc *parcs)
 {
     int		i;
diff --git a/mi/mibank.c b/mi/mibank.c
index 84f7559..3946a4b 100644
--- a/mi/mibank.c
+++ b/mi/mibank.c
@@ -1985,7 +1985,7 @@ miBankCopyWindow(
     xfree(pBoxNew1);
 }
 
-_X_EXPORT Bool
+Bool
 miInitializeBanking(
     ScreenPtr     pScreen,
     unsigned int  xsize,
@@ -2210,7 +2210,7 @@ miInitializeBanking(
  * cannot exist.  This function exists because the DDX needs to be able to
  * determine this width before initializing a frame buffer.
  */
-_X_EXPORT int
+int
 miScanLineWidth(
     unsigned int     xsize,         /* pixels */
     unsigned int     ysize,         /* pixels */
diff --git a/mi/mibank.h b/mi/mibank.h
index 327507d..0c10540 100644
--- a/mi/mibank.h
+++ b/mi/mibank.h
@@ -85,7 +85,7 @@ typedef struct _miBankInfo
     unsigned int nBankDepth;
 } miBankInfoRec, *miBankInfoPtr;
 
-Bool
+extern _X_EXPORT Bool
 miInitializeBanking(
     ScreenPtr /*pScreen*/,
     unsigned int /*xsize*/,
@@ -99,7 +99,7 @@ miInitializeBanking(
  * and various screen attributes.  DDX needs to determine this width before
  * initializing the screen.
  */
-int
+extern _X_EXPORT int
 miScanLineWidth(
     unsigned int /*xsize*/,
     unsigned int /*ysize*/,
diff --git a/mi/mibitblt.c b/mi/mibitblt.c
index dbd2ed6..a36e1aa 100644
--- a/mi/mibitblt.c
+++ b/mi/mibitblt.c
@@ -73,7 +73,7 @@ extern int ffs(int);
  *     set them in the destination with SetSpans
  * We let SetSpans worry about clipping to the destination.
  */
-_X_EXPORT RegionPtr
+RegionPtr
 miCopyArea(DrawablePtr  pSrcDrawable,
            DrawablePtr  pDstDrawable,
            GCPtr        pGC,
@@ -548,7 +548,7 @@ miOpqStipDrawable(DrawablePtr pDraw, GCPtr pGC, RegionPtr prgnSrc,
  * build a source clip
  * Use the bitmap we've built up as a Stipple for the destination 
  */
-_X_EXPORT RegionPtr
+RegionPtr
 miCopyPlane( DrawablePtr pSrcDrawable,
              DrawablePtr pDstDrawable,
              GCPtr pGC,
@@ -643,7 +643,7 @@ miCopyPlane( DrawablePtr pSrcDrawable,
  * XY format:
  * get the single plane specified in planemask
  */
-_X_EXPORT void
+void
 miGetImage( DrawablePtr pDraw, int sx, int sy, int w, int h,
             unsigned int format, unsigned long planeMask, char *pDst)
 {
@@ -741,7 +741,7 @@ miGetImage( DrawablePtr pDraw, int sx, int sy, int w, int h,
  * ZPixmap format:
  *	This part is simple, just call SetSpans
  */
-_X_EXPORT void
+void
 miPutImage( DrawablePtr pDraw, GCPtr pGC, int depth,
             int x, int y, int w, int h,
             int leftPad, int format, char *pImage)
diff --git a/mi/mibstore.c b/mi/mibstore.c
index 294b2ca..ef89a76 100644
--- a/mi/mibstore.c
+++ b/mi/mibstore.c
@@ -36,7 +36,7 @@
  * for the implementation.
  */
 
-_X_EXPORT void
+void
 miInitializeBackingStore (ScreenPtr pScreen)
 {
     pScreen->SaveDoomedAreas = NULL;
diff --git a/mi/mibstore.h b/mi/mibstore.h
index baa5920..ef7e187 100644
--- a/mi/mibstore.h
+++ b/mi/mibstore.h
@@ -18,7 +18,7 @@
 
 #include "screenint.h"
 
-extern void miInitializeBackingStore(
+extern _X_EXPORT void miInitializeBackingStore(
     ScreenPtr /*pScreen*/
 );
 
diff --git a/mi/micmap.c b/mi/micmap.c
index b92ddec..342756b 100644
--- a/mi/micmap.c
+++ b/mi/micmap.c
@@ -46,9 +46,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "globals.h"
 #include "micmap.h"
 
-_X_EXPORT ColormapPtr miInstalledMaps[MAXSCREENS];
+ColormapPtr miInstalledMaps[MAXSCREENS];
 
-_X_EXPORT int
+int
 miListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
 {
     if (miInstalledMaps[pScreen->myNum]) {
@@ -58,7 +58,7 @@ miListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
     return 0;
 }
 
-_X_EXPORT void
+void
 miInstallColormap(ColormapPtr pmap)
 {
     int index = pmap->pScreen->myNum;
@@ -77,7 +77,7 @@ miInstallColormap(ColormapPtr pmap)
     }
 }
 
-_X_EXPORT void
+void
 miUninstallColormap(ColormapPtr pmap)
 {
     int index = pmap->pScreen->myNum;
@@ -94,7 +94,7 @@ miUninstallColormap(ColormapPtr pmap)
     }
 }
 
-_X_EXPORT void
+void
 miResolveColor(unsigned short *pred, unsigned short *pgreen,
 		unsigned short *pblue, VisualPtr pVisual)
 {
@@ -116,7 +116,7 @@ miResolveColor(unsigned short *pred, unsigned short *pgreen,
     }
 }
 
-_X_EXPORT Bool
+Bool
 miInitializeColormap(ColormapPtr pmap)
 {
     unsigned i;
@@ -201,7 +201,7 @@ miInitializeColormap(ColormapPtr pmap)
     outdefs[i].blue = pmap->blue[blue >> pVisual->offsetBlue].co.local.blue; \
 }
 
-_X_EXPORT int
+int
 miExpandDirectColors(ColormapPtr pmap, int ndef, xColorItem *indefs,
 			xColorItem *outdefs)
 {
@@ -261,7 +261,7 @@ miExpandDirectColors(ColormapPtr pmap, int ndef, xColorItem *indefs,
     return nresult;
 }
 
-_X_EXPORT Bool
+Bool
 miCreateDefColormap(ScreenPtr pScreen)
 {
 /* 
@@ -378,7 +378,7 @@ static int  miVisualPriority[] = {
 
 static miVisualsPtr	miVisuals;
 
-_X_EXPORT void
+void
 miClearVisualTypes(void)
 {
     miVisualsPtr v;
@@ -390,7 +390,7 @@ miClearVisualTypes(void)
 }
 
 
-_X_EXPORT Bool
+Bool
 miSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB, 
 			 int preferredCVC,
 			 Pixel redMask, Pixel greenMask, Pixel blueMask)
@@ -424,14 +424,14 @@ miSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miSetVisualTypes(int depth, int visuals, int bitsPerRGB, int preferredCVC)
 {
     return miSetVisualTypesAndMasks (depth, visuals, bitsPerRGB,
 				     preferredCVC, 0, 0, 0);
 }
 
-_X_EXPORT int
+int
 miGetDefaultVisualMask(int depth)
 {
     if (depth > MAX_PSEUDO_DEPTH)
@@ -455,7 +455,7 @@ miVisualTypesSet (int depth)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 miSetPixmapDepths (void)
 {
     int	d, f;
@@ -497,7 +497,7 @@ maskShift (Pixel p)
  * the set which can be used with this version of cfb.
  */
 
-_X_EXPORT Bool
+Bool
 miInitVisuals(VisualPtr *visualp, DepthPtr *depthp, int *nvisualp,
 		int *ndepthp, int *rootDepthp, VisualID *defaultVisp,
 		unsigned long sizes, int bitsPerRGB, int preferredVis)
diff --git a/mi/micmap.h b/mi/micmap.h
index 667004b..5c8448a 100644
--- a/mi/micmap.h
+++ b/mi/micmap.h
@@ -4,29 +4,29 @@
 #ifndef _MICMAP_H_
 #define _MICMAP_H_
 
-extern ColormapPtr miInstalledMaps[MAXSCREENS];
+extern _X_EXPORT ColormapPtr miInstalledMaps[MAXSCREENS];
 
 typedef Bool (* miInitVisualsProcPtr)(VisualPtr *, DepthPtr *, int *, int *,
 					int *, VisualID *, unsigned long, int,
 					int);
 
-int miListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
-void miInstallColormap(ColormapPtr pmap);
-void miUninstallColormap(ColormapPtr pmap);
+extern _X_EXPORT int miListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
+extern _X_EXPORT void miInstallColormap(ColormapPtr pmap);
+extern _X_EXPORT void miUninstallColormap(ColormapPtr pmap);
 
-void miResolveColor(unsigned short *, unsigned short *, unsigned short *,
+extern _X_EXPORT void miResolveColor(unsigned short *, unsigned short *, unsigned short *,
 			VisualPtr);
-Bool miInitializeColormap(ColormapPtr);
-int miExpandDirectColors(ColormapPtr, int, xColorItem *, xColorItem *);
-Bool miCreateDefColormap(ScreenPtr);
-void miClearVisualTypes(void);
-Bool miSetVisualTypes(int, int, int, int);
-Bool miSetPixmapDepths(void);
-Bool miSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB, 
+extern _X_EXPORT Bool miInitializeColormap(ColormapPtr);
+extern _X_EXPORT int miExpandDirectColors(ColormapPtr, int, xColorItem *, xColorItem *);
+extern _X_EXPORT Bool miCreateDefColormap(ScreenPtr);
+extern _X_EXPORT void miClearVisualTypes(void);
+extern _X_EXPORT Bool miSetVisualTypes(int, int, int, int);
+extern _X_EXPORT Bool miSetPixmapDepths(void);
+extern _X_EXPORT Bool miSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB,
 			      int preferredCVC,
 			      Pixel redMask, Pixel greenMask, Pixel blueMask);
-int miGetDefaultVisualMask(int);
-Bool miInitVisuals(VisualPtr *, DepthPtr *, int *, int *, int *, VisualID *,
+extern _X_EXPORT int miGetDefaultVisualMask(int);
+extern _X_EXPORT Bool miInitVisuals(VisualPtr *, DepthPtr *, int *, int *, int *, VisualID *,
 			unsigned long, int, int);
 
 #define MAX_PSEUDO_DEPTH	10
diff --git a/mi/micursor.c b/mi/micursor.c
index 8b16490..f6ae8f4 100644
--- a/mi/micursor.c
+++ b/mi/micursor.c
@@ -54,7 +54,7 @@ SOFTWARE.
 #include "mi.h"
 #include "inputstr.h"
 
-_X_EXPORT void
+void
 miRecolorCursor(DeviceIntPtr pDev, ScreenPtr pScr,
                 CursorPtr pCurs, Bool displayed)
 {
diff --git a/mi/midash.c b/mi/midash.c
index 40c741b..ba64d35 100644
--- a/mi/midash.c
+++ b/mi/midash.c
@@ -52,7 +52,7 @@ SOFTWARE.
 #include "mistruct.h"
 #include "mifpoly.h"
 
-_X_EXPORT void
+void
 miStepDash (
     int dist,			/* distance to step */
     int *pDashIndex,		/* current dash */
diff --git a/mi/midispcur.c b/mi/midispcur.c
index 05352fc..4fd187c 100644
--- a/mi/midispcur.c
+++ b/mi/midispcur.c
@@ -136,7 +136,7 @@ static miSpriteCursorFuncRec miDCFuncs = {
     miDCDeviceCleanup
 };
 
-_X_EXPORT Bool
+Bool
 miDCInitialize (ScreenPtr pScreen, miPointerScreenFuncPtr screenFuncs)
 {
     miDCScreenPtr   pScreenPriv;
diff --git a/mi/mieq.c b/mi/mieq.c
index 41b632a..971edf9 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -81,7 +81,7 @@ typedef struct _EventQueue {
 
 static EventQueueRec miEventQueue;
 
-_X_EXPORT Bool
+Bool
 mieqInit(void)
 {
     int i;
@@ -103,7 +103,7 @@ mieqInit(void)
 }
 
 /* Ensure all events in the EQ are at least size bytes. */
-_X_EXPORT void
+void
 mieqResizeEvents(int min_size)
 {
     int i;
@@ -119,7 +119,7 @@ mieqResizeEvents(int min_size)
  * called from regular code.
  */
 
-_X_EXPORT void
+void
 mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
 {
     unsigned int           oldtail = miEventQueue.tail;
@@ -219,7 +219,7 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
     miEventQueue.tail = (oldtail + 1) % QUEUE_SIZE;
 }
 
-_X_EXPORT void
+void
 mieqSwitchScreen(DeviceIntPtr pDev, ScreenPtr pScreen, Bool fromDIX)
 {
     EnqueueScreen(pDev) = pScreen;
@@ -227,7 +227,7 @@ mieqSwitchScreen(DeviceIntPtr pDev, ScreenPtr pScreen, Bool fromDIX)
 	DequeueScreen(pDev) = pScreen;
 }
 
-_X_EXPORT void
+void
 mieqSetHandler(int event, mieqHandler handler)
 {
     if (handler && miEventQueue.handlers[event])
@@ -300,7 +300,7 @@ CopyGetMasterEvent(DeviceIntPtr mdev, xEvent* original,
 }
 
 /* Call this from ProcessInputEvents(). */
-_X_EXPORT void
+void
 mieqProcessInputEvents(void)
 {
     mieqHandler handler;
diff --git a/mi/miexpose.c b/mi/miexpose.c
index d1b64b5..d1fa365 100644
--- a/mi/miexpose.c
+++ b/mi/miexpose.c
@@ -127,7 +127,7 @@ exposing is done by the backing store's GraphicsExpose function, of course.
 
 */
 
-_X_EXPORT RegionPtr
+RegionPtr
 miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
 		  GCPtr pGC, int srcx, int srcy, int width, int height,
 		  int dstx, int dsty, unsigned long plane)
@@ -341,7 +341,7 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
 
 /* send GraphicsExpose events, or a NoExpose event, based on the region */
 
-_X_EXPORT void
+void
 miSendGraphicsExpose (ClientPtr client, RegionPtr pRgn, XID drawable,
                       int major, int minor)
 {
@@ -388,7 +388,7 @@ miSendGraphicsExpose (ClientPtr client, RegionPtr pRgn, XID drawable,
 }
 
 
-_X_EXPORT void
+void
 miSendExposures( WindowPtr pWin, RegionPtr pRgn, int dx, int dy)
 {
     BoxPtr pBox;
@@ -448,7 +448,7 @@ miSendExposures( WindowPtr pWin, RegionPtr pRgn, int dx, int dy)
     xfree(pEvent);
 }
 
-_X_EXPORT void 
+void
 miWindowExposures( WindowPtr pWin, RegionPtr prgn, RegionPtr other_exposed)
 {
     RegionPtr   exposures = prgn;
@@ -514,7 +514,7 @@ miWindowExposures( WindowPtr pWin, RegionPtr prgn, RegionPtr other_exposed)
 	REGION_DESTROY( pWin->drawable.pScreen, exposures);
 }
 
-_X_EXPORT void
+void
 miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
 {
     ScreenPtr	pScreen = pWin->drawable.pScreen;
@@ -636,7 +636,7 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
 /* MICLEARDRAWABLE -- sets the entire drawable to the background color of
  * the GC.  Useful when we have a scratch drawable and need to initialize 
  * it. */
-_X_EXPORT void
+void
 miClearDrawable(DrawablePtr pDraw, GCPtr pGC)
 {
     XID fg = pGC->fgPixel;
diff --git a/mi/mifillarc.c b/mi/mifillarc.c
index f2ab5ce..33a6e35 100644
--- a/mi/mifillarc.c
+++ b/mi/mifillarc.c
@@ -52,7 +52,7 @@ Author:  Bob Scheifler, MIT X Consortium
 #define Dsin(d)	sin((double)d*(M_PI/11520.0))
 #define Dcos(d)	cos((double)d*(M_PI/11520.0))
 
-_X_EXPORT void
+void
 miFillArcSetup(xArc *arc, miFillArcRec *info)
 {
     info->y = arc->height >> 1;
@@ -304,7 +304,7 @@ miGetPieEdge(
     miGetArcEdge(arc, edge, k, top, left);
 }
 
-_X_EXPORT void
+void
 miFillArcSliceSetup(xArc *arc, miArcSliceRec *slice, GCPtr pGC)
 {
     int angle1, angle2;
@@ -770,7 +770,7 @@ miFillArcSliceD(
  * Since we don't have to worry about overlapping segments, we can just
  * fill each arc as it comes.
  */
-_X_EXPORT void
+void
 miPolyFillArc(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc *parcs)
 {
     int i;
diff --git a/mi/mifillarc.h b/mi/mifillarc.h
index 3e3bb98..1158754 100644
--- a/mi/mifillarc.h
+++ b/mi/mifillarc.h
@@ -176,12 +176,12 @@ typedef struct _miArcSlice {
 #define miFillInArcLower(slw) (((iny + dy) != 0) && \
 			       ((slw > 1) || (ine != inxk)))
 
-extern void miFillArcSetup(
+extern _X_EXPORT void miFillArcSetup(
     xArc * /*arc*/,
     miFillArcRec * /*info*/
 );
 
-extern void miFillArcSliceSetup(
+extern _X_EXPORT void miFillArcSliceSetup(
     xArc * /*arc*/,
     miArcSliceRec * /*slice*/,
     GCPtr /*pGC*/
diff --git a/mi/mifillrct.c b/mi/mifillrct.c
index 06f018e..a2967da 100644
--- a/mi/mifillrct.c
+++ b/mi/mifillrct.c
@@ -66,7 +66,7 @@ SOFTWARE.
  * then call FillSpans to fill each rectangle.  We let FillSpans worry about
  * clipping to the destination
  */
-_X_EXPORT void
+void
 miPolyFillRect(
     DrawablePtr	pDrawable,
     GCPtr	pGC,
diff --git a/mi/mifpoly.h b/mi/mifpoly.h
index 7bd77b3..ffd19a3 100644
--- a/mi/mifpoly.h
+++ b/mi/mifpoly.h
@@ -88,7 +88,7 @@ typedef struct _SppArc {
 
 /* mifpolycon.c */
 
-extern void miFillSppPoly(
+extern _X_EXPORT void miFillSppPoly(
     DrawablePtr /*dst*/,
     GCPtr /*pgc*/,
     int /*count*/,
diff --git a/mi/mifpolycon.c b/mi/mifpolycon.c
index 0ccc075..4a3acfd 100644
--- a/mi/mifpolycon.c
+++ b/mi/mifpolycon.c
@@ -70,7 +70,7 @@ static int GetFPolyYBounds(SppPointPtr pts, int n, double yFtrans,
  *	line algorithm with y as the major axis. There's some funny linear
  *	interpolation involved because of the subpixel postioning.
  */
-_X_EXPORT void
+void
 miFillSppPoly(
     DrawablePtr		dst,
     GCPtr		pgc,
diff --git a/mi/migc.c b/mi/migc.c
index e6bec31..a797099 100644
--- a/mi/migc.c
+++ b/mi/migc.c
@@ -38,13 +38,13 @@ from The Open Group.
 #include "migc.h"
 
 /* ARGSUSED */
-_X_EXPORT void
+void
 miChangeGC(GCPtr pGC, unsigned long mask)
 {
     return;
 }
 
-_X_EXPORT void
+void
 miDestroyGC(GCPtr pGC)
 {
     if (pGC->pRotatedPixmap)
@@ -53,7 +53,7 @@ miDestroyGC(GCPtr pGC)
 	REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip);
 }
 
-_X_EXPORT void
+void
 miDestroyClip(GCPtr pGC)
 {
     if (pGC->clientClipType == CT_NONE)
@@ -74,7 +74,7 @@ miDestroyClip(GCPtr pGC)
     pGC->clientClipType = CT_NONE;
 }
 
-_X_EXPORT void
+void
 miChangeClip( GCPtr pGC, int type, pointer pvalue, int nrects)
 {
     (*pGC->funcs->DestroyClip) (pGC);
@@ -101,7 +101,7 @@ miChangeClip( GCPtr pGC, int type, pointer pvalue, int nrects)
     pGC->stateChanges |= GCClipMask;
 }
 
-_X_EXPORT void
+void
 miCopyClip(GCPtr pgcDst, GCPtr pgcSrc)
 {
     RegionPtr       prgnNew;
@@ -125,13 +125,13 @@ miCopyClip(GCPtr pgcDst, GCPtr pgcSrc)
 }
 
 /* ARGSUSED */
-_X_EXPORT void
+void
 miCopyGC(GCPtr pGCSrc, unsigned long changes, GCPtr pGCDst)
 {
     return;
 }
 
-_X_EXPORT void
+void
 miComputeCompositeClip( GCPtr pGC, DrawablePtr pDrawable)
 {
     ScreenPtr       pScreen;
diff --git a/mi/migc.h b/mi/migc.h
index 51ed7b6..df5805f 100644
--- a/mi/migc.h
+++ b/mi/migc.h
@@ -27,38 +27,38 @@ from The Open Group.
 */
 
 
-extern void miChangeGC(
+extern _X_EXPORT void miChangeGC(
     GCPtr  /*pGC*/,
     unsigned long /*mask*/
 );
 
-extern void miDestroyGC(
+extern _X_EXPORT void miDestroyGC(
     GCPtr  /*pGC*/
 );
 
-extern void miDestroyClip(
+extern _X_EXPORT void miDestroyClip(
     GCPtr /*pGC*/
 );
 
-extern void miChangeClip(
+extern _X_EXPORT void miChangeClip(
     GCPtr   /*pGC*/,
     int     /*type*/,
     pointer /*pvalue*/,
     int     /*nrects*/
 );
 
-extern void miCopyClip(
+extern _X_EXPORT void miCopyClip(
     GCPtr /*pgcDst*/,
     GCPtr /*pgcSrc*/
 );
 
-extern void miCopyGC(
+extern _X_EXPORT void miCopyGC(
     GCPtr /*pGCSrc*/,
     unsigned long /*changes*/,
     GCPtr /*pGCDst*/
 );
 
-extern void miComputeCompositeClip(
+extern _X_EXPORT void miComputeCompositeClip(
     GCPtr       /*pGC*/,
     DrawablePtr /*pDrawable*/
 );
diff --git a/mi/miglblt.c b/mi/miglblt.c
index 4147736..404d785 100644
--- a/mi/miglblt.c
+++ b/mi/miglblt.c
@@ -81,7 +81,7 @@ with the sample server.
 	use the bitmap in a call to PushPixels
 */
 
-_X_EXPORT void
+void
 miPolyGlyphBlt(
     DrawablePtr pDrawable,
     GC		*pGC,
@@ -197,7 +197,7 @@ miPolyGlyphBlt(
 }
 
 
-_X_EXPORT void
+void
 miImageGlyphBlt(
     DrawablePtr pDrawable,
     GC		*pGC,
diff --git a/mi/miinitext.c b/mi/miinitext.c
index f669faa..92d6cd2 100644
--- a/mi/miinitext.c
+++ b/mi/miinitext.c
@@ -353,7 +353,7 @@ static ExtensionToggle ExtensionToggleList[] =
     { NULL, NULL }
 };
 
-_X_EXPORT Bool EnableDisableExtension(char *name, Bool enable)
+Bool EnableDisableExtension(char *name, Bool enable)
 {
     ExtensionToggle *ext = &ExtensionToggleList[0];
 
@@ -367,7 +367,7 @@ _X_EXPORT Bool EnableDisableExtension(char *name, Bool enable)
     return FALSE;
 }
 
-_X_EXPORT void EnableDisableExtensionError(char *name, Bool enable)
+void EnableDisableExtensionError(char *name, Bool enable)
 {
     ExtensionToggle *ext = &ExtensionToggleList[0];
 
@@ -381,7 +381,7 @@ _X_EXPORT void EnableDisableExtensionError(char *name, Bool enable)
 #ifndef XFree86LOADER
 
 /*ARGSUSED*/
-_X_EXPORT void
+void
 InitExtensions(int argc, char *argv[])
 {
     if (!noGEExtension) GEExtensionInit();
diff --git a/mi/miline.h b/mi/miline.h
index 036c2b5..e1dd6d5 100644
--- a/mi/miline.h
+++ b/mi/miline.h
@@ -77,7 +77,7 @@ in this Software without prior written authorization from The Open Group.
  * Jack E. Bresenham, IEEE CG&A, May 1987.
  */
 
-extern void miSetZeroLineBias(
+extern _X_EXPORT void miSetZeroLineBias(
     ScreenPtr /* pScreen */,
     unsigned int /* bias */
 );
@@ -148,9 +148,9 @@ extern void miSetZeroLineBias(
 #define IsXDecreasingOctant(_octant)	((_octant) & XDECREASING)
 #define IsYDecreasingOctant(_octant)	((_octant) & YDECREASING)
 
-extern DevPrivateKey miZeroLineScreenKey;
+extern _X_EXPORT DevPrivateKey miZeroLineScreenKey;
 
-extern int miZeroClipLine(
+extern _X_EXPORT int miZeroClipLine(
     int /*xmin*/,
     int /*ymin*/,
     int /*xmax*/,
diff --git a/mi/mioverlay.c b/mi/mioverlay.c
index 395b1aa..f238cd3 100644
--- a/mi/mioverlay.c
+++ b/mi/mioverlay.c
@@ -102,7 +102,7 @@ static void miOverlayChangeBorderWidth(WindowPtr, unsigned int);
                                     HasBorder(w) && \
                                     (w)->backgroundState == ParentRelative)
 
-_X_EXPORT Bool
+Bool
 miInitOverlay(
     ScreenPtr pScreen, 
     miOverlayInOverlayFunc inOverlayFunc,
@@ -1604,7 +1604,7 @@ miOverlayChangeBorderWidth(
 /*  We need this as an addition since the xf86 common code doesn't
     know about the second tree which is static to this file.  */
 
-_X_EXPORT void
+void
 miOverlaySetRootClip(ScreenPtr pScreen, Bool enable)
 {
     WindowPtr pRoot = WindowTable[pScreen->myNum];
@@ -1688,7 +1688,7 @@ miOverlayClearToBackground(
 /****************************************************************/
 
 /* not used */
-_X_EXPORT Bool
+Bool
 miOverlayGetPrivateClips(
     WindowPtr pWin,
     RegionPtr *borderClip,
@@ -1707,7 +1707,7 @@ miOverlayGetPrivateClips(
     return FALSE;
 }
 
-_X_EXPORT void 
+void
 miOverlaySetTransFunction (
    ScreenPtr pScreen, 
    miOverlayTransFunc transFunc
@@ -1715,13 +1715,13 @@ miOverlaySetTransFunction (
     MIOVERLAY_GET_SCREEN_PRIVATE(pScreen)->MakeTransparent = transFunc;
 }
 
-_X_EXPORT Bool 
+Bool
 miOverlayCopyUnderlay(ScreenPtr pScreen)
 {
     return MIOVERLAY_GET_SCREEN_PRIVATE(pScreen)->copyUnderlay;
 }
 
-_X_EXPORT void
+void
 miOverlayComputeCompositeClip(GCPtr pGC, WindowPtr pWin)
 {
     ScreenPtr       pScreen = pGC->pScreen;
@@ -1777,7 +1777,7 @@ miOverlayComputeCompositeClip(GCPtr pGC, WindowPtr pWin)
     }
 }
 
-_X_EXPORT Bool
+Bool
 miOverlayCollectUnderlayRegions(
     WindowPtr pWin,
     RegionPtr *region
diff --git a/mi/mioverlay.h b/mi/mioverlay.h
index 24b74f5..dca65ad 100644
--- a/mi/mioverlay.h
+++ b/mi/mioverlay.h
@@ -9,24 +9,24 @@
 typedef void (*miOverlayTransFunc)(ScreenPtr, int, BoxPtr);
 typedef Bool (*miOverlayInOverlayFunc)(WindowPtr);
 
-Bool
+extern _X_EXPORT Bool
 miInitOverlay(
    ScreenPtr pScreen, 
    miOverlayInOverlayFunc inOverlay,
    miOverlayTransFunc trans
 );
 
-Bool
+extern _X_EXPORT Bool
 miOverlayGetPrivateClips(
     WindowPtr pWin,
     RegionPtr *borderClip,
     RegionPtr *clipList
 );
 
-Bool miOverlayCollectUnderlayRegions(WindowPtr, RegionPtr*);
-void miOverlayComputeCompositeClip(GCPtr, WindowPtr);
-Bool miOverlayCopyUnderlay(ScreenPtr);
-void miOverlaySetTransFunction(ScreenPtr, miOverlayTransFunc);
-void miOverlaySetRootClip(ScreenPtr, Bool);
+extern _X_EXPORT Bool miOverlayCollectUnderlayRegions(WindowPtr, RegionPtr*);
+extern _X_EXPORT void miOverlayComputeCompositeClip(GCPtr, WindowPtr);
+extern _X_EXPORT Bool miOverlayCopyUnderlay(ScreenPtr);
+extern _X_EXPORT void miOverlaySetTransFunction(ScreenPtr, miOverlayTransFunc);
+extern _X_EXPORT void miOverlaySetRootClip(ScreenPtr, Bool);
 
 #endif /* __MIOVERLAY_H */
diff --git a/mi/mipointer.c b/mi/mipointer.c
index da4ea94..89b1606 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -42,7 +42,7 @@ in this Software without prior written authorization from The Open Group.
 # include   "inputstr.h"
 
 static int miPointerScreenKeyIndex;
-_X_EXPORT DevPrivateKey miPointerScreenKey = &miPointerScreenKeyIndex;
+DevPrivateKey miPointerScreenKey = &miPointerScreenKeyIndex;
 
 #define GetScreenPrivate(s) ((miPointerScreenPtr) \
     dixLookupPrivate(&(s)->devPrivates, miPointerScreenKey))
@@ -81,7 +81,7 @@ static void miPointerDeviceCleanup(DeviceIntPtr pDev,
 
 static EventList* events; /* for WarpPointer MotionNotifies */
 
-_X_EXPORT Bool
+Bool
 miPointerInitialize (ScreenPtr                  pScreen,
                      miPointerSpriteFuncPtr     spriteFuncs,
                      miPointerScreenFuncPtr     screenFuncs,
@@ -297,7 +297,7 @@ miPointerDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen)
 
 /* Once signals are ignored, the WarpCursor function can call this */
 
-_X_EXPORT void
+void
 miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
 {
     miPointerPtr pPointer;
@@ -346,7 +346,7 @@ miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
  * Syncronize the sprite with the cursor - called from ProcessInputEvents
  */
 
-_X_EXPORT void
+void
 miPointerUpdateSprite (DeviceIntPtr pDev)
 {
     ScreenPtr		pScreen;
@@ -419,7 +419,7 @@ miPointerUpdateSprite (DeviceIntPtr pDev)
     }
 }
 
-_X_EXPORT void
+void
 miPointerSetScreen(DeviceIntPtr pDev, int screen_no, int x, int y)
 {
 	miPointerScreenPtr pScreenPriv;
@@ -437,13 +437,13 @@ miPointerSetScreen(DeviceIntPtr pDev, int screen_no, int x, int y)
         pPointer->limits.y2 = pScreen->height;
 }
 
-_X_EXPORT ScreenPtr
+ScreenPtr
 miPointerCurrentScreen ()
 {
     return miPointerGetScreen(inputInfo.pointer);
 }
 
-_X_EXPORT ScreenPtr
+ScreenPtr
 miPointerGetScreen(DeviceIntPtr pDev)
 {
     miPointerPtr pPointer = MIPOINTER(pDev);
@@ -453,7 +453,7 @@ miPointerGetScreen(DeviceIntPtr pDev)
 /* Move the pointer to x, y on the current screen, update the sprite, and
  * the motion history.  Generates no events.  Does not return changed x
  * and y if they are clipped; use miPointerSetPosition instead. */
-_X_EXPORT void
+void
 miPointerAbsoluteCursor (int x, int y, unsigned long time)
 {
     miPointerSetPosition(inputInfo.pointer, &x, &y);
@@ -487,7 +487,7 @@ miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen,
     pPointer->pScreen = pScreen;
 }
 
-_X_EXPORT void
+void
 miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
 {
     miPointerScreenPtr	pScreenPriv;
@@ -540,7 +540,7 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
     miPointerMoved(pDev, pScreen, *x, *y);
 }
 
-_X_EXPORT void
+void
 miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y)
 {
     *x = MIPOINTER(pDev)->x;
diff --git a/mi/mipointer.h b/mi/mipointer.h
index c004ba4..83277e4 100644
--- a/mi/mipointer.h
+++ b/mi/mipointer.h
@@ -91,19 +91,19 @@ typedef struct _miPointerScreenFuncRec {
                     );
 } miPointerScreenFuncRec, *miPointerScreenFuncPtr;
 
-extern Bool miDCInitialize(
+extern _X_EXPORT Bool miDCInitialize(
     ScreenPtr /*pScreen*/,
     miPointerScreenFuncPtr /*screenFuncs*/
 );
 
-extern Bool miPointerInitialize(
+extern _X_EXPORT Bool miPointerInitialize(
     ScreenPtr /*pScreen*/,
     miPointerSpriteFuncPtr /*spriteFuncs*/,
     miPointerScreenFuncPtr /*screenFuncs*/,
     Bool /*waitForUpdate*/
 );
 
-extern void miPointerWarpCursor(
+extern _X_EXPORT void miPointerWarpCursor(
     DeviceIntPtr /*pDev*/,
     ScreenPtr /*pScreen*/,
     int /*x*/,
@@ -111,41 +111,41 @@ extern void miPointerWarpCursor(
 ) _X_DEPRECATED;
 
 /* Deprecated in favour of miPointerSetPosition. */
-extern void miPointerAbsoluteCursor(
+extern _X_EXPORT void miPointerAbsoluteCursor(
     int /*x*/,
     int /*y*/,
     unsigned long /*time*/
 ) _X_DEPRECATED;
 
 /* Deprecated in favour of miPointerGetScreen. */
-extern ScreenPtr miPointerCurrentScreen(
+extern _X_EXPORT ScreenPtr miPointerCurrentScreen(
     void
 ) _X_DEPRECATED;
 
-extern ScreenPtr miPointerGetScreen(
+extern _X_EXPORT ScreenPtr miPointerGetScreen(
     DeviceIntPtr pDev);
-extern void miPointerSetScreen(
+extern _X_EXPORT void miPointerSetScreen(
     DeviceIntPtr pDev,
     int screen_num,
     int x,
     int y);
 
 /* Returns the current cursor position. */
-extern void miPointerGetPosition(
+extern _X_EXPORT void miPointerGetPosition(
     DeviceIntPtr pDev,
     int *x,
     int *y);
 
 /* Moves the cursor to the specified position.  May clip the co-ordinates:
  * x and y are modified in-place. */
-extern void miPointerSetPosition(
+extern _X_EXPORT void miPointerSetPosition(
     DeviceIntPtr pDev,
     int *x,
     int *y);
 
-extern void miPointerUpdateSprite(
+extern _X_EXPORT void miPointerUpdateSprite(
     DeviceIntPtr pDev);
 
-extern DevPrivateKey miPointerScreenKey;
+extern _X_EXPORT DevPrivateKey miPointerScreenKey;
 
 #endif /* MIPOINTER_H */
diff --git a/mi/mipoly.c b/mi/mipoly.c
index 5ec4bfd..b3e2c2f 100644
--- a/mi/mipoly.c
+++ b/mi/mipoly.c
@@ -66,7 +66,7 @@ SOFTWARE.
 #include "regionstr.h"
 
 
-_X_EXPORT void
+void
 miFillPolygon( DrawablePtr dst, GCPtr pgc,
 		int shape, int mode,
 		int count, DDXPointPtr pPts)
diff --git a/mi/mipoly.h b/mi/mipoly.h
index c1bab49..d94796e 100644
--- a/mi/mipoly.h
+++ b/mi/mipoly.h
@@ -180,7 +180,7 @@ typedef struct _ScanLineListBlock {
 
 /* mipolyutil.c */
 
-extern Bool miCreateETandAET(
+extern _X_EXPORT Bool miCreateETandAET(
     int /*count*/,
     DDXPointPtr /*pts*/,
     EdgeTable * /*ET*/,
@@ -189,19 +189,19 @@ extern Bool miCreateETandAET(
     ScanLineListBlock * /*pSLLBlock*/
 );
 
-extern void miloadAET(
+extern _X_EXPORT void miloadAET(
     EdgeTableEntry * /*AET*/,
     EdgeTableEntry * /*ETEs*/
 );
 
-extern void micomputeWAET(
+extern _X_EXPORT void micomputeWAET(
     EdgeTableEntry * /*AET*/
 );
 
-extern int miInsertionSort(
+extern _X_EXPORT int miInsertionSort(
     EdgeTableEntry * /*AET*/
 );
 
-extern void miFreeStorage(
+extern _X_EXPORT void miFreeStorage(
     ScanLineListBlock * /*pSLLBlock*/
 );
diff --git a/mi/mipolycon.c b/mi/mipolycon.c
index 085bed3..6e38896 100644
--- a/mi/mipolycon.c
+++ b/mi/mipolycon.c
@@ -71,7 +71,7 @@ static int getPolyYBounds(DDXPointPtr pts, int n, int *by, int *ty);
  *     For a derivation of the algorithm, see the author of
  *     this code.
  */
-_X_EXPORT Bool
+Bool
 miFillConvexPoly(
     DrawablePtr dst,
     GCPtr	pgc,
diff --git a/mi/mipolygen.c b/mi/mipolygen.c
index 400d54d..04bc2c6 100644
--- a/mi/mipolygen.c
+++ b/mi/mipolygen.c
@@ -65,7 +65,7 @@ SOFTWARE.
  *     See fillpoly.h for a complete description of the algorithm.
  */
 
-_X_EXPORT Bool
+Bool
 miFillGeneralPoly(
     DrawablePtr dst,
     GCPtr	pgc,
diff --git a/mi/mipolypnt.c b/mi/mipolypnt.c
index d16a951..12324b6 100644
--- a/mi/mipolypnt.c
+++ b/mi/mipolypnt.c
@@ -55,7 +55,7 @@ SOFTWARE.
 #include "windowstr.h"
 #include "mi.h"
 
-_X_EXPORT void
+void
 miPolyPoint(
     DrawablePtr		pDrawable,
     GCPtr		pGC,
diff --git a/mi/mipolyrect.c b/mi/mipolyrect.c
index e7504ef..f1ec485 100644
--- a/mi/mipolyrect.c
+++ b/mi/mipolyrect.c
@@ -55,7 +55,7 @@ SOFTWARE.
 #include "pixmap.h"
 #include "mi.h"
 
-_X_EXPORT void
+void
 miPolyRectangle(DrawablePtr pDraw, GCPtr pGC, int nrects, xRectangle *pRects)
 {
     int i;
diff --git a/mi/mipolyseg.c b/mi/mipolyseg.c
index 0832a60..bf7f0f9 100644
--- a/mi/mipolyseg.c
+++ b/mi/mipolyseg.c
@@ -66,7 +66,7 @@ SOFTWARE.
  *****************************************************************/
 
 
-_X_EXPORT void
+void
 miPolySegment(DrawablePtr pDraw, GCPtr pGC, int nseg, xSegment *pSegs)
 {
     int i;
diff --git a/mi/mipolytext.c b/mi/mipolytext.c
index 7be40ae..508e0ff 100644
--- a/mi/mipolytext.c
+++ b/mi/mipolytext.c
@@ -66,7 +66,7 @@ SOFTWARE.
 #include	"dixfontstr.h"
 #include	"mi.h"
 
-_X_EXPORT int
+int
 miPolyText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars)
 {
     unsigned long n, i;
@@ -83,7 +83,7 @@ miPolyText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars)
     return x+w;
 }
 
-_X_EXPORT int
+int
 miPolyText16(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, unsigned short *chars)
 {
     unsigned long n, i;
@@ -101,7 +101,7 @@ miPolyText16(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, unsigned sho
     return x+w;
 }
 
-_X_EXPORT void
+void
 miImageText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars)
 {
     unsigned long n;
@@ -114,7 +114,7 @@ miImageText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars)
         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, FONTGLYPHS(font));
 }
 
-_X_EXPORT void
+void
 miImageText16(DrawablePtr pDraw, GCPtr pGC, int x, int y,
 		int count, unsigned short *chars)
 {
diff --git a/mi/mipushpxl.c b/mi/mipushpxl.c
index 87ca144..4b97890 100644
--- a/mi/mipushpxl.c
+++ b/mi/mipushpxl.c
@@ -92,7 +92,7 @@ bitsizeof(int) padding and sacnline unit == bitsizeof(int).)
  * in order to have both (MSB_FIRST and LSB_FIRST) versions of this
  * in the server, we need to rename one of them
  */
-_X_EXPORT void
+void
 miPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDrawable,
              int dx, int dy, int xOrg, int yOrg)
 {
diff --git a/mi/miregion.c b/mi/miregion.c
index c03a68c..d9c6fb2 100644
--- a/mi/miregion.c
+++ b/mi/miregion.c
@@ -218,13 +218,13 @@ if (((numRects) < ((reg)->data->size >> 1)) && ((reg)->data->size > 50)) \
 }
 
 
-_X_EXPORT BoxRec miEmptyBox = {0, 0, 0, 0};
-_X_EXPORT RegDataRec miEmptyData = {0, 0};
+BoxRec miEmptyBox = {0, 0, 0, 0};
+RegDataRec miEmptyData = {0, 0};
 
-_X_EXPORT RegDataRec  miBrokenData = {0, 0};
+RegDataRec  miBrokenData = {0, 0};
 static RegionRec   miBrokenRegion = { { 0, 0, 0, 0 }, &miBrokenData };
 
-_X_EXPORT void
+void
 InitRegions (void)
 {
     pixman_region_set_static_pointers (&miEmptyBox, &miEmptyData, &miBrokenData);
@@ -236,7 +236,7 @@ InitRegions (void)
  *     REGION of "size" number of rectangles.
  *****************************************************************/
 
-_X_EXPORT RegionPtr
+RegionPtr
 miRegionCreate(BoxPtr rect, int size)
 {
     RegionPtr pReg;
@@ -250,7 +250,7 @@ miRegionCreate(BoxPtr rect, int size)
     return(pReg);
 }
 
-_X_EXPORT void
+void
 miRegionDestroy(RegionPtr pReg)
 {
     pixman_region_fini (pReg);
@@ -258,7 +258,7 @@ miRegionDestroy(RegionPtr pReg)
 	xfree(pReg);
 }
 
-_X_EXPORT void
+void
 miPrintRegion(RegionPtr rgn)
 {
     int num, size;
@@ -277,14 +277,14 @@ miPrintRegion(RegionPtr rgn)
     ErrorF("[mi] \n");
 }
 
-_X_EXPORT Bool
+Bool
 miRegionEqual(RegionPtr reg1, RegionPtr reg2)
 {
     return pixman_region_equal (reg1, reg2);
 }
 
 #ifdef DEBUG
-_X_EXPORT Bool
+Bool
 miValidRegion(RegionPtr reg)
 {
     int i, numRects;
@@ -335,7 +335,7 @@ miValidRegion(RegionPtr reg)
  *     Outer region rect is statically allocated.
  *****************************************************************/
 
-_X_EXPORT void
+void
 miRegionInit(RegionPtr pReg, BoxPtr rect, int size)
 {
     if (rect)
@@ -344,13 +344,13 @@ miRegionInit(RegionPtr pReg, BoxPtr rect, int size)
 	pixman_region_init (pReg);
 }
 
-_X_EXPORT void
+void
 miRegionUninit(RegionPtr pReg)
 {
     pixman_region_fini (pReg);
 }
 
-_X_EXPORT Bool
+Bool
 miRegionBreak (RegionPtr pReg)
 {
     xfreeData (pReg);
@@ -359,7 +359,7 @@ miRegionBreak (RegionPtr pReg)
     return FALSE;
 }
 
-_X_EXPORT Bool
+Bool
 miRectAlloc(RegionPtr pRgn, int n)
 {
     RegDataPtr	data;
@@ -398,7 +398,7 @@ miRectAlloc(RegionPtr pRgn, int n)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miRegionCopy(RegionPtr dst, RegionPtr src)
 {
     return pixman_region_copy (dst, src);
@@ -891,7 +891,7 @@ miSetExtents (RegionPtr pReg)
  *-----------------------------------------------------------------------
  */
 /*ARGSUSED*/
-_X_EXPORT Bool
+Bool
 miIntersect(
     RegionPtr	newReg,     /* destination Region */
     RegionPtr	reg1,
@@ -995,7 +995,7 @@ miUnionO (
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miUnion(
     RegionPtr	newReg,          /* destination Region */
     RegionPtr	reg1,
@@ -1026,7 +1026,7 @@ miUnion(
  *      dstrgn is modified if rgn has rectangles.
  *
  */
-_X_EXPORT Bool
+Bool
 miRegionAppend(RegionPtr dstrgn, RegionPtr rgn)
 {
     int numRects, dnumRects, size;
@@ -1210,7 +1210,7 @@ QuickSortRects(
  *-----------------------------------------------------------------------
  */
 
-_X_EXPORT Bool
+Bool
 miRegionValidate(RegionPtr badreg, Bool *pOverlap)
 {
     /* Descriptor for regions under construction  in Step 2. */
@@ -1399,7 +1399,7 @@ bail:
     return miRegionBreak (badreg);
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 miRectsToRegion(int nrects, xRectangle *prect, int ctype)
 {
     
@@ -1513,7 +1513,7 @@ miRectsToRegion(int nrects, xRectangle *prect, int ctype)
  *
  *-----------------------------------------------------------------------
  */
-_X_EXPORT Bool
+Bool
 miSubtract(RegionPtr regD, RegionPtr regM, RegionPtr regS)
 {
     return pixman_region_subtract (regD, regM, regS);
@@ -1538,7 +1538,7 @@ miSubtract(RegionPtr regD, RegionPtr regM, RegionPtr regS)
  *
  *-----------------------------------------------------------------------
  */
-_X_EXPORT Bool
+Bool
 miInverse(
     RegionPtr	  newReg,       /* Destination region */
     RegionPtr	  reg1,         /* Region to invert */
@@ -1547,7 +1547,7 @@ miInverse(
 {
     return pixman_region_inverse (newReg, reg1, invRect);
 }
-_X_EXPORT int
+int
 miRectIn(RegionPtr region, BoxPtr prect)
 {
     return pixman_region_contains_rectangle (region, prect);
@@ -1557,19 +1557,19 @@ miRectIn(RegionPtr region, BoxPtr prect)
    translates in place
 */
 
-_X_EXPORT void
+void
 miTranslateRegion(RegionPtr pReg, int x, int y)
 {
     pixman_region_translate (pReg, x, y);
 }
 
-_X_EXPORT void
+void
 miRegionReset(RegionPtr pReg, BoxPtr pBox)
 {
     pixman_region_reset (pReg, pBox);
 }
 
-_X_EXPORT Bool
+Bool
 miPointInRegion(
     RegionPtr pReg,
     int x,
@@ -1580,20 +1580,20 @@ miPointInRegion(
     return pixman_region_contains_point (pReg, x, y, box);
 }
 
-_X_EXPORT Bool
+Bool
 miRegionNotEmpty(RegionPtr pReg)
 {
     return pixman_region_not_empty (pReg);
 }
 
-_X_EXPORT Bool
+Bool
 miRegionBroken(RegionPtr pReg)
 {
     good(pReg);
     return (REGION_NAR(pReg));
 }
 
-_X_EXPORT void
+void
 miRegionEmpty(RegionPtr pReg)
 {
     good(pReg);
@@ -1603,7 +1603,7 @@ miRegionEmpty(RegionPtr pReg)
     pReg->data = &miEmptyData;
 }
 
-_X_EXPORT BoxPtr
+BoxPtr
 miRegionExtents(RegionPtr pReg)
 {
     good(pReg);
@@ -1728,7 +1728,7 @@ static void QuickSortSpans(
     returns the number of new, clipped scanlines.
 */
 
-_X_EXPORT int
+int
 miClipSpans(
     RegionPtr	prgnDst,
     DDXPointPtr ppt,
diff --git a/mi/miscrinit.c b/mi/miscrinit.c
index 7bcb4ad..92b3981 100644
--- a/mi/miscrinit.c
+++ b/mi/miscrinit.c
@@ -60,7 +60,7 @@ typedef struct
 
 
 /* this plugs into pScreen->ModifyPixmapHeader */
-_X_EXPORT Bool
+Bool
 miModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
                      int bitsPerPixel, int devKind, pointer pPixData)
 {
@@ -132,7 +132,7 @@ miCloseScreen (int iScreen, ScreenPtr pScreen)
  * possible private-requesting modules have been inited; we create the
  * screen pixmap here.
  */
-_X_EXPORT Bool
+Bool
 miCreateScreenResources(ScreenPtr pScreen)
 {
     miScreenInitParmsPtr pScrInitParms;
@@ -171,7 +171,7 @@ miCreateScreenResources(ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miScreenDevPrivateInit(ScreenPtr pScreen, int width, pointer pbits)
 {
     miScreenInitParmsPtr pScrInitParms;
@@ -202,7 +202,7 @@ miSetScreenPixmap(PixmapPtr pPix)
 	pPix->drawable.pScreen->devPrivate = (pointer)pPix;
 }
 
-_X_EXPORT Bool
+Bool
 miScreenInit(
     ScreenPtr pScreen,
     pointer pbits,		/* pointer to screen bits */
@@ -296,16 +296,16 @@ miScreenInit(
 static int privateKeyIndex;
 static DevPrivateKey privateKey = &privateKeyIndex;
 
-_X_EXPORT DevPrivateKey
+DevPrivateKey
 miAllocateGCPrivateIndex()
 {
     return privateKey;
 }
 
 static int miZeroLineScreenKeyIndex;
-_X_EXPORT DevPrivateKey miZeroLineScreenKey = &miZeroLineScreenKeyIndex;
+DevPrivateKey miZeroLineScreenKey = &miZeroLineScreenKeyIndex;
 
-_X_EXPORT void
+void
 miSetZeroLineBias(ScreenPtr pScreen, unsigned int bias)
 {
     dixSetPrivate(&pScreen->devPrivates, miZeroLineScreenKey, (pointer)bias);
diff --git a/mi/mispans.c b/mi/mispans.c
index 9785889..e59d711 100644
--- a/mi/mispans.c
+++ b/mi/mispans.c
@@ -65,7 +65,7 @@ Written by Joel McCormack, Summer 1989.
 */
 
 
-_X_EXPORT void miInitSpanGroup(spanGroup)
+void miInitSpanGroup(spanGroup)
     SpanGroup *spanGroup;
 {
     spanGroup->size = 0;
@@ -181,7 +181,7 @@ static void miSubtractSpans (SpanGroup *spanGroup, Spans *sub)
     }
 }
 
-_X_EXPORT void miAppendSpans(SpanGroup *spanGroup, SpanGroup *otherGroup, Spans *spans)
+void miAppendSpans(SpanGroup *spanGroup, SpanGroup *otherGroup, Spans *spans)
 {
     int ymin, ymax;
     int spansCount;
@@ -214,7 +214,7 @@ _X_EXPORT void miAppendSpans(SpanGroup *spanGroup, SpanGroup *otherGroup, Spans
     }
 } /* AppendSpans */
 
-_X_EXPORT void miFreeSpanGroup(SpanGroup *spanGroup)
+void miFreeSpanGroup(SpanGroup *spanGroup)
 {
     if (spanGroup->group != NULL) xfree(spanGroup->group);
 }
@@ -372,7 +372,7 @@ miDisposeSpanGroup (SpanGroup *spanGroup)
     }
 }
 
-_X_EXPORT void miFillUniqueSpanGroup(DrawablePtr pDraw, GCPtr pGC, SpanGroup *spanGroup)
+void miFillUniqueSpanGroup(DrawablePtr pDraw, GCPtr pGC, SpanGroup *spanGroup)
 {
     int    		i;
     Spans  		*spans;
diff --git a/mi/mispans.h b/mi/mispans.h
index 258b292..e3f033b 100644
--- a/mi/mispans.h
+++ b/mi/mispans.h
@@ -60,30 +60,30 @@ typedef struct {
 } SpanGroup;
 
 /* Initialize SpanGroup.  MUST BE DONE before use. */
-extern void miInitSpanGroup(
+extern _X_EXPORT void miInitSpanGroup(
     SpanGroup * /*spanGroup*/
 );
 
 /* Add a Spans to a SpanGroup. The spans MUST BE in y-sorted order */
-extern void miAppendSpans(
+extern _X_EXPORT void miAppendSpans(
     SpanGroup * /*spanGroup*/,
     SpanGroup * /*otherGroup*/,
     Spans * /*spans*/
 );
 
 /* Paint a span group, insuring that each pixel is painted at most once */
-extern void miFillUniqueSpanGroup(
+extern _X_EXPORT void miFillUniqueSpanGroup(
     DrawablePtr /*pDraw*/,
     GCPtr /*pGC*/,
     SpanGroup * /*spanGroup*/
 );
 
 /* Free up data in a span group.  MUST BE DONE or you'll suffer memory leaks */
-extern void miFreeSpanGroup(
+extern _X_EXPORT void miFreeSpanGroup(
     SpanGroup * /*spanGroup*/
 );
 
-extern int miClipSpans(
+extern _X_EXPORT int miClipSpans(
     RegionPtr /*prgnDst*/,
     DDXPointPtr /*ppt*/,
     int * /*pwidth*/,
diff --git a/mi/misprite.c b/mi/misprite.c
index 692e6c9..da6fc55 100644
--- a/mi/misprite.c
+++ b/mi/misprite.c
@@ -160,7 +160,7 @@ static void miSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
 static void miSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
                                int x, int y);
 
-_X_EXPORT miPointerSpriteFuncRec miSpritePointerFuncs = {
+miPointerSpriteFuncRec miSpritePointerFuncs = {
     miSpriteRealizeCursor,
     miSpriteUnrealizeCursor,
     miSpriteSetCursor,
diff --git a/mi/mivaltree.c b/mi/mivaltree.c
index bb8bce3..2585422 100644
--- a/mi/mivaltree.c
+++ b/mi/mivaltree.c
@@ -106,7 +106,7 @@ Equipment Corporation.
 /*
  * Compute the visibility of a shaped window
  */
-_X_EXPORT int
+int
 miShapedWindowIn (ScreenPtr pScreen, RegionPtr universe, RegionPtr bounding,
                   BoxPtr rect, int x, int y)
 {
@@ -166,7 +166,7 @@ miShapedWindowIn (ScreenPtr pScreen, RegionPtr universe, RegionPtr bounding,
 static GetRedirectBorderClipProcPtr	miGetRedirectBorderClipProc;
 static SetRedirectBorderClipProcPtr	miSetRedirectBorderClipProc;
 
-_X_EXPORT void
+void
 miRegisterRedirectBorderClipProc (SetRedirectBorderClipProcPtr setBorderClip,
 				  GetRedirectBorderClipProcPtr getBorderClip)
 {
@@ -589,7 +589,7 @@ miTreeObscured(
  *-----------------------------------------------------------------------
  */
 /*ARGSUSED*/
-_X_EXPORT int
+int
 miValidateTree (
     WindowPtr		pParent,    /* Parent to validate */
     WindowPtr		pChild,     /* First child of pParent that was
diff --git a/mi/miwideline.c b/mi/miwideline.c
index 40f0d3e..5c16d3c 100644
--- a/mi/miwideline.c
+++ b/mi/miwideline.c
@@ -251,7 +251,7 @@ miFillRectPolyHelper (
     }
 }
 
-_X_EXPORT /* static */ int
+/* static */ int
 miPolyBuildEdge (
     double	x0,
     double	y0,
@@ -313,7 +313,7 @@ miPolyBuildEdge (
 
 #define StepAround(v, incr, max) (((v) + (incr) < 0) ? (max - 1) : ((v) + (incr) == max) ? 0 : ((v) + (incr)))
 
-_X_EXPORT /* static */ int
+/* static */ int
 miPolyBuildPoly (
     PolyVertexPtr	vertices,
     PolySlopePtr	slopes,
@@ -915,7 +915,7 @@ miRoundJoinFace (LineFacePtr face, PolyEdgePtr edge, Bool *leftEdge)
     return y;
 }
 
-_X_EXPORT void
+void
 miRoundJoinClip (LineFacePtr pLeft, LineFacePtr pRight,
 		 PolyEdgePtr edge1, PolyEdgePtr edge2,
 		 int *y1, int *y2, Bool *left1, Bool *left2)
@@ -938,7 +938,7 @@ miRoundJoinClip (LineFacePtr pLeft, LineFacePtr pRight,
     *y2 = miRoundJoinFace (pRight, edge2, left2);
 }
 
-_X_EXPORT int
+int
 miRoundCapClip (LineFacePtr face, Bool isInt, PolyEdgePtr edge, Bool *leftEdge)
 {
     int		y;
@@ -1524,7 +1524,7 @@ miCleanupSpanData (DrawablePtr pDrawable, GCPtr pGC, SpanDataPtr spanData)
     miFreeSpanGroup (&spanData->fgGroup);
 }
 
-_X_EXPORT void
+void
 miWideLine (DrawablePtr pDrawable, GCPtr pGC,
 	    int mode, int npt, DDXPointPtr pPts)
 {
@@ -2018,7 +2018,7 @@ miWideDashSegment (
     *pDashOffset = pDash[dashIndex] - dashRemain;
 }
 
-_X_EXPORT void
+void
 miWideDash (DrawablePtr pDrawable, GCPtr pGC,
 	    int mode, int npt, DDXPointPtr pPts)
 {
diff --git a/mi/miwideline.h b/mi/miwideline.h
index 9d1aa03..1f615d6 100644
--- a/mi/miwideline.h
+++ b/mi/miwideline.h
@@ -153,7 +153,7 @@ typedef struct _LineFace {
     } \
 }
 
-extern void miRoundJoinClip(
+extern _X_EXPORT void miRoundJoinClip(
     LineFacePtr /*pLeft*/,
     LineFacePtr /*pRight*/,
     PolyEdgePtr /*edge1*/,
@@ -164,16 +164,16 @@ extern void miRoundJoinClip(
     Bool * /*left2*/
 );
 
-extern int miRoundCapClip(
+extern _X_EXPORT int miRoundCapClip(
     LineFacePtr /*face*/,
     Bool /*isInt*/,
     PolyEdgePtr /*edge*/,
     Bool * /*leftEdge*/
 );
 
-extern int miPolyBuildEdge(double x0, double y0, double k, int dx, int dy,
+extern _X_EXPORT int miPolyBuildEdge(double x0, double y0, double k, int dx, int dy,
 				int xi, int yi, int left, PolyEdgePtr edge);
-extern int miPolyBuildPoly(PolyVertexPtr vertices, PolySlopePtr slopes,
+extern _X_EXPORT int miPolyBuildPoly(PolyVertexPtr vertices, PolySlopePtr slopes,
 				int count, int xi, int yi, PolyEdgePtr left,
 				PolyEdgePtr right, int *pnleft, int *pnright,
 				int *h);
diff --git a/mi/miwindow.c b/mi/miwindow.c
index 8e4be64..e2af77d 100644
--- a/mi/miwindow.c
+++ b/mi/miwindow.c
@@ -57,7 +57,7 @@ SOFTWARE.
 #include "pixmapstr.h"
 #include "mivalidate.h"
 
-_X_EXPORT void
+void
 miClearToBackground(WindowPtr pWin,
                     int x, int y, int w, int h,
                     Bool generateExposures)
@@ -122,7 +122,7 @@ miClearToBackground(WindowPtr pWin,
 	REGION_DESTROY(pScreen, pBSReg);
 }
 
-_X_EXPORT void
+void
 miMarkWindow(WindowPtr pWin)
 {
     ValidatePtr val;
@@ -137,7 +137,7 @@ miMarkWindow(WindowPtr pWin)
     pWin->valdata = val;
 }
 
-_X_EXPORT Bool
+Bool
 miMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, WindowPtr *ppLayerWin)
 {
     BoxPtr box;
@@ -223,7 +223,7 @@ miMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, WindowPtr *ppLayerWin)
  *    regions, translate the regions, restore any backing store,
  *    and then send any regions still exposed to the client
  *****/
-_X_EXPORT void
+void
 miHandleValidateExposures(WindowPtr pWin)
 {
     WindowPtr pChild;
@@ -260,7 +260,7 @@ miHandleValidateExposures(WindowPtr pWin)
     }
 }
 
-_X_EXPORT void
+void
 miMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pNextSib, VTKind kind)
 {
     WindowPtr pParent;
@@ -369,7 +369,7 @@ miRecomputeExposures (
     return WT_NOMATCH;
 }
 
-_X_EXPORT void
+void
 miSlideAndSizeWindow(WindowPtr pWin,
                      int x, int y,
                      unsigned int w, unsigned int h,
@@ -681,7 +681,7 @@ miSlideAndSizeWindow(WindowPtr pWin,
 	WindowsRestructured ();
 }
 
-_X_EXPORT WindowPtr
+WindowPtr
 miGetLayerWindow(WindowPtr pWin)
 {
     return pWin->firstChild;
@@ -694,7 +694,7 @@ miGetLayerWindow(WindowPtr pWin)
  *    and send appropriate exposure events
  */
 
-_X_EXPORT void
+void
 miSetShape(WindowPtr pWin)
 {
     Bool	WasViewable = (Bool)(pWin->viewable);
@@ -750,7 +750,7 @@ miSetShape(WindowPtr pWin)
 
 /* Keeps the same inside(!) origin */
 
-_X_EXPORT void
+void
 miChangeBorderWidth(WindowPtr pWin, unsigned int width)
 {
     int oldwidth;
@@ -804,7 +804,7 @@ miChangeBorderWidth(WindowPtr pWin, unsigned int width)
 	WindowsRestructured ();
 }
 
-_X_EXPORT void
+void
 miMarkUnrealizedWindow(WindowPtr pChild, WindowPtr pWin, Bool fromConfigure)
 {
     if ((pChild != pWin) || fromConfigure)
@@ -816,7 +816,7 @@ miMarkUnrealizedWindow(WindowPtr pChild, WindowPtr pWin, Bool fromConfigure)
     }
 }
 
-_X_EXPORT void
+void
 miSegregateChildren(WindowPtr pWin, RegionPtr pReg, int depth)
 {
     ScreenPtr pScreen;
diff --git a/mi/mizerarc.c b/mi/mizerarc.c
index d3cc195..83a269d 100644
--- a/mi/mizerarc.c
+++ b/mi/mizerarc.c
@@ -95,7 +95,7 @@ static miZeroArcPtRec oob = {65536, 65536, 0};
  *
  */
 
-_X_EXPORT Bool
+Bool
 miZeroArcSetup(xArc *arc, miZeroArcRec *info, Bool ok360)
 {
     int l;
@@ -702,7 +702,7 @@ miZeroArcDashPts(
     dinfo->dashOffset = pGC->dash[dinfo->dashIndex] - dashRemaining;
 }
 
-_X_EXPORT void
+void
 miZeroPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc *parcs)
 {
     int maxPts = 0;
diff --git a/mi/mizerarc.h b/mi/mizerarc.h
index 28ebbe0..1612a52 100644
--- a/mi/mizerarc.h
+++ b/mi/mizerarc.h
@@ -119,7 +119,7 @@ typedef struct {
 
 /* mizerarc.c */
 
-extern Bool miZeroArcSetup(
+extern _X_EXPORT Bool miZeroArcSetup(
     xArc * /*arc*/,
     miZeroArcRec * /*info*/,
     Bool /*ok360*/
diff --git a/mi/mizerclip.c b/mi/mizerclip.c
index dd05040..fb1e25f 100644
--- a/mi/mizerclip.c
+++ b/mi/mizerclip.c
@@ -404,7 +404,7 @@ the numerator is therefore (2^32 - 1), which does not overflow an unsigned
  *          -1 for completely clipped line
  *
  */
-_X_EXPORT int
+int
 miZeroClipLine(int xmin, int ymin, int xmax, int ymax,
                int *new_x1, int *new_y1, int *new_x2, int *new_y2,
                unsigned int adx, unsigned int ady,
diff --git a/mi/mizerline.c b/mi/mizerline.c
index e1e8e6e..d9ecd89 100644
--- a/mi/mizerline.c
+++ b/mi/mizerline.c
@@ -97,7 +97,7 @@ SOFTWARE.
     }\
 }
 
-_X_EXPORT void
+void
 miZeroLine(
     DrawablePtr pDraw,
     GCPtr	pGC,
@@ -363,7 +363,7 @@ miZeroLine(
     xfree(pspanInit);
 }
 
-_X_EXPORT void
+void
 miZeroDashLine(
             DrawablePtr dst,
             GCPtr pgc,
diff --git a/miext/damage/damage.c b/miext/damage/damage.c
index 74d87e3..9e0533f 100644
--- a/miext/damage/damage.c
+++ b/miext/damage/damage.c
@@ -1859,7 +1859,7 @@ damageCloseScreen (int i, ScreenPtr pScreen)
  * Public functions for consumption outside this file.
  */
 
-_X_EXPORT Bool
+Bool
 DamageSetup (ScreenPtr pScreen)
 {
     DamageScrPrivPtr	pScrPriv;
@@ -1898,7 +1898,7 @@ DamageSetup (ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT DamagePtr
+DamagePtr
 DamageCreate (DamageReportFunc  damageReport,
 	      DamageDestroyFunc	damageDestroy,
 	      DamageReportLevel	damageLevel,
@@ -1930,7 +1930,7 @@ DamageCreate (DamageReportFunc  damageReport,
     return pDamage;
 }
 
-_X_EXPORT void
+void
 DamageRegister (DrawablePtr pDrawable,
 		DamagePtr   pDamage)
 {
@@ -1958,7 +1958,7 @@ DamageRegister (DrawablePtr pDrawable,
     damageInsertDamage (getDrawableDamageRef (pDrawable), pDamage);
 }
 
-_X_EXPORT void
+void
 DamageDrawInternal (ScreenPtr pScreen, Bool enable)
 {
     damageScrPriv (pScreen);
@@ -1966,7 +1966,7 @@ DamageDrawInternal (ScreenPtr pScreen, Bool enable)
     pScrPriv->internalLevel += enable ? 1 : -1;
 }
 
-_X_EXPORT void
+void
 DamageUnregister (DrawablePtr	    pDrawable,
 		  DamagePtr	    pDamage)
 {
@@ -2001,7 +2001,7 @@ DamageUnregister (DrawablePtr	    pDrawable,
     damageRemoveDamage (getDrawableDamageRef (pDrawable), pDamage);
 }
 
-_X_EXPORT void
+void
 DamageDestroy (DamagePtr    pDamage)
 {
     if (pDamage->damageDestroy)
@@ -2011,7 +2011,7 @@ DamageDestroy (DamagePtr    pDamage)
     xfree (pDamage);
 }
 
-_X_EXPORT Bool
+Bool
 DamageSubtract (DamagePtr	    pDamage,
 		const RegionPtr	    pRegion)
 {
@@ -2044,31 +2044,31 @@ DamageSubtract (DamagePtr	    pDamage,
     return REGION_NOTEMPTY (pDrawable->pScreen, &pDamage->damage);
 }
 
-_X_EXPORT void
+void
 DamageEmpty (DamagePtr	    pDamage)
 {
     REGION_EMPTY (pDamage->pDrawable->pScreen, &pDamage->damage);
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 DamageRegion (DamagePtr		    pDamage)
 {
     return &pDamage->damage;
 }
 
-_X_EXPORT RegionPtr
+RegionPtr
 DamagePendingRegion (DamagePtr	    pDamage)
 {
     return &pDamage->pendingDamage;
 }
 
-_X_EXPORT void
+void
 DamageRegionAppend (DrawablePtr pDrawable, RegionPtr pRegion)
 {
     damageRegionAppend (pDrawable, pRegion, FALSE, -1);
 }
 
-_X_EXPORT void
+void
 DamageRegionProcessPending (DrawablePtr pDrawable)
 {
     damageRegionProcessPending (pDrawable);
@@ -2077,7 +2077,7 @@ DamageRegionProcessPending (DrawablePtr pDrawable)
 /* If a damage marker is provided, then this function must be called after rendering is done. */
 /* Please do call back so any future enhancements can assume this function is called. */
 /* There are no strict timing requirements for calling this function, just as soon as (is cheaply) possible. */
-_X_EXPORT void
+void
 DamageRegionRendered (DrawablePtr pDrawable, DamagePtr pDamage, RegionPtr pOldDamage, RegionPtr pRegion)
 {
     if (pDamage->damageReportPostRendering)
@@ -2085,7 +2085,7 @@ DamageRegionRendered (DrawablePtr pDrawable, DamagePtr pDamage, RegionPtr pOldDa
 }
 
 /* This call is very odd, i'm leaving it intact for API sake, but please don't use it. */
-_X_EXPORT void
+void
 DamageDamageRegion (DrawablePtr	pDrawable,
 		    RegionPtr	pRegion)
 {
@@ -2098,13 +2098,13 @@ DamageDamageRegion (DrawablePtr	pDrawable,
     damageRegionProcessPending (pDrawable);
 }
 
-_X_EXPORT void
+void
 DamageSetReportAfterOp (DamagePtr pDamage, Bool reportAfter)
 {
     pDamage->reportAfter = reportAfter;
 }
 
-_X_EXPORT void
+void
 DamageSetPostRenderingFunctions(DamagePtr pDamage, DamageReportFunc damageReportPostRendering,
 				DamageMarkerFunc damageMarker)
 {
diff --git a/miext/damage/damage.h b/miext/damage/damage.h
index a70f1f8..9ead925 100644
--- a/miext/damage/damage.h
+++ b/miext/damage/damage.h
@@ -43,10 +43,10 @@ typedef void (*DamageDestroyFunc) (DamagePtr pDamage, void *closure);
 /* At some point DamageRegionRendered() must be called. */
 typedef void (*DamageMarkerFunc) (DrawablePtr pDrawable, DamagePtr pDamage, RegionPtr pOldDamage, RegionPtr pRegion, void *closure);
 
-Bool
+extern _X_EXPORT Bool
 DamageSetup (ScreenPtr pScreen);
     
-DamagePtr
+extern _X_EXPORT DamagePtr
 DamageCreate (DamageReportFunc  damageReport,
 	      DamageDestroyFunc	damageDestroy,
 	      DamageReportLevel damageLevel,
@@ -54,54 +54,54 @@ DamageCreate (DamageReportFunc  damageReport,
 	      ScreenPtr		pScreen,
 	      void *		closure);
 
-void
+extern _X_EXPORT void
 DamageDrawInternal (ScreenPtr pScreen, Bool enable);
 
-void
+extern _X_EXPORT void
 DamageRegister (DrawablePtr	pDrawable,
 		DamagePtr	pDamage);
 
-void
+extern _X_EXPORT void
 DamageUnregister (DrawablePtr	pDrawable,
 		  DamagePtr	pDamage);
 
-void
+extern _X_EXPORT void
 DamageDestroy (DamagePtr pDamage);
 
-Bool
+extern _X_EXPORT Bool
 DamageSubtract (DamagePtr	    pDamage,
 		const RegionPtr	    pRegion);
 
-void
+extern _X_EXPORT void
 DamageEmpty (DamagePtr pDamage);
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 DamageRegion (DamagePtr		    pDamage);
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 DamagePendingRegion (DamagePtr	    pDamage);
 
 /* In case of rendering, call this before the submitting the commands. */
-void
+extern _X_EXPORT void
 DamageRegionAppend (DrawablePtr pDrawable, RegionPtr pRegion);
 
 /* Call this directly after the rendering operation has been submitted. */
-void
+extern _X_EXPORT void
 DamageRegionProcessPending (DrawablePtr pDrawable);
 
 /* Call this some time after rendering is done, only relevant when a damageMarker is provided. */
-void
+extern _X_EXPORT void
 DamageRegionRendered (DrawablePtr pDrawable, DamagePtr pDamage, RegionPtr pOldDamage, RegionPtr pRegion);
 
 /* Avoid using this call, it only exists for API compatibility. */
-void
+extern _X_EXPORT void
 DamageDamageRegion (DrawablePtr	    pDrawable,
 		    const RegionPtr pRegion);
 
-void
+extern _X_EXPORT void
 DamageSetReportAfterOp (DamagePtr pDamage, Bool reportAfter);
 
-void
+extern _X_EXPORT void
 DamageSetPostRenderingFunctions(DamagePtr pDamage, DamageReportFunc damageReportPostRendering,
 				DamageMarkerFunc damageMarker);
 
diff --git a/miext/shadow/shadow.c b/miext/shadow/shadow.c
index a18a420..21f1de2 100644
--- a/miext/shadow/shadow.c
+++ b/miext/shadow/shadow.c
@@ -37,7 +37,7 @@
 #include    "shadow.h"
 
 static int shadowScrPrivateKeyIndex;
-_X_EXPORT DevPrivateKey shadowScrPrivateKey = &shadowScrPrivateKeyIndex;
+DevPrivateKey shadowScrPrivateKey = &shadowScrPrivateKeyIndex;
 
 #define wrap(priv, real, mem) {\
     priv->mem = real->mem; \
@@ -131,7 +131,7 @@ shadowReportFunc(DamagePtr pDamage, RegionPtr pRegion, void *closure)
 }
 #endif
 
-_X_EXPORT Bool
+Bool
 shadowSetup(ScreenPtr pScreen)
 {
     shadowBufPtr pBuf;
@@ -173,7 +173,7 @@ shadowSetup(ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 shadowAdd(ScreenPtr pScreen, PixmapPtr pPixmap, ShadowUpdateProc update,
 	  ShadowWindowProc window, int randr, void *closure)
 {
@@ -210,7 +210,7 @@ shadowAdd(ScreenPtr pScreen, PixmapPtr pPixmap, ShadowUpdateProc update,
     return TRUE;
 }
 
-_X_EXPORT void
+void
 shadowRemove(ScreenPtr pScreen, PixmapPtr pPixmap)
 {
     shadowBuf(pScreen);
@@ -228,7 +228,7 @@ shadowRemove(ScreenPtr pScreen, PixmapPtr pPixmap)
 				 (pointer) pScreen);
 }
 
-_X_EXPORT Bool
+Bool
 shadowInit(ScreenPtr pScreen, ShadowUpdateProc update, ShadowWindowProc window)
 {
     PixmapPtr pPixmap;
diff --git a/miext/shadow/shadow.h b/miext/shadow/shadow.h
index ee99fe6..ef85c0b 100644
--- a/miext/shadow/shadow.h
+++ b/miext/shadow/shadow.h
@@ -74,17 +74,17 @@ typedef struct _shadowBuf {
 #define SHADOW_REFLECT_Y    32
 #define SHADOW_REFLECT_ALL  (SHADOW_REFLECT_X|SHADOW_REFLECT_Y)
 
-extern DevPrivateKey shadowScrPrivateKey;
+extern _X_EXPORT DevPrivateKey shadowScrPrivateKey;
 
 #define shadowGetBuf(pScr) ((shadowBufPtr) \
     dixLookupPrivate(&(pScr)->devPrivates, shadowScrPrivateKey))
 #define shadowBuf(pScr)            shadowBufPtr pBuf = shadowGetBuf(pScr)
 #define shadowDamage(pBuf)  DamageRegion(pBuf->pDamage)    
 
-Bool
+extern _X_EXPORT Bool
 shadowSetup (ScreenPtr pScreen);
 
-Bool
+extern _X_EXPORT Bool
 shadowAdd (ScreenPtr	    pScreen,
 	   PixmapPtr	    pPixmap,
 	   ShadowUpdateProc update,
@@ -92,92 +92,92 @@ shadowAdd (ScreenPtr	    pScreen,
 	   int		    randr,
 	   void		    *closure);
 
-void
+extern _X_EXPORT void
 shadowRemove (ScreenPtr pScreen, PixmapPtr pPixmap);
 
-Bool
+extern _X_EXPORT Bool
 shadowInit (ScreenPtr pScreen, ShadowUpdateProc update, ShadowWindowProc window);
 
-void *
+extern _X_EXPORT void *
 shadowAlloc (int width, int height, int bpp);
 
-void
+extern _X_EXPORT void
 shadowUpdatePacked (ScreenPtr	    pScreen,
 		    shadowBufPtr    pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdatePlanar4 (ScreenPtr	    pScreen,
 		     shadowBufPtr   pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdatePlanar4x8 (ScreenPtr    pScreen,
 		       shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotatePacked (ScreenPtr    pScreen,
 			  shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate8_90 (ScreenPtr    pScreen,
 			shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate16_90 (ScreenPtr    pScreen,
 			 shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate16_90YX (ScreenPtr    pScreen,
 			   shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate32_90 (ScreenPtr    pScreen,
 			 shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate8_180 (ScreenPtr    pScreen,
 			 shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate16_180 (ScreenPtr    pScreen,
 			  shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate32_180 (ScreenPtr    pScreen,
 			  shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate8_270 (ScreenPtr    pScreen,
 			 shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate16_270 (ScreenPtr    pScreen,
 			  shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate16_270YX (ScreenPtr    pScreen,
 			    shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate32_270 (ScreenPtr    pScreen,
 			  shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate8 (ScreenPtr    pScreen,
 		     shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate16 (ScreenPtr    pScreen,
 		      shadowBufPtr pBuf);
 
-void
+extern _X_EXPORT void
 shadowUpdateRotate32 (ScreenPtr    pScreen,
 		      shadowBufPtr pBuf);
 
 typedef void (* shadowUpdateProc)(ScreenPtr, shadowBufPtr);
 
-shadowUpdateProc shadowUpdatePackedWeak(void);
-shadowUpdateProc shadowUpdatePlanar4Weak(void);
-shadowUpdateProc shadowUpdatePlanar4x8Weak(void);
-shadowUpdateProc shadowUpdateRotatePackedWeak(void);
+extern _X_EXPORT shadowUpdateProc shadowUpdatePackedWeak(void);
+extern _X_EXPORT shadowUpdateProc shadowUpdatePlanar4Weak(void);
+extern _X_EXPORT shadowUpdateProc shadowUpdatePlanar4x8Weak(void);
+extern _X_EXPORT shadowUpdateProc shadowUpdateRotatePackedWeak(void);
 
 #endif /* _SHADOW_H_ */
diff --git a/miext/shadow/shalloc.c b/miext/shadow/shalloc.c
index 5aefb7d..72aa28b 100644
--- a/miext/shadow/shalloc.c
+++ b/miext/shadow/shalloc.c
@@ -37,7 +37,7 @@
 #include    "gcstruct.h"
 #include    "shadow.h"
 
-_X_EXPORT void *
+void *
 shadowAlloc (int width, int height, int bpp)
 {
     int	    stride;
diff --git a/miext/shadow/shpacked.c b/miext/shadow/shpacked.c
index f4717ff..6736162 100644
--- a/miext/shadow/shpacked.c
+++ b/miext/shadow/shpacked.c
@@ -40,7 +40,7 @@
 #include    "shadow.h"
 #include    "fb.h"
 
-_X_EXPORT void
+void
 shadowUpdatePacked (ScreenPtr	    pScreen,
 		    shadowBufPtr    pBuf)
 {
@@ -112,7 +112,7 @@ shadowUpdatePacked (ScreenPtr	    pScreen,
     }
 }
 
-_X_EXPORT shadowUpdateProc
+shadowUpdateProc
 shadowUpdatePackedWeak(void) {
     return shadowUpdatePacked;
 }
diff --git a/miext/shadow/shplanar.c b/miext/shadow/shplanar.c
index 5fc86ee..b5983dc 100644
--- a/miext/shadow/shplanar.c
+++ b/miext/shadow/shplanar.c
@@ -86,7 +86,7 @@
 }
 #endif
 
-_X_EXPORT void
+void
 shadowUpdatePlanar4 (ScreenPtr	    pScreen,
 		     shadowBufPtr   pBuf)
 {
@@ -171,10 +171,10 @@ shadowUpdatePlanar4 (ScreenPtr	    pScreen,
     }
 }
 
-_X_EXPORT shadowUpdateProc shadowUpdatePlanar4Weak(void) {
+shadowUpdateProc shadowUpdatePlanar4Weak(void) {
     return shadowUpdatePlanar4;
 }
 
-_X_EXPORT shadowUpdateProc shadowUpdatePlanar4x8Weak(void) {
+shadowUpdateProc shadowUpdatePlanar4x8Weak(void) {
     return shadowUpdatePlanar4x8;
 }
diff --git a/miext/shadow/shplanar8.c b/miext/shadow/shplanar8.c
index a4a392b..6d8defa 100644
--- a/miext/shadow/shplanar8.c
+++ b/miext/shadow/shplanar8.c
@@ -89,7 +89,7 @@
 }
 #endif
 
-_X_EXPORT void
+void
 shadowUpdatePlanar4x8 (ScreenPtr	pScreen,
 		       shadowBufPtr	pBuf)
 {
diff --git a/miext/shadow/shrotate.c b/miext/shadow/shrotate.c
index fd15915..673cd76 100644
--- a/miext/shadow/shrotate.c
+++ b/miext/shadow/shrotate.c
@@ -48,7 +48,7 @@
 #define TOP_TO_BOTTOM	2
 #define BOTTOM_TO_TOP	-2
 
-_X_EXPORT void
+void
 shadowUpdateRotatePacked (ScreenPtr	pScreen,
 			  shadowBufPtr	pBuf)
 {
@@ -308,6 +308,6 @@ shadowUpdateRotatePacked (ScreenPtr	pScreen,
     }
 }
 
-_X_EXPORT shadowUpdateProc shadowUpdateRotatePackedWeak(void) {
+shadowUpdateProc shadowUpdateRotatePackedWeak(void) {
     return shadowUpdateRotatePacked;
 }
diff --git a/miext/shadow/shrotpack.h b/miext/shadow/shrotpack.h
index f49b174..015a985 100644
--- a/miext/shadow/shrotpack.h
+++ b/miext/shadow/shrotpack.h
@@ -93,7 +93,7 @@
 
 #endif
 
-_X_EXPORT void
+void
 FUNC (ScreenPtr	    pScreen,
       shadowBufPtr  pBuf)
 {
diff --git a/os/WaitFor.c b/os/WaitFor.c
index eb163b6..1633b49 100644
--- a/os/WaitFor.c
+++ b/os/WaitFor.c
@@ -142,7 +142,7 @@ static OsTimerPtr timers = NULL;
  *     pClientsReady is an array to store ready client->index values into.
  *****************/
 
-_X_EXPORT int
+int
 WaitForSomething(int *pClientsReady)
 {
     int i;
@@ -421,7 +421,7 @@ DoTimer(OsTimerPtr timer, CARD32 now, OsTimerPtr *prev)
 	TimerSet(timer, 0, newTime, timer->callback, timer->arg);
 }
 
-_X_EXPORT OsTimerPtr
+OsTimerPtr
 TimerSet(OsTimerPtr timer, int flags, CARD32 millis, 
     OsTimerCallback func, pointer arg)
 {
@@ -475,7 +475,7 @@ TimerSet(OsTimerPtr timer, int flags, CARD32 millis,
     return timer;
 }
 
-_X_EXPORT Bool
+Bool
 TimerForce(OsTimerPtr timer)
 {
     OsTimerPtr *prev;
@@ -492,7 +492,7 @@ TimerForce(OsTimerPtr timer)
 }
 
 
-_X_EXPORT void
+void
 TimerCancel(OsTimerPtr timer)
 {
     OsTimerPtr *prev;
@@ -509,7 +509,7 @@ TimerCancel(OsTimerPtr timer)
     }
 }
 
-_X_EXPORT void
+void
 TimerFree(OsTimerPtr timer)
 {
     if (!timer)
@@ -518,7 +518,7 @@ TimerFree(OsTimerPtr timer)
     xfree(timer);
 }
 
-_X_EXPORT void
+void
 TimerCheck(void)
 {
     CARD32 now = GetTimeInMillis();
@@ -527,7 +527,7 @@ TimerCheck(void)
 	DoTimer(timers, now, &timers);
 }
 
-_X_EXPORT void
+void
 TimerInit(void)
 {
     OsTimerPtr timer;
@@ -626,7 +626,7 @@ ScreenSaverTimeoutExpire(OsTimerPtr timer,CARD32 now,pointer arg)
 
 static OsTimerPtr ScreenSaverTimer = NULL;
 
-_X_EXPORT void
+void
 FreeScreenSaverTimer(void)
 {
     if (ScreenSaverTimer) {
@@ -635,7 +635,7 @@ FreeScreenSaverTimer(void)
     }
 }
 
-_X_EXPORT void
+void
 SetScreenSaverTimer(void)
 {
     CARD32 timeout = 0;
diff --git a/os/access.c b/os/access.c
index 670ec36..5d688a7 100644
--- a/os/access.c
+++ b/os/access.c
@@ -179,7 +179,7 @@ SOFTWARE.
 #endif
 #endif
 
-_X_EXPORT Bool defeatAccessControl = FALSE;
+Bool defeatAccessControl = FALSE;
 
 #define acmp(a1, a2, len) memcmp((char *)(a1), (char *)(a2), len)
 #define acopy(a1, a2, len) memmove((char *)(a2), (char *)(a1), len)
@@ -240,7 +240,7 @@ static void siTypesInitialize(void);
  * local host to the access list
  */
 
-_X_EXPORT void
+void
 EnableLocalHost (void)
 {
     if (!UsingXdmcp)
@@ -253,7 +253,7 @@ EnableLocalHost (void)
 /*
  * called when authorization is enabled to keep us secure
  */
-_X_EXPORT void
+void
 DisableLocalHost (void)
 {
     HOST *self;
@@ -271,7 +271,7 @@ DisableLocalHost (void)
  * adds local hosts manually when needed
  */
 
-_X_EXPORT void
+void
 AccessUsingXdmcp (void)
 {
     UsingXdmcp = TRUE;
@@ -321,7 +321,7 @@ ifioctl (int fd, int cmd, char *arg)
  */
 
 #if !defined(SIOCGIFCONF) 
-_X_EXPORT void
+void
 DefineSelf (int fd)
 {
 #if !defined(TCPCONN) && !defined(STREAMSCONN) && !defined(UNIXCONN) && !defined(MNX_TCPCONN)
@@ -847,7 +847,7 @@ DefineSelf (int fd)
 #endif /* hpux && !HAS_IFREQ */
 
 #ifdef XDMCP
-_X_EXPORT void
+void
 AugmentSelf(pointer from, int len)
 {
     int family;
@@ -873,7 +873,7 @@ AugmentSelf(pointer from, int len)
 }
 #endif
 
-_X_EXPORT void
+void
 AddLocalHosts (void)
 {
     HOST    *self;
@@ -887,7 +887,7 @@ AddLocalHosts (void)
 }
 
 /* Reset access control list to initial hosts */
-_X_EXPORT void
+void
 ResetHosts (char *display)
 {
     register HOST	*host;
@@ -1095,7 +1095,7 @@ ResetHosts (char *display)
 }
 
 /* Is client on the local host */
-_X_EXPORT Bool LocalClient(ClientPtr client)
+Bool LocalClient(ClientPtr client)
 {
     int    		alen, family, notused;
     Xtransaddr		*from = NULL;
@@ -1132,7 +1132,7 @@ _X_EXPORT Bool LocalClient(ClientPtr client)
  * 
  * Used by XShm to test access rights to shared memory segments
  */
-_X_EXPORT int
+int
 LocalClientCred(ClientPtr client, int *pUid, int *pGid)
 {
     LocalClientCredRec *lcc;
@@ -1161,7 +1161,7 @@ LocalClientCred(ClientPtr client, int *pUid, int *pGid)
  * Used by localuser & localgroup ServerInterpreted access control forms below
  * Used by AuthAudit to log who local connections came from
  */
-_X_EXPORT int
+int
 GetLocalClientCreds(ClientPtr client, LocalClientCredRec **lccp)
 {
 #if defined(HAS_GETPEEREID) || defined(HAS_GETPEERUCRED) || defined(SO_PEERCRED)
@@ -1260,7 +1260,7 @@ GetLocalClientCreds(ClientPtr client, LocalClientCredRec **lccp)
 #endif
 }
 
-_X_EXPORT void
+void
 FreeLocalClientCreds(LocalClientCredRec *lcc)
 {
     if (lcc != NULL) {
@@ -1290,7 +1290,7 @@ AuthorizedClient(ClientPtr client)
 /* Add a host to the access control list.  This is the external interface
  * called from the dispatcher */
 
-_X_EXPORT int
+int
 AddHost (ClientPtr	client,
 	 int            family,
 	 unsigned       length,        /* of bytes in pAddr */
@@ -1335,7 +1335,7 @@ AddHost (ClientPtr	client,
     return BadAlloc;
 }
 
-_X_EXPORT Bool
+Bool
 ForEachHostInFamily (int	    family,
 		     Bool    (*func)(
 			 unsigned char * /* addr */,
@@ -1387,7 +1387,7 @@ NewHost (int		family,
 
 /* Remove a host from the access control list */
 
-_X_EXPORT int
+int
 RemoveHost (
     ClientPtr		client,
     int                 family,
@@ -1441,7 +1441,7 @@ RemoveHost (
 }
 
 /* Get all hosts in the access control list */
-_X_EXPORT int
+int
 GetHosts (
     pointer		*data,
     int			*pnHosts,
@@ -1540,7 +1540,7 @@ CheckAddr (
 /* Check if a host is not in the access control list. 
  * Returns 1 if host is invalid, 0 if we've found it. */
 
-_X_EXPORT int
+int
 InvalidHost (
     register struct sockaddr	*saddr,
     int				len,
@@ -1651,7 +1651,7 @@ ConvertAddr (
     }
 }
 
-_X_EXPORT int
+int
 ChangeAccessControl(
     ClientPtr client,
     int fEnabled)
@@ -1664,7 +1664,7 @@ ChangeAccessControl(
 }
 
 /* returns FALSE if xhost + in effect, else TRUE */
-_X_EXPORT int
+int
 GetAccessControl(void)
 {
     return AccessEnabled;
diff --git a/os/auth.c b/os/auth.c
index 4a67b37..a852e1c 100644
--- a/os/auth.c
+++ b/os/auth.c
@@ -100,7 +100,7 @@ static char *authorization_file = (char *)NULL;
 
 static Bool ShouldLoadAuth = TRUE;
 
-_X_EXPORT void
+void
 InitAuthorization (char *file_name)
 {
     authorization_file = file_name;
@@ -145,7 +145,7 @@ LoadAuthorization (void)
  * XdmcpInit calls this function to discover all authorization
  * schemes supported by the display
  */
-_X_EXPORT void
+void
 RegisterAuthorizations (void)
 {
     int	    i;
@@ -156,7 +156,7 @@ RegisterAuthorizations (void)
 }
 #endif
 
-_X_EXPORT XID
+XID
 CheckAuthorization (
     unsigned int name_length,
     char	*name,
@@ -221,7 +221,7 @@ CheckAuthorization (
     return (XID) ~0L;
 }
 
-_X_EXPORT void
+void
 ResetAuthorization (void)
 {
     int	i;
@@ -232,7 +232,7 @@ ResetAuthorization (void)
     ShouldLoadAuth = TRUE;
 }
 
-_X_EXPORT int
+int
 AuthorizationFromID (
 	XID 		id,
 	unsigned short	*name_lenp,
@@ -253,7 +253,7 @@ AuthorizationFromID (
     return 0;
 }
 
-_X_EXPORT int
+int
 RemoveAuthorization (
 	unsigned short	name_length,
 	char		*name,
@@ -273,7 +273,7 @@ RemoveAuthorization (
     return 0;
 }
 
-_X_EXPORT int
+int
 AddAuthorization (unsigned name_length, char *name, unsigned data_length, char *data)
 {
     int	i;
@@ -291,7 +291,7 @@ AddAuthorization (unsigned name_length, char *name, unsigned data_length, char *
 
 #ifdef XCSECURITY
 
-_X_EXPORT XID
+XID
 GenerateAuthorization(
 	unsigned name_length,
 	char	*name,
diff --git a/os/backtrace.c b/os/backtrace.c
index e51b930..b52dcde 100644
--- a/os/backtrace.c
+++ b/os/backtrace.c
@@ -30,7 +30,7 @@
 #ifdef HAVE_BACKTRACE
 #include <execinfo.h>
 
-_X_EXPORT void xorg_backtrace(void)
+void xorg_backtrace(void)
 {
     void *array[32]; /* deeper nesting than this means something's wrong */
     size_t size, i;
@@ -168,7 +168,7 @@ static int xorg_backtrace_pstack(void) {
 
 # if defined(HAVE_PSTACK) || defined(HAVE_WALKCONTEXT)
 
-_X_EXPORT void xorg_backtrace(void) {
+void xorg_backtrace(void) {
 
     ErrorF("\nBacktrace:\n");
 
@@ -195,7 +195,7 @@ _X_EXPORT void xorg_backtrace(void) {
 # else
 
 /* Default fallback if we can't find any way to get a backtrace */
-_X_EXPORT void xorg_backtrace(void) { return; }
+void xorg_backtrace(void) { return; }
 
 # endif
 #endif
diff --git a/os/connection.c b/os/connection.c
index 9153d15..ed3ecab 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -141,12 +141,12 @@ fd_set LastSelectMask;		/* mask returned from last select call */
 fd_set ClientsWithInput;	/* clients with FULL requests in buffer */
 fd_set ClientsWriteBlocked;	/* clients who cannot receive output */
 fd_set OutputPending;		/* clients with reply/event data ready to go */
-_X_EXPORT int MaxClients = 0;
+int MaxClients = 0;
 Bool NewOutputPending;		/* not yet attempted to write some new output */
 Bool AnyClientsWriteBlocked;	/* true if some client blocked on write */
 
 static Bool RunFromSmartParent;	/* send SIGUSR1 to parent process */
-_X_EXPORT Bool PartialNetwork;	/* continue even if unable to bind all addrs */
+Bool PartialNetwork;	/* continue even if unable to bind all addrs */
 static Pid_t ParentProcess;
 
 static Bool debug_conns = FALSE;
@@ -156,7 +156,7 @@ static fd_set GrabImperviousClients;
 static fd_set SavedAllClients;
 static fd_set SavedAllSockets;
 static fd_set SavedClientsWithInput;
-_X_EXPORT int GrabInProgress = 0;
+int GrabInProgress = 0;
 
 #if !defined(WIN32)
 int *ConnectionTranslation = NULL;
@@ -273,7 +273,7 @@ lookup_trans_conn (int fd)
 
 /* Set MaxClients and lastfdesc, and allocate ConnectionTranslation */
 
-_X_EXPORT void
+void
 InitConnectionLimits(void)
 {
     lastfdesc = -1;
@@ -358,7 +358,7 @@ InitParentProcess(void)
 #endif
 }
 
-_X_EXPORT void
+void
 NotifyParentProcess(void)
 {
 #if !defined(WIN32)
@@ -375,7 +375,7 @@ NotifyParentProcess(void)
  *    At initialization, create the sockets to listen on for new clients.
  *****************/
 
-_X_EXPORT void
+void
 CreateWellKnownSockets(void)
 {
     int		i;
@@ -442,7 +442,7 @@ CreateWellKnownSockets(void)
 #endif
 }
 
-_X_EXPORT void
+void
 ResetWellKnownSockets (void)
 {
     int i;
@@ -493,7 +493,7 @@ ResetWellKnownSockets (void)
 #endif
 }
 
-_X_EXPORT void
+void
 CloseWellKnownConnections(void)
 {
     int i;
@@ -618,7 +618,7 @@ AuthAudit (ClientPtr client, Bool letin,
 #endif	
 }
 
-_X_EXPORT XID
+XID
 AuthorizationIDOfClient(ClientPtr client)
 {
     if (client->osPrivate)
@@ -647,7 +647,7 @@ AuthorizationIDOfClient(ClientPtr client)
  *
  *****************************************************************/
 
-_X_EXPORT char * 
+char *
 ClientAuthorized(ClientPtr client, 
     unsigned int proto_n, char *auth_proto, 
     unsigned int string_n, char *auth_string)
@@ -798,7 +798,7 @@ AllocNewConnection (XtransConnInfo trans_conn, int fd, CARD32 conn_time)
  *****************/
 
 /*ARGSUSED*/
-_X_EXPORT Bool
+Bool
 EstablishNewConnections(ClientPtr clientUnused, pointer closure)
 {
     fd_set  readyconnections;     /* set of listeners that are ready */
@@ -980,7 +980,7 @@ CloseDownFileDescriptor(OsCommPtr oc)
  *    to check each and every socket individually.
  *****************/
 
-_X_EXPORT void
+void
 CheckConnections(void)
 {
 #ifndef WIN32
@@ -1040,7 +1040,7 @@ CheckConnections(void)
  *    Delete client from AllClients and free resources 
  *****************/
 
-_X_EXPORT void
+void
 CloseDownConnection(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -1058,7 +1058,7 @@ CloseDownConnection(ClientPtr client)
 	AuditF("client %d disconnected\n", client->index);
 }
 
-_X_EXPORT void
+void
 AddGeneralSocket(int fd)
 {
     FD_SET(fd, &AllSockets);
@@ -1066,14 +1066,14 @@ AddGeneralSocket(int fd)
 	FD_SET(fd, &SavedAllSockets);
 }
 
-_X_EXPORT void
+void
 AddEnabledDevice(int fd)
 {
     FD_SET(fd, &EnabledDevices);
     AddGeneralSocket(fd);
 }
 
-_X_EXPORT void
+void
 RemoveGeneralSocket(int fd)
 {
     FD_CLR(fd, &AllSockets);
@@ -1081,7 +1081,7 @@ RemoveGeneralSocket(int fd)
 	FD_CLR(fd, &SavedAllSockets);
 }
 
-_X_EXPORT void
+void
 RemoveEnabledDevice(int fd)
 {
     FD_CLR(fd, &EnabledDevices);
@@ -1098,7 +1098,7 @@ RemoveEnabledDevice(int fd)
  *    This routine is "undone" by ListenToAllClients()
  *****************/
 
-_X_EXPORT int
+int
 OnlyListenToOneClient(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -1135,7 +1135,7 @@ OnlyListenToOneClient(ClientPtr client)
  *    Undoes OnlyListentToOneClient()
  ****************/
 
-_X_EXPORT void
+void
 ListenToAllClients(void)
 {
     if (GrabInProgress)
@@ -1153,7 +1153,7 @@ ListenToAllClients(void)
  *    Must have cooresponding call to AttendClient.
  ****************/
 
-_X_EXPORT void
+void
 IgnoreClient (ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -1188,7 +1188,7 @@ IgnoreClient (ClientPtr client)
  *    Adds one client back into the input masks.
  ****************/
 
-_X_EXPORT void
+void
 AttendClient (ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -1213,7 +1213,7 @@ AttendClient (ClientPtr client)
 
 /* make client impervious to grabs; assume only executing client calls this */
 
-_X_EXPORT void
+void
 MakeClientGrabImpervious(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -1232,7 +1232,7 @@ MakeClientGrabImpervious(ClientPtr client)
 
 /* make client pervious to grabs; assume only executing client calls this */
 
-_X_EXPORT void
+void
 MakeClientGrabPervious(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -1262,7 +1262,7 @@ MakeClientGrabPervious(ClientPtr client)
 
 #ifdef XQUARTZ
 /* Add a fd (from launchd) to our listeners */
-_X_EXPORT void ListenOnOpenFD(int fd, int noxauth) {
+void ListenOnOpenFD(int fd, int noxauth) {
     char port[256];
     XtransConnInfo ciptr;
 
diff --git a/os/io.c b/os/io.c
index e902ee5..68f9bf0 100644
--- a/os/io.c
+++ b/os/io.c
@@ -82,8 +82,8 @@ SOFTWARE.
 #include "dixstruct.h"
 #include "misc.h"
 
-_X_EXPORT CallbackListPtr       ReplyCallback;
-_X_EXPORT CallbackListPtr       FlushCallback;
+CallbackListPtr       ReplyCallback;
+CallbackListPtr       FlushCallback;
 
 static ConnectionInputPtr AllocateInputBuffer(void);
 static ConnectionOutputPtr AllocateOutputBuffer(void);
@@ -191,7 +191,7 @@ YieldControlDeath(void)
     timesThisConnection = 0;
 }
 
-_X_EXPORT int
+int
 ReadRequestFromClient(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -465,7 +465,7 @@ ReadRequestFromClient(ClientPtr client)
  *
  **********************/
 
-_X_EXPORT Bool
+Bool
 InsertFakeRequest(ClientPtr client, char *data, int count)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -539,7 +539,7 @@ InsertFakeRequest(ClientPtr client, char *data, int count)
  *
  **********************/
 
-_X_EXPORT void
+void
 ResetCurrentRequest(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
@@ -599,7 +599,7 @@ static const int padlength[4] = {0, 3, 2, 1};
  *
  **********************/
 
-_X_EXPORT void
+void
 FlushAllOutput(void)
 {
     register int index, base;
@@ -672,14 +672,14 @@ FlushAllOutput(void)
 #endif /* WIN32 */
 }
 
-_X_EXPORT void
+void
 FlushIfCriticalOutputPending(void)
 {
     if (CriticalOutputPending)
 	FlushAllOutput();
 }
 
-_X_EXPORT void
+void
 SetCriticalOutputPending(void)
 {
     CriticalOutputPending = TRUE;
@@ -696,7 +696,7 @@ SetCriticalOutputPending(void)
  *    this routine as int.
  *****************/
 
-_X_EXPORT int
+int
 WriteToClient (ClientPtr who, int count, const void *__buf)
 {
     OsCommPtr oc = (OsCommPtr)who->osPrivate;
@@ -1087,7 +1087,7 @@ FreeOsBuffers(OsCommPtr oc)
     }
 }
 
-_X_EXPORT void
+void
 ResetOsBuffers(void)
 {
     ConnectionInputPtr oci;
diff --git a/os/log.c b/os/log.c
index d659324..351090c 100644
--- a/os/log.c
+++ b/os/log.c
@@ -100,7 +100,7 @@ OR PERFORMANCE OF THIS SOFTWARE.
 
 
 #ifdef DDXOSVERRORF
-_X_EXPORT void (*OsVendorVErrorFProc)(const char *, va_list args) = NULL;
+void (*OsVendorVErrorFProc)(const char *, va_list args) = NULL;
 #endif
 
 static FILE *logFile = NULL;
@@ -155,7 +155,7 @@ static Bool needBuffer = TRUE;
  * string.
  */
 
-_X_EXPORT const char *
+const char *
 LogInit(const char *fname, const char *backup)
 {
     char *logFileName = NULL;
@@ -217,7 +217,7 @@ LogInit(const char *fname, const char *backup)
     return logFileName;
 }
 
-_X_EXPORT void
+void
 LogClose(void)
 {
     if (logFile) {
@@ -226,7 +226,7 @@ LogClose(void)
     }
 }
 
-_X_EXPORT Bool
+Bool
 LogSetParameter(LogParameter param, int value)
 {
     switch (param) {
@@ -249,7 +249,7 @@ LogSetParameter(LogParameter param, int value)
 
 /* This function does the actual log message writes. */
 
-_X_EXPORT void
+void
 LogVWrite(int verb, const char *f, va_list args)
 {
     static char tmpBuffer[1024];
@@ -298,7 +298,7 @@ LogVWrite(int verb, const char *f, va_list args)
     }
 }
 
-_X_EXPORT void
+void
 LogWrite(int verb, const char *f, ...)
 {
     va_list args;
@@ -308,7 +308,7 @@ LogWrite(int verb, const char *f, ...)
     va_end(args);
 }
 
-_X_EXPORT void
+void
 LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
 {
     const char *s  = X_UNKNOWN_STRING;
@@ -373,7 +373,7 @@ LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
 }
 
 /* Log message with verbosity level specified. */
-_X_EXPORT void
+void
 LogMessageVerb(MessageType type, int verb, const char *format, ...)
 {
     va_list ap;
@@ -384,7 +384,7 @@ LogMessageVerb(MessageType type, int verb, const char *format, ...)
 }
 
 /* Log a message with the standard verbosity level of 1. */
-_X_EXPORT void
+void
 LogMessage(MessageType type, const char *format, ...)
 {
     va_list ap;
@@ -420,7 +420,7 @@ static int nrepeat = 0;
 static int oldlen = -1;
 static OsTimerPtr auditTimer = NULL;
 
-_X_EXPORT void 
+void
 FreeAuditTimer(void)
 {
     if (auditTimer != NULL) {
@@ -451,7 +451,7 @@ AuditPrefix(void)
     return tmpBuf;
 }
 
-_X_EXPORT void
+void
 AuditF(const char * f, ...)
 {
     va_list args;
@@ -482,7 +482,7 @@ AuditFlush(OsTimerPtr timer, CARD32 now, pointer arg)
     }
 }
 
-_X_EXPORT void
+void
 VAuditF(const char *f, va_list args)
 {
     char *prefix;
@@ -510,7 +510,7 @@ VAuditF(const char *f, va_list args)
 	free(prefix);
 }
 
-_X_EXPORT void
+void
 FatalError(const char *f, ...)
 {
     va_list args;
@@ -535,7 +535,7 @@ FatalError(const char *f, ...)
     /*NOTREACHED*/
 }
 
-_X_EXPORT void
+void
 VErrorF(const char *f, va_list args)
 {
 #ifdef DDXOSVERRORF
@@ -548,7 +548,7 @@ VErrorF(const char *f, va_list args)
 #endif
 }
 
-_X_EXPORT void
+void
 ErrorF(const char * f, ...)
 {
     va_list args;
@@ -560,7 +560,7 @@ ErrorF(const char * f, ...)
 
 /* A perror() workalike. */
 
-_X_EXPORT void
+void
 Error(char *str)
 {
     char *err = NULL;
@@ -577,7 +577,7 @@ Error(char *str)
 	LogWrite(-1, strerror(saveErrno));
 }
 
-_X_EXPORT void
+void
 LogPrintMarkers(void)
 {
     /* Show what the message marker symbols mean. */
diff --git a/os/oscolor.c b/os/oscolor.c
index a066129..7f6b938 100644
--- a/os/oscolor.c
+++ b/os/oscolor.c
@@ -1571,7 +1571,7 @@ static const BuiltinColor BuiltinColors[] = {
 
 #define NUM_BUILTIN_COLORS  (sizeof (BuiltinColors) / sizeof (BuiltinColors[0]))
 
-_X_EXPORT Bool
+Bool
 OsLookupColor(int		screen,
 	      char		*name,
 	      unsigned int	len,
diff --git a/os/osinit.c b/os/osinit.c
index 92bd90b..74e2457 100644
--- a/os/osinit.c
+++ b/os/osinit.c
@@ -79,16 +79,16 @@ SOFTWARE.
 
 extern char *display;
 #ifdef RLIMIT_DATA
-_X_EXPORT int limitDataSpace = -1;
+int limitDataSpace = -1;
 #endif
 #ifdef RLIMIT_STACK
-_X_EXPORT int limitStackSpace = -1;
+int limitStackSpace = -1;
 #endif
 #ifdef RLIMIT_NOFILE
-_X_EXPORT int limitNoFile = -1;
+int limitNoFile = -1;
 #endif
 
-_X_EXPORT void
+void
 OsInit(void)
 {
     static Bool been_here = FALSE;
@@ -202,7 +202,7 @@ OsInit(void)
 	    SmartScheduleDisable = TRUE;
 }
 
-_X_EXPORT void
+void
 OsCleanup(Bool terminating)
 {
     if (terminating)
diff --git a/os/strcasecmp.c b/os/strcasecmp.c
index 268fa1e..ca1051d 100644
--- a/os/strcasecmp.c
+++ b/os/strcasecmp.c
@@ -35,7 +35,7 @@
 #include "dix.h"
 
 #ifdef NEED_STRCASECMP
-_X_EXPORT int
+int
 xstrcasecmp(const char *str1, const char *str2)
 {
     const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
@@ -51,7 +51,7 @@ xstrcasecmp(const char *str1, const char *str2)
 #endif
 
 #ifdef NEED_STRNCASECMP
-_X_EXPORT int
+int
 xstrncasecmp(const char *s1, const char *s2, size_t n)
 {
     if (n != 0) {
diff --git a/os/strcasestr.c b/os/strcasestr.c
index cbc84f1..b3d4549 100644
--- a/os/strcasestr.c
+++ b/os/strcasestr.c
@@ -42,7 +42,7 @@
  * Find the first occurrence of find in s, ignore case.
  */
 #ifdef NEED_STRCASESTR
-_X_EXPORT char *
+char *
 xstrcasestr(const char *s, const char *find)
 {
         char c, sc;
diff --git a/os/strlcat.c b/os/strlcat.c
index b753a7a..91ceabb 100644
--- a/os/strlcat.c
+++ b/os/strlcat.c
@@ -30,7 +30,7 @@
  * Returns strlen(src) + MIN(siz, strlen(initial dst)).
  * If retval >= siz, truncation occurred.
  */
-_X_EXPORT size_t
+size_t
 strlcat(char *dst, const char *src, size_t siz)
 {
 	register char *d = dst;
diff --git a/os/strlcpy.c b/os/strlcpy.c
index 341d028..aa9d042 100644
--- a/os/strlcpy.c
+++ b/os/strlcpy.c
@@ -27,7 +27,7 @@
  * will be copied.  Always NUL terminates (unless siz == 0).
  * Returns strlen(src); if retval >= siz, truncation occurred.
  */
-_X_EXPORT size_t
+size_t
 strlcpy(char *dst, const char *src, size_t siz)
 {
 	register char *d = dst;
diff --git a/os/utils.c b/os/utils.c
index 6d2a9e9..a41b0cf 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -121,90 +121,90 @@ OR PERFORMANCE OF THIS SOFTWARE.
 #include "picture.h"
 #endif
 
-_X_EXPORT Bool noTestExtensions;
+Bool noTestExtensions;
 #ifdef COMPOSITE
-_X_EXPORT Bool noCompositeExtension = FALSE;
+Bool noCompositeExtension = FALSE;
 #endif
 
 #ifdef DAMAGE
-_X_EXPORT Bool noDamageExtension = FALSE;
+Bool noDamageExtension = FALSE;
 #endif
 #ifdef DBE
-_X_EXPORT Bool noDbeExtension = FALSE;
+Bool noDbeExtension = FALSE;
 #endif
 #ifdef DPMSExtension
-_X_EXPORT Bool noDPMSExtension = FALSE;
+Bool noDPMSExtension = FALSE;
 #endif
 #ifdef GLXEXT
-_X_EXPORT Bool noGlxExtension = FALSE;
-_X_EXPORT Bool noGlxVisualInit = FALSE;
+Bool noGlxExtension = FALSE;
+Bool noGlxVisualInit = FALSE;
 #endif
 #ifdef SCREENSAVER
-_X_EXPORT Bool noScreenSaverExtension = FALSE;
+Bool noScreenSaverExtension = FALSE;
 #endif
 #ifdef MITSHM
-_X_EXPORT Bool noMITShmExtension = FALSE;
+Bool noMITShmExtension = FALSE;
 #endif
 #ifdef MULTIBUFFER
-_X_EXPORT Bool noMultibufferExtension = FALSE;
+Bool noMultibufferExtension = FALSE;
 #endif
 #ifdef RANDR
-_X_EXPORT Bool noRRExtension = FALSE;
+Bool noRRExtension = FALSE;
 #endif
 #ifdef RENDER
-_X_EXPORT Bool noRenderExtension = FALSE;
+Bool noRenderExtension = FALSE;
 #endif
 #ifdef XCSECURITY
-_X_EXPORT Bool noSecurityExtension = FALSE;
+Bool noSecurityExtension = FALSE;
 #endif
 #ifdef RES
-_X_EXPORT Bool noResExtension = FALSE;
+Bool noResExtension = FALSE;
 #endif
 #ifdef XF86BIGFONT
-_X_EXPORT Bool noXFree86BigfontExtension = FALSE;
+Bool noXFree86BigfontExtension = FALSE;
 #endif
 #ifdef XFreeXDGA
-_X_EXPORT Bool noXFree86DGAExtension = FALSE;
+Bool noXFree86DGAExtension = FALSE;
 #endif
 #ifdef XF86DRI
-_X_EXPORT Bool noXFree86DRIExtension = FALSE;
+Bool noXFree86DRIExtension = FALSE;
 #endif
 #ifdef XF86VIDMODE
-_X_EXPORT Bool noXFree86VidModeExtension = FALSE;
+Bool noXFree86VidModeExtension = FALSE;
 #endif
 #ifdef XFIXES
-_X_EXPORT Bool noXFixesExtension = FALSE;
+Bool noXFixesExtension = FALSE;
 #endif
 /* noXkbExtension is defined in xkb/xkbInit.c */
 #ifdef PANORAMIX
 /* Xinerama is disabled by default unless enabled via +xinerama */
-_X_EXPORT Bool noPanoramiXExtension = TRUE;
+Bool noPanoramiXExtension = TRUE;
 #endif
 #ifdef XSELINUX
-_X_EXPORT Bool noSELinuxExtension = FALSE;
-_X_EXPORT int selinuxEnforcingState = SELINUX_MODE_DEFAULT;
+Bool noSELinuxExtension = FALSE;
+int selinuxEnforcingState = SELINUX_MODE_DEFAULT;
 #endif
 #ifdef XV
-_X_EXPORT Bool noXvExtension = FALSE;
+Bool noXvExtension = FALSE;
 #endif
 #ifdef DRI2
-_X_EXPORT Bool noDRI2Extension = FALSE;
+Bool noDRI2Extension = FALSE;
 #endif
 
-_X_EXPORT Bool noGEExtension = FALSE;
+Bool noGEExtension = FALSE;
 
 #define X_INCLUDE_NETDB_H
 #include <X11/Xos_r.h>
 
 #include <errno.h>
 
-_X_EXPORT Bool CoreDump;
+Bool CoreDump;
 
 #ifdef PANORAMIX
-_X_EXPORT Bool PanoramiXExtensionDisabledHack = FALSE;
+Bool PanoramiXExtensionDisabledHack = FALSE;
 #endif
 
-_X_EXPORT int auditTrailLevel = 1;
+int auditTrailLevel = 1;
 
 #if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
 #define HAS_SAVED_IDS_AND_SETEUID
@@ -212,7 +212,7 @@ _X_EXPORT int auditTrailLevel = 1;
 
 static char *dev_tty_from_init = NULL;	/* since we need to parse it anyway */
 
-_X_EXPORT OsSigHandlerPtr
+OsSigHandlerPtr
 OsSignal(sig, handler)
     int sig;
     OsSigHandlerPtr handler;
@@ -261,7 +261,7 @@ static Bool nolock = FALSE;
  *      contained inside is valid.  If so, then die.  Otherwise, create
  *      the lock file containing the PID.
  */
-_X_EXPORT void
+void
 LockServer(void)
 {
   char tmp[PATH_MAX], pid_str[12];
@@ -387,7 +387,7 @@ LockServer(void)
  * UnlockServer --
  *      Remove the server lock file.
  */
-_X_EXPORT void
+void
 UnlockServer(void)
 {
   if (nolock) return;
@@ -401,7 +401,7 @@ UnlockServer(void)
 /* Force connections to close on SIGHUP from init */
 
 /*ARGSUSED*/
-_X_EXPORT SIGVAL
+SIGVAL
 AutoResetServer (int sig)
 {
     int olderrno = errno;
@@ -414,7 +414,7 @@ AutoResetServer (int sig)
 /* Force connections to close and then exit on SIGTERM, SIGINT */
 
 /*ARGSUSED*/
-_X_EXPORT SIGVAL
+SIGVAL
 GiveUp(int sig)
 {
     int olderrno = errno;
@@ -425,13 +425,13 @@ GiveUp(int sig)
 }
 
 #if defined WIN32 && defined __MINGW32__
-_X_EXPORT CARD32
+CARD32
 GetTimeInMillis (void)
 {
   return GetTickCount ();
 }
 #else
-_X_EXPORT CARD32
+CARD32
 GetTimeInMillis(void)
 {
     struct timeval tv;
@@ -447,7 +447,7 @@ GetTimeInMillis(void)
 }
 #endif
 
-_X_EXPORT void
+void
 AdjustWaitForDelay (pointer waitTime, unsigned long newdelay)
 {
     static struct timeval   delay_val;
@@ -471,7 +471,7 @@ AdjustWaitForDelay (pointer waitTime, unsigned long newdelay)
     }
 }
 
-_X_EXPORT void UseMsg(void)
+void UseMsg(void)
 {
     ErrorF("use: X [:<display>] [option]\n");
     ErrorF("-a #                   mouse acceleration (pixels)\n");
@@ -577,7 +577,7 @@ VerifyDisplayName(const char *d)
  * and allows ddx to handle additional fields.  It is not allowed to modify
  * argc or any of the strings pointed to by argv.
  */
-_X_EXPORT void
+void
 ProcessCommandLine(int argc, char *argv[])
 {
     int i, skip;
@@ -982,7 +982,7 @@ ProcessCommandLine(int argc, char *argv[])
 
 /* Implement a simple-minded font authorization scheme.  The authorization
    name is "hp-hostname-1", the contents are simply the host name. */
-_X_EXPORT int
+int
 set_font_authorizations(char **authorizations, int *authlen, pointer client)
 {
 #define AUTHORIZATION_NAME "hp-hostname-1"
@@ -1049,7 +1049,7 @@ set_font_authorizations(char **authorizations, int *authlen, pointer client)
 
 #ifndef INTERNAL_MALLOC
 
-_X_EXPORT void * 
+void *
 Xalloc(unsigned long amount)
 {
     void *ptr;
@@ -1068,7 +1068,7 @@ Xalloc(unsigned long amount)
  * "no failure" realloc
  *****************/
 
-_X_EXPORT void *
+void *
 XNFalloc(unsigned long amount)
 {
     void *ptr;
@@ -1087,7 +1087,7 @@ XNFalloc(unsigned long amount)
  * Xcalloc
  *****************/
 
-_X_EXPORT void *
+void *
 Xcalloc(unsigned long amount)
 {
     void *ret;
@@ -1102,7 +1102,7 @@ Xcalloc(unsigned long amount)
  * XNFcalloc
  *****************/
 
-_X_EXPORT void *
+void *
 XNFcalloc(unsigned long amount)
 {
     void *ret;
@@ -1119,7 +1119,7 @@ XNFcalloc(unsigned long amount)
  * Xrealloc
  *****************/
 
-_X_EXPORT void *
+void *
 Xrealloc(pointer ptr, unsigned long amount)
 {
     if ((long)amount <= 0)
@@ -1142,7 +1142,7 @@ Xrealloc(pointer ptr, unsigned long amount)
  * "no failure" realloc
  *****************/
 
-_X_EXPORT void *
+void *
 XNFrealloc(pointer ptr, unsigned long amount)
 {
     if ((ptr = Xrealloc(ptr, amount)) == NULL)
@@ -1158,7 +1158,7 @@ XNFrealloc(pointer ptr, unsigned long amount)
  *    calls free 
  *****************/    
 
-_X_EXPORT void
+void
 Xfree(pointer ptr)
 {
     if (ptr)
@@ -1167,7 +1167,7 @@ Xfree(pointer ptr)
 #endif /* !INTERNAL_MALLOC */
 
 
-_X_EXPORT char *
+char *
 Xstrdup(const char *s)
 {
     char *sd;
@@ -1182,7 +1182,7 @@ Xstrdup(const char *s)
 }
 
 
-_X_EXPORT char *
+char *
 XNFstrdup(const char *s)
 {
     char *sd;
@@ -1205,7 +1205,7 @@ XNFstrdup(const char *s)
 #define SMART_SCHEDULE_TIMER		ITIMER_REAL
 #endif
 
-_X_EXPORT void
+void
 SmartScheduleStopTimer (void)
 {
 #ifdef SMART_SCHEDULE_POSSIBLE
@@ -1221,7 +1221,7 @@ SmartScheduleStopTimer (void)
 #endif
 }
 
-_X_EXPORT void
+void
 SmartScheduleStartTimer (void)
 {
 #ifdef SMART_SCHEDULE_POSSIBLE
@@ -1245,7 +1245,7 @@ SmartScheduleTimer (int sig)
 }
 #endif
 
-_X_EXPORT Bool
+Bool
 SmartScheduleInit (void)
 {
 #ifdef SMART_SCHEDULE_POSSIBLE
@@ -1276,7 +1276,7 @@ static sigset_t	PreviousSignalMask;
 static int	BlockedSignalCount;
 #endif
 
-_X_EXPORT void
+void
 OsBlockSignals (void)
 {
 #ifdef SIG_BLOCK
@@ -1314,7 +1314,7 @@ OsBlockSignals (void)
 #endif
 }
 
-_X_EXPORT void
+void
 OsReleaseSignals (void)
 {
 #ifdef SIG_BLOCK
@@ -1336,7 +1336,7 @@ OsReleaseSignals (void)
  * as well.  As it is now, xkbcomp messages don't end up in the log file.
  */
 
-_X_EXPORT int
+int
 System(char *command)
 {
     int pid, p;
@@ -1395,7 +1395,7 @@ static struct pid {
 
 OsSigHandlerPtr old_alarm = NULL; /* XXX horrible awful hack */
 
-_X_EXPORT pointer
+pointer
 Popen(char *command, char *type)
 {
     struct pid *cur;
@@ -1480,7 +1480,7 @@ Popen(char *command, char *type)
 }
 
 /* fopen that drops privileges */
-_X_EXPORT pointer
+pointer
 Fopen(char *file, char *type)
 {
     FILE *iop;
@@ -1573,7 +1573,7 @@ Fopen(char *file, char *type)
 #endif /* HAS_SAVED_IDS_AND_SETEUID */
 }
 
-_X_EXPORT int
+int
 Pclose(pointer iop)
 {
     struct pid *cur, *last;
@@ -1613,7 +1613,7 @@ Pclose(pointer iop)
     return pid == -1 ? -1 : pstat;
 }
 
-_X_EXPORT int 
+int
 Fclose(pointer iop)
 {
 #ifdef HAS_SAVED_IDS_AND_SETEUID
@@ -1701,7 +1701,7 @@ enum BadCode {
 #endif
 
 void
-_X_EXPORT CheckUserParameters(int argc, char **argv, char **envp)
+CheckUserParameters(int argc, char **argv, char **envp)
 {
     enum BadCode bad = NotBad;
     int i = 0, j;
@@ -1838,7 +1838,7 @@ _X_EXPORT CheckUserParameters(int argc, char **argv, char **envp)
 #include <pwd.h>
 #endif /* USE_PAM */
 
-_X_EXPORT void
+void
 CheckUserAuthorization(void)
 {
 #ifdef USE_PAM
diff --git a/os/xprintf.c b/os/xprintf.c
index 4be4e7a..07eaa1f 100644
--- a/os/xprintf.c
+++ b/os/xprintf.c
@@ -43,7 +43,7 @@
 # endif
 #endif
     
-_X_EXPORT char *
+char *
 Xvprintf(const char *format, va_list va)
 {
     char *ret;
@@ -63,7 +63,7 @@ Xvprintf(const char *format, va_list va)
     return ret;
 }
 
-_X_EXPORT char *Xprintf(const char *format, ...)
+char *Xprintf(const char *format, ...)
 {
     char *ret;
     va_list va;
@@ -73,7 +73,7 @@ _X_EXPORT char *Xprintf(const char *format, ...)
     return ret;
 }
 
-_X_EXPORT char *
+char *
 XNFvprintf(const char *format, va_list va)
 {
     char *ret;
@@ -93,7 +93,7 @@ XNFvprintf(const char *format, va_list va)
     return ret;
 }
 
-_X_EXPORT char *XNFprintf(const char *format, ...)
+char *XNFprintf(const char *format, ...)
 {
     char *ret;
     va_list va;
diff --git a/randr/mirandr.c b/randr/mirandr.c
index 266f83b..05375e4 100644
--- a/randr/mirandr.c
+++ b/randr/mirandr.c
@@ -34,7 +34,7 @@
 #include "randrstr.h"
 #include <stdio.h>
 
-_X_EXPORT Bool
+Bool
 miRRGetInfo (ScreenPtr pScreen, Rotation *rotations)
 {
     return TRUE;
@@ -44,7 +44,7 @@ miRRGetInfo (ScreenPtr pScreen, Rotation *rotations)
  * Any hardware that can actually change anything will need something
  * different here
  */
-_X_EXPORT Bool
+Bool
 miRRCrtcSet (ScreenPtr	pScreen,
 	     RRCrtcPtr	crtc,
 	     RRModePtr	mode,
@@ -64,7 +64,7 @@ miRRCrtcSetGamma (ScreenPtr	pScreen,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miRROutputSetProperty (ScreenPtr	    pScreen,
 		       RROutputPtr	    output,
 		       Atom		    property,
@@ -73,7 +73,7 @@ miRROutputSetProperty (ScreenPtr	    pScreen,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miRROutputGetProperty (ScreenPtr	    pScreen,
 		       RROutputPtr	    output,
 		       Atom		    property)
@@ -81,7 +81,7 @@ miRROutputGetProperty (ScreenPtr	    pScreen,
 	return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 miRROutputValidateMode (ScreenPtr	    pScreen,
 			RROutputPtr	    output,
 			RRModePtr	    mode)
@@ -89,7 +89,7 @@ miRROutputValidateMode (ScreenPtr	    pScreen,
     return FALSE;
 }
 
-_X_EXPORT void
+void
 miRRModeDestroy (ScreenPtr  pScreen,
 		 RRModePtr  mode)
 {
@@ -104,7 +104,7 @@ miRRModeDestroy (ScreenPtr  pScreen,
  * XXX what to do here....
  */
 
-_X_EXPORT Bool
+Bool
 miRandRInit (ScreenPtr pScreen)
 {
     rrScrPrivPtr    pScrPriv;
diff --git a/randr/randr.c b/randr/randr.c
index 5a60cc9..230d816 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -53,14 +53,14 @@ static int	RRNScreens;
 static int ProcRRDispatch (ClientPtr pClient);
 static int SProcRRDispatch (ClientPtr pClient);
 
-_X_EXPORT int	RREventBase;
-_X_EXPORT int	RRErrorBase;
-_X_EXPORT RESTYPE RRClientType, RREventType; /* resource types for event masks */
+int	RREventBase;
+int	RRErrorBase;
+RESTYPE RRClientType, RREventType; /* resource types for event masks */
 static int RRClientPrivateKeyIndex;
-_X_EXPORT DevPrivateKey RRClientPrivateKey = &RRClientPrivateKeyIndex;
+DevPrivateKey RRClientPrivateKey = &RRClientPrivateKeyIndex;
 
 static int rrPrivKeyIndex;
-_X_EXPORT DevPrivateKey rrPrivKey = &rrPrivKeyIndex;
+DevPrivateKey rrPrivKey = &rrPrivKeyIndex;
 
 static void
 RRClientCallback (CallbackListPtr	*list,
@@ -196,7 +196,7 @@ SRRNotifyEvent (xEvent *from,
 
 static int RRGeneration;
 
-_X_EXPORT Bool RRInit (void)
+Bool RRInit (void)
 {
     if (RRGeneration != serverGeneration)
     {
@@ -211,7 +211,7 @@ _X_EXPORT Bool RRInit (void)
     return TRUE;
 }
 
-_X_EXPORT Bool RRScreenInit(ScreenPtr pScreen)
+Bool RRScreenInit(ScreenPtr pScreen)
 {
     rrScrPrivPtr   pScrPriv;
 
@@ -314,7 +314,7 @@ RRFreeEvents (pointer data, XID id)
     return 1;
 }
 
-_X_EXPORT void
+void
 RRExtensionInit (void)
 {
     ExtensionEntry *extEntry;
@@ -398,7 +398,7 @@ TellChanged (WindowPtr pWin, pointer value)
 /*
  * Something changed; send events and adjust pointer position
  */
-_X_EXPORT void
+void
 RRTellChanged (ScreenPtr pScreen)
 {
     rrScrPriv (pScreen);
@@ -431,7 +431,7 @@ RRTellChanged (ScreenPtr pScreen)
  * Return the first output which is connected to an active CRTC
  * Used in emulating 1.0 behaviour
  */
-_X_EXPORT RROutputPtr
+RROutputPtr
 RRFirstOutput (ScreenPtr pScreen)
 {
     rrScrPriv(pScreen);
@@ -451,7 +451,7 @@ RRFirstOutput (ScreenPtr pScreen)
     return NULL;
 }
 
-_X_EXPORT CARD16
+CARD16
 RRVerticalRefresh (xRRModeInfo *mode)
 {
     CARD32  refresh;
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 82c7b61..e2338b7 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -64,10 +64,10 @@ typedef XID	RRMode;
 typedef XID	RROutput;
 typedef XID	RRCrtc;
 
-extern int	RREventBase, RRErrorBase;
+extern _X_EXPORT int	RREventBase, RRErrorBase;
 
-extern int (*ProcRandrVector[RRNumberRequests])(ClientPtr);
-extern int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
+extern _X_EXPORT int (*ProcRandrVector[RRNumberRequests])(ClientPtr);
+extern _X_EXPORT int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
     
 /*
  * Modeline for a monitor. Name follows directly after this struct
@@ -282,7 +282,7 @@ typedef struct _rrScrPriv {
 #endif
 } rrScrPrivRec, *rrScrPrivPtr;
 
-extern DevPrivateKey rrPrivKey;
+extern _X_EXPORT DevPrivateKey rrPrivKey;
 
 #define rrGetScrPriv(pScr)  ((rrScrPrivPtr)dixLookupPrivate(&(pScr)->devPrivates, rrPrivKey))
 #define rrScrPriv(pScr)	rrScrPrivPtr    pScrPriv = rrGetScrPriv(pScr)
@@ -317,9 +317,9 @@ typedef struct _RRClient {
 /*  RRTimesRec	times[0]; */
 } RRClientRec, *RRClientPtr;
 
-extern RESTYPE	RRClientType, RREventType; /* resource types for event masks */
-extern DevPrivateKey RRClientPrivateKey;
-extern RESTYPE	RRCrtcType, RRModeType, RROutputType;
+extern _X_EXPORT RESTYPE RRClientType, RREventType; /* resource types for event masks */
+extern _X_EXPORT DevPrivateKey RRClientPrivateKey;
+extern _X_EXPORT RESTYPE RRCrtcType, RRModeType, RROutputType;
 
 #define LookupOutput(client,id,a) ((RROutputPtr) \
 				   (SecurityLookupIDByType (client, id, \
@@ -335,14 +335,14 @@ extern RESTYPE	RRCrtcType, RRModeType, RROutputType;
 #define rrClientPriv(pClient)	RRClientPtr pRRClient = GetRRClient(pClient)
 
 /* Initialize the extension */
-void
+extern _X_EXPORT void
 RRExtensionInit (void);
 
 #ifdef RANDR_12_INTERFACE
 /*
  * Set the range of sizes for the screen
  */
-void
+extern _X_EXPORT void
 RRScreenSetSizeRange (ScreenPtr	pScreen,
 		      CARD16	minWidth,
 		      CARD16	minHeight,
@@ -356,13 +356,13 @@ RRScreenSetSizeRange (ScreenPtr	pScreen,
  * The driver is responsible for calling this whenever it has changed
  * the size of the screen
  */
-void
+extern _X_EXPORT void
 RRScreenSizeNotify (ScreenPtr	pScreen);
 
 /*
  * Request that the screen be resized
  */
-Bool
+extern _X_EXPORT Bool
 RRScreenSizeSet (ScreenPtr  pScreen,
 		 CARD16	    width,
 		 CARD16	    height,
@@ -372,44 +372,44 @@ RRScreenSizeSet (ScreenPtr  pScreen,
 /*
  * Send ConfigureNotify event to root window when 'something' happens
  */
-void
+extern _X_EXPORT void
 RRSendConfigNotify (ScreenPtr pScreen);
     
 /*
  * screen dispatch
  */
-int 
+extern _X_EXPORT int
 ProcRRGetScreenSizeRange (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRSetScreenSize (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetScreenResources (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetScreenResourcesCurrent (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRSetScreenConfig (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetScreenInfo (ClientPtr client);
 
 /*
  * Deliver a ScreenNotify event
  */
-void
+extern _X_EXPORT void
 RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
     
 /* mirandr.c */
-Bool
+extern _X_EXPORT Bool
 miRandRInit (ScreenPtr pScreen);
 
-Bool
+extern _X_EXPORT Bool
 miRRGetInfo (ScreenPtr pScreen, Rotation *rotations);
 
-Bool
+extern _X_EXPORT Bool
 miRRCrtcSet (ScreenPtr	pScreen,
 	     RRCrtcPtr	crtc,
 	     RRModePtr	mode,
@@ -419,23 +419,23 @@ miRRCrtcSet (ScreenPtr	pScreen,
 	     int	numOutput,
 	     RROutputPtr *outputs);
 
-Bool
+extern _X_EXPORT Bool
 miRROutputSetProperty (ScreenPtr	    pScreen,
 		       RROutputPtr	    output,
 		       Atom		    property,
 		       RRPropertyValuePtr   value);
 
-Bool
+extern _X_EXPORT Bool
 miRROutputGetProperty (ScreenPtr	    pScreen,
 		       RROutputPtr	    output,
 		       Atom		    property);
 
-Bool
+extern _X_EXPORT Bool
 miRROutputValidateMode (ScreenPtr	    pScreen,
 			RROutputPtr	    output,
 			RRModePtr	    mode);
 
-void
+extern _X_EXPORT void
 miRRModeDestroy (ScreenPtr  pScreen,
 		 RRModePtr  mode);
 
@@ -443,26 +443,26 @@ miRRModeDestroy (ScreenPtr  pScreen,
 /*
  * Send all pending events
  */
-void
+extern _X_EXPORT void
 RRTellChanged (ScreenPtr pScreen);
 
 /*
  * Poll the driver for changed information
  */
-Bool
+extern _X_EXPORT Bool
 RRGetInfo (ScreenPtr pScreen);
 
-Bool RRInit (void);
+extern _X_EXPORT Bool RRInit (void);
 
-Bool RRScreenInit(ScreenPtr pScreen);
+extern _X_EXPORT Bool RRScreenInit(ScreenPtr pScreen);
 
-RROutputPtr
+extern _X_EXPORT RROutputPtr
 RRFirstOutput (ScreenPtr pScreen);
 
-Rotation
+extern _X_EXPORT Rotation
 RRGetRotation (ScreenPtr pScreen);
 
-CARD16
+extern _X_EXPORT CARD16
 RRVerticalRefresh (xRRModeInfo *mode);
 
 #ifdef RANDR_10_INTERFACE					
@@ -475,14 +475,15 @@ RRVerticalRefresh (xRRModeInfo *mode);
  * Then, register the specific size with the screen
  */
 
-RRScreenSizePtr
+extern _X_EXPORT RRScreenSizePtr
 RRRegisterSize (ScreenPtr		pScreen,
 		short			width, 
 		short			height,
 		short			mmWidth,
 		short			mmHeight);
 
-Bool RRRegisterRate (ScreenPtr		pScreen,
+extern _X_EXPORT Bool
+RRRegisterRate (ScreenPtr		pScreen,
 		     RRScreenSizePtr	pSize,
 		     int		rate);
 
@@ -490,15 +491,15 @@ Bool RRRegisterRate (ScreenPtr		pScreen,
  * Finally, set the current configuration of the screen
  */
 
-void
+extern _X_EXPORT void
 RRSetCurrentConfig (ScreenPtr		pScreen,
 		    Rotation		rotation,
 		    int			rate,
 		    RRScreenSizePtr	pSize);
 
-Bool RRScreenInit (ScreenPtr pScreen);
+extern _X_EXPORT Bool RRScreenInit (ScreenPtr pScreen);
 
-Rotation
+extern _X_EXPORT Rotation
 RRGetRotation (ScreenPtr pScreen);
 
 #endif					
@@ -509,32 +510,32 @@ RRGetRotation (ScreenPtr pScreen);
  * Notify the CRTC of some change; layoutChanged indicates that
  * some position or size element changed
  */
-void
+extern _X_EXPORT void
 RRCrtcChanged (RRCrtcPtr crtc, Bool layoutChanged);
 
 /*
  * Create a CRTC
  */
-RRCrtcPtr
+extern _X_EXPORT RRCrtcPtr
 RRCrtcCreate (ScreenPtr pScreen, void	*devPrivate);
 
 /*
  * Set the allowed rotations on a CRTC
  */
-void
+extern _X_EXPORT void
 RRCrtcSetRotations (RRCrtcPtr crtc, Rotation rotations);
 
 /*
  * Set whether transforms are allowed on a CRTC
  */
-void
+extern _X_EXPORT void
 RRCrtcSetTransformSupport (RRCrtcPtr crtc, Bool transforms);
 
 /*
  * Notify the extension that the Crtc has been reconfigured,
  * the driver calls this whenever it has updated the mode
  */
-Bool
+extern _X_EXPORT Bool
 RRCrtcNotify (RRCrtcPtr	    crtc,
 	      RRModePtr	    mode,
 	      int	    x,
@@ -544,13 +545,13 @@ RRCrtcNotify (RRCrtcPtr	    crtc,
 	      int	    numOutputs,
 	      RROutputPtr   *outputs);
 
-void
+extern _X_EXPORT void
 RRDeliverCrtcEvent (ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
     
 /*
  * Request that the Crtc be reconfigured
  */
-Bool
+extern _X_EXPORT Bool
 RRCrtcSet (RRCrtcPtr    crtc,
 	   RRModePtr	mode,
 	   int		x,
@@ -563,7 +564,7 @@ RRCrtcSet (RRCrtcPtr    crtc,
  * Request that the Crtc gamma be changed
  */
 
-Bool
+extern _X_EXPORT Bool
 RRCrtcGammaSet (RRCrtcPtr   crtc,
 		CARD16	    *red,
 		CARD16	    *green,
@@ -575,14 +576,14 @@ RRCrtcGammaSet (RRCrtcPtr   crtc,
  * in the RRCrtcRec
  */
 
-Bool
+extern _X_EXPORT Bool
 RRCrtcGammaNotify (RRCrtcPtr	crtc);
 
 /*
  * Set the size of the gamma table at server startup time
  */
 
-Bool
+extern _X_EXPORT Bool
 RRCrtcGammaSetSize (RRCrtcPtr	crtc,
 		    int		size);
 
@@ -591,7 +592,7 @@ RRCrtcGammaSetSize (RRCrtcPtr	crtc,
  * taking into account the current mode and rotation
  */
 
-void
+extern _X_EXPORT void
 RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height);
 
 /*
@@ -601,7 +602,7 @@ RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height);
  *
  * Return TRUE if the resulting transform is not a simple translation.
  */
-Bool
+extern _X_EXPORT Bool
 RRTransformCompute (int			    x,
 		    int			    y,
 		    int			    width,
@@ -616,19 +617,19 @@ RRTransformCompute (int			    x,
 /*
  * Return crtc transform
  */
-RRTransformPtr
+extern _X_EXPORT RRTransformPtr
 RRCrtcGetTransform (RRCrtcPtr crtc);
 
 /*
  * Check whether the pending and current transforms are the same
  */
-Bool
+extern _X_EXPORT Bool
 RRCrtcPendingTransform (RRCrtcPtr crtc);
 
 /*
  * Destroy a Crtc at shutdown
  */
-void
+extern _X_EXPORT void
 RRCrtcDestroy (RRCrtcPtr crtc);
 
 
@@ -636,7 +637,7 @@ RRCrtcDestroy (RRCrtcPtr crtc);
  * Set the pending CRTC transformation
  */
 
-int
+extern _X_EXPORT int
 RRCrtcTransformSet (RRCrtcPtr		crtc,
 		    PictTransformPtr	transform,
 		    struct pict_f_transform *f_transform,
@@ -649,36 +650,36 @@ RRCrtcTransformSet (RRCrtcPtr		crtc,
 /*
  * Initialize crtc type
  */
-Bool
+extern _X_EXPORT Bool
 RRCrtcInit (void);
 
 /*
  * Crtc dispatch
  */
 
-int
+extern _X_EXPORT int
 ProcRRGetCrtcInfo (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRSetCrtcConfig (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetCrtcGammaSize (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetCrtcGamma (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRSetCrtcGamma (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRSetCrtcTransform (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetCrtcTransform (ClientPtr client);
 
 /* rrdispatch.c */
-Bool
+extern _X_EXPORT Bool
 RRClientKnowsRates (ClientPtr	pClient);
 
 /* rrmode.c */
@@ -686,7 +687,7 @@ RRClientKnowsRates (ClientPtr	pClient);
  * Find, and if necessary, create a mode
  */
 
-RRModePtr
+extern _X_EXPORT RRModePtr
 RRModeGet (xRRModeInfo	*modeInfo,
 	   const char	*name);
 
@@ -694,31 +695,31 @@ RRModeGet (xRRModeInfo	*modeInfo,
  * Destroy a mode.
  */
 
-void
+extern _X_EXPORT void
 RRModeDestroy (RRModePtr mode);
 
 /*
  * Return a list of modes that are valid for some output in pScreen
  */
-RRModePtr *
+extern _X_EXPORT RRModePtr *
 RRModesForScreen (ScreenPtr pScreen, int *num_ret);
     
 /*
  * Initialize mode type
  */
-Bool
+extern _X_EXPORT Bool
 RRModeInit (void);
     
-int
+extern _X_EXPORT int
 ProcRRCreateMode (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRDestroyMode (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRAddOutputMode (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRDeleteOutputMode (ClientPtr client);
 
 /* rroutput.c */
@@ -729,14 +730,14 @@ ProcRRDeleteOutputMode (ClientPtr client);
  * has changed, or whether the change was strictly internal
  * (which crtc is in use)
  */
-void
+extern _X_EXPORT void
 RROutputChanged (RROutputPtr output, Bool configChanged);
 
 /*
  * Create an output
  */
 
-RROutputPtr
+extern _X_EXPORT RROutputPtr
 RROutputCreate (ScreenPtr   pScreen,
 		const char  *name,
 		int	    nameLength,
@@ -745,111 +746,111 @@ RROutputCreate (ScreenPtr   pScreen,
 /*
  * Notify extension that output parameters have been changed
  */
-Bool
+extern _X_EXPORT Bool
 RROutputSetClones (RROutputPtr  output,
 		   RROutputPtr  *clones,
 		   int		numClones);
 
-Bool
+extern _X_EXPORT Bool
 RROutputSetModes (RROutputPtr	output,
 		  RRModePtr	*modes,
 		  int		numModes,
 		  int		numPreferred);
 
-int
+extern _X_EXPORT int
 RROutputAddUserMode (RROutputPtr    output,
 		     RRModePtr	    mode);
 
-int
+extern _X_EXPORT int
 RROutputDeleteUserMode (RROutputPtr output,
 			RRModePtr   mode);
 
-Bool
+extern _X_EXPORT Bool
 RROutputSetCrtcs (RROutputPtr	output,
 		  RRCrtcPtr	*crtcs,
 		  int		numCrtcs);
 
-Bool
+extern _X_EXPORT Bool
 RROutputSetConnection (RROutputPtr  output,
 		       CARD8	    connection);
 
-Bool
+extern _X_EXPORT Bool
 RROutputSetSubpixelOrder (RROutputPtr output,
 			  int	      subpixelOrder);
 
-Bool
+extern _X_EXPORT Bool
 RROutputSetPhysicalSize (RROutputPtr	output,
 			 int		mmWidth,
 			 int		mmHeight);
 
-void
+extern _X_EXPORT void
 RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output);
 
-void
+extern _X_EXPORT void
 RROutputDestroy (RROutputPtr	output);
 
-int
+extern _X_EXPORT int
 ProcRRGetOutputInfo (ClientPtr client);
 
 /*
  * Initialize output type
  */
-Bool
+extern _X_EXPORT Bool
 RROutputInit (void);
     
 /* rrpointer.c */
-void
+extern _X_EXPORT void
 RRPointerMoved (ScreenPtr pScreen, int x, int y);
 
-void
+extern _X_EXPORT void
 RRPointerScreenConfigured (ScreenPtr pScreen);
 
 /* rrproperty.c */
 
-void
+extern _X_EXPORT void
 RRDeleteAllOutputProperties (RROutputPtr output);
 
-RRPropertyValuePtr
+extern _X_EXPORT RRPropertyValuePtr
 RRGetOutputProperty (RROutputPtr output, Atom property, Bool pending);
 
-RRPropertyPtr
+extern _X_EXPORT RRPropertyPtr
 RRQueryOutputProperty (RROutputPtr output, Atom property);
 		       
-void
+extern _X_EXPORT void
 RRDeleteOutputProperty (RROutputPtr output, Atom property);
 
-Bool
+extern _X_EXPORT Bool
 RRPostPendingProperties (RROutputPtr output);
     
-int
+extern _X_EXPORT int
 RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
 			int format, int mode, unsigned long len,
 			pointer value, Bool sendevent, Bool pending);
 
-int
+extern _X_EXPORT int
 RRConfigureOutputProperty (RROutputPtr output, Atom property,
 			   Bool pending, Bool range, Bool immutable,
 			   int num_values, INT32 *values);
-int
+extern _X_EXPORT int
 ProcRRChangeOutputProperty (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRGetOutputProperty (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRListOutputProperties (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRQueryOutputProperty (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRConfigureOutputProperty (ClientPtr client);
 
-int
+extern _X_EXPORT int
 ProcRRDeleteOutputProperty (ClientPtr client);
 
 /* rrxinerama.c */
-void
+extern _X_EXPORT void
 RRXineramaExtensionInit(void);
 
 #endif /* _RANDRSTR_H_ */
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 102ef6d..5d270ce 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -24,12 +24,12 @@
 #include "swaprep.h"
 #include "registry.h"
 
-_X_EXPORT RESTYPE	RRCrtcType;
+RESTYPE	RRCrtcType;
 
 /*
  * Notify the CRTC of some change
  */
-_X_EXPORT void
+void
 RRCrtcChanged (RRCrtcPtr crtc, Bool layoutChanged)
 {
     ScreenPtr	pScreen = crtc->pScreen;
@@ -51,7 +51,7 @@ RRCrtcChanged (RRCrtcPtr crtc, Bool layoutChanged)
 /*
  * Create a CRTC
  */
-_X_EXPORT RRCrtcPtr
+RRCrtcPtr
 RRCrtcCreate (ScreenPtr pScreen, void *devPrivate)
 {
     RRCrtcPtr	    crtc;
@@ -108,7 +108,7 @@ RRCrtcCreate (ScreenPtr pScreen, void *devPrivate)
 /*
  * Set the allowed rotations on a CRTC
  */
-_X_EXPORT void
+void
 RRCrtcSetRotations (RRCrtcPtr crtc, Rotation rotations)
 {
     crtc->rotations = rotations;
@@ -117,7 +117,7 @@ RRCrtcSetRotations (RRCrtcPtr crtc, Rotation rotations)
 /*
  * Set whether transforms are allowed on a CRTC
  */
-_X_EXPORT void
+void
 RRCrtcSetTransformSupport (RRCrtcPtr crtc, Bool transforms)
 {
     crtc->transforms = transforms;
@@ -127,7 +127,7 @@ RRCrtcSetTransformSupport (RRCrtcPtr crtc, Bool transforms)
  * Notify the extension that the Crtc has been reconfigured,
  * the driver calls this whenever it has updated the mode
  */
-_X_EXPORT Bool
+Bool
 RRCrtcNotify (RRCrtcPtr	    crtc,
 	      RRModePtr	    mode,
 	      int	    x,
@@ -245,7 +245,7 @@ RRCrtcNotify (RRCrtcPtr	    crtc,
     return TRUE;
 }
 
-_X_EXPORT void
+void
 RRDeliverCrtcEvent (ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -298,7 +298,7 @@ RRCrtcPendingProperties (RRCrtcPtr crtc)
 /*
  * Request that the Crtc be reconfigured
  */
-_X_EXPORT Bool
+Bool
 RRCrtcSet (RRCrtcPtr    crtc,
 	   RRModePtr	mode,
 	   int		x,
@@ -390,7 +390,7 @@ RRCrtcSet (RRCrtcPtr    crtc,
 /*
  * Return crtc transform
  */
-_X_EXPORT RRTransformPtr
+RRTransformPtr
 RRCrtcGetTransform (RRCrtcPtr crtc)
 {
     RRTransformPtr  transform = &crtc->client_pending_transform;
@@ -403,7 +403,7 @@ RRCrtcGetTransform (RRCrtcPtr crtc)
 /*
  * Check whether the pending and current transforms are the same
  */
-_X_EXPORT Bool
+Bool
 RRCrtcPendingTransform (RRCrtcPtr crtc)
 {
     return memcmp (&crtc->client_current_transform.transform,
@@ -414,7 +414,7 @@ RRCrtcPendingTransform (RRCrtcPtr crtc)
 /*
  * Destroy a Crtc at shutdown
  */
-_X_EXPORT void
+void
 RRCrtcDestroy (RRCrtcPtr crtc)
 {
     FreeResource (crtc->id, 0);
@@ -454,7 +454,7 @@ RRCrtcDestroyResource (pointer value, XID pid)
  * Request that the Crtc gamma be changed
  */
 
-_X_EXPORT Bool
+Bool
 RRCrtcGammaSet (RRCrtcPtr   crtc,
 		CARD16	    *red,
 		CARD16	    *green,
@@ -485,7 +485,7 @@ RRCrtcGammaSet (RRCrtcPtr   crtc,
  * in the RRCrtcRec
  */
 
-_X_EXPORT Bool
+Bool
 RRCrtcGammaNotify (RRCrtcPtr	crtc)
 {
     return TRUE;    /* not much going on here */
@@ -516,7 +516,7 @@ RRModeGetScanoutSize (RRModePtr mode, PictTransformPtr transform,
 /**
  * Returns the width/height that the crtc scans out from the framebuffer
  */
-_X_EXPORT void
+void
 RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height)
 {
     return RRModeGetScanoutSize (crtc->mode, &crtc->transform, width, height);
@@ -526,7 +526,7 @@ RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height)
  * Set the size of the gamma table at server startup time
  */
 
-_X_EXPORT Bool
+Bool
 RRCrtcGammaSetSize (RRCrtcPtr	crtc,
 		    int		size)
 {
@@ -555,7 +555,7 @@ RRCrtcGammaSetSize (RRCrtcPtr	crtc,
  * Set the pending CRTC transformation
  */
 
-_X_EXPORT int
+int
 RRCrtcTransformSet (RRCrtcPtr		crtc,
 		    PictTransformPtr	transform,
 		    struct pixman_f_transform *f_transform,
@@ -607,7 +607,7 @@ RRCrtcTransformSet (RRCrtcPtr		crtc,
 /*
  * Initialize crtc type
  */
-_X_EXPORT Bool
+Bool
 RRCrtcInit (void)
 {
     RRCrtcType = CreateNewResourceType (RRCrtcDestroyResource);
@@ -617,7 +617,7 @@ RRCrtcInit (void)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 ProcRRGetCrtcInfo (ClientPtr client)
 {
     REQUEST(xRRGetCrtcInfoReq);
@@ -724,7 +724,7 @@ ProcRRGetCrtcInfo (ClientPtr client)
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRSetCrtcConfig (ClientPtr client)
 {
     REQUEST(xRRSetCrtcConfigReq);
@@ -977,7 +977,7 @@ sendReply:
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRGetCrtcGammaSize (ClientPtr client)
 {
     REQUEST(xRRGetCrtcGammaSizeReq);
@@ -1003,7 +1003,7 @@ ProcRRGetCrtcGammaSize (ClientPtr client)
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRGetCrtcGamma (ClientPtr client)
 {
     REQUEST(xRRGetCrtcGammaReq);
@@ -1046,7 +1046,7 @@ ProcRRGetCrtcGamma (ClientPtr client)
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRSetCrtcGamma (ClientPtr client)
 {
     REQUEST(xRRSetCrtcGammaReq);
@@ -1077,7 +1077,7 @@ ProcRRSetCrtcGamma (ClientPtr client)
 
 /* Version 1.3 additions */
 
-_X_EXPORT int
+int
 ProcRRSetCrtcTransform (ClientPtr client)
 {
     REQUEST(xRRSetCrtcTransformReq);
@@ -1165,7 +1165,7 @@ transform_encode (ClientPtr client, xRenderTransform *wire, PictTransform *pict)
 	SwapLongs ((CARD32 *) wire, sizeof (xRenderTransform));
 }
 
-_X_EXPORT int
+int
 ProcRRGetCrtcTransform (ClientPtr client)
 {
     REQUEST(xRRGetCrtcTransformReq);
diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c
index e9a70f0..64af6ce 100644
--- a/randr/rrdispatch.c
+++ b/randr/rrdispatch.c
@@ -25,7 +25,7 @@
 #define SERVER_RANDR_MAJOR	1
 #define SERVER_RANDR_MINOR	3
 
-_X_EXPORT Bool
+Bool
 RRClientKnowsRates (ClientPtr	pClient)
 {
     rrClientPriv(pClient);
@@ -181,7 +181,7 @@ ProcRRSelectInput (ClientPtr client)
     return Success;
 }
 
-_X_EXPORT int (*ProcRandrVector[RRNumberRequests])(ClientPtr) = {
+int (*ProcRandrVector[RRNumberRequests])(ClientPtr) = {
     ProcRRQueryVersion,	/* 0 */
 /* we skip 1 to make old clients fail pretty immediately */
     NULL,			/* 1 ProcRandrOldGetScreenInfo */
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index 20acf57..38314de 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -177,7 +177,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations)
 /*
  * Poll the driver for changed information
  */
-_X_EXPORT Bool
+Bool
 RRGetInfo (ScreenPtr pScreen)
 {
     rrScrPriv (pScreen);
@@ -207,7 +207,7 @@ RRGetInfo (ScreenPtr pScreen)
 /*
  * Register the range of sizes for the screen
  */
-_X_EXPORT void
+void
 RRScreenSetSizeRange (ScreenPtr	pScreen,
 		      CARD16	minWidth,
 		      CARD16	minHeight,
@@ -248,7 +248,7 @@ RRScreenSizeMatches (RRScreenSizePtr  a,
     return TRUE;
 }
 
-_X_EXPORT RRScreenSizePtr
+RRScreenSizePtr
 RRRegisterSize (ScreenPtr	    pScreen,
 		short		    width, 
 		short		    height,
@@ -282,7 +282,7 @@ RRRegisterSize (ScreenPtr	    pScreen,
     return &pNew[pScrPriv->nSizes-1];
 }
 
-_X_EXPORT Bool RRRegisterRate (ScreenPtr		pScreen,
+Bool RRRegisterRate (ScreenPtr		pScreen,
 		     RRScreenSizePtr	pSize,
 		     int		rate)
 {
@@ -307,7 +307,7 @@ _X_EXPORT Bool RRRegisterRate (ScreenPtr		pScreen,
     return TRUE;
 }
 
-_X_EXPORT Rotation
+Rotation
 RRGetRotation(ScreenPtr pScreen)
 {
     RROutputPtr	output = RRFirstOutput (pScreen);
@@ -318,7 +318,7 @@ RRGetRotation(ScreenPtr pScreen)
     return output->crtc->rotation;
 }
 
-_X_EXPORT void
+void
 RRSetCurrentConfig (ScreenPtr		pScreen,
 		    Rotation		rotation,
 		    int			rate,
diff --git a/randr/rrmode.c b/randr/rrmode.c
index 0c847a1..2fa4403 100644
--- a/randr/rrmode.c
+++ b/randr/rrmode.c
@@ -23,7 +23,7 @@
 #include "randrstr.h"
 #include "registry.h"
 
-_X_EXPORT RESTYPE	RRModeType;
+RESTYPE	RRModeType;
 
 static Bool
 RRModeEqual (xRRModeInfo *a, xRRModeInfo *b)
@@ -112,7 +112,7 @@ RRModeFindByName (const char	*name,
     return NULL;
 }
 
-_X_EXPORT RRModePtr
+RRModePtr
 RRModeGet (xRRModeInfo	*modeInfo,
 	   const char	*name)
 {
@@ -157,7 +157,7 @@ RRModeCreateUser (ScreenPtr	pScreen,
     return mode;
 }
 
-_X_EXPORT RRModePtr *
+RRModePtr *
 RRModesForScreen (ScreenPtr pScreen, int *num_ret)
 {
     rrScrPriv(pScreen);
@@ -228,7 +228,7 @@ RRModesForScreen (ScreenPtr pScreen, int *num_ret)
     return screen_modes;
 }
 
-_X_EXPORT void
+void
 RRModeDestroy (RRModePtr mode)
 {
     int	m;
@@ -261,7 +261,7 @@ RRModeDestroyResource (pointer value, XID pid)
     return 1;
 }
 
-_X_EXPORT Bool
+Bool
 RRModeInit (void)
 {
     assert (num_modes == 0);
@@ -273,7 +273,7 @@ RRModeInit (void)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 ProcRRCreateMode (ClientPtr client)
 {
     REQUEST(xRRCreateModeReq);
@@ -325,7 +325,7 @@ ProcRRCreateMode (ClientPtr client)
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRDestroyMode (ClientPtr client)
 {
     REQUEST(xRRDestroyModeReq);
@@ -346,7 +346,7 @@ ProcRRDestroyMode (ClientPtr client)
     return Success;
 }
 
-_X_EXPORT int
+int
 ProcRRAddOutputMode (ClientPtr client)
 {
     REQUEST(xRRAddOutputModeReq);
@@ -372,7 +372,7 @@ ProcRRAddOutputMode (ClientPtr client)
     return RROutputAddUserMode (output, mode);
 }
 
-_X_EXPORT int
+int
 ProcRRDeleteOutputMode (ClientPtr client)
 {
     REQUEST(xRRDeleteOutputModeReq);
diff --git a/randr/rroutput.c b/randr/rroutput.c
index b98fc54..1ecde31 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -23,12 +23,12 @@
 #include "randrstr.h"
 #include "registry.h"
 
-_X_EXPORT RESTYPE	RROutputType;
+RESTYPE	RROutputType;
 
 /*
  * Notify the output of some change
  */
-_X_EXPORT void
+void
 RROutputChanged (RROutputPtr output, Bool configChanged)
 {
     ScreenPtr	pScreen = output->pScreen;
@@ -47,7 +47,7 @@ RROutputChanged (RROutputPtr output, Bool configChanged)
  * Create an output
  */
 
-_X_EXPORT RROutputPtr
+RROutputPtr
 RROutputCreate (ScreenPtr   pScreen,
 		const char  *name,
 		int	    nameLength,
@@ -110,7 +110,7 @@ RROutputCreate (ScreenPtr   pScreen,
 /*
  * Notify extension that output parameters have been changed
  */
-_X_EXPORT Bool
+Bool
 RROutputSetClones (RROutputPtr  output,
 		   RROutputPtr  *clones,
 		   int		numClones)
@@ -143,7 +143,7 @@ RROutputSetClones (RROutputPtr  output,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 RROutputSetModes (RROutputPtr	output,
 		  RRModePtr	*modes,
 		  int		numModes,
@@ -187,7 +187,7 @@ RROutputSetModes (RROutputPtr	output,
     return TRUE;
 }
 
-_X_EXPORT int
+int
 RROutputAddUserMode (RROutputPtr    output,
 		     RRModePtr	    mode)
 {
@@ -227,7 +227,7 @@ RROutputAddUserMode (RROutputPtr    output,
     return Success;
 }
 
-_X_EXPORT int
+int
 RROutputDeleteUserMode (RROutputPtr output,
 			RRModePtr   mode)
 {
@@ -256,7 +256,7 @@ RROutputDeleteUserMode (RROutputPtr output,
     return Success;
 }
 
-_X_EXPORT Bool
+Bool
 RROutputSetCrtcs (RROutputPtr	output,
 		  RRCrtcPtr	*crtcs,
 		  int		numCrtcs)
@@ -289,7 +289,7 @@ RROutputSetCrtcs (RROutputPtr	output,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 RROutputSetConnection (RROutputPtr  output,
 		       CARD8	    connection)
 {
@@ -300,7 +300,7 @@ RROutputSetConnection (RROutputPtr  output,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 RROutputSetSubpixelOrder (RROutputPtr output,
 			  int	      subpixelOrder)
 {
@@ -312,7 +312,7 @@ RROutputSetSubpixelOrder (RROutputPtr output,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 RROutputSetPhysicalSize (RROutputPtr	output,
 			 int		mmWidth,
 			 int		mmHeight)
@@ -326,7 +326,7 @@ RROutputSetPhysicalSize (RROutputPtr	output,
 }
 
 
-_X_EXPORT void
+void
 RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -362,7 +362,7 @@ RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output)
 /*
  * Destroy a Output at shutdown
  */
-_X_EXPORT void
+void
 RROutputDestroy (RROutputPtr output)
 {
     FreeResource (output->id, 0);
@@ -415,7 +415,7 @@ RROutputDestroyResource (pointer value, XID pid)
 /*
  * Initialize output type
  */
-_X_EXPORT Bool
+Bool
 RROutputInit (void)
 {
     RROutputType = CreateNewResourceType (RROutputDestroyResource);
@@ -427,7 +427,7 @@ RROutputInit (void)
 
 #define OutputInfoExtra	(SIZEOF(xRRGetOutputInfoReply) - 32)
 				
-_X_EXPORT int
+int
 ProcRRGetOutputInfo (ClientPtr client)
 {
     REQUEST(xRRGetOutputInfoReq);
diff --git a/randr/rrpointer.c b/randr/rrpointer.c
index 35472fc..6b934c0 100644
--- a/randr/rrpointer.c
+++ b/randr/rrpointer.c
@@ -100,7 +100,7 @@ RRPointerToNearestCrtc (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y, RRCr
     pScrPriv->pointerCrtc = nearest;
 }
 
-_X_EXPORT void
+void
 RRPointerMoved (ScreenPtr pScreen, int x, int y)
 {
     rrScrPriv (pScreen);
@@ -133,7 +133,7 @@ RRPointerMoved (ScreenPtr pScreen, int x, int y)
  * When the screen is reconfigured, move all pointers to the nearest
  * CRTC
  */
-_X_EXPORT void
+void
 RRPointerScreenConfigured (ScreenPtr pScreen)
 {
     WindowPtr	pRoot;
diff --git a/randr/rrproperty.c b/randr/rrproperty.c
index b2d4146..12923a2 100644
--- a/randr/rrproperty.c
+++ b/randr/rrproperty.c
@@ -63,7 +63,7 @@ static void RRDeliverPropertyEvent(ScreenPtr pScreen, xEvent *event)
 	WalkTree(pScreen, DeliverPropertyEvent, event);
 }
 
-_X_EXPORT void
+void
 RRDeleteAllOutputProperties (RROutputPtr output)
 {
     RRPropertyPtr prop, next;
@@ -128,7 +128,7 @@ RRDestroyOutputProperty (RRPropertyPtr prop)
     xfree(prop);
 }
 
-_X_EXPORT void
+void
 RRDeleteOutputProperty (RROutputPtr output, Atom property)
 {
     RRPropertyPtr	prop, *prev;
@@ -151,7 +151,7 @@ RRDeleteOutputProperty (RROutputPtr output, Atom property)
     }
 }
 
-_X_EXPORT int
+int
 RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
 			int format, int mode, unsigned long len,
 			pointer value, Bool sendevent, Bool pending)
@@ -276,7 +276,7 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
     return(Success);
 }
 
-_X_EXPORT Bool
+Bool
 RRPostPendingProperties (RROutputPtr output)
 {
     RRPropertyValuePtr	pending_value;
@@ -318,7 +318,7 @@ RRPostPendingProperties (RROutputPtr output)
     return ret;
 }
 
-_X_EXPORT RRPropertyPtr
+RRPropertyPtr
 RRQueryOutputProperty (RROutputPtr output, Atom property)
 {
     RRPropertyPtr   prop;
@@ -329,7 +329,7 @@ RRQueryOutputProperty (RROutputPtr output, Atom property)
     return NULL;
 }
 		       
-_X_EXPORT RRPropertyValuePtr
+RRPropertyValuePtr
 RRGetOutputProperty (RROutputPtr output, Atom property, Bool pending)
 {
     RRPropertyPtr   prop = RRQueryOutputProperty (output, property);
@@ -350,7 +350,7 @@ RRGetOutputProperty (RROutputPtr output, Atom property, Bool pending)
     }
 }
 
-_X_EXPORT int
+int
 RRConfigureOutputProperty (RROutputPtr output, Atom property,
 			   Bool pending, Bool range, Bool immutable,
 			   int num_values, INT32 *values)
@@ -407,7 +407,7 @@ RRConfigureOutputProperty (RROutputPtr output, Atom property,
     return Success;
 }
 
-_X_EXPORT int
+int
 ProcRRListOutputProperties (ClientPtr client)
 {
     REQUEST(xRRListOutputPropertiesReq);
@@ -455,7 +455,7 @@ ProcRRListOutputProperties (ClientPtr client)
     return(client->noClientException);
 }
 
-_X_EXPORT int
+int
 ProcRRQueryOutputProperty (ClientPtr client)
 {
     REQUEST(xRRQueryOutputPropertyReq);
@@ -504,7 +504,7 @@ ProcRRQueryOutputProperty (ClientPtr client)
     return(client->noClientException);
 }
 
-_X_EXPORT int
+int
 ProcRRConfigureOutputProperty (ClientPtr client)
 {
     REQUEST(xRRConfigureOutputPropertyReq);
@@ -525,7 +525,7 @@ ProcRRConfigureOutputProperty (ClientPtr client)
 				      (INT32 *) (stuff + 1));
 }
 
-_X_EXPORT int
+int
 ProcRRChangeOutputProperty (ClientPtr client)
 {
     REQUEST(xRRChangeOutputPropertyReq);
@@ -582,7 +582,7 @@ ProcRRChangeOutputProperty (ClientPtr client)
 	return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRDeleteOutputProperty (ClientPtr client)
 {
     REQUEST(xRRDeleteOutputPropertyReq);
@@ -605,7 +605,7 @@ ProcRRDeleteOutputProperty (ClientPtr client)
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRGetOutputProperty (ClientPtr client)
 {
     REQUEST(xRRGetOutputPropertyReq);
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index e68d47a..c8fea99 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -70,7 +70,7 @@ RREditConnectionInfo (ScreenPtr pScreen)
     root->mmHeight = pScreen->mmHeight;
 }
 
-_X_EXPORT void
+void
 RRSendConfigNotify (ScreenPtr pScreen)
 {
     WindowPtr	pWin = WindowTable[pScreen->myNum];
@@ -91,7 +91,7 @@ RRSendConfigNotify (ScreenPtr pScreen)
     DeliverEvents(pWin, &event, 1, NullWindow);
 }
 
-_X_EXPORT void
+void
 RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen)
 {
     rrScrPriv (pScreen);
@@ -135,7 +135,7 @@ RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen)
  * The driver is responsible for calling this whenever it has changed
  * the size of the screen
  */
-_X_EXPORT void
+void
 RRScreenSizeNotify (ScreenPtr	pScreen)
 {
     rrScrPriv(pScreen);
@@ -170,7 +170,7 @@ RRScreenSizeNotify (ScreenPtr	pScreen)
 /*
  * Request that the screen be resized
  */
-_X_EXPORT Bool
+Bool
 RRScreenSizeSet (ScreenPtr  pScreen,
 		 CARD16	    width,
 		 CARD16	    height,
@@ -199,7 +199,7 @@ RRScreenSizeSet (ScreenPtr  pScreen,
 /*
  * Retrieve valid screen size range
  */
-_X_EXPORT int 
+int
 ProcRRGetScreenSizeRange (ClientPtr client)
 {
     REQUEST(xRRGetScreenSizeRangeReq);
@@ -251,7 +251,7 @@ ProcRRGetScreenSizeRange (ClientPtr client)
     return (client->noClientException);
 }
 
-_X_EXPORT int
+int
 ProcRRSetScreenSize (ClientPtr client)
 {
     REQUEST(xRRSetScreenSizeReq);
@@ -463,13 +463,13 @@ rrGetScreenResources(ClientPtr client, Bool query)
     return client->noClientException;
 }
 
-_X_EXPORT int
+int
 ProcRRGetScreenResources (ClientPtr client)
 {
     return rrGetScreenResources(client, TRUE);
 }
     
-_X_EXPORT int
+int
 ProcRRGetScreenResourcesCurrent (ClientPtr client)
 {
     return rrGetScreenResources(client, FALSE);
@@ -578,7 +578,7 @@ RR10GetData (ScreenPtr pScreen, RROutputPtr output)
     return data;
 }
 
-_X_EXPORT int
+int
 ProcRRGetScreenInfo (ClientPtr client)
 {
     REQUEST(xRRGetScreenInfoReq);
@@ -732,7 +732,7 @@ ProcRRGetScreenInfo (ClientPtr client)
     return (client->noClientException);
 }
 
-_X_EXPORT int
+int
 ProcRRSetScreenConfig (ClientPtr client)
 {
     REQUEST(xRRSetScreenConfigReq);
diff --git a/randr/rrsdispatch.c b/randr/rrsdispatch.c
index 1fa74ae..5a6dab5 100644
--- a/randr/rrsdispatch.c
+++ b/randr/rrsdispatch.c
@@ -384,7 +384,7 @@ SProcRRGetCrtcTransform (ClientPtr client)
     return BadImplementation; 
 }
 
-_X_EXPORT int (*SProcRandrVector[RRNumberRequests])(ClientPtr) = {
+int (*SProcRandrVector[RRNumberRequests])(ClientPtr) = {
     SProcRRQueryVersion,	/* 0 */
 /* we skip 1 to make old clients fail pretty immediately */
     NULL,			/* 1 SProcRandrOldGetScreenInfo */
diff --git a/randr/rrtransform.c b/randr/rrtransform.c
index bf45da3..a901df4 100644
--- a/randr/rrtransform.c
+++ b/randr/rrtransform.c
@@ -23,7 +23,7 @@
 #include "randrstr.h"
 #include "rrtransform.h"
 
-_X_EXPORT void
+void
 RRTransformInit (RRTransformPtr transform)
 {
     pixman_transform_init_identity (&transform->transform);
@@ -34,14 +34,14 @@ RRTransformInit (RRTransformPtr transform)
     transform->nparams = 0;
 }
 
-_X_EXPORT void
+void
 RRTransformFini (RRTransformPtr transform)
 {
     if (transform->params)
 	xfree (transform->params);
 }
 
-_X_EXPORT Bool
+Bool
 RRTransformEqual (RRTransformPtr a, RRTransformPtr b)
 {
     if (a && pixman_transform_is_identity (&a->transform))
@@ -63,7 +63,7 @@ RRTransformEqual (RRTransformPtr a, RRTransformPtr b)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 RRTransformSetFilter (RRTransformPtr	dst,
 		      PictFilterPtr	filter,
 		      xFixed		*params,
@@ -92,7 +92,7 @@ RRTransformSetFilter (RRTransformPtr	dst,
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 RRTransformCopy (RRTransformPtr dst, RRTransformPtr src)
 {
     if (src && pixman_transform_is_identity (&src->transform))
@@ -127,7 +127,7 @@ RRTransformCopy (RRTransformPtr dst, RRTransformPtr src)
  *
  * Return TRUE if the resulting transform is not a simple translation.
  */
-_X_EXPORT Bool
+Bool
 RRTransformCompute (int			    x,
 		    int			    y,
 		    int			    width,
diff --git a/randr/rrtransform.h b/randr/rrtransform.h
index 92d3ee7..561762d 100644
--- a/randr/rrtransform.h
+++ b/randr/rrtransform.h
@@ -39,16 +39,16 @@ struct _rrTransform {
     int		    height;
 };
 
-void
+extern _X_EXPORT void
 RRTransformInit (RRTransformPtr transform);
 
-void
+extern _X_EXPORT void
 RRTransformFini (RRTransformPtr transform);
 
-Bool
+extern _X_EXPORT Bool
 RRTransformEqual (RRTransformPtr a, RRTransformPtr b);
 
-Bool
+extern _X_EXPORT Bool
 RRTransformSetFilter (RRTransformPtr	dst,
 		      PictFilterPtr	filter,
 		      xFixed		*params,
@@ -56,10 +56,10 @@ RRTransformSetFilter (RRTransformPtr	dst,
 		      int		width,
 		      int		height);
 
-Bool
+extern _X_EXPORT Bool
 RRTransformCopy (RRTransformPtr dst, RRTransformPtr src);
 
-Bool
+extern _X_EXPORT Bool
 RRTransformCompute (int			    x,
 		    int			    y,
 		    int			    width,
diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
index d2c3f29..544666f 100644
--- a/randr/rrxinerama.c
+++ b/randr/rrxinerama.c
@@ -425,7 +425,7 @@ SProcRRXineramaDispatch(ClientPtr client)
     return BadRequest;
 }
 
-_X_EXPORT void
+void
 RRXineramaExtensionInit(void)
 {
 #ifdef PANORAMIX
diff --git a/render/animcur.c b/render/animcur.c
index c151492..d80094d 100644
--- a/render/animcur.c
+++ b/render/animcur.c
@@ -345,7 +345,7 @@ AnimCurRecolorCursor (DeviceIntPtr pDev,
     Wrap (as, pScreen, RecolorCursor, AnimCurRecolorCursor);
 }
 
-_X_EXPORT Bool
+Bool
 AnimCurInit (ScreenPtr pScreen)
 {
     AnimCurScreenPtr    as;
@@ -378,7 +378,7 @@ AnimCurInit (ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT int
+int
 AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid)
 {
     CursorPtr	pCursor;
diff --git a/render/filter.c b/render/filter.c
index fa9f986..89cc064 100644
--- a/render/filter.c
+++ b/render/filter.c
@@ -46,7 +46,7 @@ static int  nfilterNames;
  * standard but not required filters don't have constant indices
  */
 
-_X_EXPORT int
+int
 PictureGetFilterId (char *filter, int len, Bool makeit)
 {
     int	    i;
@@ -102,7 +102,7 @@ PictureSetDefaultIds (void)
     return TRUE;
 }
 
-_X_EXPORT char *
+char *
 PictureGetFilterName (int id)
 {
     if (0 <= id && id < nfilterNames)
@@ -123,7 +123,7 @@ PictureFreeFilterIds (void)
     filterNames = 0;
 }
 
-_X_EXPORT int
+int
 PictureAddFilter (ScreenPtr			    pScreen,
 		  char				    *filter,
 		  PictFilterValidateParamsProcPtr   ValidateParams,
@@ -159,7 +159,7 @@ PictureAddFilter (ScreenPtr			    pScreen,
     return id;
 }
 
-_X_EXPORT Bool
+Bool
 PictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias)
 {
     PictureScreenPtr    ps = GetPictureScreen(pScreen);
@@ -193,7 +193,7 @@ PictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias)
     return TRUE;
 }
 
-_X_EXPORT PictFilterPtr
+PictFilterPtr
 PictureFindFilter (ScreenPtr pScreen, char *name, int len)
 {
     PictureScreenPtr    ps = GetPictureScreen(pScreen);
@@ -244,7 +244,7 @@ convolutionFilterValidateParams (ScreenPtr pScreen,
 }
 
 
-_X_EXPORT Bool
+Bool
 PictureSetDefaultFilters (ScreenPtr pScreen)
 {
     if (!filterNames)
@@ -268,7 +268,7 @@ PictureSetDefaultFilters (ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 PictureResetFilters (ScreenPtr pScreen)
 {
     PictureScreenPtr    ps = GetPictureScreen(pScreen);
@@ -278,7 +278,7 @@ PictureResetFilters (ScreenPtr pScreen)
     PictureFreeFilterIds ();
 }
 
-_X_EXPORT int
+int
 SetPictureFilter (PicturePtr pPicture, char *name, int len, xFixed *params, int nparams)
 {
     PictFilterPtr	pFilter;
@@ -312,7 +312,7 @@ SetPictureFilter (PicturePtr pPicture, char *name, int len, xFixed *params, int
     return SetPicturePictFilter (pPicture, pFilter, params, nparams);
 }
 
-_X_EXPORT int
+int
 SetPicturePictFilter (PicturePtr pPicture, PictFilterPtr pFilter,
 		      xFixed *params, int nparams)
 {
diff --git a/render/glyph.c b/render/glyph.c
index 36d073f..7c044aa 100644
--- a/render/glyph.c
+++ b/render/glyph.c
@@ -96,7 +96,7 @@ FreeGlyphPrivates (GlyphPtr glyph)
     glyph->devPrivates = NULL;
 }
 
-_X_EXPORT void
+void
 GlyphUninit (ScreenPtr pScreen)
 {
     PictureScreenPtr ps = GetPictureScreen (pScreen);
@@ -129,7 +129,7 @@ GlyphUninit (ScreenPtr pScreen)
     }
 }
 
-_X_EXPORT GlyphHashSetPtr
+GlyphHashSetPtr
 FindGlyphHashSet (CARD32 filled)
 {
     int	i;
@@ -140,7 +140,7 @@ FindGlyphHashSet (CARD32 filled)
     return 0;
 }
 
-_X_EXPORT GlyphRefPtr
+GlyphRefPtr
 FindGlyphRef (GlyphHashPtr	hash,
 	      CARD32		signature,
 	      Bool		match,
@@ -192,7 +192,7 @@ FindGlyphRef (GlyphHashPtr	hash,
     return gr;
 }
 
-_X_EXPORT int
+int
 HashGlyph (xGlyphInfo    *gi,
 	   CARD8	 *bits,
 	   unsigned long size,
@@ -229,7 +229,7 @@ HashGlyph (xGlyphInfo    *gi,
     return Success;
 }
 
-_X_EXPORT GlyphPtr
+GlyphPtr
 FindGlyphByHash (unsigned char sha1[20], int format)
 {
     GlyphRefPtr gr;
@@ -272,7 +272,7 @@ CheckDuplicates (GlyphHashPtr hash, char *where)
 #define DuplicateRef(a,b)
 #endif
 
-_X_EXPORT void
+void
 FreeGlyph (GlyphPtr glyph, int format)
 {
     CheckDuplicates (&globalGlyphs[format], "FreeGlyph");
@@ -321,7 +321,7 @@ FreeGlyph (GlyphPtr glyph, int format)
     }
 }
 
-_X_EXPORT void
+void
 AddGlyph (GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id)
 {
     GlyphRefPtr	    gr;
@@ -366,7 +366,7 @@ AddGlyph (GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id)
     CheckDuplicates (&globalGlyphs[glyphSet->fdepth], "AddGlyph bottom");
 }
 
-_X_EXPORT Bool
+Bool
 DeleteGlyph (GlyphSetPtr glyphSet, Glyph id)
 {
     GlyphRefPtr     gr;
@@ -384,7 +384,7 @@ DeleteGlyph (GlyphSetPtr glyphSet, Glyph id)
     return FALSE;
 }
 
-_X_EXPORT GlyphPtr
+GlyphPtr
 FindGlyph (GlyphSetPtr glyphSet, Glyph id)
 {
     GlyphPtr        glyph;
@@ -395,7 +395,7 @@ FindGlyph (GlyphSetPtr glyphSet, Glyph id)
     return glyph;
 }
 
-_X_EXPORT GlyphPtr
+GlyphPtr
 AllocateGlyph (xGlyphInfo *gi, int fdepth)
 {
     PictureScreenPtr ps;
@@ -438,7 +438,7 @@ bail:
     return 0;
 }
     
-_X_EXPORT Bool
+Bool
 AllocateGlyphHash (GlyphHashPtr hash, GlyphHashSetPtr hashSet)
 {
     hash->table = xcalloc (hashSet->size, sizeof (GlyphRefRec));
@@ -449,7 +449,7 @@ AllocateGlyphHash (GlyphHashPtr hash, GlyphHashSetPtr hashSet)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 ResizeGlyphHash (GlyphHashPtr hash, CARD32 change, Bool global)
 {
     CARD32	    tableEntries;
@@ -492,14 +492,14 @@ ResizeGlyphHash (GlyphHashPtr hash, CARD32 change, Bool global)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 ResizeGlyphSet (GlyphSetPtr glyphSet, CARD32 change)
 {
     return (ResizeGlyphHash (&glyphSet->hash, change, FALSE) &&
 	    ResizeGlyphHash (&globalGlyphs[glyphSet->fdepth], change, TRUE));
 }
 			    
-_X_EXPORT GlyphSetPtr
+GlyphSetPtr
 AllocateGlyphSet (int fdepth, PictFormatPtr format)
 {
     GlyphSetPtr	glyphSet;
@@ -527,7 +527,7 @@ AllocateGlyphSet (int fdepth, PictFormatPtr format)
     return glyphSet;	
 }
 
-_X_EXPORT int
+int
 FreeGlyphSet (pointer	value,
 	      XID       gid)
 {
@@ -614,7 +614,7 @@ GlyphExtents (int		nlist,
 
 #define NeedsComponent(f) (PICT_FORMAT_A(f) != 0 && PICT_FORMAT_RGB(f) != 0)
 
-_X_EXPORT void
+void
 CompositeGlyphs (CARD8		op,
 		 PicturePtr	pSrc,
 		 PicturePtr	pDst,
@@ -632,20 +632,20 @@ CompositeGlyphs (CARD8		op,
     (*ps->Glyphs) (op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, lists, glyphs);
 }
 
-_X_EXPORT Bool
+Bool
 miRealizeGlyph (ScreenPtr pScreen,
 		GlyphPtr  glyph)
 {
     return TRUE;
 }
 
-_X_EXPORT void
+void
 miUnrealizeGlyph (ScreenPtr pScreen,
 		  GlyphPtr  glyph)
 {
 }
 
-_X_EXPORT void
+void
 miGlyphs (CARD8		op,
 	  PicturePtr	pSrc,
 	  PicturePtr	pDst,
diff --git a/render/glyphstr.h b/render/glyphstr.h
index 67b21fe..6c1a837 100644
--- a/render/glyphstr.h
+++ b/render/glyphstr.h
@@ -91,58 +91,58 @@ typedef struct _GlyphList {
     PictFormatPtr   format;
 } GlyphListRec, *GlyphListPtr;
 
-GlyphHashSetPtr
+extern _X_EXPORT GlyphHashSetPtr
 FindGlyphHashSet (CARD32 filled);
 
-void
+extern _X_EXPORT void
 GlyphUninit (ScreenPtr pScreen);
 
-GlyphHashSetPtr
+extern _X_EXPORT GlyphHashSetPtr
 FindGlyphHashSet (CARD32 filled);
 
-GlyphRefPtr
+extern _X_EXPORT GlyphRefPtr
 FindGlyphRef (GlyphHashPtr	hash,
 	      CARD32		signature,
 	      Bool		match,
 	      unsigned char	sha1[20]);
 
-GlyphPtr
+extern _X_EXPORT GlyphPtr
 FindGlyphByHash (unsigned char sha1[20], int format);
 
-int
+extern _X_EXPORT int
 HashGlyph (xGlyphInfo    *gi,
 	   CARD8	 *bits,
 	   unsigned long size,
 	   unsigned char sha1[20]);
 
-void
+extern _X_EXPORT void
 FreeGlyph (GlyphPtr glyph, int format);
 
-void
+extern _X_EXPORT void
 AddGlyph (GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id);
 
-Bool
+extern _X_EXPORT Bool
 DeleteGlyph (GlyphSetPtr glyphSet, Glyph id);
 
-GlyphPtr
+extern _X_EXPORT GlyphPtr
 FindGlyph (GlyphSetPtr glyphSet, Glyph id);
 
-GlyphPtr
+extern _X_EXPORT GlyphPtr
 AllocateGlyph (xGlyphInfo *gi, int format);
 
-Bool
+extern _X_EXPORT Bool
 AllocateGlyphHash (GlyphHashPtr hash, GlyphHashSetPtr hashSet);
 
-Bool
+extern _X_EXPORT Bool
 ResizeGlyphHash (GlyphHashPtr hash, CARD32 change, Bool global);
 
-Bool
+extern _X_EXPORT Bool
 ResizeGlyphSet (GlyphSetPtr glyphSet, CARD32 change);
 
-GlyphSetPtr
+extern _X_EXPORT GlyphSetPtr
 AllocateGlyphSet (int fdepth, PictFormatPtr format);
 
-int
+extern _X_EXPORT int
 FreeGlyphSet (pointer   value,
 	      XID       gid);
 
diff --git a/render/matrix.c b/render/matrix.c
index 3b55eb9..eccb902 100644
--- a/render/matrix.c
+++ b/render/matrix.c
@@ -39,7 +39,7 @@
 #include "servermd.h"
 #include "picturestr.h"
 
-_X_EXPORT void
+void
 PictTransform_from_xRenderTransform (PictTransformPtr pict,
 				     xRenderTransform *render)
 {
@@ -56,7 +56,7 @@ PictTransform_from_xRenderTransform (PictTransformPtr pict,
     pict->matrix[2][2] = render->matrix33;
 }
 
-_X_EXPORT void
+void
 xRenderTransform_from_PictTransform (xRenderTransform *render,
 				     PictTransformPtr pict)
 {
@@ -73,14 +73,14 @@ xRenderTransform_from_PictTransform (xRenderTransform *render,
     render->matrix33 = pict->matrix[2][2];
 }
 
-_X_EXPORT Bool
+Bool
 PictureTransformPoint (PictTransformPtr transform,
 		       PictVectorPtr	vector)
 {
 	return pixman_transform_point(transform, vector);
 }
 
-_X_EXPORT Bool
+Bool
 PictureTransformPoint3d (PictTransformPtr transform,
                          PictVectorPtr	vector)
 {
diff --git a/render/miindex.c b/render/miindex.c
index 4105269..4e0cf00 100644
--- a/render/miindex.c
+++ b/render/miindex.c
@@ -232,7 +232,7 @@ FindBestGray (miIndexedPtr pIndexed, Pixel *pixels, int num, int gray)
     return best;
 }
 
-_X_EXPORT Bool
+Bool
 miInitIndexed (ScreenPtr	pScreen,
 	       PictFormatPtr	pFormat)
 {
@@ -318,7 +318,7 @@ miInitIndexed (ScreenPtr	pScreen,
     return TRUE;
 }
 
-_X_EXPORT void
+void
 miCloseIndexed (ScreenPtr	pScreen,
 		PictFormatPtr	pFormat)
 {
@@ -334,7 +334,7 @@ miCloseIndexed (ScreenPtr	pScreen,
     }
 }
 
-_X_EXPORT void
+void
 miUpdateIndexed (ScreenPtr	pScreen,
 		 PictFormatPtr	pFormat,
 		 int		ndef,
diff --git a/render/mipict.c b/render/mipict.c
index abb6239..777f111 100644
--- a/render/mipict.c
+++ b/render/mipict.c
@@ -37,20 +37,20 @@
 #define __inline
 #endif
 
-_X_EXPORT int
+int
 miCreatePicture (PicturePtr pPicture)
 {
     return Success;
 }
 
-_X_EXPORT void
+void
 miDestroyPicture (PicturePtr pPicture)
 {
     if (pPicture->freeCompClip)
 	REGION_DESTROY(pPicture->pDrawable->pScreen, pPicture->pCompositeClip);
 }
 
-_X_EXPORT void
+void
 miDestroyPictureClip (PicturePtr pPicture)
 {
     switch (pPicture->clientClipType) {
@@ -71,7 +71,7 @@ miDestroyPictureClip (PicturePtr pPicture)
     pPicture->clientClipType = CT_NONE;
 }    
 
-_X_EXPORT int
+int
 miChangePictureClip (PicturePtr    pPicture,
 		     int	   type,
 		     pointer	   value,
@@ -116,14 +116,14 @@ miChangePictureClip (PicturePtr    pPicture,
     return Success;
 }
 
-_X_EXPORT void
+void
 miChangePicture (PicturePtr pPicture,
 		 Mask       mask)
 {
     return;
 }
 
-_X_EXPORT void
+void
 miValidatePicture (PicturePtr pPicture,
 		   Mask       mask)
 {
@@ -248,14 +248,14 @@ miValidatePicture (PicturePtr pPicture,
     }
 }
 
-_X_EXPORT int
+int
 miChangePictureTransform (PicturePtr	pPicture,
 			  PictTransform *transform)
 {
     return Success;
 }
 
-_X_EXPORT int
+int
 miChangePictureFilter (PicturePtr pPicture,
 		       int	  filter,
 		       xFixed     *params,
@@ -341,7 +341,7 @@ miClipPictureSrc (RegionPtr	pRegion,
     }
 }
 
-_X_EXPORT void
+void
 miCompositeSourceValidate (PicturePtr	pPicture,
 			   INT16	x,
 			   INT16	y,
@@ -403,7 +403,7 @@ miCompositeSourceValidate (PicturePtr	pPicture,
  * an allocation failure, but rendering ignores those anyways.
  */
 
-_X_EXPORT Bool
+Bool
 miComputeCompositeRegion (RegionPtr	pRegion,
 			  PicturePtr	pSrc,
 			  PicturePtr	pMask,
@@ -494,7 +494,7 @@ miComputeCompositeRegion (RegionPtr	pRegion,
     return TRUE;
 }
 
-_X_EXPORT void
+void
 miRenderColorToPixel (PictFormatPtr format,
 		      xRenderColor  *color,
 		      CARD32	    *pixel)
@@ -545,7 +545,7 @@ miFillColor (CARD32 pixel, int bits)
     return (CARD16) pixel;
 }
 
-_X_EXPORT Bool
+Bool
 miIsSolidAlpha (PicturePtr pSrc)
 {
     ScreenPtr	pScreen;
@@ -579,7 +579,7 @@ miIsSolidAlpha (PicturePtr pSrc)
     }
 }
 
-_X_EXPORT void
+void
 miRenderPixelToColor (PictFormatPtr format,
 		      CARD32	    pixel,
 		      xRenderColor  *color)
@@ -612,7 +612,7 @@ miRenderPixelToColor (PictFormatPtr format,
     }
 }
 
-_X_EXPORT Bool
+Bool
 miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
 {
     PictureScreenPtr    ps;
diff --git a/render/mipict.h b/render/mipict.h
index b3d4bae..eb6b664 100644
--- a/render/mipict.h
+++ b/render/mipict.h
@@ -47,46 +47,46 @@ typedef struct _miIndexed {
 
 #define miIndexToEntY24(mif,rgb24) ((mif)->ent[CvtR8G8B8toY15(rgb24)])
 
-int
+extern _X_EXPORT int
 miCreatePicture (PicturePtr pPicture);
 
-void
+extern _X_EXPORT void
 miDestroyPicture (PicturePtr pPicture);
 
-void
+extern _X_EXPORT void
 miDestroyPictureClip (PicturePtr pPicture);
 
-int
+extern _X_EXPORT int
 miChangePictureClip (PicturePtr    pPicture,
 		     int	   type,
 		     pointer	   value,
 		     int	   n);
 
-void
+extern _X_EXPORT void
 miChangePicture (PicturePtr pPicture,
 		 Mask       mask);
 
-void
+extern _X_EXPORT void
 miValidatePicture (PicturePtr pPicture,
 		   Mask       mask);
 
-int
+extern _X_EXPORT int
 miChangePictureTransform (PicturePtr	pPicture,
 			  PictTransform *transform);
 
-int
+extern _X_EXPORT int
 miChangePictureFilter (PicturePtr pPicture,
 		       int	  filter,
 		       xFixed     *params,
 		       int	  nparams);
 
-void
+extern _X_EXPORT void
 miCompositeSourceValidate (PicturePtr	pPicture,
 			   INT16	x,
 			   INT16	y,
 			   CARD16	width,
 			   CARD16	height);
-Bool
+extern _X_EXPORT Bool
 miComputeCompositeRegion (RegionPtr	pRegion,
 			  PicturePtr	pSrc,
 			  PicturePtr	pMask,
@@ -100,18 +100,18 @@ miComputeCompositeRegion (RegionPtr	pRegion,
 			  CARD16	width,
 			  CARD16	height);
 
-Bool
+extern _X_EXPORT Bool
 miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
 
-Bool
+extern _X_EXPORT Bool
 miRealizeGlyph (ScreenPtr pScreen,
 		GlyphPtr  glyph);
 
-void
+extern _X_EXPORT void
 miUnrealizeGlyph (ScreenPtr pScreen,
 		  GlyphPtr  glyph);
 
-void
+extern _X_EXPORT void
 miGlyphs (CARD8		op,
 	  PicturePtr	pSrc,
 	  PicturePtr	pDst,
@@ -122,30 +122,30 @@ miGlyphs (CARD8		op,
 	  GlyphListPtr	list,
 	  GlyphPtr	*glyphs);
 
-void
+extern _X_EXPORT void
 miRenderColorToPixel (PictFormatPtr pPict,
 		      xRenderColor  *color,
 		      CARD32	    *pixel);
 
-void
+extern _X_EXPORT void
 miRenderPixelToColor (PictFormatPtr pPict,
 		      CARD32	    pixel,
 		      xRenderColor  *color);
 
-Bool
+extern _X_EXPORT Bool
 miIsSolidAlpha (PicturePtr pSrc);
 
-void
+extern _X_EXPORT void
 miCompositeRects (CARD8		op,
 		  PicturePtr	pDst,
 		  xRenderColor  *color,
 		  int		nRect,
 		  xRectangle    *rects);
 
-void
+extern _X_EXPORT void
 miTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box);
 
-void
+extern _X_EXPORT void
 miTrapezoids (CARD8	    op,
 	      PicturePtr    pSrc,
 	      PicturePtr    pDst,
@@ -155,13 +155,13 @@ miTrapezoids (CARD8	    op,
 	      int	    ntrap,
 	      xTrapezoid    *traps);
 
-void
+extern _X_EXPORT void
 miPointFixedBounds (int npoint, xPointFixed *points, BoxPtr bounds);
     
-void
+extern _X_EXPORT void
 miTriangleBounds (int ntri, xTriangle *tris, BoxPtr bounds);
 
-void
+extern _X_EXPORT void
 miTriangles (CARD8	    op,
 	     PicturePtr	    pSrc,
 	     PicturePtr	    pDst,
@@ -171,7 +171,7 @@ miTriangles (CARD8	    op,
 	     int	    ntri,
 	     xTriangle	    *tris);
 
-void
+extern _X_EXPORT void
 miTriStrip (CARD8	    op,
 	    PicturePtr	    pSrc,
 	    PicturePtr	    pDst,
@@ -181,7 +181,7 @@ miTriStrip (CARD8	    op,
 	    int		    npoint,
 	    xPointFixed	    *points);
 
-void
+extern _X_EXPORT void
 miTriFan (CARD8		op,
 	  PicturePtr	pSrc,
 	  PicturePtr	pDst,
@@ -191,22 +191,22 @@ miTriFan (CARD8		op,
 	  int		npoint,
 	  xPointFixed	*points);
 
-PicturePtr
+extern _X_EXPORT PicturePtr
 miCreateAlphaPicture (ScreenPtr	    pScreen, 
 		      PicturePtr    pDst,
 		      PictFormatPtr pPictFormat,
 		      CARD16	    width,
 		      CARD16	    height);
 
-Bool
+extern _X_EXPORT Bool
 miInitIndexed (ScreenPtr	pScreen,
 	       PictFormatPtr	pFormat);
 
-void
+extern _X_EXPORT void
 miCloseIndexed (ScreenPtr	pScreen,
 		PictFormatPtr	pFormat);
 
-void
+extern _X_EXPORT void
 miUpdateIndexed (ScreenPtr	pScreen,
 		 PictFormatPtr	pFormat,
 		 int		ndef,
diff --git a/render/mirect.c b/render/mirect.c
index 38f4faf..b54fe6f 100644
--- a/render/mirect.c
+++ b/render/mirect.c
@@ -94,7 +94,7 @@ miColorRects (PicturePtr    pDst,
     FreeScratchGC (pGC);
 }
 
-_X_EXPORT void
+void
 miCompositeRects (CARD8		op,
 		  PicturePtr	pDst,
 		  xRenderColor  *color,
diff --git a/render/mitrap.c b/render/mitrap.c
index 05ec09e..8bdc8a8 100644
--- a/render/mitrap.c
+++ b/render/mitrap.c
@@ -34,7 +34,7 @@
 #include "picturestr.h"
 #include "mipict.h"
 
-_X_EXPORT PicturePtr
+PicturePtr
 miCreateAlphaPicture (ScreenPtr	    pScreen, 
 		      PicturePtr    pDst,
 		      PictFormatPtr pPictFormat,
@@ -94,7 +94,7 @@ miLineFixedX (xLineFixed *l, xFixed y, Bool ceil)
     return l->p1.x + (xFixed) (ex / dy);
 }
 
-_X_EXPORT void
+void
 miTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box)
 {
     box->y1 = MAXSHORT;
@@ -127,7 +127,7 @@ miTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box)
     }
 }
 
-_X_EXPORT void
+void
 miTrapezoids (CARD8	    op,
 	      PicturePtr    pSrc,
 	      PicturePtr    pDst,
diff --git a/render/mitri.c b/render/mitri.c
index f811c77..a92c19b 100644
--- a/render/mitri.c
+++ b/render/mitri.c
@@ -33,7 +33,7 @@
 #include "picturestr.h"
 #include "mipict.h"
 
-_X_EXPORT void
+void
 miPointFixedBounds (int npoint, xPointFixed *points, BoxPtr bounds)
 {
     bounds->x1 = xFixedToInt (points->x);
@@ -61,13 +61,13 @@ miPointFixedBounds (int npoint, xPointFixed *points, BoxPtr bounds)
     }
 }
 
-_X_EXPORT void
+void
 miTriangleBounds (int ntri, xTriangle *tris, BoxPtr bounds)
 {
     miPointFixedBounds (ntri * 3, (xPointFixed *) tris, bounds);
 }
 
-_X_EXPORT void
+void
 miTriangles (CARD8	    op,
 	     PicturePtr	    pSrc,
 	     PicturePtr	    pDst,
@@ -126,7 +126,7 @@ miTriangles (CARD8	    op,
     }
 }
 
-_X_EXPORT void
+void
 miTriStrip (CARD8	    op,
 	    PicturePtr	    pSrc,
 	    PicturePtr	    pDst,
@@ -157,7 +157,7 @@ miTriStrip (CARD8	    op,
     xfree (tris);
 }
 
-_X_EXPORT void
+void
 miTriFan (CARD8		op,
 	  PicturePtr	pSrc,
 	  PicturePtr	pDst,
diff --git a/render/picture.c b/render/picture.c
index 0be9997..f99c53f 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -44,16 +44,16 @@
 #include "registry.h"
 
 static int PictureScreenPrivateKeyIndex;
-_X_EXPORT DevPrivateKey PictureScreenPrivateKey = &PictureScreenPrivateKeyIndex;
+DevPrivateKey PictureScreenPrivateKey = &PictureScreenPrivateKeyIndex;
 static int PictureWindowPrivateKeyIndex;
-_X_EXPORT DevPrivateKey	PictureWindowPrivateKey = &PictureWindowPrivateKeyIndex;
+DevPrivateKey	PictureWindowPrivateKey = &PictureWindowPrivateKeyIndex;
 static int	PictureGeneration;
-_X_EXPORT RESTYPE		PictureType;
-_X_EXPORT RESTYPE		PictFormatType;
-_X_EXPORT RESTYPE		GlyphSetType;
-_X_EXPORT int		PictureCmapPolicy = PictureCmapPolicyDefault;
+RESTYPE		PictureType;
+RESTYPE		PictFormatType;
+RESTYPE		GlyphSetType;
+int		PictureCmapPolicy = PictureCmapPolicyDefault;
 
-_X_EXPORT Bool
+Bool
 PictureDestroyWindow (WindowPtr pWindow)
 {
     ScreenPtr		pScreen = pWindow->drawable.pScreen;
@@ -75,7 +75,7 @@ PictureDestroyWindow (WindowPtr pWindow)
     return ret;
 }
 
-_X_EXPORT Bool
+Bool
 PictureCloseScreen (int index, ScreenPtr pScreen)
 {
     PictureScreenPtr    ps = GetPictureScreen(pScreen);
@@ -95,7 +95,7 @@ PictureCloseScreen (int index, ScreenPtr pScreen)
     return ret;
 }
 
-_X_EXPORT void
+void
 PictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef)
 {
     ScreenPtr		pScreen = pColormap->pScreen;
@@ -163,7 +163,7 @@ addFormat (FormatInitRec    formats[256],
 
 #define Mask(n)	((n) == 32 ? 0xffffffff : ((1 << (n))-1))
 
-_X_EXPORT PictFormatPtr
+PictFormatPtr
 PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp)
 {
     int		    nformats, f;
@@ -401,7 +401,7 @@ PictureFindVisual (ScreenPtr pScreen, VisualID visual)
     return 0;
 }
 
-_X_EXPORT Bool
+Bool
 PictureInitIndexedFormat(ScreenPtr pScreen, PictFormatPtr format)
 {
     PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
@@ -441,7 +441,7 @@ PictureInitIndexedFormats (ScreenPtr pScreen)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 PictureFinishInit (void)
 {
     int	    s;
@@ -456,7 +456,7 @@ PictureFinishInit (void)
     return TRUE;
 }
 
-_X_EXPORT Bool
+Bool
 PictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel)
 {
     PictureScreenPtr    ps = GetPictureScreenIfSet(pScreen);
@@ -468,7 +468,7 @@ PictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel)
     
 }
 
-_X_EXPORT int
+int
 PictureGetSubpixelOrder (ScreenPtr pScreen)
 {
     PictureScreenPtr    ps = GetPictureScreenIfSet(pScreen);
@@ -478,7 +478,7 @@ PictureGetSubpixelOrder (ScreenPtr pScreen)
     return ps->subpixel;
 }
     
-_X_EXPORT PictFormatPtr
+PictFormatPtr
 PictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual)
 {
     PictureScreenPtr    ps = GetPictureScreenIfSet(pScreen);
@@ -531,7 +531,7 @@ PictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual)
     return 0;
 }
 
-_X_EXPORT PictFormatPtr
+PictFormatPtr
 PictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 f)
 {
     PictureScreenPtr    ps = GetPictureScreenIfSet(pScreen);
@@ -551,7 +551,7 @@ PictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 f)
     return 0;
 }
 
-_X_EXPORT int
+int
 PictureParseCmapPolicy (const char *name)
 {
     if ( strcmp (name, "default" ) == 0)
@@ -568,7 +568,7 @@ PictureParseCmapPolicy (const char *name)
 	return PictureCmapPolicyInvalid;
 }
 
-_X_EXPORT Bool
+Bool
 PictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
 {
     PictureScreenPtr	ps;
@@ -668,7 +668,7 @@ PictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
     return TRUE;
 }
 
-_X_EXPORT void
+void
 SetPictureToDefaults (PicturePtr    pPicture)
 {
     pPicture->refcnt = 1;
@@ -702,7 +702,7 @@ SetPictureToDefaults (PicturePtr    pPicture)
     pPicture->pSourcePict = 0;
 }
 
-_X_EXPORT PicturePtr
+PicturePtr
 CreatePicture (Picture		pid,
 	       DrawablePtr	pDrawable,
 	       PictFormatPtr	pFormat,
@@ -797,7 +797,7 @@ static unsigned int INTERPOLATE_PIXEL_256(unsigned int x, unsigned int a,
     return x;
 }
 
-_X_EXPORT CARD32
+CARD32
 PictureGradientColor (PictGradientStopPtr stop1,
 		      PictGradientStopPtr stop2,
 		      CARD32	          x)
@@ -868,7 +868,7 @@ static PicturePtr createSourcePicture(void)
     return pPicture;
 }
 
-_X_EXPORT PicturePtr
+PicturePtr
 CreateSolidPicture (Picture pid, xRenderColor *color, int *error)
 {
     PicturePtr pPicture;
@@ -890,7 +890,7 @@ CreateSolidPicture (Picture pid, xRenderColor *color, int *error)
     return pPicture;
 }
 
-_X_EXPORT PicturePtr
+PicturePtr
 CreateLinearGradientPicture (Picture pid, xPointFixed *p1, xPointFixed *p2,
                              int nStops, xFixed *stops, xRenderColor *colors, int *error)
 {
@@ -929,7 +929,7 @@ CreateLinearGradientPicture (Picture pid, xPointFixed *p1, xPointFixed *p2,
 
 #define FixedToDouble(x) ((x)/65536.)
 
-_X_EXPORT PicturePtr
+PicturePtr
 CreateRadialGradientPicture (Picture pid, xPointFixed *inner, xPointFixed *outer,
                              xFixed innerRadius, xFixed outerRadius,
                              int nStops, xFixed *stops, xRenderColor *colors, int *error)
@@ -979,7 +979,7 @@ CreateRadialGradientPicture (Picture pid, xPointFixed *inner, xPointFixed *outer
     return pPicture;
 }
 
-_X_EXPORT PicturePtr
+PicturePtr
 CreateConicalGradientPicture (Picture pid, xPointFixed *center, xFixed angle,
                               int nStops, xFixed *stops, xRenderColor *colors, int *error)
 {
@@ -1020,7 +1020,7 @@ CreateConicalGradientPicture (Picture pid, xPointFixed *center, xFixed angle,
 
 #define NEXT_PTR(_type) ((_type) ulist++->ptr)
 
-_X_EXPORT int
+int
 ChangePicture (PicturePtr	pPicture,
 	       Mask		vmask,
 	       XID		*vlist,
@@ -1249,7 +1249,7 @@ ChangePicture (PicturePtr	pPicture,
     return error;
 }
 
-_X_EXPORT int
+int
 SetPictureClipRects (PicturePtr	pPicture,
 		     int	xOrigin,
 		     int	yOrigin,
@@ -1277,7 +1277,7 @@ SetPictureClipRects (PicturePtr	pPicture,
     return result;
 }
 
-_X_EXPORT int
+int
 SetPictureClipRegion (PicturePtr    pPicture,
                       int           xOrigin,
                       int           yOrigin,
@@ -1335,7 +1335,7 @@ transformIsIdentity(PictTransform *t)
             (t->matrix[2][1] == 0));
 }
 
-_X_EXPORT int
+int
 SetPictureTransform (PicturePtr	    pPicture,
 		     PictTransform  *transform)
 {
@@ -1374,7 +1374,7 @@ SetPictureTransform (PicturePtr	    pPicture,
     return Success;
 }
 
-_X_EXPORT void
+void
 CopyPicture (PicturePtr	pSrc,
 	     Mask	mask,
 	     PicturePtr	pDst)
@@ -1471,7 +1471,7 @@ ValidateOnePicture (PicturePtr pPicture)
     }
 }
 
-_X_EXPORT void
+void
 ValidatePicture(PicturePtr pPicture)
 {
     ValidateOnePicture (pPicture);
@@ -1479,7 +1479,7 @@ ValidatePicture(PicturePtr pPicture)
 	ValidateOnePicture (pPicture->alphaMap);
 }
 
-_X_EXPORT int
+int
 FreePicture (pointer	value,
 	     XID	pid)
 {
@@ -1535,7 +1535,7 @@ FreePicture (pointer	value,
     return Success;
 }
 
-_X_EXPORT int
+int
 FreePictFormat (pointer	pPictFormat,
 		XID     pid)
 {
@@ -1647,7 +1647,7 @@ ReduceCompositeOp (CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
     return op;
 }
 
-_X_EXPORT void
+void
 CompositePicture (CARD8		op,
 		  PicturePtr	pSrc,
 		  PicturePtr	pMask,
@@ -1686,7 +1686,7 @@ CompositePicture (CARD8		op,
 		       height);
 }
 
-_X_EXPORT void
+void
 CompositeRects (CARD8		op,
 		PicturePtr	pDst,
 		xRenderColor	*color,
@@ -1699,7 +1699,7 @@ CompositeRects (CARD8		op,
     (*ps->CompositeRects) (op, pDst, color, nRect, rects);
 }
 
-_X_EXPORT void
+void
 CompositeTrapezoids (CARD8	    op,
 		     PicturePtr	    pSrc,
 		     PicturePtr	    pDst,
@@ -1716,7 +1716,7 @@ CompositeTrapezoids (CARD8	    op,
     (*ps->Trapezoids) (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntrap, traps);
 }
 
-_X_EXPORT void
+void
 CompositeTriangles (CARD8	    op,
 		    PicturePtr	    pSrc,
 		    PicturePtr	    pDst,
@@ -1733,7 +1733,7 @@ CompositeTriangles (CARD8	    op,
     (*ps->Triangles) (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntriangles, triangles);
 }
 
-_X_EXPORT void
+void
 CompositeTriStrip (CARD8	    op,
 		   PicturePtr	    pSrc,
 		   PicturePtr	    pDst,
@@ -1750,7 +1750,7 @@ CompositeTriStrip (CARD8	    op,
     (*ps->TriStrip) (op, pSrc, pDst, maskFormat, xSrc, ySrc, npoints, points);
 }
 
-_X_EXPORT void
+void
 CompositeTriFan (CARD8		op,
 		 PicturePtr	pSrc,
 		 PicturePtr	pDst,
@@ -1767,7 +1767,7 @@ CompositeTriFan (CARD8		op,
     (*ps->TriFan) (op, pSrc, pDst, maskFormat, xSrc, ySrc, npoints, points);
 }
 
-_X_EXPORT void
+void
 AddTraps (PicturePtr	pPicture,
 	  INT16		xOff,
 	  INT16		yOff,
diff --git a/render/picture.h b/render/picture.h
index 045b299..8f67b84 100644
--- a/render/picture.h
+++ b/render/picture.h
@@ -159,12 +159,12 @@ typedef enum _PictFormatShort {
 #define PictureCmapPolicyColor	    3
 #define PictureCmapPolicyAll	    4
 
-extern int  PictureCmapPolicy;
+extern _X_EXPORT int PictureCmapPolicy;
 
-int	PictureParseCmapPolicy (const char *name);
+extern _X_EXPORT int PictureParseCmapPolicy (const char *name);
 
-extern int RenderErrBase;
-extern DevPrivateKey RenderClientPrivateKey;
+extern _X_EXPORT int RenderErrBase;
+extern _X_EXPORT DevPrivateKey RenderClientPrivateKey;
 
 /* Fixed point updates from Carl Worth, USC, Information Sciences Institute */
 
diff --git a/render/picturestr.h b/render/picturestr.h
index 500f800..194db11 100644
--- a/render/picturestr.h
+++ b/render/picturestr.h
@@ -396,11 +396,11 @@ typedef struct _PictureScreen {
 
 } PictureScreenRec, *PictureScreenPtr;
 
-extern DevPrivateKey	PictureScreenPrivateKey;
-extern DevPrivateKey	PictureWindowPrivateKey;
-extern RESTYPE		PictureType;
-extern RESTYPE		PictFormatType;
-extern RESTYPE		GlyphSetType;
+extern _X_EXPORT DevPrivateKey	PictureScreenPrivateKey;
+extern _X_EXPORT DevPrivateKey	PictureWindowPrivateKey;
+extern _X_EXPORT RESTYPE	PictureType;
+extern _X_EXPORT RESTYPE	PictFormatType;
+extern _X_EXPORT RESTYPE	GlyphSetType;
 
 #define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey))
 #define GetPictureScreenIfSet(s) GetPictureScreen(s)
@@ -424,76 +424,76 @@ extern RESTYPE		GlyphSetType;
     } \
 } \
 
-Bool
+extern _X_EXPORT Bool
 PictureDestroyWindow (WindowPtr pWindow);
 
-Bool
+extern _X_EXPORT Bool
 PictureCloseScreen (int Index, ScreenPtr pScreen);
 
-void
+extern _X_EXPORT void
 PictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef);
 
-Bool
+extern _X_EXPORT Bool
 PictureInitIndexedFormat (ScreenPtr pScreen, PictFormatPtr format);
 
-Bool
+extern _X_EXPORT Bool
 PictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel);
 
-int
+extern _X_EXPORT int
 PictureGetSubpixelOrder (ScreenPtr pScreen);
 
-PictFormatPtr
+extern _X_EXPORT PictFormatPtr
 PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp);
 
-PictFormatPtr
+extern _X_EXPORT PictFormatPtr
 PictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual);
 
-PictFormatPtr
+extern _X_EXPORT PictFormatPtr
 PictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 format);
 
-Bool
+extern _X_EXPORT Bool
 PictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
 
-int
+extern _X_EXPORT int
 PictureGetFilterId (char *filter, int len, Bool makeit);
 
-char *
+extern _X_EXPORT char *
 PictureGetFilterName (int id);
 
-int
+extern _X_EXPORT int
 PictureAddFilter (ScreenPtr			    pScreen,
 		  char				    *filter,
 		  PictFilterValidateParamsProcPtr   ValidateParams,
 		  int				    width,
 		  int				    height);
 
-Bool
+extern _X_EXPORT Bool
 PictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias);
 
-Bool
+extern _X_EXPORT Bool
 PictureSetDefaultFilters (ScreenPtr pScreen);
 
-void
+extern _X_EXPORT void
 PictureResetFilters (ScreenPtr pScreen);
 
-PictFilterPtr
+extern _X_EXPORT PictFilterPtr
 PictureFindFilter (ScreenPtr pScreen, char *name, int len);
 
-int
+extern _X_EXPORT int
 SetPicturePictFilter (PicturePtr pPicture, PictFilterPtr pFilter,
 		      xFixed *params, int nparams);
 
-int
+extern _X_EXPORT int
 SetPictureFilter (PicturePtr pPicture, char *name, int len,
 		  xFixed *params, int nparams);
 
-Bool
+extern _X_EXPORT Bool
 PictureFinishInit (void);
 
-void
+extern _X_EXPORT void
 SetPictureToDefaults (PicturePtr pPicture);
 
-PicturePtr
+extern _X_EXPORT PicturePtr
 CreatePicture (Picture		pid,
 	       DrawablePtr	pDrawable,
 	       PictFormatPtr	pFormat,
@@ -502,47 +502,47 @@ CreatePicture (Picture		pid,
 	       ClientPtr	client,
 	       int		*error);
 
-int
+extern _X_EXPORT int
 ChangePicture (PicturePtr	pPicture,
 	       Mask		vmask,
 	       XID		*vlist,
 	       DevUnion		*ulist,
 	       ClientPtr	client);
 
-int
+extern _X_EXPORT int
 SetPictureClipRects (PicturePtr	pPicture,
 		     int	xOrigin,
 		     int	yOrigin,
 		     int	nRect,
 		     xRectangle	*rects);
 
-int
+extern _X_EXPORT int
 SetPictureClipRegion (PicturePtr    pPicture,
 		      int	    xOrigin,
 		      int	    yOrigin,
 		      RegionPtr	    pRegion);
 
-int
+extern _X_EXPORT int
 SetPictureTransform (PicturePtr	    pPicture,
 		     PictTransform  *transform);
 
-void
+extern _X_EXPORT void
 CopyPicture (PicturePtr	pSrc,
 	     Mask	mask,
 	     PicturePtr	pDst);
 
-void
+extern _X_EXPORT void
 ValidatePicture(PicturePtr pPicture);
 
-int
+extern _X_EXPORT int
 FreePicture (pointer	pPicture,
 	     XID	pid);
 
-int
+extern _X_EXPORT int
 FreePictFormat (pointer	pPictFormat,
 		XID     pid);
 
-void
+extern _X_EXPORT void
 CompositePicture (CARD8		op,
 		  PicturePtr	pSrc,
 		  PicturePtr	pMask,
@@ -556,7 +556,7 @@ CompositePicture (CARD8		op,
 		  CARD16	width,
 		  CARD16	height);
 
-void
+extern _X_EXPORT void
 CompositeGlyphs (CARD8		op,
 		 PicturePtr	pSrc,
 		 PicturePtr	pDst,
@@ -567,14 +567,14 @@ CompositeGlyphs (CARD8		op,
 		 GlyphListPtr	lists,
 		 GlyphPtr	*glyphs);
 
-void
+extern _X_EXPORT void
 CompositeRects (CARD8		op,
 		PicturePtr	pDst,
 		xRenderColor	*color,
 		int		nRect,
 		xRectangle      *rects);
 
-void
+extern _X_EXPORT void
 CompositeTrapezoids (CARD8	    op,
 		     PicturePtr	    pSrc,
 		     PicturePtr	    pDst,
@@ -584,7 +584,7 @@ CompositeTrapezoids (CARD8	    op,
 		     int	    ntrap,
 		     xTrapezoid	    *traps);
 
-void
+extern _X_EXPORT void
 CompositeTriangles (CARD8	    op,
 		    PicturePtr	    pSrc,
 		    PicturePtr	    pDst,
@@ -594,7 +594,7 @@ CompositeTriangles (CARD8	    op,
 		    int		    ntriangles,
 		    xTriangle	    *triangles);
 
-void
+extern _X_EXPORT void
 CompositeTriStrip (CARD8	    op,
 		   PicturePtr	    pSrc,
 		   PicturePtr	    pDst,
@@ -604,7 +604,7 @@ CompositeTriStrip (CARD8	    op,
 		   int		    npoints,
 		   xPointFixed	    *points);
 
-void
+extern _X_EXPORT void
 CompositeTriFan (CARD8		op,
 		 PicturePtr	pSrc,
 		 PicturePtr	pDst,
@@ -614,32 +614,32 @@ CompositeTriFan (CARD8		op,
 		 int		npoints,
 		 xPointFixed	*points);
 
-CARD32
+extern _X_EXPORT CARD32
 PictureGradientColor (PictGradientStopPtr stop1,
 		      PictGradientStopPtr stop2,
 		      CARD32	          x);
 
-void RenderExtensionInit (void);
+extern _X_EXPORT void RenderExtensionInit (void);
 
-Bool
+extern _X_EXPORT Bool
 AnimCurInit (ScreenPtr pScreen);
 
-int
+extern _X_EXPORT int
 AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
 
-void
+extern _X_EXPORT void
 AddTraps (PicturePtr	pPicture,
 	  INT16		xOff,
 	  INT16		yOff,
 	  int		ntraps,
 	  xTrap		*traps);
 
-PicturePtr
+extern _X_EXPORT PicturePtr
 CreateSolidPicture (Picture pid,
                     xRenderColor *color,
                     int *error);
 
-PicturePtr
+extern _X_EXPORT PicturePtr
 CreateLinearGradientPicture (Picture pid,
                              xPointFixed *p1,
                              xPointFixed *p2,
@@ -648,7 +648,7 @@ CreateLinearGradientPicture (Picture pid,
                              xRenderColor *colors,
                              int *error);
 
-PicturePtr
+extern _X_EXPORT PicturePtr
 CreateRadialGradientPicture (Picture pid,
                              xPointFixed *inner,
                              xPointFixed *outer,
@@ -659,7 +659,7 @@ CreateRadialGradientPicture (Picture pid,
                              xRenderColor *colors,
                              int *error);
 
-PicturePtr
+extern _X_EXPORT PicturePtr
 CreateConicalGradientPicture (Picture pid,
                               xPointFixed *center,
                               xFixed angle,
@@ -669,27 +669,27 @@ CreateConicalGradientPicture (Picture pid,
                               int *error);
 
 #ifdef PANORAMIX
-void PanoramiXRenderInit (void);
-void PanoramiXRenderReset (void);
+extern _X_EXPORT void PanoramiXRenderInit (void);
+extern _X_EXPORT void PanoramiXRenderReset (void);
 #endif
 
 /*
  * matrix.c
  */
 
-void
+extern _X_EXPORT void
 PictTransform_from_xRenderTransform (PictTransformPtr pict,
 				     xRenderTransform *render);
 
-void
+extern _X_EXPORT void
 xRenderTransform_from_PictTransform (xRenderTransform *render,
 				     PictTransformPtr pict);
 
-Bool
+extern _X_EXPORT Bool
 PictureTransformPoint (PictTransformPtr transform,
 		       PictVectorPtr	vector);
 
-Bool
+extern _X_EXPORT Bool
 PictureTransformPoint3d (PictTransformPtr transform,
                          PictVectorPtr	vector);
 
diff --git a/render/render.c b/render/render.c
index 663ed24..7cb93bd 100644
--- a/render/render.c
+++ b/render/render.c
@@ -210,9 +210,9 @@ int	(*SProcRenderVector[RenderNumberRequests])(ClientPtr) = {
     SProcRenderCreateConicalGradient
 };
 
-_X_EXPORT int	RenderErrBase;
+int	RenderErrBase;
 static int RenderClientPrivateKeyIndex;
-_X_EXPORT DevPrivateKey RenderClientPrivateKey = &RenderClientPrivateKeyIndex;
+DevPrivateKey RenderClientPrivateKey = &RenderClientPrivateKeyIndex;
 
 typedef struct _RenderClient {
     int	    major_version;
@@ -234,7 +234,7 @@ RenderClientCallback (CallbackListPtr	*list,
     pRenderClient->minor_version = 0;
 }
 
-_X_EXPORT void
+void
 RenderExtensionInit (void)
 {
     ExtensionEntry *extEntry;
@@ -3265,7 +3265,7 @@ PanoramiXRenderAddTraps (ClientPtr client)
     return result;
 }
 
-_X_EXPORT void
+void
 PanoramiXRenderInit (void)
 {
     int	    i;
@@ -3295,7 +3295,7 @@ PanoramiXRenderInit (void)
     ProcRenderVector[X_RenderAddTraps] = PanoramiXRenderAddTraps;
 }
 
-_X_EXPORT void
+void
 PanoramiXRenderReset (void)
 {
     int	    i;
diff --git a/render/renderedge.c b/render/renderedge.c
index d0ee307..8771fe1 100644
--- a/render/renderedge.c
+++ b/render/renderedge.c
@@ -31,7 +31,7 @@
  * grid row
  */
 
-_X_EXPORT xFixed
+xFixed
 RenderSampleCeilY (xFixed y, int n)
 {
     return pixman_sample_ceil_y (y, n);
@@ -43,7 +43,7 @@ RenderSampleCeilY (xFixed y, int n)
  * Compute the largest value no greater than y which is on a
  * grid row
  */
-_X_EXPORT xFixed
+xFixed
 RenderSampleFloorY (xFixed y, int n)
 {
     return pixman_sample_floor_y (y, n);
@@ -52,7 +52,7 @@ RenderSampleFloorY (xFixed y, int n)
 /*
  * Step an edge by any amount (including negative values)
  */
-_X_EXPORT void
+void
 RenderEdgeStep (RenderEdge *e, int n)
 {
     pixman_edge_step (e, n);
@@ -62,7 +62,7 @@ RenderEdgeStep (RenderEdge *e, int n)
  * Initialize one edge structure given the line endpoints and a
  * starting y value
  */
-_X_EXPORT void
+void
 RenderEdgeInit (RenderEdge	*e,
 		int		n,
 		xFixed		y_start,
@@ -78,7 +78,7 @@ RenderEdgeInit (RenderEdge	*e,
  * Initialize one edge structure given a line, starting y value
  * and a pixel offset for the line
  */
-_X_EXPORT void
+void
 RenderLineFixedEdgeInit (RenderEdge *e,
 			 int	    n,
 			 xFixed	    y,
diff --git a/render/renderedge.h b/render/renderedge.h
index 644d9d9..6585aeb 100644
--- a/render/renderedge.h
+++ b/render/renderedge.h
@@ -76,16 +76,16 @@ typedef pixman_edge_t RenderEdge;
     }				    \
 }
 
-xFixed
+extern _X_EXPORT xFixed
 RenderSampleCeilY (xFixed y, int bpp);
 
-xFixed
+extern _X_EXPORT xFixed
 RenderSampleFloorY (xFixed y, int bpp);
 
-void
+extern _X_EXPORT void
 RenderEdgeStep (RenderEdge *e, int n);
 
-void
+extern _X_EXPORT void
 RenderEdgeInit (RenderEdge	*e,
 		int		bpp,
 		xFixed		y_start,
@@ -94,7 +94,7 @@ RenderEdgeInit (RenderEdge	*e,
 		xFixed		x_bot,
 		xFixed		y_bot);
 
-void
+extern _X_EXPORT void
 RenderLineFixedEdgeInit (RenderEdge *e,
 			 int	    bpp,
 			 xFixed	    y,
diff --git a/xfixes/Makefile.am b/xfixes/Makefile.am
index 2a95c06..a8425e8 100644
--- a/xfixes/Makefile.am
+++ b/xfixes/Makefile.am
@@ -2,6 +2,10 @@ noinst_LTLIBRARIES = libxfixes.la
 
 AM_CFLAGS = $(DIX_CFLAGS)
 
+if XORG
+sdk_HEADERS = xfixes.h
+endif
+
 libxfixes_la_SOURCES = 	\
 	cursor.c	\
 	region.c	\
diff --git a/xfixes/region.c b/xfixes/region.c
index ae48058..6db787f 100644
--- a/xfixes/region.c
+++ b/xfixes/region.c
@@ -34,7 +34,7 @@ extern int RenderErrBase;
 #include <gcstruct.h>
 #include <window.h>
 
-_X_EXPORT RESTYPE RegionResType;
+RESTYPE RegionResType;
 
 static int
 RegionResFree (pointer data, XID id)
diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
index aadbc0d..d1225c6 100644
--- a/xfixes/xfixes.c
+++ b/xfixes/xfixes.c
@@ -55,7 +55,7 @@
 
 static unsigned char	XFixesReqCode;
 int		XFixesEventBase;
-_X_EXPORT int	XFixesErrorBase;
+int		XFixesErrorBase;
 
 static int XFixesClientPrivateKeyIndex;
 static DevPrivateKey XFixesClientPrivateKey = &XFixesClientPrivateKeyIndex;
diff --git a/xfixes/xfixes.h b/xfixes/xfixes.h
index 81dd83d..ade2f82 100644
--- a/xfixes/xfixes.h
+++ b/xfixes/xfixes.h
@@ -29,8 +29,8 @@
 
 #include "resource.h"
 
-extern RESTYPE	RegionResType;
-extern int	XFixesErrorBase;
+extern _X_EXPORT RESTYPE RegionResType;
+extern _X_EXPORT int XFixesErrorBase;
 
 #define VERIFY_REGION(pRegion, rid, client, mode) { \
     pRegion = SecurityLookupIDByType (client, rid, RegionResType, mode); \
@@ -45,7 +45,7 @@ extern int	XFixesErrorBase;
     if (rid) VERIFY_REGION(pRegion, rid, client, mode); \
 }
 
-RegionPtr
+extern _X_EXPORT RegionPtr
 XFixesRegionCopy (RegionPtr pRegion);
 
 
diff --git a/xkb/XKBAlloc.c b/xkb/XKBAlloc.c
index 2a50c15..8f468a0 100644
--- a/xkb/XKBAlloc.c
+++ b/xkb/XKBAlloc.c
@@ -41,7 +41,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 /***===================================================================***/
 
 /*ARGSUSED*/
-_X_EXPORT Status
+Status
 XkbAllocCompatMap(XkbDescPtr xkb,unsigned which,unsigned nSI)
 {
 XkbCompatMapPtr	compat;
@@ -88,7 +88,7 @@ XkbSymInterpretRec *prev_interpret;
 }
 
 
-_X_EXPORT void
+void
 XkbFreeCompatMap(XkbDescPtr xkb,unsigned which,Bool freeMap)
 {
 register XkbCompatMapPtr compat;
@@ -115,7 +115,7 @@ register XkbCompatMapPtr compat;
 
 /***===================================================================***/
 
-_X_EXPORT Status
+Status
 XkbAllocNames(XkbDescPtr xkb,unsigned which,int nTotalRG,int nTotalAliases)
 {
 XkbNamesPtr	names;
@@ -195,7 +195,7 @@ XkbNamesPtr	names;
     return Success;
 }
 
-_X_EXPORT void
+void
 XkbFreeNames(XkbDescPtr xkb,unsigned which,Bool freeMap)
 {
 XkbNamesPtr	names;
@@ -244,7 +244,7 @@ XkbNamesPtr	names;
 /***===================================================================***/
 
 /*ARGSUSED*/
-_X_EXPORT Status
+Status
 XkbAllocControls(XkbDescPtr xkb,unsigned which)
 {
     if (xkb==NULL)
@@ -271,7 +271,7 @@ XkbFreeControls(XkbDescPtr xkb,unsigned which,Bool freeMap)
 
 /***===================================================================***/
 
-_X_EXPORT Status 
+Status
 XkbAllocIndicatorMaps(XkbDescPtr xkb)
 {
     if (xkb==NULL)
@@ -296,7 +296,7 @@ XkbFreeIndicatorMaps(XkbDescPtr xkb)
 
 /***====================================================================***/
 
-_X_EXPORT XkbDescRec	*
+XkbDescRec	*
 XkbAllocKeyboard(void)
 {
 XkbDescRec *xkb;
@@ -307,7 +307,7 @@ XkbDescRec *xkb;
     return xkb;
 }
 
-_X_EXPORT void
+void
 XkbFreeKeyboard(XkbDescPtr xkb,unsigned which,Bool freeAll)
 {
     if (xkb==NULL)
diff --git a/xkb/XKBMAlloc.c b/xkb/XKBMAlloc.c
index daefe47..178b5b8 100644
--- a/xkb/XKBMAlloc.c
+++ b/xkb/XKBMAlloc.c
@@ -43,7 +43,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 /***====================================================================***/
 
-_X_EXPORT Status
+Status
 XkbAllocClientMap(XkbDescPtr xkb,unsigned which,unsigned nTotalTypes)
 {
 register int	i;
@@ -124,7 +124,7 @@ XkbClientMapPtr map;
     return Success;
 }
 
-_X_EXPORT Status
+Status
 XkbAllocServerMap(XkbDescPtr xkb,unsigned which,unsigned nNewActions)
 {
 register int	i;
@@ -259,7 +259,7 @@ XkbCopyKeyType(XkbKeyTypePtr from,XkbKeyTypePtr into)
     return Success;
 }
 
-_X_EXPORT Status
+Status
 XkbCopyKeyTypes(XkbKeyTypePtr from,XkbKeyTypePtr into,int num_types)
 {
 register int i,rtrn;
@@ -273,7 +273,7 @@ register int i,rtrn;
     return Success;
 }
 
-_X_EXPORT Status
+Status
 XkbResizeKeyType(	XkbDescPtr	xkb,
 			int		type_ndx,
 			int		map_count,
@@ -471,7 +471,7 @@ KeyCode		matchingKeys[XkbMaxKeyCount],nMatchingKeys;
     return Success;
 }
 
-_X_EXPORT KeySym *
+KeySym *
 XkbResizeKeySyms(XkbDescPtr xkb,int key,int needed)
 {
 register int i,nSyms,nKeySyms;
@@ -551,7 +551,7 @@ _ExtendRange(	unsigned int 	old_flags,
     return old_flags;
 }
 
-_X_EXPORT Status
+Status
 XkbChangeKeycodeRange(	XkbDescPtr	xkb,
 			int 		minKC,
 			int 		maxKC,
@@ -751,7 +751,7 @@ int	tmp;
     return Success;
 }
 
-_X_EXPORT XkbAction *
+XkbAction *
 XkbResizeKeyActions(XkbDescPtr xkb,int key,int needed)
 {
 register int i,nActs;
@@ -801,7 +801,7 @@ XkbAction *newActs;
     return &xkb->server->acts[xkb->server->key_acts[key]];
 }
 
-_X_EXPORT void
+void
 XkbFreeClientMap(XkbDescPtr xkb,unsigned what,Bool freeMap)
 {
 XkbClientMapPtr	map;
@@ -859,7 +859,7 @@ XkbClientMapPtr	map;
     return;
 }
 
-_X_EXPORT void
+void
 XkbFreeServerMap(XkbDescPtr xkb,unsigned what,Bool freeMap)
 {
 XkbServerMapPtr	map;
diff --git a/xkb/XKBMisc.c b/xkb/XKBMisc.c
index 45db351..a9d8b17 100644
--- a/xkb/XKBMisc.c
+++ b/xkb/XKBMisc.c
@@ -46,7 +46,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #define	CORE_SYM(i)	(i<map_width?core_syms[i]:NoSymbol)
 #define	XKB_OFFSET(g,l)	(((g)*groupsWidth)+(l))
 
-_X_EXPORT int
+int
 XkbKeyTypesForCoreSymbols(	XkbDescPtr	xkb,
 				int		map_width,
 				KeySym *	core_syms,
@@ -318,7 +318,7 @@ unsigned	tmp;
 
 #define	IBUF_SIZE	8
 
-_X_EXPORT Bool
+Bool
 XkbApplyCompatMapToKey(XkbDescPtr xkb,KeyCode key,XkbChangesPtr changes)
 {
 KeySym *		syms;
@@ -467,7 +467,7 @@ unsigned		changed,tmp;
     return True;
 }
 
-_X_EXPORT Status
+Status
 XkbChangeTypesOfKey(	XkbDescPtr		 xkb,
 			int		 	 key,
 			int			 nGroups,
@@ -591,7 +591,7 @@ int		width,nOldGroups,oldWidth,newTypes[XkbNumKbdGroups];
 
 /***====================================================================***/
 
-_X_EXPORT Bool
+Bool
 XkbVirtualModsToReal(XkbDescPtr xkb,unsigned virtual_mask,unsigned *mask_rtrn)
 {
 register int i,bit;
@@ -689,7 +689,7 @@ unsigned int		mask;
     return;
 }
 
-_X_EXPORT Bool
+Bool
 XkbApplyVirtualModChanges(XkbDescPtr xkb,unsigned changed,XkbChangesPtr changes)
 {
 register int	i;
diff --git a/xkb/ddxBeep.c b/xkb/ddxBeep.c
index 1851e62..74d868c 100644
--- a/xkb/ddxBeep.c
+++ b/xkb/ddxBeep.c
@@ -314,7 +314,7 @@ Atom		name;
     return next;
 }
 
-_X_EXPORT int
+int
 XkbDDXAccessXBeep(DeviceIntPtr dev,unsigned what,unsigned which)
 {
 XkbSrvInfoRec	*xkbInfo= dev->key->xkbInfo;
diff --git a/xkb/ddxCtrls.c b/xkb/ddxCtrls.c
index 86a4aff..34ea0bd 100644
--- a/xkb/ddxCtrls.c
+++ b/xkb/ddxCtrls.c
@@ -39,7 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <xkbsrv.h>
 #include <X11/extensions/XI.h>
 
-_X_EXPORT void
+void
 XkbDDXKeybdCtrlProc(DeviceIntPtr dev,KeybdCtrl *ctrl)
 {
 int realRepeat;
@@ -54,7 +54,7 @@ int realRepeat;
 }
 
 
-_X_EXPORT int
+int
 XkbDDXUsesSoftRepeat(DeviceIntPtr pXDev)
 {
 #ifndef XKB_ALWAYS_USES_SOFT_REPEAT
@@ -80,7 +80,7 @@ XkbDDXUsesSoftRepeat(DeviceIntPtr pXDev)
 #endif
 }
 
-_X_EXPORT void
+void
 XkbDDXChangeControls(DeviceIntPtr dev,XkbControlsPtr old,XkbControlsPtr new)
 {
 unsigned	changed, i;
diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c
index 66a4cc4..b68a28b 100644
--- a/xkb/ddxDevBtn.c
+++ b/xkb/ddxDevBtn.c
@@ -42,7 +42,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 extern	int	DeviceValuator;
 
-_X_EXPORT void
+void
 XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
 {
 int *			devVal;
diff --git a/xkb/ddxFakeMtn.c b/xkb/ddxFakeMtn.c
index 191ada8..3f010f9 100644
--- a/xkb/ddxFakeMtn.c
+++ b/xkb/ddxFakeMtn.c
@@ -47,7 +47,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "mipointer.h"
 #include "mipointrst.h"
 
-_X_EXPORT void
+void
 XkbDDXFakePointerMotion(unsigned flags,int x,int y)
 {
 int 		   oldX,oldY;
diff --git a/xkb/ddxInit.c b/xkb/ddxInit.c
index ae22b65..4c78a62 100644
--- a/xkb/ddxInit.c
+++ b/xkb/ddxInit.c
@@ -39,7 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <xkbsrv.h>
 #include <X11/extensions/XI.h>
 
-_X_EXPORT int
+int
 XkbDDXInitDevice(DeviceIntPtr dev)
 {
     return 1;
diff --git a/xkb/ddxKeyClick.c b/xkb/ddxKeyClick.c
index 59e1488..51d78f5 100644
--- a/xkb/ddxKeyClick.c
+++ b/xkb/ddxKeyClick.c
@@ -39,7 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <xkbsrv.h>
 #include <X11/extensions/XI.h>
 
-_X_EXPORT void
+void
 XkbDDXKeyClick(DeviceIntPtr pXDev,int keycode,int synthetic)
 {
     return;
diff --git a/xkb/ddxKillSrv.c b/xkb/ddxKillSrv.c
index 6c44118..3b5fd53 100644
--- a/xkb/ddxKillSrv.c
+++ b/xkb/ddxKillSrv.c
@@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "windowstr.h"
 #include <xkbsrv.h>
 
-_X_EXPORT int
+int
 XkbDDXTerminateServer(DeviceIntPtr dev,KeyCode key,XkbAction *act)
 {
     if (dev != inputInfo.keyboard)
diff --git a/xkb/ddxLEDs.c b/xkb/ddxLEDs.c
index 941e66c..b4c8086 100644
--- a/xkb/ddxLEDs.c
+++ b/xkb/ddxLEDs.c
@@ -47,7 +47,7 @@ XkbDDXUpdateIndicators(DeviceIntPtr dev,CARD32 new)
     return;
 }
 
-_X_EXPORT void
+void
 XkbDDXUpdateDeviceIndicators(	DeviceIntPtr		dev,
 				XkbSrvLedInfoPtr 	sli,
 				CARD32 			new)
diff --git a/xkb/ddxList.c b/xkb/ddxList.c
index d551d82..ae3a7f7 100644
--- a/xkb/ddxList.c
+++ b/xkb/ddxList.c
@@ -276,7 +276,7 @@ char	tmpname[PATH_MAX];
 /***====================================================================***/
 
 /* ARGSUSED */
-_X_EXPORT Status
+Status
 XkbDDXList(DeviceIntPtr	dev,XkbSrvListInfoPtr list,ClientPtr client)
 {
 Status	status;
diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
index 6b6575d..4d5dfb6 100644
--- a/xkb/ddxLoad.c
+++ b/xkb/ddxLoad.c
@@ -329,7 +329,7 @@ FILE *	file;
     return file;
 }
 
-_X_EXPORT unsigned
+unsigned
 XkbDDXLoadKeymapByNames(	DeviceIntPtr		keybd,
 				XkbComponentNamesPtr	names,
 				unsigned		want,
@@ -379,7 +379,7 @@ unsigned	missing;
     return (need|want)&(~missing);
 }
 
-_X_EXPORT Bool
+Bool
 XkbDDXNamesFromRules(	DeviceIntPtr		keybd,
 			char *			rules_name,
 			XkbRF_VarDefsPtr	defs,
diff --git a/xkb/ddxPrivate.c b/xkb/ddxPrivate.c
index 807f350..f67e20c 100644
--- a/xkb/ddxPrivate.c
+++ b/xkb/ddxPrivate.c
@@ -8,7 +8,7 @@
 #include "windowstr.h"
 #include <xkbsrv.h>
 
-_X_EXPORT int
+int
 XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act)
 {
     return 0;
diff --git a/xkb/ddxVT.c b/xkb/ddxVT.c
index eff2f4b..55c82a8 100644
--- a/xkb/ddxVT.c
+++ b/xkb/ddxVT.c
@@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "windowstr.h"
 #include <xkbsrv.h>
 
-_X_EXPORT int
+int
 XkbDDXSwitchScreen(DeviceIntPtr dev,KeyCode key,XkbAction *act)
 {
     return 1;
diff --git a/xkb/maprules.c b/xkb/maprules.c
index f6e60a7..bd242ea 100644
--- a/xkb/maprules.c
+++ b/xkb/maprules.c
@@ -833,7 +833,7 @@ int	len, ndx;
 
 /***====================================================================***/
 
-_X_EXPORT Bool
+Bool
 XkbRF_GetComponents(	XkbRF_RulesPtr		rules,
 			XkbRF_VarDefsPtr	defs,
 			XkbComponentNamesPtr	names)
@@ -868,7 +868,7 @@ XkbRF_GetComponents(	XkbRF_RulesPtr		rules,
 		names->compat && names->geometry ) || names->keymap;
 }
 
-_X_EXPORT XkbRF_RulePtr
+XkbRF_RulePtr
 XkbRF_AddRule(XkbRF_RulesPtr	rules)
 {
     if (rules->sz_rules<1) {
@@ -890,7 +890,7 @@ XkbRF_AddRule(XkbRF_RulesPtr	rules)
     return &rules->rules[rules->num_rules++];
 }
 
-_X_EXPORT XkbRF_GroupPtr
+XkbRF_GroupPtr
 XkbRF_AddGroup(XkbRF_RulesPtr	rules)
 {
     if (rules->sz_groups<1) {
@@ -912,7 +912,7 @@ XkbRF_AddGroup(XkbRF_RulesPtr	rules)
     return &rules->groups[rules->num_groups++];
 }
 
-_X_EXPORT Bool
+Bool
 XkbRF_LoadRules(FILE *file, XkbRF_RulesPtr rules)
 {
 InputLine	line;
@@ -945,7 +945,7 @@ XkbRF_GroupRec  tgroup,*group;
     return True;
 }
 
-_X_EXPORT Bool
+Bool
 XkbRF_LoadRulesByName(char *base,char *locale,XkbRF_RulesPtr rules)
 {
 FILE *		file;
@@ -986,7 +986,7 @@ Bool		ok;
 #define HEAD_OPTION	4
 #define	HEAD_EXTRA	5
 
-_X_EXPORT XkbRF_VarDescPtr
+XkbRF_VarDescPtr
 XkbRF_AddVarDesc(XkbRF_DescribeVarsPtr	vars)
 {
     if (vars->sz_desc<1) {
@@ -1008,7 +1008,7 @@ XkbRF_AddVarDesc(XkbRF_DescribeVarsPtr	vars)
     return &vars->desc[vars->num_desc++];
 }
 
-_X_EXPORT XkbRF_VarDescPtr
+XkbRF_VarDescPtr
 XkbRF_AddVarDescCopy(XkbRF_DescribeVarsPtr vars,XkbRF_VarDescPtr from)
 {
 XkbRF_VarDescPtr	nd;
@@ -1020,7 +1020,7 @@ XkbRF_VarDescPtr	nd;
     return nd;
 }
 
-_X_EXPORT XkbRF_DescribeVarsPtr 
+XkbRF_DescribeVarsPtr
 XkbRF_AddVarToDescribe(XkbRF_RulesPtr rules,char *name)
 {
     if (rules->sz_extra<1) {
@@ -1048,7 +1048,7 @@ XkbRF_AddVarToDescribe(XkbRF_RulesPtr rules,char *name)
     return &rules->extra[rules->num_extra++];
 }
 
-_X_EXPORT Bool
+Bool
 XkbRF_LoadDescriptions(FILE *file,XkbRF_RulesPtr rules)
 {
 InputLine		line;
@@ -1144,7 +1144,7 @@ int			len,headingtype,extra_ndx = 0;
     return True;
 }
 
-_X_EXPORT Bool
+Bool
 XkbRF_LoadDescriptionsByName(char *base,char *locale,XkbRF_RulesPtr rules)
 {
 FILE *		file;
@@ -1179,7 +1179,7 @@ Bool		ok;
 
 /***====================================================================***/
 
-_X_EXPORT XkbRF_RulesPtr
+XkbRF_RulesPtr
 XkbRF_Load(char *base,char *locale,Bool wantDesc,Bool wantRules)
 {
 XkbRF_RulesPtr	rules;
@@ -1199,7 +1199,7 @@ XkbRF_RulesPtr	rules;
     return rules;
 }
 
-_X_EXPORT XkbRF_RulesPtr
+XkbRF_RulesPtr
 XkbRF_Create(int szRules,int szExtra) 
 {
 XkbRF_RulesPtr rules;
@@ -1247,7 +1247,7 @@ register int i;
     return;
 }
 
-_X_EXPORT void
+void
 XkbRF_Free(XkbRF_RulesPtr rules,Bool freeRules)
 {
 int		i;
diff --git a/xkb/xkb.c b/xkb/xkb.c
index 90ce011..24cf915 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -43,11 +43,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 #include <X11/extensions/XI.h>
 
-_X_EXPORT int	XkbEventBase;
+int		XkbEventBase;
 static	int	XkbErrorBase;
-_X_EXPORT int	XkbReqCode;
-_X_EXPORT int	XkbKeyboardErrorCode;
-_X_EXPORT CARD32 xkbDebugFlags = 0;
+int		XkbReqCode;
+int		XkbKeyboardErrorCode;
+CARD32		xkbDebugFlags = 0;
 static CARD32	xkbDebugCtrls = 0;
 
 static RESTYPE	RT_XKBCLIENT;
diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
index ccdc033..0cc3b80 100644
--- a/xkb/xkbAccessX.c
+++ b/xkb/xkbAccessX.c
@@ -40,9 +40,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <sys/time.h>
 #endif
 
-_X_EXPORT int	XkbDfltRepeatDelay=	660;
-_X_EXPORT int	XkbDfltRepeatInterval=	40;
-_X_EXPORT pointer XkbLastRepeatEvent=	NULL;
+int	XkbDfltRepeatDelay=	660;
+int	XkbDfltRepeatInterval=	40;
+pointer XkbLastRepeatEvent=	NULL;
 
 #define	DFLT_TIMEOUT_CTRLS (XkbAX_KRGMask|XkbStickyKeysMask|XkbMouseKeysMask)
 #define	DFLT_TIMEOUT_OPTS  (XkbAX_IndicatorFBMask)
@@ -55,7 +55,7 @@ static unsigned int XkbDfltAccessXTimeoutOptionsValues= 0;
 unsigned int	XkbDfltAccessXFeedback= XkbAccessXFeedbackMask;
 unsigned short	XkbDfltAccessXOptions=  XkbAX_AllOptionsMask & ~(XkbAX_IndicatorFBMask|XkbAX_SKReleaseFBMask|XkbAX_SKRejectFBMask);
 
-_X_EXPORT void
+void
 AccessXComputeCurveFactor(XkbSrvInfoPtr xkbi,XkbControlsPtr ctrls)
 {
     xkbi->mouseKeysCurve= 1.0+(((double)ctrls->mk_curve)*0.001);
@@ -64,7 +64,7 @@ AccessXComputeCurveFactor(XkbSrvInfoPtr xkbi,XkbControlsPtr ctrls)
     return;
 }
 
-_X_EXPORT void
+void
 AccessXInit(DeviceIntPtr keybd)
 {
 XkbSrvInfoPtr	xkbi = keybd->key->xkbInfo;
@@ -317,7 +317,7 @@ KeyCode		key;
     return xkbi->desc->ctrls->repeat_interval;
 }
 
-_X_EXPORT void
+void
 AccessXCancelRepeatKey(XkbSrvInfoPtr xkbi,KeyCode key)
 {
     if (xkbi->repeatKey==key)
@@ -442,7 +442,7 @@ XkbSrvLedInfoPtr	sli;
 /* Returns FALSE if the event needs further processing.			*/
 /*									*/
 /************************************************************************/
-_X_EXPORT Bool
+Bool
 AccessXFilterPressEvent(	register xEvent *	xE, 
 				register DeviceIntPtr	keybd, 
 				int			count)
@@ -572,7 +572,7 @@ KeySym *	sym = XkbKeySymsPtr(xkbi->desc,key);
 /* Returns FALSE if the event needs further processing.			*/
 /*									*/
 /************************************************************************/
-_X_EXPORT Bool
+Bool
 AccessXFilterReleaseEvent(	register xEvent *	xE, 
 				register DeviceIntPtr	keybd, 
 				int			count)
@@ -682,7 +682,7 @@ Bool		ignoreKeyEvent = FALSE;
 /************************************************************************/
 extern int xkbDevicePrivateIndex;
 extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
-_X_EXPORT void
+void
 ProcessPointerEvent(	register xEvent  *	xE, 
 			register DeviceIntPtr	mouse, 
 			int		        count)
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index c268795..64e17e9 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -43,9 +43,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #define EXTENSION_EVENT_BASE 64
 
 static int xkbDevicePrivateKeyIndex;
-_X_EXPORT DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKeyIndex;
+DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKeyIndex;
 
-_X_EXPORT void
+void
 xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
                    pointer data)
 {
@@ -61,7 +61,7 @@ xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
 }
 
 
-_X_EXPORT void
+void
 XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc)
 {
     xkbDeviceInfoPtr xkbPrivPtr;
@@ -1130,7 +1130,7 @@ register int	i,send;
     return send;
 }
 
-_X_EXPORT void
+void
 XkbHandleActions(DeviceIntPtr dev,DeviceIntPtr kbd,xEvent *xE,int count)
 {
 int		key,bit,i;
@@ -1315,7 +1315,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev);
     return;
 }
 
-_X_EXPORT int
+int
 XkbLatchModifiers(DeviceIntPtr pXDev,CARD8 mask,CARD8 latches)
 {
 XkbSrvInfoPtr	xkbi;
@@ -1342,7 +1342,7 @@ unsigned	clear;
     return BadValue;
 }
 
-_X_EXPORT int
+int
 XkbLatchGroup(DeviceIntPtr pXDev,int group)
 {
 XkbSrvInfoPtr	xkbi;
@@ -1364,7 +1364,7 @@ XkbAction	act;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbClearAllLatchesAndLocks(	DeviceIntPtr		dev,
 				XkbSrvInfoPtr		xkbi,
 				Bool			genEv,
diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c
index 8b30d11..51880f8 100644
--- a/xkb/xkbEvents.c
+++ b/xkb/xkbEvents.c
@@ -43,7 +43,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbSendNewKeyboardNotify(DeviceIntPtr kbd,xkbNewKeyboardNotify *pNKN)
 {		
 register int	i;
@@ -100,7 +100,7 @@ CARD16		changed;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbSendStateNotify(DeviceIntPtr kbd,xkbStateNotify *pSN)
 {
 XkbSrvInfoPtr	xkbi;
@@ -161,7 +161,7 @@ register CARD16	changed,bState;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbSendMapNotify(DeviceIntPtr kbd,xkbMapNotify *pMN)
 {
 int 		i;
@@ -206,7 +206,7 @@ CARD16		changed;
     return;
 }
 
-_X_EXPORT int
+int
 XkbComputeControlsNotify(	DeviceIntPtr	 	kbd,
 				XkbControlsPtr		old,
 				XkbControlsPtr		new,
@@ -285,7 +285,7 @@ CARD32 		changedControls;
     return 1;
 }
 
-_X_EXPORT void
+void
 XkbSendControlsNotify(DeviceIntPtr kbd,xkbControlsNotify *pCN)
 {
 int			initialized;
@@ -385,7 +385,7 @@ CARD32		state,changed;
 }
 
 
-_X_EXPORT void
+void
 XkbHandleBell(	BOOL		 force,
 		BOOL		 eventOnly,
 		DeviceIntPtr	 kbd,
@@ -473,7 +473,7 @@ XID		winID = 0;
     return;
 }
 
-_X_EXPORT void
+void
 XkbSendAccessXNotify(DeviceIntPtr kbd,xkbAccessXNotify *pEv)
 {
 int		initialized;
@@ -518,7 +518,7 @@ CARD16		sk_delay,db_delay;
     return;
 }
 
-_X_EXPORT void
+void
 XkbSendNamesNotify(DeviceIntPtr kbd,xkbNamesNotify *pEv)
 {
 int		initialized;
@@ -567,7 +567,7 @@ CARD32		changedIndicators;
     return;
 }
 
-_X_EXPORT void
+void
 XkbSendCompatMapNotify(DeviceIntPtr kbd,xkbCompatMapNotify *pEv)
 {
 int		initialized;
@@ -615,7 +615,7 @@ CARD16		firstSI = 0, nSI = 0, nTotalSI = 0;
     return;
 }
 
-_X_EXPORT void
+void
 XkbSendActionMessage(DeviceIntPtr kbd,xkbActionMessage *pEv)
 {
 int		 initialized;
@@ -659,7 +659,7 @@ Time 		 time = 0;
     return;
 }
 
-_X_EXPORT void
+void
 XkbSendExtensionDeviceNotify(	DeviceIntPtr 			dev,
 				ClientPtr			client,
 				xkbExtensionDeviceNotify *	pEv)
@@ -723,7 +723,7 @@ CARD16		 reason, supported = 0;
     return;
 }
 
-_X_EXPORT void
+void
 XkbSendNotification(	DeviceIntPtr		kbd,
 			XkbChangesPtr		pChanges,
 			XkbEventCausePtr	cause)
@@ -960,7 +960,7 @@ XkbSrvInfoPtr	xkbi;
 
 /***====================================================================***/
 
-_X_EXPORT XkbInterestPtr	
+XkbInterestPtr
 XkbFindClientResource(DevicePtr inDev,ClientPtr client)
 {
 DeviceIntPtr	dev = (DeviceIntPtr)inDev;
@@ -978,7 +978,7 @@ XkbInterestPtr	interest;
     return NULL;
 }
 
-_X_EXPORT XkbInterestPtr	
+XkbInterestPtr
 XkbAddClientResource(DevicePtr inDev,ClientPtr client,XID id)
 {
 DeviceIntPtr	dev = (DeviceIntPtr)inDev;
@@ -1012,7 +1012,7 @@ XkbInterestPtr	interest;
     return NULL;
 }
 
-_X_EXPORT int
+int
 XkbRemoveResourceClient(DevicePtr inDev,XID id) 
 {
 XkbSrvInfoPtr	xkbi;
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index c5d0a06..82ec18c 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -114,8 +114,8 @@ typedef struct	_SrvXkmInfo {
 #define	XKB_DFLT_RULES_PROP	True
 #endif
 
-_X_EXPORT char	*	XkbBaseDirectory=	XKB_BASE_DIRECTORY;
-_X_EXPORT char	*	XkbBinDirectory=	XKB_BIN_DIRECTORY;
+char	*		XkbBaseDirectory=	XKB_BASE_DIRECTORY;
+char	*		XkbBinDirectory=	XKB_BIN_DIRECTORY;
 static int	 	XkbWantAccessX=		0;	
 
 static Bool		rulesDefined=		False;
@@ -132,7 +132,7 @@ static char *		XkbOptionsUsed=	NULL;
 
 static XkbDescPtr       xkb_cached_map = NULL;
 
-_X_EXPORT Bool		noXkbExtension=		XKB_DFLT_DISABLED;
+Bool			noXkbExtension=		XKB_DFLT_DISABLED;
 static Bool		XkbWantRulesProp=	XKB_DFLT_RULES_PROP;
 
 /***====================================================================***/
@@ -248,7 +248,7 @@ XkbSetRulesUsed(XkbRF_VarDefsPtr defs)
  * If @rulesFile is NULL and no previous @rulesFile has been set, the
  * built-in default is chosen as default.
  */
-_X_EXPORT void
+void
 XkbSetRulesDflts(char *rulesFile,char *model,char *layout,
 					char *variant,char *options)
 {
@@ -290,7 +290,7 @@ XkbSetRulesDflts(char *rulesFile,char *model,char *layout,
     return;
 }
 
-_X_EXPORT void
+void
 XkbDeleteRulesDflts()
 {
     _XkbFree(XkbRulesFile);
@@ -493,7 +493,7 @@ XkbControlsPtr	ctrls;
     return Success;
 }
 
-_X_EXPORT void
+void
 XkbInitDevice(DeviceIntPtr pXDev)
 {
 int			i;
@@ -585,7 +585,7 @@ XkbEventCauseRec	cause;
 #define XkbMaxKeyCount MAP_LENGTH
 #endif
 
-_X_EXPORT Bool
+Bool
 XkbInitKeyboardDeviceStruct(
     DeviceIntPtr		dev,
     XkbComponentNamesPtr	names,
@@ -743,7 +743,7 @@ XkbDescPtr              xkb;
 	 * This function also computes the autorepeat accelerators for the
 	 * default indicator feedback.
 	 */
-_X_EXPORT int
+int
 XkbFinishDeviceInit(DeviceIntPtr pXDev)
 {
 XkbSrvInfoPtr		xkbi;
@@ -786,7 +786,7 @@ XkbSrvLedInfoPtr	sli;
 	 * fixed-size structures for the device.   Don't free anything that
 	 * is part of this larger block.
 	 */
-_X_EXPORT void
+void
 XkbFreeInfo(XkbSrvInfoPtr xkbi)
 {
     if (xkbi->radioGroups) {
@@ -836,7 +836,7 @@ extern unsigned int	XkbDfltAccessXTimeoutMask;
 extern unsigned int	XkbDfltAccessXFeedback;
 extern unsigned char	XkbDfltAccessXOptions;
 
-_X_EXPORT int
+int
 XkbProcessArguments(int argc,char *argv[],int i)
 {
     if (strcmp(argv[i],"-kb")==0) {
@@ -922,7 +922,7 @@ XkbProcessArguments(int argc,char *argv[],int i)
     return 0;
 }
 
-_X_EXPORT void
+void
 XkbUseMsg(void)
 {
     ErrorF("-kb                    disable the X Keyboard Extension\n");
diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c
index bd6b537..e753925 100644
--- a/xkb/xkbLEDs.c
+++ b/xkb/xkbLEDs.c
@@ -53,7 +53,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 	 * any extension devices might be affected in check_devs_rtrn.
 	 */
 
-_X_EXPORT unsigned
+unsigned
 XkbIndicatorsToUpdate(	DeviceIntPtr	dev,
 			unsigned long 	state_changes,
 			Bool		enable_changes)
@@ -352,7 +352,7 @@ XkbSrvLedInfoPtr	sli;
 	 * ChangeKeyboardMapping request.
 	 */
 
-_X_EXPORT void
+void
 XkbSetIndicators(	DeviceIntPtr		dev,
 			CARD32			affect,
 			CARD32			values,
@@ -408,7 +408,7 @@ unsigned 			side_affected;
 	 * the state of any extension device indicators as necessary.
 	 */
 
-_X_EXPORT void
+void
 XkbUpdateIndicators(	DeviceIntPtr		dev,
 			register CARD32		update,
 			Bool			check_edevs,
@@ -439,7 +439,7 @@ XkbSrvLedInfoPtr	sli;
 	 * be affected by a particular change in keyboard state or controls.
 	 */
 
-_X_EXPORT void
+void
 XkbCheckIndicatorMaps(DeviceIntPtr dev,XkbSrvLedInfoPtr sli,unsigned which)
 {
 register unsigned	i,bit;
@@ -512,7 +512,7 @@ XkbDescPtr		xkb;
 	 * If 'needed_parts' is non-zero, this function makes sure that any
 	 * of the parts speicified therein are allocated.
 	 */
-_X_EXPORT XkbSrvLedInfoPtr
+XkbSrvLedInfoPtr
 XkbAllocSrvLedInfo(	DeviceIntPtr		dev,
 			KbdFeedbackPtr		kf,
 			LedFeedbackPtr		lf,
@@ -602,7 +602,7 @@ Bool			checkNames;
     return sli;
 }
 
-_X_EXPORT void
+void
 XkbFreeSrvLedInfo(XkbSrvLedInfoPtr sli)
 {
     if ((sli->flags&XkbSLI_IsDefault)==0) {
@@ -623,7 +623,7 @@ XkbFreeSrvLedInfo(XkbSrvLedInfoPtr sli)
  * thus the new copy behaves like the original one and can be freed with
  * XkbFreeSrvLedInfo.
  */
-_X_EXPORT XkbSrvLedInfoPtr
+XkbSrvLedInfoPtr
 XkbCopySrvLedInfo(	DeviceIntPtr		from,
 			XkbSrvLedInfoPtr	src,
 			KbdFeedbackPtr		kf,
@@ -668,7 +668,7 @@ finish:
 	 *
 	 */
 
-_X_EXPORT XkbSrvLedInfoPtr 
+XkbSrvLedInfoPtr
 XkbFindSrvLedInfo(	DeviceIntPtr		dev,
 			unsigned		class,
 			unsigned		id,
@@ -724,7 +724,7 @@ XkbSrvLedInfoPtr	sli;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbFlushLedEvents(	DeviceIntPtr			dev,
 			DeviceIntPtr			kbd,
 			XkbSrvLedInfoPtr		sli,
@@ -757,7 +757,7 @@ XkbFlushLedEvents(	DeviceIntPtr			dev,
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbApplyLedNameChanges(	DeviceIntPtr 			dev,
 			XkbSrvLedInfoPtr		sli,
 			unsigned			changed_names,
@@ -834,7 +834,7 @@ xkbExtensionDeviceNotify	my_ed;
 	 * request) for the change, as reported in some XKB events.
 	 */
 
-_X_EXPORT void
+void
 XkbApplyLedMapChanges(	DeviceIntPtr 			dev,
 			XkbSrvLedInfoPtr		sli,
 			unsigned			changed_maps,
@@ -890,7 +890,7 @@ xkbExtensionDeviceNotify	my_ed;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbApplyLedStateChanges(DeviceIntPtr 			dev,
 			XkbSrvLedInfoPtr		sli,
 			unsigned			changed_leds,
diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c
index 2646360..a3f715c 100644
--- a/xkb/xkbPrKeyEv.c
+++ b/xkb/xkbPrKeyEv.c
@@ -42,7 +42,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbProcessKeyboardEvent(xEvent *xE,DeviceIntPtr keybd,int count)
 {
 KeyClassPtr	keyc = keybd->key;
@@ -187,7 +187,7 @@ int             xiEvent;
     return;
 }
 
-_X_EXPORT void
+void
 ProcessKeyboardEvent(xEvent *xE,DeviceIntPtr keybd,int count)
 {
 
diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c
index 0ad64a9..1a513b3 100644
--- a/xkb/xkbSwap.c
+++ b/xkb/xkbSwap.c
@@ -531,7 +531,7 @@ register int	n;
     return ProcXkbSetDebuggingFlags(client);
 }
 
-_X_EXPORT int
+int
 SProcXkbDispatch (ClientPtr client)
 {
     REQUEST(xReq);
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 3f3d8a0..ca80ff4 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -69,11 +69,11 @@ DEALINGS IN THE SOFTWARE.
 #include "xkbgeom.h"
 #include "xkb.h"
 
-_X_EXPORT int	XkbDisableLockActions = 0;
+int	XkbDisableLockActions = 0;
 
 /***====================================================================***/
 
-_X_EXPORT int
+int
 _XkbLookupAnyDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
 		    Mask access_mode, int *xkb_err)
 {
@@ -91,7 +91,7 @@ _XkbLookupAnyDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
     return rc;
 }
 
-_X_EXPORT int
+int
 _XkbLookupKeyboard(DeviceIntPtr *pDev, int id, ClientPtr client,
 		   Mask access_mode, int *xkb_err)
 {
@@ -114,7 +114,7 @@ _XkbLookupKeyboard(DeviceIntPtr *pDev, int id, ClientPtr client,
     return Success;
 }
 
-_X_EXPORT int
+int
 _XkbLookupBellDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
 		     Mask access_mode, int *xkb_err)
 {
@@ -134,7 +134,7 @@ _XkbLookupBellDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
     return Success;
 }
 
-_X_EXPORT int
+int
 _XkbLookupLedDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
 		    Mask access_mode, int *xkb_err)
 {
@@ -157,7 +157,7 @@ _XkbLookupLedDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
     return Success;
 }
 
-_X_EXPORT int
+int
 _XkbLookupButtonDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
 		       Mask access_mode, int *xkb_err)
 {
@@ -177,7 +177,7 @@ _XkbLookupButtonDevice(DeviceIntPtr *pDev, int id, ClientPtr client,
     return Success;
 }
 
-_X_EXPORT void
+void
 XkbSetActionKeyMods(XkbDescPtr xkb,XkbAction *act,unsigned mods)
 {
 register unsigned	tmp;
@@ -199,7 +199,7 @@ register unsigned	tmp;
     return;
 }
 
-_X_EXPORT unsigned
+unsigned
 XkbMaskForVMask(XkbDescPtr xkb,unsigned vmask)
 {
 register int i,bit;
@@ -214,7 +214,7 @@ register unsigned mask;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbUpdateKeyTypesFromCore(	DeviceIntPtr	pXDev,
 				KeyCode	 	first,
 				CARD8	 	num,
@@ -268,7 +268,7 @@ XkbMapChangesPtr	mc;
     return;
 }
 
-_X_EXPORT void
+void
 XkbUpdateDescActions(	XkbDescPtr		xkb,
 			KeyCode		 	first,
 			CARD8		 	num,
@@ -327,7 +327,7 @@ register unsigned	key;
     return;
 }
 
-_X_EXPORT void
+void
 XkbUpdateActions(	DeviceIntPtr	 	pXDev,
 			KeyCode		 	first,
 			CARD8		 	num,
@@ -358,7 +358,7 @@ CARD8 *			repeat;
     return;
 }
 
-_X_EXPORT void
+void
 XkbUpdateCoreDescription(DeviceIntPtr keybd,Bool resize)
 {
 register int		key,tmp;
@@ -574,7 +574,7 @@ CARD8			keysPerMod[XkbNumModifiers];
     return;
 }
 
-_X_EXPORT void
+void
 XkbSetRepeatKeys(DeviceIntPtr pXDev,int key,int onoff)
 {
     if (pXDev && pXDev->key && pXDev->key->xkbInfo) {
@@ -598,7 +598,7 @@ XkbSetRepeatKeys(DeviceIntPtr pXDev,int key,int onoff)
     return;
 }
 
-_X_EXPORT void
+void
 XkbApplyMappingChange(	DeviceIntPtr	kbd,
 			CARD8		 request,
 			KeyCode		 firstKey,
@@ -640,7 +640,7 @@ unsigned	 	check;
     return;
 }
 
-_X_EXPORT void
+void
 XkbDisableComputedAutoRepeats(DeviceIntPtr dev,unsigned key)
 {
 XkbSrvInfoPtr	xkbi = dev->key->xkbInfo;
@@ -655,7 +655,7 @@ xkbMapNotify	mn;
     return;
 }
 
-_X_EXPORT unsigned
+unsigned
 XkbStateChangedFlags(XkbStatePtr old,XkbStatePtr new)
 {
 int		changed;
@@ -700,7 +700,7 @@ XkbCompatMapPtr	map;
     return;
 }
 
-_X_EXPORT unsigned
+unsigned
 XkbAdjustGroup(int group,XkbControlsPtr ctrls)
 {
 unsigned	act;
@@ -741,7 +741,7 @@ unsigned	act;
     return group;
 }
 
-_X_EXPORT void
+void
 XkbComputeDerivedState(XkbSrvInfoPtr xkbi)
 {
 XkbStatePtr	state= &xkbi->state;
@@ -773,7 +773,7 @@ unsigned char	grp;
 
 /***====================================================================***/
 
-_X_EXPORT void
+void
 XkbCheckSecondaryEffects(	XkbSrvInfoPtr		xkbi,
 				unsigned		which,
 				XkbChangesPtr 		changes,
@@ -793,7 +793,7 @@ XkbCheckSecondaryEffects(	XkbSrvInfoPtr		xkbi,
 
 /***====================================================================***/
 
-_X_EXPORT Bool
+Bool
 XkbEnableDisableControls(	XkbSrvInfoPtr		xkbi,
 				unsigned long		change,
 				unsigned long		newValues,
@@ -842,7 +842,7 @@ XkbSrvLedInfoPtr	sli;
 
 #define	MAX_TOC	16
 
-_X_EXPORT XkbGeometryPtr
+XkbGeometryPtr
 XkbLookupNamedGeometry(DeviceIntPtr dev,Atom name,Bool *shouldFree)
 {
 XkbSrvInfoPtr	xkbi=	dev->key->xkbInfo;
@@ -860,7 +860,7 @@ XkbDescPtr	xkb=	xkbi->desc;
     return NULL;
 }
 
-_X_EXPORT void
+void
 XkbConvertCase(register KeySym sym, KeySym *lower, KeySym *upper)
 {
     *lower = sym;
diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c
index 50b175a..ae752e9 100644
--- a/xkb/xkbfmisc.c
+++ b/xkb/xkbfmisc.c
@@ -48,7 +48,7 @@
 #include "xkbgeom.h"
 #include "xkb.h"
 
-_X_EXPORT unsigned
+unsigned
 _XkbKSCheckCase(KeySym ks)
 {
 unsigned	set,rtrn;
@@ -157,7 +157,7 @@ _AddIncl(	FILE *		file,
     return;
 }
 
-_X_EXPORT Bool
+Bool
 XkbWriteXKBKeymapForNames(	FILE *			file,
 				XkbComponentNamesPtr	names,
 				XkbDescPtr		xkb,
@@ -354,7 +354,7 @@ unsigned	wantNames,wantConfig,wantDflts;
 
 /***====================================================================***/
 
-_X_EXPORT int
+int
 XkbFindKeycodeByName(XkbDescPtr xkb,char *name,Bool use_aliases)
 {
 register int	i;
@@ -387,7 +387,7 @@ register int	i;
 }
 
 
-_X_EXPORT unsigned
+unsigned
 XkbConvertGetByNameComponents(Bool toXkm,unsigned orig)
 {
 unsigned	rtrn;
@@ -423,7 +423,7 @@ static unsigned char componentSpecLegal[] = {
 	0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff
 };
 
-_X_EXPORT void
+void
 XkbEnsureSafeMapName(char *name)
 {
    if (name==NULL)
@@ -440,7 +440,7 @@ XkbEnsureSafeMapName(char *name)
 
 #define	UNMATCHABLE(c)	(((c)=='(')||((c)==')')||((c)=='/'))
 
-_X_EXPORT Bool
+Bool
 XkbNameMatchesPattern(char *name,char *ptrn)
 {
     while (ptrn[0]!='\0') {
diff --git a/xkb/xkbout.c b/xkb/xkbout.c
index d5e8416..229cc92 100644
--- a/xkb/xkbout.c
+++ b/xkb/xkbout.c
@@ -98,7 +98,7 @@ WriteXKBAction(FILE *file,XkbDescPtr xkb,XkbAnyAction *action)
 
 /***====================================================================***/
 
-_X_EXPORT Bool
+Bool
 XkbWriteXKBKeycodes(	FILE *			file,
 			XkbDescPtr		xkb,
 			Bool			topLevel,
@@ -158,7 +158,7 @@ char *			alternate;
     return True;
 }
 
-_X_EXPORT Bool
+Bool
 XkbWriteXKBKeyTypes(	FILE *			file,
 			XkbDescPtr              xkb,
 			Bool			topLevel,
@@ -265,7 +265,7 @@ WriteXKBIndicatorMap(	FILE *			file,
     return True;
 }
 
-_X_EXPORT Bool
+Bool
 XkbWriteXKBCompatMap(	FILE *			file,
 			XkbDescPtr              xkb,
 			Bool			topLevel,
@@ -340,7 +340,7 @@ XkbSymInterpretPtr	interp;
     return True;
 }
 
-_X_EXPORT Bool
+Bool
 XkbWriteXKBSymbols(	FILE *			file,
 			XkbDescPtr              xkb,
 			Bool			topLevel,
@@ -791,7 +791,7 @@ int		dfltKeyColor = 0;
     return True;
 }
 
-_X_EXPORT Bool
+Bool
 XkbWriteXKBGeometry(	FILE *			file,
 			XkbDescPtr              xkb,
 			Bool			topLevel,
diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c
index 18c42ba..d08c915 100644
--- a/xkb/xkbtext.c
+++ b/xkb/xkbtext.c
@@ -68,7 +68,7 @@ char *rtrn;
 
 /***====================================================================***/
 
-_X_EXPORT char *
+char *
 XkbAtomText(Atom atm,unsigned format)
 {
 char	*rtrn,*tmp;
@@ -100,7 +100,7 @@ char	*rtrn,*tmp;
 
 /***====================================================================***/
 
-_X_EXPORT char *
+char *
 XkbVModIndexText(XkbDescPtr xkb,unsigned ndx,unsigned format)
 {
 register int len;
@@ -134,7 +134,7 @@ char  numBuf[20];
     return rtrn;
 }
 
-_X_EXPORT char *
+char *
 XkbVModMaskText(        XkbDescPtr	xkb,
 			unsigned	modMask,
 			unsigned	mask,
@@ -216,7 +216,7 @@ static char *modNames[XkbNumModifiers] = {
     "Shift", "Lock", "Control", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5"
 };
 
-_X_EXPORT char *
+char *
 XkbModIndexText(unsigned ndx,unsigned format)
 {
 char *	rtrn;
@@ -241,7 +241,7 @@ char	buf[100];
     return rtrn;
 }
 
-_X_EXPORT char *
+char *
 XkbModMaskText(unsigned mask,unsigned format)
 {
 register int i,bit;
@@ -281,7 +281,7 @@ char buf[64],*rtrn;
 /***====================================================================***/
 
 /*ARGSUSED*/
-_X_EXPORT char *
+char *
 XkbConfigText(unsigned config,unsigned format)
 {
 static char *buf;
@@ -328,7 +328,7 @@ static char *buf;
 
 /***====================================================================***/
 
-_X_EXPORT char *
+char *
 XkbKeysymText(KeySym sym,unsigned format)
 {
 static char buf[32],*rtrn;
@@ -339,7 +339,7 @@ static char buf[32],*rtrn;
     return rtrn;
 }
 
-_X_EXPORT char *
+char *
 XkbKeyNameText(char *name,unsigned format)
 {
 char *buf;
@@ -368,7 +368,7 @@ static char *siMatchText[5] = {
 	"NoneOf", "AnyOfOrNone", "AnyOf", "AllOf", "Exactly"
 };
 
-_X_EXPORT char *
+char *
 XkbSIMatchText(unsigned type,unsigned format)
 {
 static char buf[40];
@@ -402,7 +402,7 @@ static char *imWhichNames[]= {
 	"compat"
 };
 
-_X_EXPORT char *
+char *
 XkbIMWhichStateMaskText(unsigned use_which,unsigned format)
 {
 int		len;
@@ -461,7 +461,7 @@ static char *ctrlNames[] = {
 	"ignoreGroupLock"
 };
 
-_X_EXPORT char *
+char *
 XkbControlsMaskText(unsigned ctrls,unsigned format)
 {
 int		len;
@@ -508,7 +508,7 @@ char *		buf;
 
 /***====================================================================***/
 
-_X_EXPORT char *
+char *
 XkbStringText(char *str,unsigned format)
 {
 char *	buf;
@@ -568,7 +568,7 @@ Bool	ok;
 
 /***====================================================================***/
 
-_X_EXPORT char *
+char *
 XkbGeomFPText(int val,unsigned format)
 {
 int	whole,frac;
@@ -588,7 +588,7 @@ char *	buf;
     return buf;
 }
 
-_X_EXPORT char *
+char *
 XkbDoodadTypeText(unsigned type,unsigned format)
 {
 char *	buf;
@@ -628,7 +628,7 @@ static char *actionTypeNames[XkbSA_NumActions]= {
     "DeviceBtn",    "LockDeviceBtn"
 };
 
-_X_EXPORT char *
+char *
 XkbActionTypeText(unsigned type,unsigned format)
 {
 static char buf[32];
@@ -1125,7 +1125,7 @@ static actionCopy	copyActionArgs[XkbSA_NumActions] = {
 
 #define	ACTION_SZ	256
 
-_X_EXPORT char *
+char *
 XkbActionText(XkbDescPtr xkb,XkbAction *action,unsigned format)
 {
 char	buf[ACTION_SZ],*tmp;
@@ -1153,7 +1153,7 @@ int	sz;
     return tmp;
 }
 
-_X_EXPORT char *
+char *
 XkbBehaviorText(XkbDescPtr xkb,XkbBehavior *behavior,unsigned format)
 {
 char	buf[256],*tmp;
@@ -1210,7 +1210,7 @@ char	buf[256],*tmp;
 
 /***====================================================================***/
 
-_X_EXPORT char *
+char *
 XkbIndentText(unsigned size)
 {
 static char buf[32];
diff --git a/xkb/xkmread.c b/xkb/xkmread.c
index b7bb209..b14a5be 100644
--- a/xkb/xkmread.c
+++ b/xkb/xkmread.c
@@ -43,7 +43,7 @@
 #include "xkbsrv.h"
 #include "xkbgeom.h"
 
-_X_EXPORT Atom
+Atom
 XkbInternAtom(char *str,Bool only_if_exists)
 {
     if (str==NULL)
@@ -51,7 +51,7 @@ XkbInternAtom(char *str,Bool only_if_exists)
     return MakeAtom(str,strlen(str),!only_if_exists);
 }
 
-_X_EXPORT char *
+char *
 _XkbDupString(char *str)
 {
 char *new;
@@ -1026,7 +1026,7 @@ XkbGeometrySizesRec	sizes;
     return nRead;
 }
 
-_X_EXPORT Bool
+Bool
 XkmProbe(FILE *file)
 {
 unsigned hdr,tmp;
@@ -1077,7 +1077,7 @@ unsigned i,size_toc;
 /***====================================================================***/
 
 #define	MAX_TOC	16
-_X_EXPORT unsigned
+unsigned
 XkmReadFile(FILE *file,unsigned need,unsigned want,XkbDescPtr *xkb)
 {
 register unsigned	i;


More information about the xorg-commit mailing list