GNOME Bugzilla – Bug 602093
libgstcheck fails to export some symbols when built under et_EE locale
Last modified: 2009-11-18 19:24:34 UTC
When linking gstcheck library, the list of symbols are checked against regexp containing A-Z and a-z character ranges. This fails under et_EE locale because Z in Estonian alphabet is located after S and therefore characters starting with TUV... are not in the range anymore. Here's a diff between symbol dumps from libgstcheck library, one is built under C locale, another under et_EE. Please not that I have omitted symbol addresses. The first character in the list describes symbol type - uppercase characters means it is exported, lowercase means it is not exported: [snip] --- built-with-C.txt 2009-11-16 15:17:15.000000000 +0200 +++ built-with-et_EE.txt 2009-11-16 15:16:51.000000000 +0200 @@ -24,7 +24,7 @@ U __vsnprintf_chk@@GLIBC_2.3.4 a _edata a _end -T _fail_unless +t _fail_unless t _fini d _fstat b _gst_check_debug @@ -35,8 +35,8 @@ B _gst_check_threads_running U _gst_debug_category_new t _init -T _mark_point -T _tcase_add_test +t _mark_point +t _tcase_add_test U abort@@GLIBC_2.2.5 U alarm@@GLIBC_2.2.5 b alarm_received ... [/snip]
Created attachment 147886 [details] [review] gstreamer-fix-et_EE-regexp.patch
Amusing bug :) I think I'd favour the more verbose but possibly safer option of just putting ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz directly into the regex line instead of using shell variables there. A comment above 'print-check-symbols:' why we're not using a-z etc. would also be good, to make sure no one goes and 'cleans this up' in a few weeks.
PS: and please add an explanation to the commit message why the current code fails.
Created attachment 147898 [details] [review] gstreamer-regexp.patch Now comes with extra warning :) Unfortunately I couldn't figure out how to get rid of the duplication...
Created attachment 147901 [details] [review] gstreamer-regexp-v3.patch Added description about the issue to commit message and removed duplication.
Committed, thanks for the patch! commit 6b234d7ce4b687912e4778327945c64743db90ea Author: Priit Laes <plaes@plaes.org> Date: Mon Nov 16 15:47:57 2009 +0200 check: fix symbol exporting when building under et_EE locale [A-Z] regexp fails under et_EE locale because Z in Estonian alphabet is located after S and therefore characters starting with 'TUV...' are not in the range anymore. Fixes bug #602093.