6739713 After Xserver B97c packages were installed, the vncviewer can not be started
authorAlan Coopersmith <Alan.Coopersmith@Sun.COM>
Thu, 28 Aug 2008 13:42:55 -0700
changeset 520 8214a177e770
parent 519 3485510cc1cf
child 521 674c1c695a60
6739713 After Xserver B97c packages were installed, the vncviewer can not be started
open-src/common/delibtoolize.pl
open-src/xserver/xvnc/Makefile
--- a/open-src/common/delibtoolize.pl	Thu Aug 28 13:41:14 2008 -0700
+++ b/open-src/common/delibtoolize.pl	Thu Aug 28 13:42:55 2008 -0700
@@ -27,7 +27,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# ident	"@(#)delibtoolize.pl	1.11	08/08/08 SMI"
+# ident	"@(#)delibtoolize.pl	1.12	08/08/28 SMI"
 #
 
 #
@@ -36,6 +36,8 @@
 #
 # Usage: delibtoolize.pl [-P] <path>
 # -P - Use large pic flags (-KPIC/-fPIC) instead of default/small (-Kpic/-fpic)
+# -s - Only track libraries from a single file at a time, instead of across all
+#	files in a project
 
 use strict;
 use warnings;
@@ -45,13 +47,18 @@
 use File::Find;
 
 my %opts;
-getopts('P', \%opts);
+getopts('Ps', \%opts);
 
 my $pic_size = "pic";
 if (exists($opts{'P'})) {
   $pic_size = "PIC";
 }
 
+my $single_file;
+if (exists($opts{'s'})) {
+  $single_file = 1;
+}
+
 my %compiler_pic_flags = ( 'cc' => "-K$pic_size -DPIC",
 			   'gcc' => "-f$pic_size -DPIC" );
 my %compiler_sharedobj_flags = ( 'cc' => '-G -z allextract',
@@ -77,21 +84,30 @@
       if ($l =~ m/^([^\#\s]*)_la_LDFLAGS\s*=(.*)/ms) {
 	my $libname = $1;
 	my $flags = $2;
+	my $vers;
 	
 	if ($flags =~ m/[\b\s]-version-(number|info)\s+(\S+)/ms) {
 	  my $vtype = $1;
 	  my $v = $2;
 	  if (($vtype eq "info") && ($v =~ m/^(\d+):\d+:(\d+)$/ms)) {
-	    $so_versions{$libname} = $1 - $2;
+	    $vers = $1 - $2;
 	  } elsif ($v =~ m/^(\d+)[:\d]*$/ms) {
-	    $so_versions{$libname} = $1;
+	    $vers = $1;
 	  } else {
-	    $so_versions{$libname} = $v;
+	    $vers = $v;
 	  }
 	}
 	elsif ($flags =~ m/-avoid-version\b/ms) {
-	  $so_versions{$libname} = 'none';
-	  $l =~ s{[\b\s]-avoid-version\b}{}ms;
+	  $vers = 'none';
+	}
+
+	my $ln = $libname;
+	if ($single_file) {
+	  $ln = $File::Find::name . "::" . $libname;
+	}
+	if (defined($vers) && !defined($so_versions{$ln})) {
+	  $so_versions{$ln} = $vers;
+	  print "Set version to $so_versions{$ln} for $ln.\n";
 	}
       }
       $l = "";
@@ -182,7 +198,12 @@
     }
 
     # Change file names
-    foreach my $so (keys %so_versions) {
+    my @so_list = keys %so_versions;
+    if ($single_file) {
+      my $pat = $filename . "::";
+      @so_list = grep(/^$pat/, @so_list);
+    }
+    foreach my $so (@so_list) {
       if ($so_versions{$so} eq 'none') {
 	$l =~ s{$so\.la\b}{$so.so}msg;
       } else {
--- a/open-src/xserver/xvnc/Makefile	Thu Aug 28 13:41:14 2008 -0700
+++ b/open-src/xserver/xvnc/Makefile	Thu Aug 28 13:42:55 2008 -0700
@@ -31,7 +31,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.11	08/08/08
+# @(#)Makefile	1.12	08/08/28
 #
 
 # Package name used in tarballs
@@ -199,8 +199,7 @@
 	(cd $(XORG_BUILD_DIR) &&  \
 	 ACLOCAL="$(ACLOCAL_PATH)" autoreconf --install --force && \
 	 $(CONFIG_ENV) $(SHELL) ./configure $(XVNC_CONFIG_OPTS) )
-
-#	$(TOP)/common/delibtoolize.pl -P $(SOURCE_DIR)
+	$(TOP)/common/delibtoolize.pl -P -s $(SOURCE_DIR)
 
 Xvnc_build: $(SOURCE_DIR)/unix/Makefile $(XORG_BUILD_DIR)/Makefile
 	(cd $(SOURCE_DIR)/common ; $(BUILD_ENV) $(MAKE) $(MAKEFLAGS))