[PATCH v2] Workaround conflict between Solaris <sys/list.h> & Xorg "list.h" definitions

Aaron Plattner aplattner at nvidia.com
Tue Jan 3 10:38:45 PST 2012


Tested-by: Aaron Plattner <aplattner at nvidia.com>
Reviewed-by: Aaron Plattner <aplattner at nvidia.com>

Grammar nitpick: "Workaround" is a noun.  "Work around" is a (compound) 
verb.

On 12/23/2011 03:23 PM, Alan Coopersmith wrote:
> <sys/ipc_impl.h>  includes the Solaris<sys/list.h>  but doesn't use any
> definitions from it unless _KERNEL is defined for building a kernel module,
> so we can simply fake its header guard to skip its inclusion in Xext/shm.c
>
> <sys/proc.h>  also includes it, but we don't actually need anything from
> that header to be included, so we can just move it into the skip on Solaris
> list in xf86_OSlib.h
>
> Signed-off-by: Alan Coopersmith<alan.coopersmith at oracle.com>
> ---
>
> Changed since v1:
>   - Added explanations of what&  why this is being done
>   - Removed list_t typedefs in shm.c, since we don't actually need them
>
> While I appreciate Jamey's feedback on making this cleaner, the only cleaner
> thing I can see to do is break the Xorg list API by renaming it to avoid
> conflicts with OS-provided list API's, and I didn't want to do that
> unilaterally for just this one issue.
>
> The xf86_OSlib.h change does suggest that a cleanup to consider for the
> next merge window would be to drop the SVR3 and non-Solaris SVR4 support,
> now that the SCO ports have gone defunct.  (SCO&  Solaris were the only
> SysV variants supported since the current X.Org took over, and the SCO
> port was abandoned several years ago and mostly removed from the X server
> last year.)
>
>   Xext/shm.c                         |    4 ++++
>   hw/xfree86/os-support/xf86_OSlib.h |    2 +-
>   2 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/Xext/shm.c b/Xext/shm.c
> index 7ca027a..bd5253c 100644
> --- a/Xext/shm.c
> +++ b/Xext/shm.c
> @@ -58,6 +58,10 @@ in this Software without prior written authorization from The Open Group.
>
>   /* Needed for Solaris cross-zone shared memory extension */
>   #ifdef HAVE_SHMCTL64
> +
> +/* Workaround conflicts between Solaris<sys/list.h>  &  Xorg "list.h" */
> +#define _SYS_LIST_H
> +
>   #include<sys/ipc_impl.h>
>   #define SHMSTAT(id, buf)	shmctl64(id, IPC_STAT64, buf)
>   #define SHMSTAT_TYPE 		struct shmid_ds64
> diff --git a/hw/xfree86/os-support/xf86_OSlib.h b/hw/xfree86/os-support/xf86_OSlib.h
> index 0a5861f..45500db 100644
> --- a/hw/xfree86/os-support/xf86_OSlib.h
> +++ b/hw/xfree86/os-support/xf86_OSlib.h
> @@ -98,8 +98,8 @@
>   #  if !(defined (sun)&&  defined (SVR4))
>   #    include<sys/immu.h>
>   #    include<sys/region.h>
> +#    include<sys/proc.h>
>   #  endif
> -#  include<sys/proc.h>
>   #  include<sys/tss.h>
>   #  include<sys/sysi86.h>
>   #  if defined(SVR4)&&  !defined(sun)


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------


More information about the xorg-devel mailing list