Apply the sparc64 patch when using the build useflag, or building stages with catalys...
authorDiego Elio Pettenò <flameeyes@gentoo.org>
Thu, 4 Jan 2007 13:42:01 +0000 (13:42 +0000)
committerDiego Elio Pettenò <flameeyes@gentoo.org>
Thu, 4 Jan 2007 13:42:01 +0000 (13:42 +0000)
Package-Manager: portage-2.1.2_rc4-r5

sys-freebsd/freebsd-lib/ChangeLog
sys-freebsd/freebsd-lib/Manifest
sys-freebsd/freebsd-lib/files/freebsd-sources-6.2-sparc64.patch [new file with mode: 0644]
sys-freebsd/freebsd-lib/freebsd-lib-6.2_rc2.ebuild

index a0ac791727530a577cc802b5bd6c812fb868041d..95c79775b41d480926a771a764959ba7fcd3f4db 100644 (file)
@@ -1,6 +1,11 @@
 # ChangeLog for sys-freebsd/freebsd-lib
 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-lib/ChangeLog,v 1.46 2007/01/02 23:16:38 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-lib/ChangeLog,v 1.47 2007/01/04 13:42:01 flameeyes Exp $
+
+  04 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
+  +files/freebsd-sources-6.2-sparc64.patch, freebsd-lib-6.2_rc2.ebuild:
+  Apply the sparc64 patch when using the build useflag, or building stages
+  with catalyst will fail.
 
   02 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
   freebsd-lib-6.2_rc2.ebuild:
index 42a0d64e651e237ea017e9826bad9f5ef7121b12..62ac9e9e575b16a7af7cea47788fe1cd6235f619 100644 (file)
@@ -37,6 +37,10 @@ AUX freebsd-lib-bsdxml.patch 339 RMD160 27b501cda2ac76230a72dfc3ee6593cb50f8d4b0
 MD5 0fa8fbe7549748636959ef4bc4ea9660 files/freebsd-lib-bsdxml.patch 339
 RMD160 27b501cda2ac76230a72dfc3ee6593cb50f8d4b0 files/freebsd-lib-bsdxml.patch 339
 SHA256 c1ac47d6c7176475f0f4b86bb17288a980b44a799fb6f4e7b1920f69e0447dc9 files/freebsd-lib-bsdxml.patch 339
+AUX freebsd-sources-6.2-sparc64.patch 18794 RMD160 7e529e32924c872ea033f03c781a86031fe8d13b SHA1 ef21dc71571d547c01f5ce8f43a33e9e4d00a519 SHA256 a1b5803f3366d3466ba3c07f510e0b8c72e17b515a1dc82f696e5a10bec7a60c
+MD5 2d9b3844827a93ea31fe3189359d693f files/freebsd-sources-6.2-sparc64.patch 18794
+RMD160 7e529e32924c872ea033f03c781a86031fe8d13b files/freebsd-sources-6.2-sparc64.patch 18794
+SHA256 a1b5803f3366d3466ba3c07f510e0b8c72e17b515a1dc82f696e5a10bec7a60c files/freebsd-sources-6.2-sparc64.patch 18794
 DIST freebsd-contrib-6.1.tar.bz2 36017365 RMD160 225f6ade032533d08b98b79cb29b75da2a3c74fa SHA1 adac960daad3f4169874fe0ba1050fe7e906aa23 SHA256 41283b7f78597cf81f98477aef04eb9cce2b130b1a2f8b5c7d647549c973c054
 DIST freebsd-contrib-6.2_rc2.tar.bz2 36594463 RMD160 d957a4054073009fe20cc13353797c2dc1aa0eaa SHA1 b93129a87d91e9ef37748337667a68a7530a30c4 SHA256 aeddb53e9dea3da081419be386251c144c63496d769d07b61e9085a3e52c74e0
 DIST freebsd-crypto-6.1.tar.bz2 3978359 RMD160 de2fa1e12cda42661565d5bf0f910b1a99d3c4df SHA1 a816fb8b613b92a80b9fab3d8d89b72eb9c550be SHA256 52be404c7f86ca29f957e1dc46c8a2c32a46ddb5c316d5123faf92a9c9fe37c5
@@ -57,14 +61,14 @@ EBUILD freebsd-lib-6.1.ebuild 7061 RMD160 88accfd80d617bd76f3fe29047a4b0566266a5
 MD5 27abb0a51efadf54eb5484487f9a6597 freebsd-lib-6.1.ebuild 7061
 RMD160 88accfd80d617bd76f3fe29047a4b0566266a5d5 freebsd-lib-6.1.ebuild 7061
 SHA256 dea7dcb78467a3e960f3ac2a42d346e69aa7944d8472d6037255f5e182af31f1 freebsd-lib-6.1.ebuild 7061
