Author: dnusinow Date: 2006-03-06 21:15:33 -0500 (Mon, 06 Mar 2006) New Revision: 1403
Removed: branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/10_loader_speed_hack.diff Modified: branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/changelog branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/series Log: * Remove loader speed hack patch, which is obsolete and merged in a better form upstream. Thanks Daniel Stone. Modified: branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/changelog =================================================================== --- branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/changelog 2006-03-06 03:03:33 UTC (rev 1402) +++ branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/changelog 2006-03-07 02:15:33 UTC (rev 1403) @@ -11,14 +11,13 @@ + general/099e_xorgconf_manpage_overhaul.diff + s390/500_s390_support.diff + debian/910_debian_Xserver_RTFF.diff - + general/028_loader_speed_hack.diff * add 04_read_rom_in_chunks.diff. This reads PCI ROM in large chunks rather than one byte at a time. This patch by Alex Williamson and forwarded to us by Dann Frazier. Thanks to both of them. (closes: #353168) * Don't build xserver-xorg-core on s390. This means putting all the other arches as being explicitly listed. Damn !s390. - -- David Nusinow <[EMAIL PROTECTED]> Sun, 5 Mar 2006 21:58:07 -0500 + -- David Nusinow <[EMAIL PROTECTED]> Mon, 6 Mar 2006 21:14:00 -0500 xorg-server (1:1.0.1-1) experimental; urgency=low Deleted: branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/10_loader_speed_hack.diff =================================================================== --- branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/10_loader_speed_hack.diff 2006-03-06 03:03:33 UTC (rev 1402) +++ branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/10_loader_speed_hack.diff 2006-03-07 02:15:33 UTC (rev 1403) @@ -1,344 +0,0 @@ -$Id: 028_loader_speed_hack.diff 867 2005-11-13 16:29:11Z dnusinow $ - -This is the first (and most important) loader speed hack: instead of walking -the entire directory tree, stat()ing every file, and running a regex on it, -we just stat the directoires themselves, and attempt to open the files. - -The directory search order has also been arranged to be more optimal. - -Appending linux/ to every directory name should probably go, but causes -mysterious segfaults deep in hardware access, with a smashed stack. Tricky. - -Also, ignore requests to load speedo and GLcore, which shouldn't be loaded in -any case. - -Author: Daniel Stone <[EMAIL PROTECTED]> - -Index: xc/programs/Xserver/hw/xfree86/common/xf86Config.c -=================================================================== ---- xc/programs/Xserver/hw/xfree86/common/xf86Config.c.orig 2005-11-13 10:56:18.000000000 -0500 -+++ xc/programs/Xserver/hw/xfree86/common/xf86Config.c 2005-11-13 10:56:20.000000000 -0500 -@@ -253,6 +253,9 @@ - char **modulearray; - pointer *optarray; - XF86LoadPtr modp; -+ /* we pretend these modules don't exist */ -+ char *ignore[] = { "GLcore", "speedo" }; -+ int i = 0, doignore = 0; - - /* - * make sure the config file has been parsed and that we have a -@@ -287,6 +290,17 @@ - if (xf86configptr->conf_modules) { - modp = xf86configptr->conf_modules->mod_load_lst; - while (modp) { -+ for (i = 0, doignore = 0; i < 2; i++) { -+ if (strcmp(modp->load_name, ignore[i]) == 0) { -+ xf86Msg(X_WARNING, "Ignoring request to load module %s\n", -+ modp->load_name); -+ doignore = 1; -+ } -+ } -+ if (doignore) { -+ modp = (XF86LoadPtr) modp->list.next; -+ continue; -+ } - modulearray[count] = modp->load_name; - optarray[count] = modp->load_opt; - count++; -Index: xc/programs/Xserver/hw/xfree86/loader/loadmod.c -=================================================================== ---- xc/programs/Xserver/hw/xfree86/loader/loadmod.c.orig 2005-11-13 10:56:18.000000000 -0500 -+++ xc/programs/Xserver/hw/xfree86/loader/loadmod.c 2005-11-13 10:56:20.000000000 -0500 -@@ -218,79 +218,6 @@ - NULL - }; - --/* -- * Standard set of module name patterns to check, in order of preference -- * These are regular expressions (suitable for use with POSIX regex(3)). -- */ --static PatternRec stdPatterns[] = { -- {"^lib(.*)\\.so$",}, -- {"^lib(.*)\\.a$",}, -- {"(.*)_drv\\.so$",}, -- {"(.*)_drv\\.o$",}, -- {"(.*)\\.so$",}, -- {"(.*)\\.a$",}, -- {"(.*)\\.o$",}, -- {NULL,} --}; -- --static PatternPtr --InitPatterns(const char **patternlist) --{ -- char errmsg[80]; -- int i, e; -- PatternPtr patterns = NULL; -- PatternPtr p = NULL; -- static int firstTime = 1; -- const char **s; -- -- if (firstTime) { -- /* precompile stdPatterns */ -- firstTime = 0; -- for (p = stdPatterns; p->pattern; p++) -- if ((e = regcomp(&p->rex, p->pattern, REG_EXTENDED)) != 0) { -- regerror(e, &p->rex, errmsg, sizeof(errmsg)); -- FatalError("InitPatterns: regcomp error for `%s': %s\n", -- p->pattern, errmsg); -- } -- } -- -- if (patternlist) { -- for (i = 0, s = patternlist; *s; i++, s++) -- if (*s == DEFAULT_LIST) -- i += sizeof(stdPatterns) / sizeof(stdPatterns[0]) - 1 - 1; -- patterns = xalloc((i + 1) * sizeof(PatternRec)); -- if (!patterns) { -- return NULL; -- } -- for (i = 0, s = patternlist; *s; i++, s++) -- if (*s != DEFAULT_LIST) { -- p = patterns + i; -- p->pattern = *s; -- if ((e = regcomp(&p->rex, p->pattern, REG_EXTENDED)) != 0) { -- regerror(e, &p->rex, errmsg, sizeof(errmsg)); -- ErrorF("InitPatterns: regcomp error for `%s': %s\n", -- p->pattern, errmsg); -- i--; -- } -- } else { -- for (p = stdPatterns; p->pattern; p++, i++) -- patterns[i] = *p; -- if (p != stdPatterns) -- i--; -- } -- patterns[i].pattern = NULL; -- } else -- patterns = stdPatterns; -- return patterns; --} -- --static void --FreePatterns(PatternPtr patterns) --{ -- if (patterns && patterns != stdPatterns) -- xfree(patterns); --} -- - static const char ** - InitSubdirs(const char **subdirlist) - { -@@ -479,18 +406,15 @@ - } - - char ** --LoaderListDirs(const char **subdirlist, const char **patternlist) -+LoaderListDirs(const char **subdirlist, const char **unused) - { - char buf[PATH_MAX + 1]; - char **pathlist; - char **elem; - const char **subdirs; - const char **s; -- PatternPtr patterns; -- PatternPtr p; - DIR *d; - struct dirent *dp; -- regmatch_t match[2]; - struct stat stat_buf; - int len, dirlen; - char *fp; -@@ -504,11 +428,6 @@ - FreePathList(pathlist); - return NULL; - } -- if (!(patterns = InitPatterns(patternlist))) { -- FreePathList(pathlist); -- FreeSubdirs(subdirs); -- return NULL; -- } - - for (elem = pathlist; *elem; elem++) { - for (s = subdirs; *s; s++) { -@@ -516,52 +435,24 @@ - continue; - strcpy(buf, *elem); - strcat(buf, *s); -- fp = buf + dirlen; -- if (stat(buf, &stat_buf) == 0 && S_ISDIR(stat_buf.st_mode) && -- (d = opendir(buf))) { -+ if (d = opendir(buf)) { - if (buf[dirlen - 1] != '/') { - buf[dirlen++] = '/'; -- fp++; - } - while ((dp = readdir(d))) { - if (dirlen + strlen(dp->d_name) > PATH_MAX) - continue; -- strcpy(fp, dp->d_name); - if (!(stat(buf, &stat_buf) == 0 && - S_ISREG(stat_buf.st_mode))) - continue; -- for (p = patterns; p->pattern; p++) { -- if (regexec(&p->rex, dp->d_name, 2, match, 0) == 0 && -- match[1].rm_so != -1) { -- len = match[1].rm_eo - match[1].rm_so; -- save = listing; -- listing = xrealloc(listing, -- (n + 2) * sizeof(char *)); -- if (!listing) { -- if (save) { -- save[n] = NULL; -- FreeStringList(save); -- } -- FreePathList(pathlist); -- FreeSubdirs(subdirs); -- FreePatterns(patterns); -- return NULL; -- } -- listing[n] = xalloc(len + 1); -- if (!listing[n]) { -- FreeStringList(listing); -- FreePathList(pathlist); -- FreeSubdirs(subdirs); -- FreePatterns(patterns); -- return NULL; -- } -- strncpy(listing[n], dp->d_name + match[1].rm_so, -- len); -- listing[n][len] = '\0'; -- n++; -- break; -- } -- } -+ fp = LoaderGetCanonicalName(buf, NULL); -+ if (fp && strcmp(buf, fp) != 0) { -+ listing = xrealloc(listing, (n + 2)*sizeof(char *)); -+ listing[n] = xalloc(strlen(fp) + 1); -+ strncpy(listing[n], fp, strlen(fp)); -+ listing[n][strlen(fp)] = '\0'; -+ n++; -+ } - } - closedir(d); - } -@@ -757,7 +648,7 @@ - - ModuleDescPtr - LoadSubModule(ModuleDescPtr parent, const char *module, -- const char **subdirlist, const char **patternlist, -+ const char **subdirlist, const char **unused, - pointer options, const XF86ModReqInfo * modreq, - int *errmaj, int *errmin) - { -@@ -782,7 +673,7 @@ - return NULL; - } - -- submod = LoadModule(module, NULL, subdirlist, patternlist, options, -+ submod = LoadModule(module, NULL, subdirlist, NULL, options, - modreq, errmaj, errmin); - if (submod) { - parent->child = AddSibling(parent->child, submod); -@@ -833,12 +724,7 @@ - * subdirlist A NULL terminated list of subdirectories to search. When - * NULL, the default "stdSubdirs" list is used. The default - * list is also substituted for entries with value DEFAULT_LIST. -- * patternlist A NULL terminated list of regular expressions used to find -- * module filenames. Each regex should contain exactly one -- * subexpression that corresponds to the canonical module name. -- * When NULL, the default "stdPatterns" list is used. The -- * default list is also substituted for entries with value -- * DEFAULT_LIST. -+ * patternlist This parameter is deprecated, and should always be NULL. - * options A NULL terminated list of Options that are passed to the - * module's SetupProc function. - * modreq An optional XF86ModReqInfo* containing -@@ -863,7 +749,7 @@ - - ModuleDescPtr - LoadModule(const char *module, const char *path, const char **subdirlist, -- const char **patternlist, pointer options, -+ const char **unused, pointer options, - const XF86ModReqInfo * modreq, int *errmaj, int *errmin) - { - XF86ModuleData *initdata = NULL; -@@ -874,15 +760,14 @@ - char *p = NULL; - ModuleDescPtr ret = NULL; - int wasLoaded = 0; -- PatternPtr patterns = NULL; - int noncanonical = 0; - char *m = NULL; - - /*xf86Msg(X_INFO,"OS2DIAG: LoadModule: %s\n",module); */ - xf86MsgVerb(X_INFO, 3, "LoadModule: \"%s\"", module); - -- patterns = InitPatterns(patternlist); -- name = LoaderGetCanonicalName(module, patterns); -+ name = LoaderGetCanonicalName(module, NULL); -+ - noncanonical = (name && strcmp(module, name) != 0); - if (noncanonical) { - xf86ErrorFVerb(3, " (%s)\n", name); -@@ -934,7 +819,7 @@ - #endif - path_elem = pathlist; - while (!found && *path_elem != NULL) { -- found = FindModule(m, *path_elem, subdirlist, patterns); -+ found = FindModule(m, *path_elem, subdirlist, NULL); - path_elem++; - /* - * When the module name isn't the canonical name, search for the -@@ -1049,7 +934,6 @@ - - LoadModule_exit: - FreePathList(pathlist); -- FreePatterns(patterns); - TestFree(found); - TestFree(name); - TestFree(p); -@@ -1282,13 +1166,11 @@ - - /* Given a module path or file name, return the module's canonical name */ - static char * --LoaderGetCanonicalName(const char *modname, PatternPtr patterns) -+LoaderGetCanonicalName(const char *modname, PatternPtr unused) - { -- char *str; -+ char *str, tmpBuf[102]; - const char *s; - int len; -- PatternPtr p; -- regmatch_t match[2]; - - /* Strip off any leading path */ - s = strrchr(modname, '/'); -@@ -1297,17 +1179,14 @@ - else - s++; - -- /* Find the first regex that is matched */ -- for (p = patterns; p->pattern; p++) -- if (regexec(&p->rex, s, 2, match, 0) == 0 && match[1].rm_so != -1) { -- len = match[1].rm_eo - match[1].rm_so; -- str = xalloc(len + 1); -- if (!str) -- return NULL; -- strncpy(str, s + match[1].rm_so, len); -- str[len] = '\0'; -- return str; -- } -+ if (sscanf(s, "lib%s.a", tmpBuf) == 1) -+ return xstrdup(tmpBuf); -+ if (sscanf(s, "%s_drv.o", tmpBuf) == 1) -+ return xstrdup(tmpBuf); -+ if (sscanf(s, "lib%s.so", tmpBuf) == 1) -+ return xstrdup(tmpBuf); -+ if (sscanf(s, "%s_drv.so", tmpBuf) == 1) -+ return xstrdup(tmpBuf); - - /* If there is no match, return the whole name minus the leading path */ - return xstrdup(s); Modified: branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/series =================================================================== --- branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/series 2006-03-06 03:03:33 UTC (rev 1402) +++ branches/modular/xserver/xorg-server-X11R7.0-1.0.1/debian/patches/series 2006-03-07 02:15:33 UTC (rev 1403) @@ -7,4 +7,3 @@ 07_xorgconf_manpage_overhaul.diff -p0 08_s390_servermd.diff -p3 09_debian_xserver_rtff.diff -p0 -10_loader_speed_hack.diff -p3 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]