when there is directives before a "copy" directive and after a LC_COLLATE block, localedef misbehaves and isn't able to recurse more than one time. Attached is a patch that fixes that.
Created attachment 1893 [details] proposed fix against 2.6
ahem I made an error testing the patch, it does not work. But the bug is definitely here.
You haven't shown any bug. All locale files which come with glibc work. I'll close the bug unless you can show where the problem is.
(In reply to comment #3) > You haven't shown any bug. All locale files which come with glibc work. I'll > close the bug unless you can show where the problem is. yes there is a locale failing in upstream glibc, it's am_ET that reads : LC_COLLATE % % The ETHIOPIC script declaration must come first. % script <ETHIOPIC> % % Copy the template from ISO/IEC 14651 % copy "iso14651_t1" % the "script <ETHIOPIC>" breaks it all. It affects many locales that also copy am_ET (like eg gez_ER@abegede)
The am_ET locale is wrong. The new script must be defined after the copy. This now works fine.