-EBUILD freebsd-lib-6.2_rc2.ebuild 7741 RMD160 07a21b0c9610810536b79d5e6bbe0bbc5596f455 SHA1 d7afd4cccf37e39a847c571ba5dacbcadae56862 SHA256 6f604152156222fd14a586ad104a79c2036ca9bc6c645c2db5ce9e0998622daa
-MD5 90893be492e00978c67371f5eef37164 freebsd-lib-6.2_rc2.ebuild 7741
-RMD160 07a21b0c9610810536b79d5e6bbe0bbc5596f455 freebsd-lib-6.2_rc2.ebuild 7741
-SHA256 6f604152156222fd14a586ad104a79c2036ca9bc6c645c2db5ce9e0998622daa freebsd-lib-6.2_rc2.ebuild 7741
-MISC ChangeLog 13083 RMD160 98f0de2c6ad34c7fdbceda52d1d6a36abe4a0715 SHA1 83ffcc245567a1bb52248e46a4963a757f4f7f67 SHA256 3093b356dfa5709c28ccc201551fd08ee81ee65682cee419e0d550657555ea0f
-MD5 2e1acfe91210b41c26fb56862d5edf24 ChangeLog 13083
-RMD160 98f0de2c6ad34c7fdbceda52d1d6a36abe4a0715 ChangeLog 13083
-SHA256 3093b356dfa5709c28ccc201551fd08ee81ee65682cee419e0d550657555ea0f ChangeLog 13083
+EBUILD freebsd-lib-6.2_rc2.ebuild 7940 RMD160 373ee20f63fde3a2f1fb15bb94552fccdcb29f97 SHA1 b49582fab234c2fe485dae87d6feb3332fc8f212 SHA256 e363f9d6b15f51f404eb208ea73aba1adec643288a8ed9e271f41abaaa07b0d5
+MD5 f489dfbfd81bec810a2160b9020bd8c1 freebsd-lib-6.2_rc2.ebuild 7940
+RMD160 373ee20f63fde3a2f1fb15bb94552fccdcb29f97 freebsd-lib-6.2_rc2.ebuild 7940
+SHA256 e363f9d6b15f51f404eb208ea73aba1adec643288a8ed9e271f41abaaa07b0d5 freebsd-lib-6.2_rc2.ebuild 7940
+MISC ChangeLog 13311 RMD160 c56e6a811fb541c41764f88c23260df127c3537e SHA1 2bddfe3155361543c84c17a45a9b7a530cd83f36 SHA256 4a97c23e25e38f4a5ddc41481928820169190a98f82874e134fc385166260815
+MD5 2bdd325231e66e7537c4dfe10167c753 ChangeLog 13311
+RMD160 c56e6a811fb541c41764f88c23260df127c3537e ChangeLog 13311
+SHA256 4a97c23e25e38f4a5ddc41481928820169190a98f82874e134fc385166260815 ChangeLog 13311
 MISC metadata.xml 156 RMD160 60b5820a08275f307e5bd936d78f5afd1f141086 SHA1 d9d9d4f2b5afc58339ea3e562fca490156935f1f SHA256 30ab515d6ac492d3d6c36ac3c675511742c2149e56a6b3228c8d22ab8edb3ff7
 MD5 2bd48a5ae413433cbb36110b219ce97c metadata.xml 156
 RMD160 60b5820a08275f307e5bd936d78f5afd1f141086 metadata.xml 156
@@ -78,7 +82,7 @@ SHA256 701b8e91666e40ba5663587ca3426c70b3bc9b7a312ca97fb2132a53aef25527 files/di
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.1 (GNU/Linux)
 
-iD8DBQFFmufsAiZjviIA2XgRAklsAJ9puzrVeg2ldho/Fwd/tLSSG4puRQCgzqDX
-jOyWbOGulQ/l/z5iShLPRyU=
-=9kQh
+iD8DBQFFnQQzAiZjviIA2XgRAiXOAKCRg7wZZnK0Wrhn54dK8tBdwBP++QCfZENP
+SxXRNuoh44caeFtBzyOEnx0=
+=LIHl
 -----END PGP SIGNATURE-----
