6624562 Xvnc should be built with Sun Studio
authorAlan Coopersmith <Alan.Coopersmith@Sun.COM>
Fri, 02 Nov 2007 14:17:40 -0700
changeset 241 30e6f29a3171
parent 240 ef3f3ac87367
child 242 25fd70b062ed
6624562 Xvnc should be built with Sun Studio
open-src/common/Makefile.inc
open-src/common/delibtoolize.pl
open-src/proto/X11/Makefile
open-src/proto/X11/Xalloca.h-patch
open-src/xserver/xvnc/Makefile
open-src/xserver/xvnc/vnc-modular-xorg.patch
--- a/open-src/common/Makefile.inc	Fri Nov 02 14:17:02 2007 -0700
+++ b/open-src/common/Makefile.inc	Fri Nov 02 14:17:40 2007 -0700
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.inc	1.79	07/10/10
+# @(#)Makefile.inc	1.80	07/11/02
 #
 
 # Borrowed from Solaris OS/Net makefile.master:
@@ -70,7 +70,7 @@
 OPT_CFLAGS 		= $(DEFAULT_OPT_CFLAGS)
 OPT_CXXFLAGS 		= $(DEFAULT_OPT_CXXFLAGS)
 CFLAGS 			= -v -mc $(OPT_CFLAGS) $(ARCH_FLAGS)
-CXXFLAGS		= -mc $(OPT_CXXFLAGS) $(ARCH_FLAGS)
+CXXFLAGS		= -mc $(OPT_CXXFLAGS) $(ARCH_FLAGS) -norunpath
 LDFLAGS 		= -z combreloc -z lazyload $(MAPFILES_FOR_ALL)
 
 ### Flags for libraries to meet various Solaris requirements
@@ -107,7 +107,7 @@
 
 # -xregs=no%frameptr is required on x86 when compiling at -xO4 or higher to 
 # avoid losing stack frame pointers so you can't get stack traces or debug
-DEFAULT_ARCH32_FLAGS_i386 	= -xpentium -xregs=no%frameptr
+DEFAULT_ARCH32_FLAGS_i386 	= -xtarget=pentium -xregs=no%frameptr
 DEFAULT_ARCH64_FLAGS_i386 	= -xarch=generic64 -xregs=no%frameptr
 DEFAULT_ARCH_LIB_FLAGS_i386 	=  
 
--- a/open-src/common/delibtoolize.pl	Fri Nov 02 14:17:02 2007 -0700
+++ b/open-src/common/delibtoolize.pl	Fri Nov 02 14:17:40 2007 -0700
@@ -27,20 +27,31 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# ident	"@(#)delibtoolize.pl	1.7	07/10/10 SMI"
+# ident	"@(#)delibtoolize.pl	1.8	07/11/02 SMI"
 #
 
 #
 # Undo libtool damage to makefiles to allow us to control the linker
 # settings that libtool tries to force on us.
 #
+# Usage: delibtoolize.pl [-P] <path>
+# -P - Use large pic flags (-KPIC/-fPIC) instead of default/small (-Kpic/-fpic)
 
 use strict;
 use warnings;
 use integer;
+use Getopt::Std;
 
 use File::Find;
 
