7038737 sparcv9 Xlib looking in wrong path for i18n loadable modules
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Fri, 22 Apr 2011 14:03:57 -0700
changeset 1115 00c1816630fe
parent 1114 ef342d3afb86
child 1116 605549b491ac
7038737 sparcv9 Xlib looking in wrong path for i18n loadable modules
open-src/lib/libX11/7038737.patch
open-src/lib/libX11/Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libX11/7038737.patch	Fri Apr 22 14:03:57 2011 -0700
@@ -0,0 +1,88 @@
+From 393921cf2188b2b0713cc157effaf17d0abab783 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <[email protected]>
+Date: Thu, 21 Apr 2011 16:21:04 -0700
+Subject: [PATCH:libX11] Delete special case code to append "/sparcv9" to i18n module path
+
+Was triggered by defined(__sparcv9) so only built on Solaris SPARC 64-bit.
+Inconsistent with all other platforms, and a bit overcomplicated.
+
+Should anyone need to continue using that path, simply build with
+a #define POSTLOCALELIBDIR "sparcv9" to get the same result.
+
+Fixes Solaris bug 7038737:
+ sparcv9 Xlib looking in wrong path for i18n loadable modules
+
+Signed-off-by: Alan Coopersmith <[email protected]>
+Reviewed-by: Daniel Stone <[email protected]>
+---
+ src/xlibi18n/XlcDL.c |   40 ----------------------------------------
+ 1 files changed, 0 insertions(+), 40 deletions(-)
+
+diff --git a/src/xlibi18n/XlcDL.c b/src/xlibi18n/XlcDL.c
+index bf06490..75e193c 100644
+--- a/src/xlibi18n/XlcDL.c
++++ b/src/xlibi18n/XlcDL.c
+@@ -86,16 +86,6 @@ Sun Microsystems, Inc. or its licensors is granted.
+ #include "XlcPublic.h"
+ #include "XlcPubI.h"
+ 
+-#if defined(_LP64)  && defined(__sparcv9)
+-# define	_MACH64_NAME		"sparcv9"
+-#else
+-# undef _MACH64_NAME
+-#endif /* defined(_LP64)  && defined(__sparcv9) */
+-
+-#ifdef _MACH64_NAME
+-#  define	_MACH64_NAME_LEN	(sizeof (_MACH64_NAME) - 1)
+-#endif
+-
+ #define XI18N_DLREL		2
+ 
+ #define	iscomment(ch)	((ch) == '\0' || (ch) == '#')
+@@ -269,35 +259,6 @@ __lc_path(const char *dl_name, const char *lc_dir)
+     if (strstr (dl_name, "../"))
+ 	return NULL;
+ 
+-#if defined (_LP64) && defined (_MACH64_NAME)
+-    len = (lc_dir ? strlen(lc_dir) : 0 ) +
+-	(dl_name ? strlen(dl_name) : 0) + _MACH64_NAME_LEN + 10;
+-    path = Xmalloc(len + 1);
+-
+-    if (strchr(dl_name, '/') != NULL) {
+-	char *tmp = strdup(dl_name);
+-	char *dl_dir, *dl_file;
+-	char *slash_p;
+-	slash_p = strchr(tmp, '/');
+-	*slash_p = '\0';
+-	dl_dir = tmp;
+-	dl_file = ++slash_p;
+-
+-	slash_p = strrchr(lc_dir, '/');
+-	*slash_p = '\0';
+-	strcpy(path, lc_dir); strcat(path, "/");
+-	strcat(path, dl_dir); strcat(path, "/");
+-	strcat(path, _MACH64_NAME); strcat(path, "/");
+-	strcat(path, dl_file); strcat(path, ".so.2");
+-
+-	*slash_p = '/';
+-	Xfree(tmp);
+-    } else {
+-	strcpy(path, lc_dir); strcat(path, "/");
+-	strcat(path, _MACH64_NAME); strcat(path, "/");
+-	strcat(path, dl_name); strcat(path, ".so.2");
+-    }
+-#else
+     len = (lc_dir ? strlen(lc_dir) : 0 ) +
+ 	(dl_name ? strlen(dl_name) : 0) + 10;
+ #if defined POSTLOCALELIBDIR
+@@ -322,7 +283,6 @@ __lc_path(const char *dl_name, const char *lc_dir)
+ #endif
+ 	strcat(path, dl_name); strcat(path, ".so.2");
+     }
+-#endif
+     return path;
+ }
+ 
+-- 
+1.7.3.2
+
--- a/open-src/lib/libX11/Makefile	Wed Apr 20 16:51:33 2011 -0700
+++ b/open-src/lib/libX11/Makefile	Fri Apr 22 14:03:57 2011 -0700
@@ -37,6 +37,7 @@
 SOURCE_PATCHES = \
 	xml-install.patch,-p1 \
 	xml-install-paths.patch,-p1 \
+	7038737.patch,-p1 \
 	1234757.patch \
 	4010755.patch \
 	4614834.patch \