diff --git a/sys-freebsd/freebsd-lib/files/freebsd-sources-6.2-sparc64.patch b/sys-freebsd/freebsd-lib/files/freebsd-sources-6.2-sparc64.patch
new file mode 100644 (file)
index 0000000..76785b8
--- /dev/null
@@ -0,0 +1,594 @@
+FreeBSD only works on Sparc64 and freeBSD code relies on the __sparc64__ define.
+gcc only defines __sparc64__ if -mcpu is not used.
+gcc-4 defaults to using -mcpu=ultrasparc on FreeBSD.
+
+This causes us a problem. Infact, FreeBSD developers sent gcc a patch to always
+define __sparc64__ when using -mcpu=ultrasparc, but this was rejected by most
+people including NetBSD developers.
+
+The correct solution is to use __sparc__.
+If platform detection is required, or the code is obviously 64 bit then we can
+use the __arch64__ define as well.
+This combination should be supported by all gcc versions:)
+
+diff -ur sys.orig/boot/ofw/libofw/ofw_net.c sys/boot/ofw/libofw/ofw_net.c
+--- sys.orig/boot/ofw/libofw/ofw_net.c 2005-03-02 20:12:27 +0000
++++ sys/boot/ofw/libofw/ofw_net.c      2006-10-11 11:08:26 +0100
+@@ -189,7 +189,7 @@
+       if ((ch = index(path, ':')) != NULL)
+               *ch = '\0';
+       netdev = OF_finddevice(path);
+-#ifdef __sparc64__
++#if defined(__sparc__)
+       if (OF_getprop(netdev, "mac-address", desc->myea, 6) == -1)
+ #else
+       if (OF_getprop(netdev, "local-mac-address", desc->myea, 6) == -1)
+@@ -207,7 +207,7 @@
+       printf("ofwn_init: Open Firmware instance handle: %08x\n", netinstance);
+ #endif
+-#ifndef __sparc64__
++#ifndef __sparc__
+       dmabuf = NULL;
+       if (OF_call_method("dma-alloc", netinstance, 1, 1, (64 * 1024), &dmabuf)
+           < 0) {   
+diff -ur sys.orig/conf/ldscript.sparc64 sys/conf/ldscript.sparc64
+--- sys.orig/conf/ldscript.sparc64     2003-06-07 19:23:50 +0100
++++ sys/conf/ldscript.sparc64  2006-10-11 11:10:21 +0100
+@@ -1,6 +1,6 @@
+ /* $FreeBSD: src/sys/conf/ldscript.sparc64,v 1.4 2003/06/07 18:23:50 jake Exp $ */
+-OUTPUT_FORMAT("elf64-sparc", "elf64-sparc",
+-            "elf64-sparc")
++OUTPUT_FORMAT("elf64-sparc-freebsd", "elf64-sparc-freebsd",
++            "elf64-sparc-freebsd")
+ OUTPUT_ARCH(sparc:v9)
+ ENTRY(_start)
+ SEARCH_DIR(/usr/lib);
+diff -ur sys.orig/dev/atkbdc/atkbd.c sys/dev/atkbdc/atkbd.c
+--- sys.orig/dev/atkbdc/atkbd.c        2006-05-26 01:56:14 +0100
++++ sys/dev/atkbdc/atkbd.c     2006-10-11 11:08:26 +0100
+@@ -1031,7 +1031,7 @@
+ static void
+ atkbd_shutdown_final(void *v)
+ {
+-#ifdef __sparc64__
++#ifdef __sparc__
+       keyboard_t *kbd = v;
+       KBDC kbdc = ((atkbd_state_t *)kbd->kb_data)->kbdc;
+@@ -1330,7 +1330,7 @@
+               }
+       }
+-#if defined(__alpha__) || defined(__sparc64__)
++#if defined(__alpha__) || defined(__sparc__)
+       if (send_kbd_command_and_data(
+               kbdc, KBDC_SET_SCANCODE_SET, 2) != KBD_ACK) {
+               printf("atkbd: can't set translation.\n");
+diff -ur sys.orig/dev/atkbdc/atkbdc.c sys/dev/atkbdc/atkbdc.c
+--- sys.orig/dev/atkbdc/atkbdc.c       2006-09-22 02:05:30 +0100
++++ sys/dev/atkbdc/atkbdc.c    2006-10-11 11:08:26 +0100
+@@ -46,7 +46,7 @@
+ #include <dev/atkbdc/atkbdcreg.h>
+-#ifdef __sparc64__
++#ifdef __sparc__
+ #include <dev/ofw/openfirm.h>
+ #include <machine/bus_private.h>
+ #include <machine/ofw_machdep.h>
+@@ -93,7 +93,7 @@
+ static int verbose = KBDIO_DEBUG;
+-#ifdef __sparc64__
++#ifdef __sparc__
+ static struct bus_space_tag atkbdc_bst_store[MAXKBDC];
+ #endif
+@@ -157,7 +157,7 @@
+       volatile int i;
+       register_t flags;
+ #endif
+-#ifdef __sparc64__
++#ifdef __sparc__
+       char name[32];
+       phandle_t chosen, node;
+       ihandle_t stdin;
+@@ -178,13 +178,13 @@
+       tag = busspace_isa_io;
+ #elif defined(__ia64__)
+       tag = IA64_BUS_SPACE_IO;
+-#elif defined(__sparc64__)
++#elif defined(__sparc__)
+       tag = &atkbdc_bst_store[0];
+ #else
+ #error "define tag!"
+ #endif
+-#ifdef __sparc64__
++#if defined(__sparc__) && defined (__arch64__)
+       if ((chosen = OF_finddevice("/chosen")) == -1)
+               return 0;
+       if (OF_getprop(chosen, "stdin", &stdin, sizeof(stdin)) == -1)
+diff -ur sys.orig/dev/firewire/sbp.c sys/dev/firewire/sbp.c
+--- sys.orig/dev/firewire/sbp.c        2005-01-06 01:42:41 +0000
++++ sys/dev/firewire/sbp.c     2006-10-11 11:08:26 +0100
+@@ -160,7 +160,7 @@
+ #define NEED_RESPONSE 0
+ #define SBP_SEG_MAX rounddown(0xffff, PAGE_SIZE)
+-#ifdef __sparc64__ /* iommu */
++#if defined(__sparc__) && defined(__arch64__) /* iommu */
+ #define SBP_IND_MAX howmany(MAXPHYS, SBP_SEG_MAX)
+ #else
+ #define SBP_IND_MAX howmany(MAXPHYS, PAGE_SIZE)
+diff -ur sys.orig/dev/hme/if_hme_pci.c sys/dev/hme/if_hme_pci.c
+--- sys.orig/dev/hme/if_hme_pci.c      2005-07-10 11:36:45 +0100
++++ sys/dev/hme/if_hme_pci.c   2006-10-11 11:08:26 +0100
+@@ -44,7 +44,7 @@
+ #include <sys/socket.h>
+ #include <machine/bus.h>
+-#if defined(__powerpc__) || defined(__sparc64__)
++#if defined(__powerpc__) || defined(__sparc__)
+ #include <dev/ofw/openfirm.h>
+ #include <machine/ofw_machdep.h>
+ #endif
+@@ -140,7 +140,7 @@
+       struct hme_pci_softc *hsc = device_get_softc(dev);
+       struct hme_softc *sc = &hsc->hsc_hme;
+       int error = 0;
+-#if !(defined(__powerpc__) || defined(__sparc64__))
++#if !(defined(__powerpc__) || defined(__sparc__))
+       device_t *children, ebus_dev;
+       struct resource *ebus_rres;
+       bus_space_handle_t romh;
+@@ -221,7 +221,7 @@
+       bus_space_subregion(hsc->hsc_memt, hsc->hsc_memh, 0x7000, 0x1000,
+           &sc->sc_mifh);
+-#if defined(__powerpc__) || defined(__sparc64__)
++#if defined(__powerpc__) || defined(__sparc__)
+       OF_getetheraddr(dev, sc->sc_enaddr);
+ #else
+       /*
+diff -ur sys.orig/dev/isp/isp_freebsd.h sys/dev/isp/isp_freebsd.h
+--- sys.orig/dev/isp/isp_freebsd.h     2006-09-01 06:55:13 +0100
++++ sys/dev/isp/isp_freebsd.h  2006-10-11 11:08:26 +0100
+@@ -78,7 +78,7 @@
+ /*
+  * Efficiency- get rid of SBus code && tests unless we need them.
+  */
+-#ifdef __sparc64__
++#ifdef __sparc__
+ #define       ISP_SBUS_SUPPORTED      1
+ #else
+ #define       ISP_SBUS_SUPPORTED      0
+diff -ur sys.orig/dev/sym/sym_hipd.c sys/dev/sym/sym_hipd.c
+--- sys.orig/dev/sym/sym_hipd.c        2005-05-29 05:42:26 +0100
++++ sys/dev/sym/sym_hipd.c     2006-10-11 11:08:26 +0100
+@@ -143,7 +143,7 @@
+ #define MEMORY_BARRIER()      __asm__ volatile("eieio; sync" : : : "memory")
+ #elif defined __ia64__
+ #define MEMORY_BARRIER()      __asm__ volatile("mf.a; mf" : : : "memory")
+-#elif defined __sparc64__
++#elif defined __sparc__ && defined __arch64__
+ #define MEMORY_BARRIER()      __asm__ volatile("membar #Sync" : : : "memory")
+ #else
+ #error        "Not supported platform"
+diff -ur sys.orig/dev/syscons/scgfbrndr.c sys/dev/syscons/scgfbrndr.c
+--- sys.orig/dev/syscons/scgfbrndr.c   2005-10-05 22:48:02 +0100
++++ sys/dev/syscons/scgfbrndr.c        2006-10-11 11:08:26 +0100
+@@ -213,7 +213,7 @@
+ static int pxlblinkrate = 0;
+-#if defined(__sparc64__) || defined(SC_OFWFB)
++#if defined(__sparc__) || defined(SC_OFWFB)
+ static void
+ gfb_cursor(scr_stat *scp, int at, int blink, int on, int flip)
+ {
+diff -ur sys.orig/dev/syscons/schistory.c sys/dev/syscons/schistory.c
+--- sys.orig/dev/syscons/schistory.c   2004-01-21 05:08:51 +0000
++++ sys/dev/syscons/schistory.c        2006-10-11 11:08:26 +0100
+@@ -42,7 +42,7 @@
+ #include <sys/kernel.h>
+ #include <sys/malloc.h>
+-#if __sparc64__ || __powerpc__
++#if __sparc__ || __powerpc__
+ #include <machine/sc_machdep.h>
+ #else
+ #include <machine/pc/display.h>
+diff -ur sys.orig/dev/syscons/scterm-dumb.c sys/dev/syscons/scterm-dumb.c
+--- sys.orig/dev/syscons/scterm-dumb.c 2004-01-21 05:08:51 +0000
++++ sys/dev/syscons/scterm-dumb.c      2006-10-11 11:08:26 +0100
+@@ -33,7 +33,7 @@
+ #include <sys/systm.h>
+ #include <sys/consio.h>
+-#if __sparc64__ || __powerpc__
++#if __sparc__ || __powerpc__
+ #include <machine/sc_machdep.h>
+ #else
+ #include <machine/pc/display.h>
+diff -ur sys.orig/dev/syscons/scterm-sc.c sys/dev/syscons/scterm-sc.c
+--- sys.orig/dev/syscons/scterm-sc.c   2004-05-30 21:08:42 +0100
++++ sys/dev/syscons/scterm-sc.c        2006-10-11 11:08:26 +0100
+@@ -36,7 +36,7 @@
+ #include <sys/module.h>
+ #include <sys/consio.h>
+-#if __sparc64__ || __powerpc__
++#if __sparc__ || __powerpc__
+ #include <machine/sc_machdep.h>
+ #else
+ #include <machine/pc/display.h>
+diff -ur sys.orig/dev/syscons/scvtb.c sys/dev/syscons/scvtb.c
+--- sys.orig/dev/syscons/scvtb.c       2005-05-21 21:28:15 +0100
++++ sys/dev/syscons/scvtb.c    2006-10-11 11:08:26 +0100
+@@ -74,7 +74,7 @@
+               }
+               vtb->vtb_flags |= VTB_VALID;
+               break;
+-#ifndef __sparc64__
++#ifndef __sparc__
+       case VTB_FRAMEBUFFER:
+               vtb->vtb_buffer = (vm_offset_t)buf;
+               vtb->vtb_flags |= VTB_VALID;
+@@ -119,7 +119,7 @@
+ int
+ sc_vtb_getc(sc_vtb_t *vtb, int at)
+ {
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               return (readw(sc_vtb_pointer(vtb, at)) & 0x00ff);
+       else
+@@ -130,7 +130,7 @@
+ int
+ sc_vtb_geta(sc_vtb_t *vtb, int at)
+ {
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               return (readw(sc_vtb_pointer(vtb, at)) & 0xff00);
+       else
+@@ -141,7 +141,7 @@
+ void
+ sc_vtb_putc(sc_vtb_t *vtb, int at, int c, int a)
+ {
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               writew(sc_vtb_pointer(vtb, at), a | c);
+       else
+@@ -152,7 +152,7 @@
+ vm_offset_t
+ sc_vtb_putchar(sc_vtb_t *vtb, vm_offset_t p, int c, int a)
+ {
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               writew(p, a | c);
+       else
+@@ -176,7 +176,7 @@
+ void
+ sc_vtb_clear(sc_vtb_t *vtb, int c, int attr)
+ {
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               fillw_io(attr | c, sc_vtb_pointer(vtb, 0), vtb->vtb_size);
+       else
+@@ -187,7 +187,7 @@
+ void
+ sc_vtb_copy(sc_vtb_t *vtb1, int from, sc_vtb_t *vtb2, int to, int count)
+ {
+-#ifndef __sparc64__
++#ifndef __sparc__
+       /* XXX if both are VTB_VRAMEBUFFER... */
+       if (vtb2->vtb_type == VTB_FRAMEBUFFER)
+               bcopy_toio(sc_vtb_pointer(vtb1, from),
+@@ -214,7 +214,7 @@
+       while (count > 0) {
+               len = imin(count, vtb2->vtb_size - vtb2->vtb_tail);
+-#ifndef __sparc64__
++#ifndef __sparc__
+               if (vtb1->vtb_type == VTB_FRAMEBUFFER)
+                       bcopy_fromio(sc_vtb_pointer(vtb1, from),
+                                    sc_vtb_pointer(vtb2, vtb2->vtb_tail),
+@@ -241,7 +241,7 @@
+ {
+       if (at + count > vtb->vtb_size)
+               count = vtb->vtb_size - at;
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               fillw_io(attr | c, sc_vtb_pointer(vtb, at), count);
+       else
+@@ -258,7 +258,7 @@
+               count = vtb->vtb_size - to;
+       if (count <= 0)
+               return;
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               bcopy_io(sc_vtb_pointer(vtb, from),
+                        sc_vtb_pointer(vtb, to), count*sizeof(u_int16_t)); 
+@@ -277,7 +277,7 @@
+               count = vtb->vtb_size - at;
+       len = vtb->vtb_size - at - count;
+       if (len > 0) {
+-#ifndef __sparc64__
++#ifndef __sparc__
+               if (vtb->vtb_type == VTB_FRAMEBUFFER)
+                       bcopy_io(sc_vtb_pointer(vtb, at + count),
+                                sc_vtb_pointer(vtb, at),
+@@ -288,7 +288,7 @@
+                             (void *)sc_vtb_pointer(vtb, at),
+                             len*sizeof(u_int16_t)); 
+       }
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               fillw_io(attr | c, sc_vtb_pointer(vtb, at + len),
+                        vtb->vtb_size - at - len);
+@@ -304,7 +304,7 @@
+       if (at + count > vtb->vtb_size)
+               count = vtb->vtb_size - at;
+       else {
+-#ifndef __sparc64__
++#ifndef __sparc__
+               if (vtb->vtb_type == VTB_FRAMEBUFFER)
+                       bcopy_io(sc_vtb_pointer(vtb, at),
+                                sc_vtb_pointer(vtb, at + count),
+@@ -315,7 +315,7 @@
+                             (void *)sc_vtb_pointer(vtb, at + count),
+                             (vtb->vtb_size - at - count)*sizeof(u_int16_t)); 
+       }
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (vtb->vtb_type == VTB_FRAMEBUFFER)
+               fillw_io(attr | c, sc_vtb_pointer(vtb, at), count);
+       else
+diff -ur sys.orig/dev/syscons/syscons.c sys/dev/syscons/syscons.c
+--- sys.orig/dev/syscons/syscons.c     2006-03-04 00:41:28 +0000
++++ sys/dev/syscons/syscons.c  2006-10-11 11:08:26 +0100
+@@ -58,7 +58,7 @@
+ #include <sys/power.h>
+ #include <machine/clock.h>
+-#if __sparc64__ || __powerpc__
++#if __sparc__ || __powerpc__
+ #include <machine/sc_machdep.h>
+ #else
+ #include <machine/pc/display.h>
+@@ -491,7 +491,7 @@
+     sc_softc_t *sc;
+     struct tty *tp;
+     scr_stat *scp;
+-#ifndef __sparc64__
++#ifndef __sparc__
+     keyarg_t key;
+ #endif
+     int error;
+@@ -508,7 +508,7 @@
+       tp->t_termios = tp->t_init_in;
+         /* Use the current setting of the <-- key as default VERASE. */  
+         /* If the Delete key is preferable, an stty is necessary     */
+-#ifndef __sparc64__
++#ifndef __sparc__
+       if (sc->kbd != NULL) {
+           key.keynum = KEYCODE_BS;
+           kbd_ioctl(sc->kbd, GIO_KEYMAPENT, (caddr_t)&key);
+@@ -564,7 +564,7 @@
+       }
+       else {
+           sc_vtb_destroy(&scp->vtb);
+-#ifndef __sparc64__
++#ifndef __sparc__
+           sc_vtb_destroy(&scp->scr);
+ #endif
+           sc_free_history_buffer(scp, scp->ysize);
+@@ -2447,7 +2447,7 @@
+     if (sc->old_scp->mode != scp->mode || ISUNKNOWNSC(sc->old_scp))
+ #endif
+       set_mode(scp);
+-#ifndef __sparc64__
++#ifndef __sparc__
+     else
+       sc_vtb_init(&scp->scr, VTB_FRAMEBUFFER, scp->xsize, scp->ysize,
+                   (void *)sc->adp->va_window, FALSE);
+@@ -2724,7 +2724,7 @@
+       }
+       sc->cur_scp = scp;
+-#ifndef __sparc64__
++#ifndef __sparc__
+       /* copy screen to temporary buffer */
+       sc_vtb_init(&scp->scr, VTB_FRAMEBUFFER, scp->xsize, scp->ysize,
+                   (void *)scp->sc->adp->va_window, FALSE);
+@@ -3010,7 +3010,7 @@
+       }
+     }
+     sc_vtb_init(&scp->vtb, VTB_MEMORY, 0, 0, NULL, FALSE);
+-#ifndef __sparc64__
++#ifndef __sparc__
+     sc_vtb_init(&scp->scr, VTB_FRAMEBUFFER, 0, 0, NULL, FALSE);
+ #endif
+     scp->xoff = scp->yoff = 0;
+@@ -3455,7 +3455,7 @@
+     /* setup video hardware for the given mode */
+     (*vidsw[scp->sc->adapter]->set_mode)(scp->sc->adp, scp->mode);
+     scp->rndr->init(scp);
+-#ifndef __sparc64__
++#ifndef __sparc__
+     sc_vtb_init(&scp->scr, VTB_FRAMEBUFFER, scp->xsize, scp->ysize,
+               (void *)scp->sc->adp->va_window, FALSE);
+ #endif
+diff -ur sys.orig/dev/syscons/syscons.h sys/dev/syscons/syscons.h
+--- sys.orig/dev/syscons/syscons.h     2005-10-05 22:48:02 +0100
++++ sys/dev/syscons/syscons.h  2006-10-11 11:08:26 +0100
+@@ -92,11 +92,11 @@
+ #define DPRINTF(l, p) if (SC_DEBUG_LEVEL >= (l)) printf p
+-#ifndef __sparc64__
++#ifndef __sparc__
+ #define SC_DRIVER_NAME        "sc"
+ #else
+ /*
+- * Use a different driver name on sparc64 so it does not get confused
++ * Use a different driver name on sparc so it does not get confused
+  * with the system controller devices which are also termed 'sc' in OFW.
+  */
+ #define SC_DRIVER_NAME        "syscons"
+@@ -269,7 +269,7 @@
+       int             index;                  /* index of this vty */
+       struct sc_softc *sc;                    /* pointer to softc */
+       struct sc_rndr_sw *rndr;                /* renderer */
+-#ifndef __sparc64__
++#ifndef __sparc__
+       sc_vtb_t        scr;
+ #endif
+       sc_vtb_t        vtb;
+diff -ur sys.orig/kern/kern_ktr.c sys/kern/kern_ktr.c
+--- sys.orig/kern/kern_ktr.c   2005-06-11 00:21:29 +0100
++++ sys/kern/kern_ktr.c        2006-10-11 11:08:26 +0100
+@@ -51,7 +51,7 @@
+ #include <sys/time.h>
+ #include <machine/cpu.h>
+-#ifdef __sparc64__
++#ifdef __sparc__
+ #include <machine/ktr.h>
+ #endif
+diff -ur sys.orig/kern/subr_param.c sys/kern/subr_param.c
+--- sys.orig/kern/subr_param.c 2005-10-17 01:16:54 +0100
++++ sys/kern/subr_param.c      2006-10-11 11:08:26 +0100
+@@ -51,7 +51,7 @@
+  */
+ #ifndef HZ
+-#  if defined(__amd64__) || defined(__i386__) || defined(__ia64__) || defined(__sparc64__)
++#  if defined(__amd64__) || defined(__i386__) || defined(__ia64__) || defined(__sparc__)
+ #    define   HZ 1000
+ #  else
+ #    define   HZ 100
+diff -ur sys.orig/kern/subr_witness.c sys/kern/subr_witness.c
+--- sys.orig/kern/subr_witness.c       2006-09-02 06:42:16 +0100
++++ sys/kern/subr_witness.c    2006-10-11 11:08:26 +0100
+@@ -391,7 +391,7 @@
+ #if defined(__i386__) || defined(__amd64__)
+       { "tlb", &lock_class_mtx_spin },
+ #endif
+-#ifdef __sparc64__
++#ifdef __sparc__
+       { "ipi", &lock_class_mtx_spin },
+       { "rtc_mtx", &lock_class_mtx_spin },
+ #endif
+diff -ur sys.orig/kern/vfs_subr.c sys/kern/vfs_subr.c
+--- sys.orig/kern/vfs_subr.c   2006-09-27 01:36:10 +0100
++++ sys/kern/vfs_subr.c        2006-10-11 11:08:26 +0100
+@@ -110,7 +110,7 @@
+  * build.  Without mpsafevm the buffer cache can not run Giant free.
+  */
+ #if defined(__alpha__) || defined(__amd64__) || defined(__i386__) || \
+-      defined(__sparc64__)
++      defined(__sparc__)
+ int mpsafe_vfs = 1;
+ #else
+ int mpsafe_vfs;
+diff -ur sys.orig/net/if_loop.c sys/net/if_loop.c
+--- sys.orig/net/if_loop.c     2006-09-29 05:24:50 +0100
++++ sys/net/if_loop.c  2006-10-11 11:08:26 +0100
+@@ -289,7 +289,7 @@
+       /* Strip away media header */
+       if (hlen > 0) {
+               m_adj(m, hlen);
+-#if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__)
++#if defined(__alpha__) || defined(__ia64__) || defined(__sparc__)
+               /* The alpha doesn't like unaligned data.
+                * We move data down in the first mbuf */
+               if (mtod(m, vm_offset_t) & 3) {
+diff -ur sys.orig/pci/if_dc.c sys/pci/if_dc.c
+--- sys.orig/pci/if_dc.c       2006-06-21 22:06:07 +0100
++++ sys/pci/if_dc.c    2006-10-11 11:08:26 +0100
+@@ -134,7 +134,7 @@
+ #include <pci/if_dcreg.h>
+-#ifdef __sparc64__
++#ifdef __sparc__
+ #include <dev/ofw/openfirm.h>
+ #include <machine/ofw_machdep.h>
+ #endif
+@@ -2027,7 +2027,7 @@
+               break;
+       case DC_TYPE_DM9102:
+               dc_read_eeprom(sc, (caddr_t)&eaddr, DC_EE_NODEADDR, 3, 0);
+-#ifdef __sparc64__
++#ifdef __sparc__
+               /*
+                * If this is an onboard dc(4) the station address read from
+                * the EEPROM is all zero and we have to get it from the fcode.
+diff -ur sys.orig/sys/bus_dma.h sys/sys/bus_dma.h
+--- sys.orig/sys/bus_dma.h     2005-03-15 14:57:29 +0000
++++ sys/sys/bus_dma.h  2006-10-11 11:08:26 +0100
+@@ -216,7 +216,7 @@
+  *     <machine/bus_dma.h> for the sparc64 arch contains the equivalent
+  *     declarations.
+  */
+-#if !defined(__sparc64__)
++#if !(defined(__sparc__) && defined(__arch64__))
+ /*
+  * Allocate a handle for mapping from kva/uva/physical
+@@ -293,6 +293,6 @@
+                       _bus_dmamap_unload(dmat, dmamap);       \
+       } while (0)
+-#endif /* __sparc64__ */
++#endif /* __sparc__ && __arch64__ */
+ #endif /* _BUS_DMA_H_ */
+diff -ur sys.orig/sys/linker.h sys/sys/linker.h
+--- sys.orig/sys/linker.h      2005-12-30 22:13:58 +0000
++++ sys/sys/linker.h   2006-10-11 11:08:26 +0100
+@@ -192,7 +192,7 @@
+ #define MODINFOMD_ESYM                0x0004          /* end of symbols */
+ #define MODINFOMD_DYNAMIC     0x0005          /* _DYNAMIC pointer */
+ /* These values are MD on these two platforms */
+-#if !defined(__sparc64__) && !defined(__powerpc__)
++#if !defined(__sparc__) && !defined(__powerpc__)
+ #define MODINFOMD_ENVP                0x0006          /* envp[] */
+ #define MODINFOMD_HOWTO               0x0007          /* boothowto */
+ #define MODINFOMD_KERNEND     0x0008          /* kernend */
+diff -ur sys.orig/sys/param.h sys/sys/param.h
+--- sys.orig/sys/param.h       2006-09-15 20:27:40 +0100
++++ sys/sys/param.h    2006-10-11 11:08:26 +0100
+@@ -300,7 +300,7 @@
+  * Constraints: PAGE_SIZE <= MAXALLOCSAVE <= 2 ** (MINBUCKET + 14), and
+  * MAXALLOCSIZE must be a power of two.
+  */
+-#if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__)
++#if defined(__alpha__) || defined(__ia64__) || defined(__sparc__)
+ #define MINBUCKET     5               /* 5 => min allocation of 32 bytes */
+ #else
+ #define MINBUCKET     4               /* 4 => min allocation of 16 bytes */
+diff -ur sys.orig/sys/user.h sys/sys/user.h
+--- sys.orig/sys/user.h        2006-06-24 00:41:05 +0100
++++ sys/sys/user.h     2006-10-11 11:08:26 +0100
+@@ -100,7 +100,7 @@
+ #ifdef __powerpc__
+ #define       KINFO_PROC_SIZE 768
+ #endif
+-#ifdef __sparc64__
++#if defined __sparc__ && defined __arch64__
+ #define       KINFO_PROC_SIZE 1088
+ #endif
+ #ifndef KINFO_PROC_SIZE
index 2cca18b24aa722b1d74396d550185132b5ea47cb..6c6b510ce723011032958446e056f63c39f1afe5 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-lib/freebsd-lib-6.2_rc2.ebuild,v 1.2 2007/01/02 23:16:38 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-lib/freebsd-lib-6.2_rc2.ebuild,v 1.3 2007/01/04 13:42:01 flameeyes Exp $
 
 inherit bsdmk freebsd flag-o-matic toolchain-funcs
 
@@ -111,7 +111,13 @@ src_unpack() {
        sed -i -e 's:-o/dev/stdout:-t:' "${S}/libc/net/Makefile.inc"
        sed -i -e 's:histedit.h::' "${WORKDIR}/include/Makefile"
 
-       use build && return 0
+       # Apply this patch for Gentoo/FreeBSD/SPARC64 to build correctly
+       # from catalyst, then don't do anything else
+       if use build; then
+               cd "${WORKDIR}"
+               epatch "${FILESDIR}/freebsd-sources-6.2-sparc64.patch"
+               return 0
+       fi
 
        if [[ ${CTARGET} == ${CHOST} ]]; then
                ln -s "/usr/src/sys-${RV}" "${WORKDIR}/sys"