+my %opts;
+getopts('P', \%opts);
+
+my $pic_size = "pic";
+if (exists($opts{'P'})) {
+  $pic_size = "PIC";
+}
+
 sub process_file {
   if ($_ eq 'Makefile' && -f $_) {
     print "delibtoolizing $File::Find::name...\n";
@@ -77,11 +88,11 @@
     }
     close($OLD) or die;
 
-    my $picflags = '-Kpic -DPIC';
+    my $picflags = "-K$pic_size -DPIC";
     my $sharedobjflags = '-G';
 
     if (defined($compiler) && ($compiler =~ m/gcc/)) {
-      $picflags = '-fpic -DPIC';
+      $picflags = "-f$pic_size -DPIC";
       $sharedobjflags = '-shared';
     }
 
--- a/open-src/proto/X11/Makefile	Fri Nov 02 14:17:02 2007 -0700
+++ b/open-src/proto/X11/Makefile	Fri Nov 02 14:17:40 2007 -0700
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.4	06/12/19
+# @(#)Makefile	1.5	07/11/02
 #
 
 # Package name used in tarballs
@@ -38,7 +38,8 @@
 VERSION=7.0.10
 
 # Patches to apply to source after unpacking, in order
-SOURCE_PATCHES=	Xos.h-patch Xpoll.h-patch X.h-patch
+SOURCE_PATCHES=	Xos.h-patch Xpoll.h-patch X.h-patch \
+	Xalloca.h-patch,-p1
 
 ### Include common rulesets
 include ../Makefile.inc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/proto/X11/Xalloca.h-patch	Fri Nov 02 14:17:40 2007 -0700
@@ -0,0 +1,39 @@
+commit 5ae4d304ecb5fb4af0435c9f2efde3d2da5905d1
+Author: Alan Coopersmith <[email protected]>
+Date:   Tue Oct 30 18:44:49 2007 -0700
+
+    Make Xalloca.h work with Sun C++ compiler
+
+diff --git a/Xalloca.h b/Xalloca.h
+index 67f2671..c561718 100644
+--- a/Xalloca.h
++++ b/Xalloca.h
+@@ -62,7 +62,8 @@ #ifndef XALLOCA_H
+ #define XALLOCA_H 1
+ 
+ #ifndef INCLUDE_ALLOCA_H
+-# if defined(__SUNPRO_C)  /* Need to add more here to match Imake *.cf's */
++/* Need to add more here to match Imake *.cf's */
++# if defined(HAVE_ALLOCA_H) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+ #  define INCLUDE_ALLOCA_H
+ # endif
+ #endif
+@@ -111,16 +112,14 @@ #      if defined(vax) || defined(sun) |
+  * decide that you don't want to use alloca, you might want to fix it here.
+  */
+ /* alloca might be a macro taking one arg (hi, Sun!), so give it one. */
+-#        ifndef __sgi			/* IRIX 5/6 has definition */
+-#         ifndef __QNX__
++#        if !defined(__sgi) && !defined(__QNX__) && !defined(__cplusplus)
+ #          define __Xnullarg		/* as nothing */
+ #          ifndef X_NOT_STDC_ENV
+              extern void *alloca(__Xnullarg);
+ #          else
+              extern char *alloca(__Xnullarg);
+ #          endif
+-#         endif /* __QNX__ */
+-#        endif /* __sgi */
++#        endif /* !__sgi && !__QNX && !__cplusplus */
+ #        define ALLOCATE_LOCAL(size) alloca((int)(size))
+ #      endif /* who does alloca */
+ #    endif /* NCR */
--- a/open-src/xserver/xvnc/Makefile	Fri Nov 02 14:17:02 2007 -0700
+++ b/open-src/xserver/xvnc/Makefile	Fri Nov 02 14:17:40 2007 -0700
@@ -31,15 +31,9 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.3	07/10/11
+# @(#)Makefile	1.4	07/11/02
 #
 
-# Build 32-bit or 64-bit?
-BUILD_TYPES_SET=yes
-BUILD_TYPES_sparc=64
-BUILD_TYPES_i386=32
-BUILD_TYPES=$(BUILD_TYPES_$(MACH))
-
 # Package name used in tarballs
 MODULE_NAME=vnc
 
@@ -96,9 +90,8 @@
 SUNTOUCH_MAN_FLAGS= \
  -a '{Availability, SUNWxvnc} {Interface Stability, Volatile}'
 
-# Compiler to use - VNC code only builds with g++, not Sun Studio, so use
-# gcc/g++ on both platforms for now
-COMPILER=gcc
+# Compiler to use
+COMPILER=cc
 
 # Binary built in tree
 XVNCSERVER_BIN=$(SOURCE_DIR)/hw/xfree86/Xorg
@@ -161,6 +154,7 @@
 	--disable-xprint --disable-kdrive
 
 XVNC_CPPFLAGS = \
+	-D__extension__=\"\" \
 	-I$(PWD)/$(SOURCE_DIR)/common \
 	-I$(PWD)/$(SOURCE_DIR)/unix/vncconfig \
 	$(XSERVER_CPPFLAGS)
@@ -191,7 +185,7 @@
 	(cd $(XORG_BUILD_DIR) &&  \
 	 ACLOCAL="$(ACLOCAL_PATH)" autoreconf --install --force && \
 	 $(CONFIG_ENV) ./configure $(XVNC_CONFIG_OPTS) )
-	$(TOP)/common/delibtoolize.pl $(SOURCE_DIR)
+	$(TOP)/common/delibtoolize.pl -P $(SOURCE_DIR)
 
 $(XVNCSERVER_BIN): $(SOURCE_DIR)/unix/Makefile $(XORG_BUILD_DIR)/Makefile
 	(cd $(SOURCE_DIR)/common ; $(BUILD_ENV) $(MAKE) $(MFLAGS))
--- a/open-src/xserver/xvnc/vnc-modular-xorg.patch	Fri Nov 02 14:17:02 2007 -0700
+++ b/open-src/xserver/xvnc/vnc-modular-xorg.patch	Fri Nov 02 14:17:40 2007 -0700
@@ -105,7 +105,7 @@
 +		-I../../../../common \
 +		-I../../../vncconfig \
 +		-I../../mi \
-+		-I ../../render \
++		-I../../render \
 +		-I/usr/include/X11
 +
 +libvnc_la_LTLIBRARIES = libvnc.la