open-src/xserver/xorg/amd64-loader-path.patch
author Alan Coopersmith <Alan.Coopersmith@Sun.COM>
Fri, 15 May 2009 09:36:46 -0700
changeset 705 24ca414edbff
parent 606 068c11b419c9
child 851 d428083dbbdd
permissions -rw-r--r--
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292] 6837131 Can't bring up dtlogin with AST2000 driver on nvx_114 Includes fix contributed by Juergen Keil for OpenSolaris Bug #8687: german keyboard layout: umlaut keys not accepted by Xvnc http://defect.opensolaris.org/bz/show_bug.cgi?id=8687

# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use subject to license terms.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, and/or sell copies of the Software, and to permit persons
# to whom the Software is furnished to do so, provided that the above
# copyright notice(s) and this permission notice appear in all copies of
# the Software and that both the above copyright notice(s) and this
# permission notice appear in supporting documentation.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# 
# Except as contained in this notice, the name of a copyright holder
# shall not be used in advertising or otherwise to promote the sale, use
# or other dealings in this Software without prior written authorization
# of the copyright holder.

diff -urp -x '*~' -x '*.orig' hw/xfree86/loader/loadmod.c hw/xfree86/loader/loadmod.c
--- hw/xfree86/loader/loadmod.c	2009-01-22 20:34:18.719862000 -0800
+++ hw/xfree86/loader/loadmod.c	2009-01-22 20:34:27.009905000 -0800
@@ -169,6 +169,12 @@ InitPathList(const char *path)
 		list[n][len - 1] = '/';
 		list[n][len] = '\0';
 	    }
+#ifdef SUNSOFT /* strip amd64/ off loader path if it's there */
+	    if (strcmp(list[n] + (len - 6), "amd64/") == 0) {
+		    list[n][len - 6] = '\0';
+	    }
+#endif
+	    
 	    n++;
 	}
 	elem = strtok(NULL, ",");
@@ -346,6 +352,9 @@ InitSubdirs(const char **subdirlist)
 	    } else
 		slash = "";
 	    len += oslen + 2;
+#if defined(SUNSOFT) && (defined(__amd64) || defined(__amd64__))
+	    len += 6; /* strlen("amd64/") */
+#endif	    
 	    if (!(subdirs[i] = xalloc(len))) {
 		while (--i >= 0)
 		    xfree(subdirs[i]);
@@ -355,10 +364,26 @@ InitSubdirs(const char **subdirlist)
 		return NULL;
 	    }
 	    /* tack on the OS name */
+#if defined(SUNSOFT) && (defined(__amd64) || defined(__amd64__))
+	    sprintf(subdirs[i], "%s%s%s/amd64/", *s, slash, osname);
+#else	    
 	    sprintf(subdirs[i], "%s%s%s/", *s, slash, osname);
+#endif	    
 	    i++;
 	    /* path as given */
+#if defined(SUNSOFT) && (defined(__amd64) || defined(__amd64__))
+	    if (!(subdirs[i] = xalloc(len))) {
+		while (--i >= 0)
+		    xfree(subdirs[i]);
+		xfree(subdirs);
+		if (tmp_subdirlist)
+		    xfree(tmp_subdirlist);
+		return NULL;
+	    }
+	    sprintf(subdirs[i], "%s%samd64/", *s, slash);
+#else	    
 	    subdirs[i] = xstrdup(*s);
+#endif	    
 	    i++;
 	    s++;
 	    if (indefault && !s) {