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