pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/41501: x11/modular-xorg-server fails to compile on solaris 10
The following reply was made to PR pkg/41501; it has been noted by GNATS.
From: kordex <kordex%gmail.com@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: solaris-pkg-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
pkgsrc-bugs%netbsd.org@localhost
Subject: Re: pkg/41501: x11/modular-xorg-server fails to compile on solaris 10
Date: Tue, 20 Dec 2022 10:37:53 +0200
Hi,
This bug was opened in 2010. I have no longer interest using Solaris
after Oracle acquisition as open source was kind of cut off.
Kind regards,
Mikko
On Sat, Mar 12, 2022 at 9:10 PM Claes N=C3=A4st=C3=A9n <pekdon%gmail.com@localhost> w=
rote:
>
> The following reply was made to PR pkg/41501; it has been noted by GNATS.
>
> From: Claes =3D?utf-8?B?TsOkc3TDqW4=3D?=3D <pekdon%gmail.com@localhost>
> To: gnats-bugs <gnats-bugs%netbsd.org@localhost>
> Cc:
> Subject: Re: pkg/41501: x11/modular-xorg-server fails to compile on solar=
is 10
> Date: Sat, 12 Mar 2022 20:07:02 +0100
>
> At least I am not experiencing the reported issue on Solaris sparc.
>
> I do however experience a few other compile issues, which gets resolved
> by the following patches.
>
> $NetBSD$
>
> --- os/backtrace.c.orig 2021-12-15 19:01:24.000000000 +0000
> +++ os/backtrace.c
> @@ -227,6 +227,8 @@ xorg_backtrace_frame(uintptr_t pc, int s
> #endif /* HAVE_WALKCONTEXT */
>
> #ifdef HAVE_PSTACK
> +#include <unistd.h>
> +
> static int
> xorg_backtrace_pstack(void)
> {
>
> $NetBSD$
>
> --- hw/xfree86/os-support/solaris/sun_init.c.orig 2022-03-12 17:13:=
42.454602673 +0000
> +++ hw/xfree86/os-support/solaris/sun_init.c
> @@ -61,6 +61,7 @@ static char consoleDev[PATH_MAX] =3D "/dev
> Used by hw/xfree86/common/xf86AutoConfig.c for VIS_GETIDENTIFIER */
> _X_HIDDEN char xf86SolarisFbDev[PATH_MAX] =3D "/dev/fb";
>
> +#ifdef HAS_USL_VTS
> static void
> switch_to(int vt, const char *from)
> {
> @@ -76,6 +77,7 @@ switch_to(int vt, const char *from)
> xf86Msg(X_WARNING, "%s: VT_WAITACTIVE failed: %s\n",
> from, strerror(errno));
> }
> +#endif
>
> void
> xf86OpenConsole(void)
>
> And updated patch-hw_xfree86_os-support_bus_Sbus.c:
>
> $NetBSD: patch-hw_xfree86_os-support_bus_Sbus.c,v 1.3 2016/11/16 10:14:3=
7 wiz Exp $
>
> Merge most of netbsdSbus.c from xsrc.
>
> --- hw/xfree86/os-support/bus/Sbus.c.orig 2021-12-15 19:01:24.00000=
0000 +0000
> +++ hw/xfree86/os-support/bus/Sbus.c
> @@ -34,6 +34,9 @@
> #ifdef __sun
> #include <sys/utsname.h>
> #endif
> +#if defined(__NetBSD__) && defined(__sparc__)
> +#include <dev/ofw/openfirmio.h>
> +#endif
> #include "xf86.h"
> #include "xf86Priv.h"
> #include "xf86_OSlib.h"
> @@ -50,7 +53,9 @@ static int promP1275 =3D -1;
>
> #define MAX_PROP 128
> #define MAX_VAL (4096-128-4)
> +#ifdef __sun
> static struct openpromio *promOpio;
> +#endif
>
> sbusDevicePtr *xf86SbusInfo =3D NULL;
>
> @@ -68,17 +73,29 @@ struct sbus_devtable sbusDeviceTable[] =3D
> {SBUS_DEVICE_GT, FBTYPE_SUNGT, "gt", NULL, "Sun Graphics Tower"},
> {SBUS_DEVICE_MGX, -1, "mgx", NULL, "Quantum 3D MGXplus"},
> {SBUS_DEVICE_LEO, FBTYPE_SUNLEO, "leo", "sunleo", "Sun ZX or Turbo =
ZX"},
> - {SBUS_DEVICE_TCX, FBTYPE_TCXCOLOR, "tcx", "suntcx", "Sun TCX"},
> + {SBUS_DEVICE_TCX, FBTYPE_TCXCOLOR, "tcx", "suntcx", "Sun TCX or S24=
"},
> {SBUS_DEVICE_FFB, FBTYPE_CREATOR, "ffb", "sunffb", "Sun FFB"},
> {SBUS_DEVICE_FFB, FBTYPE_CREATOR, "afb", "sunffb", "Sun Elite3D"},
> +#ifdef FBTYPE_P9100
> + {SBUS_DEVICE_P9100, FBTYPE_P9100, "pnozz", "pnozz", "Weitek P9100"}=
,
> +#endif /* FBTYPE_P9100 */
> +#ifdef FBTYPE_AG10E
> + {SBUS_DEVICE_AG10E, FBTYPE_AG10E, "ag10e", "ag10e", "Fujitsu AG-10e=
"},
> +#endif /* FBTYPE_AG10E */
> {0, 0, NULL}
> };
>
> +#ifndef __sun
> +static struct ofiocdesc ofio;
> +static char of_buf[256];
> +#endif
> +
> int
> promGetSibling(int node)
> {
> +#ifdef __sun
> promOpio->oprom_size =3D sizeof(int);
> -
> +
> if (node =3D=3D -1)
> return 0;
> *(int *) promOpio->oprom_array =3D node;
> @@ -86,13 +103,22 @@ promGetSibling(int node)
> return 0;
> promCurrentNode =3D *(int *) promOpio->oprom_array;
> return *(int *) promOpio->oprom_array;
> +#else
> + if (node =3D=3D -1)
> + return 0;
> + if (ioctl(promFd, OFIOCGETNEXT, &node) < 0)
> + return 0;
> + promCurrentNode =3D node;
> + return node;
> +#endif
> }
>
> int
> promGetChild(int node)
> {
> +#ifdef __sun
> promOpio->oprom_size =3D sizeof(int);
> -
> +
> if (!node || node =3D=3D -1)
> return 0;
> *(int *) promOpio->oprom_array =3D node;
> @@ -100,26 +126,52 @@ promGetChild(int node)
> return 0;
> promCurrentNode =3D *(int *) promOpio->oprom_array;
> return *(int *) promOpio->oprom_array;
> +#else
> + if (!node || node =3D=3D -1)
> + return 0;
> + if (ioctl(promFd, OFIOCGETCHILD, &node) < 0)
> + return 0;
> + promCurrentNode =3D node;
> + return node;
> +#endif
> }
>
> char *
> promGetProperty(const char *prop, int *lenp)
> {
> +#ifdef __sun
> promOpio->oprom_size =3D MAX_VAL;
> -
> +
> strcpy(promOpio->oprom_array, prop);
> if (ioctl(promFd, OPROMGETPROP, promOpio) < 0)
> return 0;
> +
> if (lenp)
> *lenp =3D promOpio->oprom_size;
> return promOpio->oprom_array;
> +#else
> + ofio.of_nodeid =3D promCurrentNode;
> + ofio.of_name =3D (char *)prop;
> + ofio.of_namelen =3D strlen(prop);
> + ofio.of_buf =3D of_buf;
> + ofio.of_buflen =3D sizeof(of_buf);
> +
> + if (ioctl(promFd, OFIOCGET, &ofio) < 0)
> + return 0;
> +
> + of_buf[ofio.of_buflen] =3D '\0';
> +
> + if (lenp)
> + *lenp =3D ofio.of_buflen;
> + return of_buf;
> +#endif
> }
>
> int
> promGetBool(const char *prop)
> {
> +#ifdef __sun
> promOpio->oprom_size =3D 0;
> -
> *(int *) promOpio->oprom_array =3D 0;
> for (;;) {
> promOpio->oprom_size =3D MAX_PROP;
> @@ -130,6 +182,19 @@ promGetBool(const char *prop)
> if (!strcmp(promOpio->oprom_array, prop))
> return 1;
> }
> +#else
> + ofio.of_nodeid =3D promCurrentNode;
> + ofio.of_name =3D (char *)prop;
> + ofio.of_namelen =3D strlen(prop);
> + ofio.of_buf =3D of_buf;
> + ofio.of_buflen =3D sizeof(of_buf);
> +
> + if (ioctl(promFd, OFIOCGET, &ofio) < 0)
> + return 0;
> + if (ofio.of_buflen < 0)
> + return 0;
> + return 1;
> +#endif
> }
>
> #define PROM_NODE_SIBLING 0x01
> @@ -180,8 +245,8 @@ promIsP1275(void)
> promP1275 =3D TRUE;
> else
> promP1275 =3D FALSE;
> -#elif defined(__FreeBSD__)
> - promP1275 =3D TRUE;
> +#elif defined(__FreeBSD__) || defined(__NetBSD__)
> + promP1275 =3D TRUE;
> #else
> #error Missing promIsP1275() function for this OS
> #endif
> @@ -198,8 +263,10 @@ sparcPromClose(void)
> close(promFd);
> promFd =3D -1;
> }
> +#ifdef __sun
> free(promOpio);
> promOpio =3D NULL;
> +#endif
> promOpenCount =3D 0;
> }
>
> @@ -213,11 +280,13 @@ sparcPromInit(void)
> promFd =3D open("/dev/openprom", O_RDONLY, 0);
> if (promFd =3D=3D -1)
> return -1;
> +#ifdef __sun
> promOpio =3D (struct openpromio *) malloc(4096);
> if (!promOpio) {
> sparcPromClose();
> return -1;
> }
> +#endif
> promRootNode =3D promGetSibling(0);
> if (!promRootNode) {
> sparcPromClose();
> @@ -399,9 +468,9 @@ sparcPromAssignNodes(void)
> * were the types of the cards missed. */
> char buffer[64];
> int fbNum, devId;
> - static struct {
> - int devId;
> - char *prefix;
> + static const struct {
> + const int devId;
> + const char *prefix;
> } procFbPrefixes[] =3D {
> {SBUS_DEVICE_BW2, "BWtwo"},
> {SBUS_DEVICE_CG14, "CGfourteen"},
>
Home |
Main Index |
Thread Index |
Old Index