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



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ästén <pekdon%gmail.com@localhost> wrote:
>
> The following reply was made to PR pkg/41501; it has been noted by GNATS.
>
> From: Claes =?utf-8?B?TsOkc3TDqW4=?= <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 solaris 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] = "/dev
>      Used by hw/xfree86/common/xf86AutoConfig.c for VIS_GETIDENTIFIER */
>   _X_HIDDEN char xf86SolarisFbDev[PATH_MAX] = "/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:37 wiz Exp $
>
>  Merge most of netbsdSbus.c from xsrc.
>
>  --- hw/xfree86/os-support/bus/Sbus.c.orig      2021-12-15 19:01:24.000000000 +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 = -1;
>
>   #define MAX_PROP      128
>   #define MAX_VAL               (4096-128-4)
>  +#ifdef __sun
>   static struct openpromio *promOpio;
>  +#endif
>
>   sbusDevicePtr *xf86SbusInfo = NULL;
>
>  @@ -68,17 +73,29 @@ struct sbus_devtable sbusDeviceTable[] =
>       {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 = sizeof(int);
>  -
>  +
>       if (node == -1)
>           return 0;
>       *(int *) promOpio->oprom_array = node;
>  @@ -86,13 +103,22 @@ promGetSibling(int node)
>           return 0;
>       promCurrentNode = *(int *) promOpio->oprom_array;
>       return *(int *) promOpio->oprom_array;
>  +#else
>  +    if (node == -1)
>  +        return 0;
>  +    if (ioctl(promFd, OFIOCGETNEXT, &node) < 0)
>  +        return 0;
>  +    promCurrentNode = node;
>  +    return node;
>  +#endif
>   }
>
>   int
>   promGetChild(int node)
>   {
>  +#ifdef __sun
>       promOpio->oprom_size = sizeof(int);
>  -
>  +
>       if (!node || node == -1)
>           return 0;
>       *(int *) promOpio->oprom_array = node;
>  @@ -100,26 +126,52 @@ promGetChild(int node)
>           return 0;
>       promCurrentNode = *(int *) promOpio->oprom_array;
>       return *(int *) promOpio->oprom_array;
>  +#else
>  +    if (!node || node == -1)
>  +        return 0;
>  +    if (ioctl(promFd, OFIOCGETCHILD, &node) < 0)
>  +        return 0;
>  +    promCurrentNode = node;
>  +    return node;
>  +#endif
>   }
>
>   char *
>   promGetProperty(const char *prop, int *lenp)
>   {
>  +#ifdef __sun
>       promOpio->oprom_size = MAX_VAL;
>  -
>  +
>       strcpy(promOpio->oprom_array, prop);
>       if (ioctl(promFd, OPROMGETPROP, promOpio) < 0)
>           return 0;
>  +
>       if (lenp)
>           *lenp = promOpio->oprom_size;
>       return promOpio->oprom_array;
>  +#else
>  +    ofio.of_nodeid = promCurrentNode;
>  +    ofio.of_name = (char *)prop;
>  +    ofio.of_namelen = strlen(prop);
>  +    ofio.of_buf = of_buf;
>  +    ofio.of_buflen = sizeof(of_buf);
>  +
>  +    if (ioctl(promFd, OFIOCGET, &ofio) < 0)
>  +        return 0;
>  +
>  +    of_buf[ofio.of_buflen] = '\0';
>  +
>  +    if (lenp)
>  +        *lenp = ofio.of_buflen;
>  +    return of_buf;
>  +#endif
>   }
>
>   int
>   promGetBool(const char *prop)
>   {
>  +#ifdef __sun
>       promOpio->oprom_size = 0;
>  -
>       *(int *) promOpio->oprom_array = 0;
>       for (;;) {
>           promOpio->oprom_size = MAX_PROP;
>  @@ -130,6 +182,19 @@ promGetBool(const char *prop)
>           if (!strcmp(promOpio->oprom_array, prop))
>               return 1;
>       }
>  +#else
>  +    ofio.of_nodeid = promCurrentNode;
>  +    ofio.of_name = (char *)prop;
>  +    ofio.of_namelen = strlen(prop);
>  +    ofio.of_buf = of_buf;
>  +    ofio.of_buflen = 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 = TRUE;
>       else
>           promP1275 = FALSE;
>  -#elif defined(__FreeBSD__)
>  -    promP1275 = TRUE;
>  +#elif defined(__FreeBSD__) || defined(__NetBSD__)
>  +     promP1275 = TRUE;
>   #else
>   #error Missing promIsP1275() function for this OS
>   #endif
>  @@ -198,8 +263,10 @@ sparcPromClose(void)
>           close(promFd);
>           promFd = -1;
>       }
>  +#ifdef __sun
>       free(promOpio);
>       promOpio = NULL;
>  +#endif
>       promOpenCount = 0;
>   }
>
>  @@ -213,11 +280,13 @@ sparcPromInit(void)
>       promFd = open("/dev/openprom", O_RDONLY, 0);
>       if (promFd == -1)
>           return -1;
>  +#ifdef __sun
>       promOpio = (struct openpromio *) malloc(4096);
>       if (!promOpio) {
>           sparcPromClose();
>           return -1;
>       }
>  +#endif
>       promRootNode = 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[] = {
>               {SBUS_DEVICE_BW2, "BWtwo"},
>               {SBUS_DEVICE_CG14, "CGfourteen"},
>


Home | Main Index | Thread Index | Old Index