--- /dev/null
+Hi!
+
+Since end of October glibc does not canonicalize locale names returned by
+setlocale and as X looks up its locale alias without doing some obvious
+transformations like:
+s/\.iso8859\([0-9]*\)$/.ISO8859-\1/
+s/\.ISO-8859-\([0-9]*\)$/.ISO8859-\1/
+some X programs are either not localized any longer, or worse if not doing
+any error checking crash (such as rxvt).
+I think it would be good if X did these transformations (the size of its
+locale.alias could decrease quite a bit then), but I wonder if in the mean
+time a patch like this could not be used (these are just locales mentioned
+in glibc's locale.alias):
+
+--- xc/nls/locale.alias.jj Wed Dec 6 23:00:42 2000
++++ xc/nls/locale.alias Wed Dec 13 17:43:26 2000
+@@ -559,12 +559,14 @@ br_FR.iso885915: br_FR.ISO8859-15
+ ca: ca_ES.ISO8859-1
+ ca_ES: ca_ES.ISO8859-1
+ ca_ES.iso88591: ca_ES.ISO8859-1
++ca_ES.ISO-8859-1: ca_ES.ISO8859-1
+ ca_ES.iso885915: ca_ES.ISO8859-15
+ cs: cs_CZ.ISO8859-2
+ cs_CS: cs_CZ.ISO8859-2
+ cs_CS.ISO8859-2: cs_CZ.ISO8859-2
+ cs_CZ: cs_CZ.ISO8859-2
+ cs_CZ.iso88592: cs_CZ.ISO8859-2
++cs_CZ.ISO-8859-2: cs_CZ.ISO8859-2
+ cs_CZ.ISO_8859-2: cs_CZ.ISO8859-2
+ XCOMM cz is old name for cs, should be deleted in the future:
+ cz: cs_CZ.ISO8859-2
+@@ -579,8 +581,9 @@ da_DK: da_DK.ISO8859-1
+ da_DK.88591: da_DK.ISO8859-1
+ da_DK.88591.en: da_DK.ISO8859-1
+ da_DK.iso88591: da_DK.ISO8859-1
+-da_DK.ISO_8859-1: da_DK.ISO8859-1
+ da_DK.iso885915: da_DK.ISO8859-15
++da_DK.ISO-8859-1: da_DK.ISO8859-1
++da_DK.ISO_8859-1: da_DK.ISO8859-1
+ de: de_DE.ISO8859-1
+ de_AT: de_AT.ISO8859-1
+ de_AT.iso88591: de_AT.ISO8859-1
+@@ -594,6 +597,7 @@ de_DE: de_DE.ISO8859-1
+ de_DE.88591: de_DE.ISO8859-1
+ de_DE.88591.en: de_DE.ISO8859-1
+ de_DE.iso88591: de_DE.ISO8859-1
++de_DE.ISO-8859-1: de_DE.ISO8859-1
+ de_DE.ISO_8859-1: de_DE.ISO8859-1
+ de_DE.iso885915: de_DE.ISO8859-15
+ GER_DE.8859: de_DE.ISO8859-1
+@@ -604,6 +608,7 @@ ee_EE.iso88594: ee_EE.ISO8859-4
+ el: el_GR.ISO8859-7
+ el_GR: el_GR.ISO8859-7
+ el_GR.iso88597: el_GR.ISO8859-7
++el_GR.ISO-8859-7: el_GR.ISO8859-7
+ en: en_US.ISO8859-1
+ en_AU: en_AU.ISO8859-1
+ en_AU.iso88591: en_AU.ISO8859-1
+@@ -651,6 +656,7 @@ es_ES: es_ES.ISO8859-1
+ es_ES.88591: es_ES.ISO8859-1
+ es_ES.88591.en: es_ES.ISO8859-1
+ es_ES.iso88591: es_ES.ISO8859-1
++es_ES.ISO-8859-1: es_ES.ISO8859-1
+ es_ES.ISO_8859-1: es_ES.ISO8859-1
+ es_GT: es_GT.ISO8859-1
+ es_GT.iso88591: es_GT.ISO8859-1
+@@ -685,6 +691,7 @@ XCOMM charset. EVS8:2000 specifies ISO88
+ et: et_EE.ISO8859-15
+ et_EE: et_EE.ISO8859-15
+ et_EE.iso88591: et_EE.ISO8859-1
++et_EE.ISO-8859-1: et_EE.ISO8859-1
+ et_EE.iso88594: et_EE.ISO8859-4
+ et_EE.iso885913: et_EE.ISO8859-13
+ et_EE.iso885915: et_EE.ISO8859-15
+@@ -700,6 +707,7 @@ fi_FI: fi_FI.ISO8859-15
+ fi_FI.88591: fi_FI.ISO8859-1
+ fi_FI.88591.en: fi_FI.ISO8859-1
+ fi_FI.iso88591: fi_FI.ISO8859-1
++fi_FI.ISO-8859-1: fi_FI.ISO8859-1
+ fi_FI.ISO_8859-1: fi_FI.ISO8859-1
+ fi_FI.iso885915: fi_FI.ISO8859-15
+ fo: fo_FO.ISO8859-1
+@@ -727,6 +735,7 @@ fr_FR: fr_FR.ISO8859-1
+ fr_FR.88591: fr_FR.ISO8859-1
+ fr_FR.88591.en: fr_FR.ISO8859-1
+ fr_FR.iso88591: fr_FR.ISO8859-1
++fr_FR.ISO-8859-1: fr_FR.ISO8859-1
+ fr_FR.ISO_8859-1: fr_FR.ISO8859-1
+ fr_FR.iso885915: fr_FR.ISO8859-15
+ FRE_FR.8859: fr_FR.ISO8859-1
+@@ -744,6 +753,7 @@ gd_GB.iso885915: gd_GB.ISO8859-15
+ gl: gl_ES.ISO8859-1
+ gl_ES: gl_ES.ISO8859-1
+ gl_ES.iso88591: gl_ES.ISO8859-1
++gl_ES.ISO-8859-1: gl_ES.ISO8859-1
+ gl_ES.iso885915: gl_ES.ISO8859-15
+ he: he_IL.ISO8859-8
+ he_IL: he_IL.ISO8859-8
+@@ -758,10 +768,12 @@ hi_IN.isciidev: hi_IN.ISCII-DEV
+ hr: hr_HR.ISO8859-2
+ hr_HR: hr_HR.ISO8859-2
+ hr_HR.iso88592: hr_HR.ISO8859-2
++hr_HR.ISO-8859-2: hr_HR.ISO8859-2
+ hr_HR.ISO_8859-2: hr_HR.ISO8859-2
+ hu: hu_HU.ISO8859-2
+ hu_HU: hu_HU.ISO8859-2
+ hu_HU.iso88592: hu_HU.ISO8859-2
++hu_HU.ISO-8859-2: hu_HU.ISO8859-2
+ hy: hy_AM.ARMSCII-8
+ hy_AM: hy_AM.ARMSCII-8
+ hy_AM.armscii8: hy_AM.ARMSCII-8
+@@ -775,6 +787,7 @@ in_ID: id_ID.ISO8859-1
+ is: is_IS.ISO8859-1
+ is_IS: is_IS.ISO8859-1
+ is_IS.iso88591: is_IS.ISO8859-1
++is_IS.ISO-8859-1: is_IS.ISO8859-1
+ is_IS.ISO_8859-1: is_IS.ISO8859-1
+ is_IS.iso885915: is_IS.ISO8859-15
+ it: it_IT.ISO8859-1
+@@ -786,6 +799,7 @@ it_IT: it_IT.ISO8859-1
+ it_IT.88591: it_IT.ISO8859-1
+ it_IT.88591.en: it_IT.ISO8859-1
+ it_IT.iso88591: it_IT.ISO8859-1
++it_IT.ISO-8859-1: it_IT.ISO8859-1
+ it_IT.ISO_8859-1: it_IT.ISO8859-1
+ it_IT.iso885915: it_IT.ISO8859-15
+ iu: iu_CA.NUNACOM-8
+@@ -796,6 +810,7 @@ XCOMM those lines should be deleted in a
+ iw: he_IL.ISO8859-8
+ iw_IL: he_IL.ISO8859-8
+ iw_IL.iso88598: he_IL.ISO8859-8
++iw_IL.ISO-8859-8: iw_IL.ISO8859-8
+ #ifndef __uxp__
+ ja_JP: ja_JP.eucJP
+ #else /* __uxp__ */
+@@ -850,6 +865,7 @@ lt_LT: lt_LT.ISO8859-13
+ lt_LT.iso88594: lt_LT.ISO8859-4
+ lt_LT.ISO_8859-4: lt_LT.ISO8859-4
+ lt_LT.iso885913: lt_LT.ISO8859-13
++lt_LT.ISO-8859-13: lt_LT.ISO8859-13
+ lt_LT.ISO_8859-13: lt_LT.ISO8859-13
+ lv: lv_LV.ISO8859-13
+ lv_LV: lv_LV.ISO8859-13
+@@ -880,6 +896,7 @@ nl_NL: nl_NL.ISO8859-1
+ nl_NL.88591: nl_NL.ISO8859-1
+ nl_NL.88591.en: nl_NL.ISO8859-1
+ nl_NL.iso88591: nl_NL.ISO8859-1
++nl_NL.ISO-8859-1: nl_NL.ISO8859-1
+ nl_NL.ISO_8859-1: nl_NL.ISO8859-1
+ nl_NL.iso885915: nl_NL.ISO8859-15
+ no: no_NO.ISO8859-1
+@@ -893,6 +910,8 @@ nb_NO.88591: nb_NO.ISO8859-1
+ ny_NO.88591: ny_NO.ISO8859-1
+ no_NO.88591.en: no_NO.ISO8859-1
+ no_NO.iso88591: no_NO.ISO8859-1
++no_NO.ISO-8859-1: no_NO.ISO8859-1
++nb_NO.ISO-8859-1: nb_NO.ISO8859-1
+ no_NO.ISO_8859-1: no_NO.ISO8859-1
+ no_NO.iso885915: no_NO.ISO8859-15
+ nb_NO.iso885915: nb_NO.ISO8859-15
+@@ -915,6 +934,7 @@ ph_PH.iso88591: ph_PH.ISO8859-1
+ pl: pl_PL.ISO8859-2
+ pl_PL: pl_PL.ISO8859-2
+ pl_PL.iso88592: pl_PL.ISO8859-2
++pl_PL.ISO-8859-2: pl_PL.ISO8859-2
+ pp: pp_AN.ISO8859-1
+ pp_AN: pp_AN.ISO8859-1
+ pp_AN.iso88591: pp_AN.ISO8859-1
+@@ -926,14 +946,17 @@ pt_PT: pt_PT.ISO8859-1
+ pt_PT.88591: pt_PT.ISO8859-1
+ pt_PT.88591.en: pt_PT.ISO8859-1
+ pt_PT.iso88591: pt_PT.ISO8859-1
++pt_PT.ISO-8859-1: pt_PT.ISO8859-1
+ pt_PT.ISO_8859-1: pt_PT.ISO8859-1
+ pt_PT.iso885915: pt_PT.ISO8859-1
+ ro: ro_RO.ISO8859-2
+ ro_RO: ro_RO.ISO8859-2
+ ro_RO.iso88592: ro_RO.ISO8859-2
++ro_RO.ISO-8859-2: ro_RO.ISO8859-2
+ ru: ru_RU.KOI8-R
+ ru_RU: ru_RU.KOI8-R
+ ru_RU.iso88595: ru_RU.ISO8859-5
++ru_RU.ISO-8859-5: ru_RU.ISO8859-5
+ ru_RU.koi8r: ru_RU.KOI8-R
+ ru_RU.cp1251: ru_RU.CP1251
+ ru_RU.microsoftcp1251: ru_RU.CP1251
+@@ -958,10 +981,12 @@ sh_SP: sh_YU.ISO8859-2
+ sk: sk_SK.ISO8859-2
+ sk_SK: sk_SK.ISO8859-2
+ sk_SK.iso88592: sk_SK.ISO8859-2
++sk_SK.ISO-8859-2: sk_SK.ISO8859-2
+ sl: sl_SI.ISO8859-2
+ sl_CS: sl_CS.ISO8859-2
+ sl_SI: sl_SI.ISO8859-2
+ sl_SI.iso88592: sl_SI.ISO8859-2
++sl_SI.ISO-8859-2: sl_SI.ISO8859-2
+ sp: sp_YU.ISO8859-5
+ sp_YU: sp_YU.ISO8859-5
+ sq: sq_AL.ISO8859-2
+@@ -980,6 +1005,7 @@ sv_SE: sv_SE.ISO8859-1
+ sv_SE.88591: sv_SE.ISO8859-1
+ sv_SE.88591.en: sv_SE.ISO8859-1
+ sv_SE.iso88591: sv_SE.ISO8859-1
++sv_SE.ISO-8859-1: sv_SE.ISO8859-1
+ sv_SE.ISO_8859-1: sv_SE.ISO8859-1
+ sv_SE.iso885915: sv_SE.ISO8859-15
+ ta: ta_IN.TSCII-0
+@@ -998,6 +1024,7 @@ tl_PH.iso88591: tl_PH.ISO8859-1
+ tr: tr_TR.ISO8859-9
+ tr_TR: tr_TR.ISO8859-9
+ tr_TR.iso88599: tr_TR.ISO8859-9
++tr_TR.ISO-8859-9: tr_TR.ISO8859-9
+ tt: tt_RU.TATAR-CYR
+ tt_RU: tt_RU.TATAR-CYR
+ tt_RU.tatarcyr: tt_RU.TATAR-CYR
+@@ -1055,22 +1082,42 @@ spanish_spain.8859: es_ES.ISO8859-1
+ XCOMM The following locale names are used in HPUX 9.x
+ american.iso88591: en_US.ISO8859-1
+ arabic.iso88596: ar_AA.ISO8859-6
++bokmal: nb_NO.ISO8859-1
++bokmål: nb_NO.ISO8859-1
+ bulgarian: bg_BG.ISO8859-5
+ c-french.iso88591: fr_CA.ISO8859-1
++catalan: ca_ES.ISO8859-1
+ chinese-s: zh_CN.eucCN
+ chinese-t: zh_TW.eucTW
+ croatian: hr_HR.ISO8859-2
+ czech: cs_CZ.ISO8859-2
++danish: da_DK.ISO8859-1
++dansk: da_DK.ISO8859-1
+ danish.iso88591: da_DK.ISO8859-1
++deutsch: de_DE.ISO8859-1
++dutch: nl_NL.ISO8859-1
+ dutch.iso88591: nl_BE.ISO8859-1
++eesti: et_EE.ISO8859-1
+ english.iso88591: en_EN.ISO8859-1
++estonian: et_EE.ISO8859-1
++finnish: fi_FI.ISO8859-1
+ finnish.iso88591: fi_FI.ISO8859-1
++français: fr_FR.ISO8859-1
++french: fr_FR.ISO8859-1
+ french.iso88591: fr_CH.ISO8859-1
++galego: gl_ES.ISO8859-1
++galician: gl_ES.ISO8859-1
++german: de_DE.ISO8859-1
+ german.iso88591: de_CH.ISO8859-1
++greek: el_GR.ISO8859-7
+ greek.iso88597: el_GR.ISO8859-7
++hebrew: iw_IL.ISO8859-8
+ hebrew.iso88598: iw_IL.ISO8859-8
++hrvatski: hr_HR.ISO8859-2
+ hungarian: hu_HU.ISO8859-2
+ icelandic.iso88591: is_IS.ISO8859-1
++icelandic: is_IS.ISO8859-1
++italian: it_IT.ISO8859-1
+ italian.iso88591: it_IT.ISO8859-1
+ #if ! (defined(SVR4) && defined(sun))
+ japanese: ja_JP.SJIS
+@@ -1078,17 +1125,27 @@ japanese: ja_JP.SJIS
+ japanese: ja_JP.eucJP
+ #endif
+ japanese.euc: ja_JP.eucJP
++japanese.sjis: ja_JP.SJIS
+ korean: ko_KR.eucKR
++korean.euc: ko_KR.eucKR
++lithuanian: lt_LT.ISO8859-13
++norwegian: no_NO.ISO8859-1
+ norwegian.iso88591: no_NO.ISO8859-1
++portuguese: pt_PT.ISO8859-1
+ polish: pl_PL.ISO8859-2
+ portuguese.iso88591: pt_PT.ISO8859-1
++romanian: ro_RO.ISO8859-2
+ rumanian: ro_RO.ISO8859-2
+ russian: ru_RU.ISO8859-5
+ serbocroatian: sh_YU.ISO8859-2
+ slovak: sk_SK.ISO8859-2
+ slovene: sl_CS.ISO8859-2
++slovenian: sl_SI.ISO8859-2
++spanish: es_ES.ISO8859-1
+ spanish.iso88591: es_ES.ISO8859-1
++swedish: sv_SE.ISO8859-1
+ swedish.iso88591: sv_SE.ISO8859-1
++turkish: tr_TR.ISO8859-9
+ turkish.iso88599: tr_TR.ISO8859-9
+ univ.utf8: en_US.UTF-8
+ XCOMM Digital Unix utf
+
+
+ Jakub
--- /dev/null
+--- XFree86-4.0.1/xc/config/cf/Imake.rules.pmake Wed Oct 25 13:16:57 2000
++++ XFree86-4.0.1/xc/config/cf/Imake.rules Wed Oct 25 15:51:01 2000
+@@ -1027,7 +1027,7 @@
+ MoveToBakFile($@) @@\
+ LinkRule($@,$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\
+ @@\
+-Concat(load,server): @@\
++Concat(load,server): subdirs objects libs @@\
+ MoveToBakFile(ProgramTargetName(server)) @@\
+ LinkRule(ProgramTargetName(server),$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\
+ @@\
+@@ -2633,6 +2633,10 @@
+ #endif
+
+
++#ifndef SubdirsTarget
++#define SubdirsTarget all
++#endif
++
+ /*
+ * LangNamedTargetSubdirs - recursively make a series of steps
+ */
+@@ -2662,7 +2666,7 @@
+
+ #ifndef LangMakeSubdirs
+ #define LangMakeSubdirs(lang,dirs) @@\
+-LangNamedMakeSubdirs(lang,all,dirs)
++LangNamedMakeSubdirs(lang,SubdirsTarget,dirs)
+ #endif /* LangMakeSubdirs */
+
+
+@@ -2696,8 +2700,19 @@
+
+ #ifndef MakeSubdirs
+ #define MakeSubdirs(dirs) @@\
+-NamedMakeSubdirs(all,dirs)
++NamedMakeSubdirs(SubdirsTarget,dirs)
+ #endif /* MakeSubdirs */
++
++#ifndef MakeSubdirsDep
++#define MakeSubdirsDep(dirs,dep) @@\
++all:: dep @@\
++ @MakeFlagsToShellFlags(ik,set +e); \ @@\
++ for i in dirs ;\ @@\
++ do \ @@\
++ echo "making" all "in $(CURRENT_DIR)/$$i..."; \ @@\
++ MakeNamedTargetSubdir ($$i,PassCDebugFlags,all);\ @@\
++ done
++#endif /* MakeSubdirsDep */
+
+
+ /*
+--- XFree86-4.0.1/xc/lib/GL/Imakefile.pmake Sun Sep 24 15:50:59 2000
++++ XFree86-4.0.1/xc/lib/GL/Imakefile Wed Oct 25 15:51:38 2000
+@@ -3,6 +3,8 @@
+ #include <Threads.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ #define PassCDebugFlags
+
+@@ -292,11 +294,11 @@
+
+
+ #if NormalLibGlx
+-NormalDepLibraryTarget($(LIBNAME),$(GLXSUBDIRS) $(DONES),$(UOBJS))
++NormalDepLibraryTarget($(LIBNAME),all.subdirs,$(UOBJS))
+ InstallLibrary($(LIBNAME),$(USRLIBDIR))
+ #endif
+ #if SharedLibGlx
+-SharedDepLibraryTarget($(LIBNAME),$(SOREV),$(GLXSUBDIRS) $(DONES),$(OBJS) $(THREADOBJS),.,.)
++SharedDepLibraryTarget($(LIBNAME),$(SOREV),all.subdirs,$(OBJS) $(THREADOBJS),.,.)
+ InstallSharedLibrary($(LIBNAME),$(SOREV),$(SHLIBDIR))
+ #if LinkGLToUsrLib && AlternateUsrLibDir
+ install::
+@@ -308,11 +310,11 @@
+ #endif
+ #endif
+ #if DebugLibGlx
+-DebuggedDepLibraryTarget($(LIBNAME),$(GLXSUBDIRS) $(DONES),$(DOBJS))
++DebuggedDepLibraryTarget($(LIBNAME),all.subdirs,$(DOBJS))
+ InstallLibrary($(LIBNAME)_d,$(USRLIBDIR))
+ #endif
+ #if ProfileLibGlx
+-ProfiledDepLibraryTarget($(LIBNAME),$(GLXSUBDIRS) $(DONES),$(POBJS))
++ProfiledDepLibraryTarget($(LIBNAME),all.subdirs,$(POBJS))
+ InstallLibrary($(LIBNAME)_p,$(USRLIBDIR))
+ #endif
+
+@@ -320,7 +322,11 @@
+
+ #if BuildXF86DRI && !GlxUseSGISI && (!GlxBuiltInMesa || !defined(GlxDriverUsesMesa))
+ OSMESASUBDIRS = mesa/src/OSmesa
+-MakeSubdirs($(OSMESASUBDIRS))
++#if SharedLibGlx
++MakeSubdirsDep($(OSMESASUBDIRS),lib$(LIBNAME).so.$(SOREV))
++#else
++MakeSubdirsDep($(OSMESASUBDIRS),lib$(LIBNAME).a)
++#endif
+ #endif
+
+
+@@ -339,7 +345,11 @@
+
+ DRIVERSUBDIRS = mesa/src/drv
+
+-MakeSubdirs($(DRIVERSUBDIRS))
++#if SharedLibGlx
++MakeSubdirsDep($(DRIVERSUBDIRS),lib$(LIBNAME).so.$(SOREV))
++#else
++MakeSubdirsDep($(DRIVERSUBDIRS),lib$(LIBNAME).a)
++#endif
+
+ #endif
+
+--- XFree86-4.0.1/xc/lib/font/Imakefile.pmake Tue Sep 19 14:46:06 2000
++++ XFree86-4.0.1/xc/lib/font/Imakefile Wed Oct 25 15:54:16 2000
+@@ -3,6 +3,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ #define DoNormalLib NormalLibFont
+ #define DoSharedLib SharedLibFont
+@@ -119,31 +121,30 @@
+ #define _LinkBuildLibrary(lib) LinkBuildLibrary(lib)
+
+ #if NormalLibFont
+-NormalDepLibraryTarget($(LIBNAME),$(SUBDIRS) $(DONES),$(STATIC_OBJS))
++NormalDepLibraryTarget($(LIBNAME),all.subdirs,$(STATIC_OBJS))
+ InstallLibrary($(LIBNAME),$(USRLIBDIR))
+ #endif /* NormalLibFont */
+
+ #if SharedLibFont
+-SharedDepLibraryTarget($(LIBNAME),$(SOREV),$(SUBDIRS) $(DONES),$(SHARED_OBJS),.,.)
++SharedDepLibraryTarget($(LIBNAME),$(SOREV),all.subdirs,$(SHARED_OBJS),.,.)
+ InstallSharedLibrary($(LIBNAME),$(SOREV),$(SHLIBDIR))
+ #endif /* SharedLibFont */
+
+ #if DebugLibFont
+-DebuggedDepLibraryTarget(Xfont,$(SUBDIRS) $(DONES),$(DEBUG_OBJS))
++DebuggedDepLibraryTarget(Xfont,all.subdirs,$(DEBUG_OBJS))
+ InstallLibrary($(LIBNAME)_d,$(USRLIBDIR))
+ #endif /* DebugLibFont */
+
+ #if ProfileLibFont
+-ProfiledDepLibraryTarget(Xfont,$(SUBDIRS) $(DONES),$(PROFILE_OBJS))
++ProfiledDepLibraryTarget(Xfont,all.subdirs,$(PROFILE_OBJS))
+ InstallLibrary($(LIBNAME)_p,$(USRLIBDIR))
+ #endif /* ProfileLibFont */
+
+ #if BuildServer && DoLoadableServer
+-NormalDepLibraryTarget(fontbase,$(BASEDIRS) $(BASEDONES),$(BASELIBOBJS))
+-NormalDepRelocatableTarget(fontbase,$(BASEDIRS) $(BASEDONES),$(BASEOBJS))
++NormalDepLibraryTarget(fontbase,all.subdirs,$(BASELIBOBJS))
++NormalDepRelocatableTarget(fontbase,all.subdirs,$(BASEOBJS))
+ #endif
+
+-
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+--- XFree86-4.0.1/xc/lib/lbxutil/Imakefile.pmake Sat Apr 17 11:08:13 1999
++++ XFree86-4.0.1/xc/lib/lbxutil/Imakefile Wed Oct 25 15:51:01 2000
+@@ -8,6 +8,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ SUBDIRS = lbx_zlib delta image
+
+@@ -22,9 +24,9 @@
+ #undef _LinkBuildLibrary
+ #define _LinkBuildLibrary(lib) LinkBuildLibrary(lib)
+
+-NormalDepLibraryTarget(lbxutil,$(SUBDIRS) $(DONES),$(OBJS))
++NormalDepLibraryTarget(lbxutil,all.subdirs,$(OBJS))
+
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+
+--- XFree86-4.0.1/xc/programs/Xserver/GL/mesa/src/Imakefile.pmake Sun Sep 24 15:51:22 2000
++++ XFree86-4.0.1/xc/programs/Xserver/GL/mesa/src/Imakefile Wed Oct 25 15:51:01 2000
+@@ -4,6 +4,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ SUBDIRS = X
+
+@@ -367,9 +369,9 @@
+
+ ModuleObjectRule()
+
+-DepLibraryModuleTarget(GLcore,$(SUBDIRS) $(DONES) $(OBJS),$(OBJS) $(XOBJS))
++DepLibraryModuleTarget(GLcore,all.subdirs $(OBJS),$(OBJS) $(XOBJS))
+ InstallLibraryModule(GLcore,$(MODULEDIR),extensions)
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ #else
+ MakeSubdirs($(SUBDIRS))
+--- XFree86-4.0.1/xc/programs/Xserver/GL/Imakefile.pmake Fri Aug 25 00:20:08 2000
++++ XFree86-4.0.1/xc/programs/Xserver/GL/Imakefile Wed Oct 25 15:51:01 2000
+@@ -4,6 +4,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ #if GlxUseSGISI
+ CORE_SUBDIR = /* opengl */
+@@ -42,10 +44,10 @@
+
+ ModuleObjectRule()
+
+-DepLibraryModuleTarget(glx,$(SUBDIRS) $(DONES) $(MOBJS),$(OBJS))
++DepLibraryModuleTarget(glx,all.subdirs $(MOBJS),$(OBJS))
+
+ InstallLibraryModule(glx,$(MODULEDIR),extensions)
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+ MakeLintLibSubdirs($(SUBDIRS))
+--- XFree86-4.0.1/xc/programs/Xserver/PEX5/Imakefile.pmake Sat Aug 14 12:49:24 1999
++++ XFree86-4.0.1/xc/programs/Xserver/PEX5/Imakefile Wed Oct 25 15:51:01 2000
+@@ -5,6 +5,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ #ifndef PexDipexCDebugFlags
+ #define PexDipexCDebugFlags ServerCDebugFlags
+@@ -58,9 +60,9 @@
+
+ ModuleObjectRule()
+
+-DepLibraryModuleTarget(pex5,$(SUBDIRS) $(DONES) $(MOBJS),$(OBJS))
++DepLibraryModuleTarget(pex5,all.subdirs $(MOBJS),$(OBJS))
+ InstallLibraryModule(pex5,$(MODULEDIR),extensions)
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ #else
+ MakeSubdirs($(SUBDIRS))
+--- XFree86-4.0.1/xc/programs/Xserver/XIE/dixie/Imakefile.pmake Fri Aug 25 00:20:11 2000
++++ XFree86-4.0.1/xc/programs/Xserver/XIE/dixie/Imakefile Wed Oct 25 15:54:12 2000
+@@ -10,6 +10,8 @@
+ DONES = request/DONE import/DONE process/DONE export/DONE
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+
+ #if HasParallelMake
+@@ -20,9 +22,9 @@
+ $(DONES): $(SUBDIRS)
+ #endif
+
+-DepLibraryModuleTarget(dixie,$(SUBDIRS) $(DONES),$(OBJS))
++DepLibraryModuleTarget(dixie,all.subdirs,$(OBJS))
+
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+
+--- XFree86-4.0.1/xc/programs/Xserver/XIE/mixie/Imakefile.pmake Fri Aug 25 00:20:11 2000
++++ XFree86-4.0.1/xc/programs/Xserver/XIE/mixie/Imakefile Wed Oct 25 15:54:48 2000
+@@ -15,6 +15,8 @@
+ #endif
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+
+ #if HasParallelMake
+@@ -25,9 +27,9 @@
+ $(DONES): $(SUBDIRS)
+ #endif
+
+-DepLibraryModuleTarget(mixie,$(SUBDIRS) $(DONES),$(OBJS))
++DepLibraryModuleTarget(mixie,all.subdirs,$(OBJS))
+
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+
+--- XFree86-4.0.1/xc/programs/Xserver/XIE/Imakefile.pmake Sat Aug 14 12:49:24 1999
++++ XFree86-4.0.1/xc/programs/Xserver/XIE/Imakefile Wed Oct 25 15:51:01 2000
+@@ -5,6 +5,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+
+ SUBDIRS = dixie mixie
+@@ -53,9 +55,9 @@
+ #endif
+
+ ModuleObjectRule()
+-DepLibraryModuleTarget(xie,$(SUBDIRS) $(DONES) $(MOBJS),$(OBJS))
++DepLibraryModuleTarget(xie,all.subdirs $(MOBJS),$(OBJS))
+ InstallLibraryModule(xie,$(MODULEDIR),extensions)
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependTarget()
+
+--- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/Imakefile.pmake Fri Oct 20 16:59:00 2000
++++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/Imakefile Wed Oct 25 15:51:01 2000
+@@ -46,7 +46,9 @@
+
+ NormalLibraryObjectRule()
+
++#if !DoLoadableServer
+ ForceSubdirs($(SUBDIRS))
++#endif
+
+ DependSubdirs($(SUBDIRS))
+
+--- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/input/Imakefile.pmake Sun Mar 5 20:26:46 2000
++++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/input/Imakefile Wed Oct 25 15:51:01 2000
+@@ -3,6 +3,8 @@
+ #define IHaveModules
+ #include <Server.tmpl>
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ #if JoystickSupport
+ JOYSTICKDIR = joystick
+@@ -33,7 +35,7 @@
+ $(DONES): $(SUBDIRS)
+ #endif
+ #if !DoLoadableServer
+-NormalDepLibraryTarget(idriver,$(SUBDIRS) $(DONES) idriver.list,$(OBJS))
++NormalDepLibraryTarget(idriver,all.subdirs idriver.list,$(OBJS))
+ #endif
+ #else
+ #if !DoLoadableServer
+@@ -51,7 +53,7 @@
+
+ NormalLibraryObjectRule()
+
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+
+--- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/os-support/Imakefile.pmake Thu Aug 10 19:40:34 2000
++++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/os-support/Imakefile Wed Oct 25 15:51:01 2000
+@@ -9,6 +9,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ #if defined(i386Architecture) || defined(ia64Architecture) || \
+ (defined(LinuxArchitecture) && defined(AlphaArchitecture)) || \
+@@ -123,13 +125,13 @@
+ $(DONES): $(SUBDIRS)
+ #endif
+
+-NormalDepLibraryTarget(xf86_os,$(SUBDIRS) $(DONES),$(OBJS))
++NormalDepLibraryTarget(xf86_os,all.subdirs,$(OBJS))
+
+ #if !HasSnprintf
+ LinkSourceFile(snprintf.c,$(LIBSRC)/misc)
+ #endif
+
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+
+ DependSubdirs($(SUBDIRS))
+
+--- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/xaa/Imakefile.pmake Wed Sep 20 04:05:41 2000
++++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/xaa/Imakefile Wed Oct 25 15:51:01 2000
+@@ -4,6 +4,8 @@
+ #include <Server.tmpl>
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ EXPSRCS = lsb_first/?*.c msb_first/?*.c lsb_fixed/?*.c msb_fixed/?*.c
+
+@@ -52,14 +54,14 @@
+ ObjectFromSpecialSource(xaaSeg, xaaLine, -DPOLYSEGMENT)
+ ObjectFromSpecialSource(xaaDashSeg, xaaDashLine, -DPOLYSEGMENT)
+
+-DepLibraryModuleTarget(xaa, $(OBJS) $(SUBDIRS) $(DONES), $(OBJS) $(EXPOBJS))
++DepLibraryModuleTarget(xaa, $(OBJS) all.subdirs, $(OBJS) $(EXPOBJS))
+
+ InstallLibraryModule(xaa,$(MODULEDIR),.)
+
+ DependTarget()
+
+
+-ForceSubdirs($(SUBDIRS))
++MakeSubdirs($(SUBDIRS))
+ DependSubdirs($(SUBDIRS))
+
+
+--- XFree86-4.0.1/xc/programs/Xserver/Imakefile.pmake Wed Oct 25 15:51:01 2000
++++ XFree86-4.0.1/xc/programs/Xserver/Imakefile Wed Oct 25 15:51:01 2000
+@@ -662,7 +662,7 @@
+ MakeMutex($(XF86SERVERSUBDIRS) $(XF86SERVERLIBS) $(XF86SERVERSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(XF86SERVERLIBS) $(XF86SERVERSYSLIBS):: $(XF86SERVERSUBDIRS)
++$(XF86SERVEROBJS) $(XF86SERVERLIBS) $(XF86SERVERSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ SetUIDServerTarget(XFree86,$(XF86SERVERSUBDIRS),$(XF86SERVEROBJS),$(XF86SERVERLIBS),$(XF86SERVERSYSLIBS))
+@@ -724,7 +724,7 @@
+ MakeMutex($(FBDEVDIRS) $(FBDEVOBJS) $(FBDEVLIBS) $(FBDEVSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(FBDEVOBJS) $(XFBDEV) $(FBDEVLIBS) $(FBDEVSYSLIBS):: $(FBDEVDIRS)
++$(FBDEVOBJS) $(FBDEVLIBS) $(FBDEVSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xfbdev,$(FBDEVDIRS),$(FBDEVOBJS),$(FBDEVLIBS),$(FBDEVSYSLIBS))
+@@ -749,7 +749,7 @@
+ MakeMutex($(SAVAGEDIRS) $(SAVAGEOBJS) $(SAVAGELIBS) $(SAVAGESYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(SAVAGEOBJS) $(XSAVAGE) $(SAVAGELIBS) $(SAVAGESYSLIBS):: $(SAVAGEDIRS)
++$(SAVAGEOBJS) $(SAVAGELIBS) $(SAVAGESYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xsavage,$(SAVAGEDIRS),$(SAVAGEOBJS),$(SAVAGELIBS),$(SAVAGESYSLIBS))
+@@ -804,7 +804,7 @@
+ MakeMutex($(TRIDENTDIRS) $(TRIDENTLIBS) $(TRIDENTSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(TRIDENTOBJS) $(TRIDENTLIBS) $(TRIDENTSYSLIBS):: $(TRIDENTDIRS)
++$(TRIDENTOBJS) $(TRIDENTLIBS) $(TRIDENTSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xtrident,$(TRIDENTDIRS),$(TRIDENTOBJS),$(TRIDENTLIBS),$(TRIDENTSYSLIBS))
+@@ -829,7 +829,7 @@
+ MakeMutex($(SIS530DIRS) $(SIS530OBJS) $(SIS530LIBS) $(SIS530SYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(SIS530OBJS) $(SIS530LIBS) $(SIS530SYSLIBS):: $(SIS530DIRS)
++$(SIS530OBJS) $(SIS530LIBS) $(SIS530SYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xsis530,$(SIS530DIRS),$(SIS530OBJS),$(SIS530LIBS),$(SIS530SYSLIBS))
+@@ -854,7 +854,7 @@
+ MakeMutex($(TRIODIRS) $(TRIOOBJS) $(TRIOLIBS) $(TRIOSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(TRIOOBJS) $(TRIOLIBS) $(TRIOSYSLIBS):: $(TRIODIRS)
++$(TRIOOBJS) $(TRIOLIBS) $(TRIOSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xtrio,$(TRIODIRS),$(TRIOOBJS),$(TRIOLIBS),$(TRIOSYSLIBS))
+@@ -885,7 +885,7 @@
+ MakeMutex($(TS300DIRS) $(TS300OBJS) $(TS300LIBS) $(TS300SYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(TS300OBJS) $(TS300LIBS) $(TS300SYSLIBS):: $(TS300DIRS)
++$(TS300OBJS) $(TS300LIBS) $(TS300SYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xts300,$(TS300DIRS),$(TS300OBJS),$(TS300LIBS),$(TS300SYSLIBS))
+@@ -909,7 +909,7 @@
+ MakeMutex($(ITSYDIRS) $(ITSYOBJS) $(ITSYLIBS) $(ITSYSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(ITSYOBJS) $(ITSYLIBS) $(ITSYSYSLIBS):: $(ITSYDIRS)
++$(ITSYOBJS) $(ITSYLIBS) $(ITSYSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xitsy,$(ITSYDIRS),$(ITSYOBJS),$(ITSYLIBS),$(ITSYSYSLIBS))
+@@ -973,7 +973,7 @@
+ MakeMutex($(XPSUBDIRS) $(XPOBJS) $(XPLIBS) $(XPSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(XPOBJS) $(XPLIBS) $(XPSYSLIBS):: $(XPSUBDIRS)
++$(XPOBJS) $(XPLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER) $(XPSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xprt,$(XPSUBDIRS),$(XPOBJS),$(XPLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER),$(XPSYSLIBS))
+@@ -1005,7 +1005,7 @@
+ MakeMutex($(XNESTDIRS) $(XNESTOBJS) $(XNESTLIBS) $(XNESTSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(XNESTOBJS) $(XNESTLIBS) $(XNESTSYSLIBS):: $(XNESTDIRS)
++$(XNESTOBJS) $(XNESTLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER) $(XNESTSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xnest,$(XNESTDIRS),$(XNESTOBJS), \
+@@ -1070,7 +1070,7 @@
+ MakeMutex($(XVFBDIRS) $(XVFBOBJS) $(XVFB) $(XVFBLIBS) $(XVFBSYSLIBS))
+ #endif
+ #if ForceServerRemake
+-$(XVFBOBJS) $(XVFB) $(XVFBLIBS) $(XVFBSYSLIBS):: $(XVFBDIRS)
++$(XVFBOBJS) $(XVFB) $(XVFBLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER) $(XVFBSYSLIBS):: all.subdirs
+ @if [ -f $@ ]; then touch $@; fi
+ #endif
+ ServerTarget(Xvfb,$(XVFBDIRS),$(XVFBOBJS), \
+@@ -1130,11 +1130,13 @@
+ #endif
+
+ #define IHaveSubdirs
++#undef SubdirsTarget
++#define SubdirsTarget all.subdirs
+
+ DependSubdirs($(SUBDIRS))
+ MakeLintLibSubdirs($(SUBDIRS))
+ LintSubdirs($(SUBDIRS))
+
+-ForceSubdirs($(DEPDIRS) $(SUBDIRS))
++MakeSubdirs($(DEPDIRS) $(SUBDIRS))
+
+ InstallManPage(Xserver,$(MANDIR))
+--- XFree86-4.0.1/xc/programs/xkbcomp/Imakefile.pmake Mon Jan 31 20:33:45 2000
++++ XFree86-4.0.1/xc/programs/xkbcomp/Imakefile Wed Oct 25 15:51:01 2000
+@@ -48,7 +48,7 @@
+
+ LinkBuildBinary(ProgramTargetName(xkbcomp))
+
+-MakeSubdirs($(SUBDIRS))
++MakeSubdirsDep($(SUBDIRS),$(BUILDBINDIR)/xkbcomp)
+
+ #ifdef OS2Architecture
+ all::
+--- XFree86-4.0.1/xc/Makefile.pmake Wed Mar 22 22:23:30 2000
++++ XFree86-4.0.1/xc/Makefile Wed Oct 25 15:51:01 2000
+@@ -63,6 +63,7 @@
+ $(MAKE_CMD) $(MFLAGS) Makefiles
+ $(MAKE_CMD) $(MFLAGS) clean BOOTSTRAPSUBDIRS=
+ $(MAKE_CMD) $(MFLAGS) includes
++ $(MAKE) -C $(CONFIGSRC)/util gccmakedep
+ $(MAKE_CMD) $(MFLAGS) depend
+ $(MAKE_CMD) $(MFLAGS) $(WORLDOPTS) World
+ @echo ""
+@@ -88,7 +89,8 @@
+
+ depend.bootstrap: $(DEPENDSRC)/Makefile.proto
+ cd $(DEPENDSRC) && $(RM) -r Makefile Makefile.dep makedepend *.o bootstrap
+- cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto bootstrap
++ cd $(IMAKESRC) && mkdir X11 && cd X11 && ln -s ../../../include/* .
++ cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto makedepend
+
+ $(IMAKESRC)/Makefile.proto: depend.bootstrap
+ $(IMAKE_CMD) -s $(IMAKESRC)/Makefile.proto -f $(IMAKESRC)/Imakefile -DTOPDIR=$(IMAKETOP) -DCURDIR=$(IMAKESRC) -DBootStrap