Index: Makefile =================================================================== RCS file: /home/ncvs/ports/x11-servers/XFree86-4-Server/Makefile,v retrieving revision 1.141 diff -u -r1.141 Makefile --- Makefile 14 May 2003 07:02:06 -0000 1.141 +++ Makefile 21 May 2003 12:49:42 -0000 @@ -28,7 +28,12 @@ .for pf in patch-savage-pci-id patch-alpha_video.c patch-Pci.h patch-radeondri \ patch-r128_driver.c patch-mga_driver.c patch-xkbInit.c patch-radeon_dri.c \ patch-mga_dri.c patch-nv_driver.c patch-nv_setup.c patch-int10-generic.c \ - patch-radeon_cursor.c patch-radeon_reg.h patch-smi + patch-radeon_cursor.c patch-radeon_reg.h patch-smi patch-compiler.h \ + patch-os-support_Imakefile patch-common_Imakefile patch-bsd_Imakefile \ + patch-freebsdPci.c patch-bus_Imakefile patch-xf86Sbus.h patch-loader.c \ + patch-Sbus.c patch-elfloader.c patch-xfree86.cf patch-FreeBSD.cf \ + patch-sunffb_Imakefile patch-xf86sym.c + EXTRA_PATCHES+= ${FILESDIR}/${pf} .endfor SCRIPTS_ENV= OSVERSION=${OSVERSION} \ Index: files/patch-FreeBSD.cf =================================================================== RCS file: files/patch-FreeBSD.cf diff -N files/patch-FreeBSD.cf --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-FreeBSD.cf 20 May 2003 16:26:53 -0000 @@ -0,0 +1,11 @@ +--- config/cf/FreeBSD.cf.orig Tue May 20 05:10:21 2003 ++++ config/cf/FreeBSD.cf Tue May 20 03:41:35 2003 +@@ -464,6 +464,8 @@ + #endif + #ifdef Sparc64Architecture + #define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64 ++#define AsVISOption -Av9a ++#define AsOutputArchSize 64 + #endif + #ifdef ia64Architecture + #define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64 Index: files/patch-Pci.h =================================================================== RCS file: /home/ncvs/ports/x11-servers/XFree86-4-Server/files/patch-Pci.h,v retrieving revision 1.1 diff -u -r1.1 patch-Pci.h --- files/patch-Pci.h 11 Mar 2003 23:38:10 -0000 1.1 +++ files/patch-Pci.h 19 May 2003 07:26:41 -0000 @@ -1,5 +1,5 @@ ---- programs/Xserver/hw/xfree86/os-support/bus/Pci.h.orig Tue Mar 4 16:42:16 2003 -+++ programs/Xserver/hw/xfree86/os-support/bus/Pci.h Tue Mar 4 16:42:21 2003 +--- programs/Xserver/hw/xfree86/os-support/bus/Pci.h.orig Mon Dec 23 10:37:26 2002 ++++ programs/Xserver/hw/xfree86/os-support/bus/Pci.h Mon May 19 03:25:14 2003 @@ -230,6 +230,10 @@ # define ARCH_PCI_INIT linuxPciInit # define INCLUDE_XF86_MAP_PCI_MEM @@ -11,3 +11,19 @@ # endif # define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper #elif defined(__i386__) +@@ -291,12 +295,14 @@ + # elif defined(sun) + # define ARCH_PCI_INIT sparcPciInit + # define INCLUDE_XF86_MAP_PCI_MEM +-# elif defined(__OpenBSD__) && defined(__sparc64__) ++# elif (defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__sparc64__) + # define ARCH_PCI_INIT freebsdPciInit + # define INCLUDE_XF86_MAP_PCI_MEM + # define INCLUDE_XF86_NO_DOMAIN + # endif ++# if 0 + # define ARCH_PCI_PCI_BRIDGE sparcPciPciBridge ++# endif + #elif defined(__x86_64__) + # define ARCH_PCI_INIT ix86PciInit + # define INCLUDE_XF86_MAP_PCI_MEM Index: files/patch-Sbus.c =================================================================== RCS file: files/patch-Sbus.c diff -N files/patch-Sbus.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-Sbus.c 16 May 2003 19:38:52 -0000 @@ -0,0 +1,11 @@ +--- programs/Xserver/hw/xfree86/os-support/bus/Sbus.c.orig Fri May 16 15:33:46 2003 ++++ programs/Xserver/hw/xfree86/os-support/bus/Sbus.c Fri May 16 15:37:46 2003 +@@ -170,6 +170,8 @@ + promP1275 = TRUE; + else + promP1275 = FALSE; ++#elif defined(__FreeBSD__) ++ promP1275 = TRUE; + #else + #error Missing promIsP1275() function for this OS + #endif Index: files/patch-bsd_Imakefile =================================================================== RCS file: files/patch-bsd_Imakefile diff -N files/patch-bsd_Imakefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-bsd_Imakefile 15 May 2003 22:41:51 -0000 @@ -0,0 +1,16 @@ +--- programs/Xserver/hw/xfree86/os-support/bsd/Imakefile.orig Thu May 15 18:39:39 2003 ++++ programs/Xserver/hw/xfree86/os-support/bsd/Imakefile Thu May 15 18:40:42 2003 +@@ -45,10 +45,10 @@ + IOPERM_SRC = ioperm_noop.c + IOPERM_OBJ = ioperm_noop.o + # endif +-#elif defined(FreeBSDArchitecture) && !defined(AlphaBsdArchitecture) ++#elif defined(FreeBSDArchitecture) ++# if defined(i386Architecture) + IOPERMDEFINES = -DUSE_DEV_IO +-#else +-# if defined(AlphaBsdArchitecture) ++# elif defined(AlphaBsdArchitecture) + IOPERMDEFINES = -DUSE_ALPHA_PORTS + # else + IOPERM_SRC = ioperm_noop.c Index: files/patch-bus_Imakefile =================================================================== RCS file: files/patch-bus_Imakefile diff -N files/patch-bus_Imakefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-bus_Imakefile 18 May 2003 20:15:37 -0000 @@ -0,0 +1,18 @@ +--- programs/Xserver/hw/xfree86/os-support/bus/Imakefile.orig Sun Feb 23 15:26:49 2003 ++++ programs/Xserver/hw/xfree86/os-support/bus/Imakefile Fri May 16 14:33:32 2003 +@@ -88,6 +88,15 @@ + PCIDRVRSRC = freebsdPci.c + PCIDRVROBJ = freebsdPci.o + ++#elif defined(FreeBSDArchitecture) && defined(Sparc64Architecture) ++ ++XCOMM Sparc SBUS & PCI drivers ++ ++PCIDRVRSRC = freebsdPci.c ++PCIDRVROBJ = freebsdPci.o ++SBUSDRVSRC = Sbus.c ++SBUSDRVOBJ = Sbus.o ++ + #elif defined(NetBSDArchitecture) && defined(AlphaArchitecture) + + XCOMM Alpha (NetBSD) PCI driver Index: files/patch-common_Imakefile =================================================================== RCS file: files/patch-common_Imakefile diff -N files/patch-common_Imakefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-common_Imakefile 16 May 2003 00:19:01 -0000 @@ -0,0 +1,21 @@ +--- programs/Xserver/hw/xfree86/common/Imakefile.orig Mon Feb 17 12:06:41 2003 ++++ programs/Xserver/hw/xfree86/common/Imakefile Thu May 15 20:17:15 2003 +@@ -18,7 +18,8 @@ + #endif /* GNUMachArchitecture */ + #else + # if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) \ +- || defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) ++ || defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) \ ++ || defined(FreeBSDArchitecture) + KBD = xf86KbdBSD + # else + # ifdef LinuxArchitecture +@@ -29,7 +30,7 @@ + # endif + #endif + +-#ifdef SparcArchitecture ++#if defined(SparcArchitecture) || defined(Sparc64Architecture) + SBUSSRC = xf86sbusBus.c + SBUSOBJ = xf86sbusBus.o + #endif Index: files/patch-compiler.h =================================================================== RCS file: files/patch-compiler.h diff -N files/patch-compiler.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-compiler.h 15 May 2003 19:02:46 -0000 @@ -0,0 +1,11 @@ +--- programs/Xserver/hw/xfree86/common/compiler.h.orig Thu May 15 14:49:26 2003 ++++ programs/Xserver/hw/xfree86/common/compiler.h Thu May 15 14:50:07 2003 +@@ -514,7 +514,7 @@ + return ret; + } + +-# elif (defined(linux) || defined(Lynx) || defined(sun) || defined(__OpenBSD__)) && defined(__sparc__) ++# elif (defined(linux) || defined(Lynx) || defined(sun) || defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__sparc__) + + # if !defined(Lynx) + # ifndef ASI_PL Index: files/patch-elfloader.c =================================================================== RCS file: files/patch-elfloader.c diff -N files/patch-elfloader.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-elfloader.c 20 May 2003 19:19:51 -0000 @@ -0,0 +1,70 @@ +--- programs/Xserver/hw/xfree86/loader/elfloader.c.orig Fri Jan 24 12:26:35 2003 ++++ programs/Xserver/hw/xfree86/loader/elfloader.c Tue May 20 15:18:44 2003 +@@ -1150,6 +1150,7 @@ + #endif + #if defined(__sparc__) + unsigned char *dest8; /* address of the 8 bit place being modified */ ++ unsigned long *dest64; + #endif + #if defined(__alpha__) + unsigned int *dest32h; /* address of the high 32 bit place being modified */ +@@ -1960,7 +1961,6 @@ + break; + + case R_SPARC_32: /* 3 */ +- case R_SPARC_GLOB_DAT: /* 20 */ + case R_SPARC_UA32: /* 23 */ + dest32 = (unsigned int *)(secp + rel->r_offset); + symval += rel->r_addend; +@@ -1970,29 +1970,36 @@ + ((unsigned char *)dest32)[3] = (unsigned char)(symval ); + break; + ++ case R_SPARC_GLOB_DAT: /* 20 */ ++ case R_SPARC_64: /* 32 */ ++ dest64 = (unsigned long *)(secp + rel->r_offset); ++ symval += rel->r_addend; ++ *dest64 = symval; ++ break; ++ + case R_SPARC_DISP8: /* 4 */ + dest8 = (unsigned char *)(secp + rel->r_offset); + symval += rel->r_addend; +- *dest8 = (symval - (Elf32_Addr) dest8); ++ *dest8 = (symval - (Elf_Addr) dest8); + break; + + case R_SPARC_DISP16: /* 5 */ + dest16 = (unsigned short *)(secp + rel->r_offset); + symval += rel->r_addend; +- *dest16 = (symval - (Elf32_Addr) dest16); ++ *dest16 = (symval - (Elf_Addr) dest16); + break; + + case R_SPARC_DISP32: /* 6 */ + dest32 = (unsigned int *)(secp + rel->r_offset); + symval += rel->r_addend; +- *dest32 = (symval - (Elf32_Addr) dest32); ++ *dest32 = (symval - (Elf_Addr) dest32); + break; + + case R_SPARC_WDISP30: /* 7 */ + dest32 = (unsigned int *)(secp + rel->r_offset); + symval += rel->r_addend; + *dest32 = ((*dest32 & 0xc0000000) | +- ((symval - (Elf32_Addr) dest32) >> 2)); ++ (((symval - (Elf_Addr) dest32) >> 2) & 0x3fffffff)); + break; + + case R_SPARC_HI22: /* 9 */ +@@ -2038,8 +2045,8 @@ + break; + + case R_SPARC_RELATIVE: /* 22 */ +- dest32 = (unsigned int *)(secp + rel->r_offset); +- *dest32 += (unsigned int)secp + rel->r_addend; ++ dest64 = (unsigned long *)(secp + rel->r_offset); ++ *dest64 = (unsigned long)secp + rel->r_addend; + break; + #endif /*__sparc__*/ + #ifdef __ia64__ Index: files/patch-freebsdPci.c =================================================================== RCS file: files/patch-freebsdPci.c diff -N files/patch-freebsdPci.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-freebsdPci.c 15 May 2003 22:56:33 -0000 @@ -0,0 +1,11 @@ +--- programs/Xserver/hw/xfree86/os-support/bus/freebsdPci.c.orig Thu May 15 18:53:48 2003 ++++ programs/Xserver/hw/xfree86/os-support/bus/freebsdPci.c Thu May 15 18:54:24 2003 +@@ -84,7 +84,7 @@ + /* bridge */ NULL + }; + +-#if !defined(__OpenBSD__) ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) + #if X_BYTE_ORDER == X_BIG_ENDIAN + #ifdef __sparc__ + #ifndef ASI_PL Index: files/patch-loader.c =================================================================== RCS file: files/patch-loader.c diff -N files/patch-loader.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-loader.c 15 May 2003 23:52:31 -0000 @@ -0,0 +1,20 @@ +--- programs/Xserver/hw/xfree86/loader/loader.c.orig Thu May 15 19:50:47 2003 ++++ programs/Xserver/hw/xfree86/loader/loader.c Thu May 15 19:51:35 2003 +@@ -88,7 +88,7 @@ + static int refCount[MAX_HANDLE] ; + #endif + +-#if defined(__sparc__) && defined(__GNUC__) ++#if defined(__sparc__) && defined(__GNUC__) && !defined(__FreeBSD__) + # define SYMFUNCDOT(func) { "." #func, (funcptr)&__sparc_dot_ ## func }, + # if !defined(__OpenBSD__) + # define SYMFUNCDOT89(func) { "." #func, (funcptr)&func ## _sparcv89 }, +@@ -298,7 +298,7 @@ + LoaderAddSymbols(-1, -1, dixLookupTab ) ; + LoaderAddSymbols(-1, -1, fontLookupTab ) ; + LoaderAddSymbols(-1, -1, extLookupTab ); +-#ifdef __sparc__ ++#if defined(__sparc__) && !defined(__FreeBSD__) + #ifdef linux + if (sparcUseHWMulDiv()) + LoaderAddSymbols(-1, -1, SparcV89LookupTab ) ; Index: files/patch-os-support_Imakefile =================================================================== RCS file: files/patch-os-support_Imakefile diff -N files/patch-os-support_Imakefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-os-support_Imakefile 15 May 2003 20:52:40 -0000 @@ -0,0 +1,10 @@ +--- programs/Xserver/hw/xfree86/os-support/Imakefile.orig Mon Feb 17 12:06:45 2003 ++++ programs/Xserver/hw/xfree86/os-support/Imakefile Thu May 15 16:51:46 2003 +@@ -13,6 +13,7 @@ + #if defined(i386Architecture) || defined(ia64Architecture) || \ + (defined(SunArchitecture) && defined(SparcArchitecture)) || \ + (defined(FreeBSDArchitecture) && defined(AlphaArchitecture)) || \ ++ (defined(FreeBSDArchitecture) && defined(Sparc64Architecture)) || \ + (defined(NetBSDArchitecture) && defined(AlphaArchitecture)) || \ + (defined(NetBSDArchitecture) && defined(PpcArchitecture)) || \ + (defined(NetBSDArchitecture) && defined(SparcArchitecture)) || \ Index: files/patch-sunffb_Imakefile =================================================================== RCS file: files/patch-sunffb_Imakefile diff -N files/patch-sunffb_Imakefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-sunffb_Imakefile 20 May 2003 17:33:58 -0000 @@ -0,0 +1,11 @@ +--- programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile.orig Mon Sep 16 14:06:01 2002 ++++ programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile Tue May 20 12:25:15 2003 +@@ -49,7 +49,7 @@ + #define FFBsObjectRule(name) @@\ + name.o: name.s @@\ + $(RM) $@ @@\ +- $(CPP) $*.s | $(AS) $(GCCVISOPTION) -o $@ - ++ $(CC) -c -x assembler-with-cpp $(GCCVISOPTION) $*.s -o $@ + #endif + #else + VISOBJS = Index: files/patch-xf86Events.c =================================================================== RCS file: files/patch-xf86Events.c diff -N files/patch-xf86Events.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-xf86Events.c 21 May 2003 18:26:21 -0000 @@ -0,0 +1,18 @@ +--- programs/Xserver/hw/xfree86/common/xf86Events.c.orig Wed May 21 14:24:03 2003 ++++ programs/Xserver/hw/xfree86/common/xf86Events.c Wed May 21 14:24:28 2003 +@@ -828,6 +828,7 @@ + } + #endif + ++#ifndef __sparc64__ + /* + * PC keyboards generate separate key codes for + * Alt+Print and Control+Pause but in the X keyboard model +@@ -838,6 +839,7 @@ + scanCode = KEY_Print; + else if (scanCode == KEY_Break) + scanCode = KEY_Pause; ++#endif + + /* + * Now map the scancodes to real X-keycodes ... Index: files/patch-xf86Sbus.h =================================================================== RCS file: files/patch-xf86Sbus.h diff -N files/patch-xf86Sbus.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-xf86Sbus.h 16 May 2003 19:52:26 -0000 @@ -0,0 +1,16 @@ +--- programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h.orig Wed May 22 17:38:30 2002 ++++ programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h Fri May 16 15:47:05 2003 +@@ -35,7 +35,13 @@ + #elif defined(__OpenBSD__) && defined(__sparc64__) + /* XXX */ + #elif defined(CSRG_BASED) ++#if defined(__FreeBSD__) ++#include ++#include ++#include ++#else + #include ++#endif + #else + #include + #endif Index: files/patch-xf86sym.c =================================================================== RCS file: files/patch-xf86sym.c diff -N files/patch-xf86sym.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-xf86sym.c 21 May 2003 12:49:16 -0000 @@ -0,0 +1,31 @@ +--- programs/Xserver/hw/xfree86/loader/xf86sym.c.orig Wed Feb 26 15:08:02 2003 ++++ programs/Xserver/hw/xfree86/loader/xf86sym.c Wed May 21 08:47:39 2003 +@@ -106,6 +106,14 @@ + extern void* __remqu(long, long); + #endif + ++#if defined(__sparc__) && defined(__FreeBSD__) ++extern float _Qp_qtos(unsigned int *); ++extern double _Qp_qtod(unsigned int *); ++extern unsigned long long _Qp_qtoux(unsigned int *); ++extern void _Qp_dtoq(unsigned int *, double); ++extern void _Qp_uitoq(unsigned int *, unsigned int); ++#endif ++ + #if defined(__GNUC__) + extern long __div64(long, long); + extern long __divdf3(long, long); +@@ -1066,6 +1074,13 @@ + + #ifdef __FreeBSD__ + SYMFUNC(sysctlbyname) ++#if defined(__sparc__) ++ SYMFUNC(_Qp_qtos) ++ SYMFUNC(_Qp_qtod) ++ SYMFUNC(_Qp_qtoux) ++ SYMFUNC(_Qp_uitoq) ++ SYMFUNC(_Qp_dtoq) ++#endif + #endif + + /* Index: files/patch-xfree86-2 =================================================================== RCS file: files/patch-xfree86-2 diff -N files/patch-xfree86-2 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-xfree86-2 21 May 2003 02:19:44 -0000 @@ -0,0 +1,32 @@ +diff -ru XFree86-4-Server~/work/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c XFree86-4-Server/work/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c +--- XFree86-4-Server~/work/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c Wed Feb 26 12:08:02 2003 ++++ XFree86-4-Server/work/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c Tue May 20 16:20:46 2003 +@@ -106,6 +106,14 @@ + extern void* __remqu(long, long); + #endif + ++#if defined(__sparc__) && defined(__FreeBSD__) ++extern float _Qp_qtos(unsigned int *); ++extern double _Qp_qtod(unsigned int *); ++extern unsigned long long _Qp_qtoux(unsigned int *); ++extern void _Qp_dtoq(unsigned int *, double); ++extern void _Qp_uitoq(unsigned int *, unsigned int); ++#endif ++ + #if defined(__GNUC__) + extern long __div64(long, long); + extern long __divdf3(long, long); +@@ -1066,6 +1074,13 @@ + + #ifdef __FreeBSD__ + SYMFUNC(sysctlbyname) ++#if defined(__sparc__) ++ SYMFUNC(_Qp_qtos) ++ SYMFUNC(_Qp_qtod) ++ SYMFUNC(_Qp_qtoux) ++ SYMFUNC(_Qp_uitoq) ++ SYMFUNC(_Qp_dtoq) ++#endif + #endif + + /* Index: files/patch-xfree86.cf =================================================================== RCS file: files/patch-xfree86.cf diff -N files/patch-xfree86.cf --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-xfree86.cf 19 May 2003 06:13:30 -0000 @@ -0,0 +1,11 @@ +--- config/cf/xfree86.cf.orig Mon May 19 02:11:26 2003 ++++ config/cf/xfree86.cf Mon May 19 02:12:05 2003 +@@ -481,7 +481,7 @@ + + /* SPARC and UltraSPARC drivers */ + +-#if defined(SparcArchitecture) && \ ++#if (defined(SparcArchitecture) || defined(Sparc64Architecture)) && \ + !defined(LynxOSArchitecture) && \ + !defined(NetBSDArchitecture) && \ + !defined(OpenBSDArchitecture)