re PR libstdc++/32509 (unable to explicitely configure with a given locale model)

2007-06-28  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/32509
	* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Carry out the checks
	involving the de_DE locale only if an auto locale config is
	used for a target suitable for the gnu locale model.
	* docs/html/install.html: Update.
	* configure: Regenerated.

From-SVN: r126096
This commit is contained in:
Paolo Carlini 2007-06-28 22:58:32 +00:00 committed by Paolo Carlini
parent e301e2c4c2
commit 1ba741304a
4 changed files with 51 additions and 37 deletions

View File

@ -1,3 +1,12 @@
2007-06-28 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/32509
* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Carry out the checks
involving the de_DE locale only if an auto locale config is
used for a target suitable for the gnu locale model.
* docs/html/install.html: Update.
* configure: Regenerated.
2007-06-26 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/testsuite_api.h: New.

View File

@ -1341,21 +1341,22 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
#endif
], enable_clocale_flag=gnu, enable_clocale_flag=generic)
# Test for bugs early in glibc-2.2.x series
AC_TRY_RUN([
#define _GNU_SOURCE 1
#include <locale.h>
#include <string.h>
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
extern __typeof(newlocale) __newlocale;
extern __typeof(duplocale) __duplocale;
extern __typeof(strcoll_l) __strcoll_l;
#endif
int main()
{
const char __one[] = "Äuglein Augmen";
if test $enable_clocale = auto; then
# Test for bugs early in glibc-2.2.x series
AC_TRY_RUN([
#define _GNU_SOURCE 1
#include <locale.h>
#include <string.h>
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
extern __typeof(newlocale) __newlocale;
extern __typeof(duplocale) __duplocale;
extern __typeof(strcoll_l) __strcoll_l;
#endif
int main()
{
const char __one[] = "Äuglein Augmen";
const char __two[] = "Äuglein";
int i;
int i;
int j;
__locale_t loc;
__locale_t loc_dup;
@ -1364,10 +1365,11 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
i = __strcoll_l(__one, __two, loc);
j = __strcoll_l(__one, __two, loc_dup);
return 0;
}
],
[enable_clocale_flag=gnu],[enable_clocale_flag=generic],
[enable_clocale_flag=generic])
}
],
[enable_clocale_flag=gnu],[enable_clocale_flag=generic],
[enable_clocale_flag=generic])
fi
# Set it to scream when it hurts.
ac_save_CFLAGS="$CFLAGS"

View File

@ -14068,8 +14068,9 @@ fi
rm -f conftest*
# Test for bugs early in glibc-2.2.x series
if test "$cross_compiling" = yes; then
if test $enable_clocale = auto; then
# Test for bugs early in glibc-2.2.x series
if test "$cross_compiling" = yes; then
enable_clocale_flag=generic
else
cat >conftest.$ac_ext <<_ACEOF
@ -14079,19 +14080,19 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#define _GNU_SOURCE 1
#include <locale.h>
#include <string.h>
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
extern __typeof(newlocale) __newlocale;
extern __typeof(duplocale) __duplocale;
extern __typeof(strcoll_l) __strcoll_l;
#endif
int main()
{
const char __one[] = "Äuglein Augmen";
#define _GNU_SOURCE 1
#include <locale.h>
#include <string.h>
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
extern __typeof(newlocale) __newlocale;
extern __typeof(duplocale) __duplocale;
extern __typeof(strcoll_l) __strcoll_l;
#endif
int main()
{
const char __one[] = "Äuglein Augmen";
const char __two[] = "Äuglein";
int i;
int i;
int j;
__locale_t loc;
__locale_t loc_dup;
@ -14100,7 +14101,7 @@ cat >>conftest.$ac_ext <<_ACEOF
i = __strcoll_l(__one, __two, loc);
j = __strcoll_l(__one, __two, loc_dup);
return 0;
}
}
_ACEOF
rm -f conftest$ac_exeext
@ -14125,6 +14126,7 @@ enable_clocale_flag=generic
fi
rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
# Set it to scream when it hurts.
ac_save_CFLAGS="$CFLAGS"
@ -16569,7 +16571,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
cat > conftest.$ac_ext << EOF
#line 16572 "configure"
#line 16574 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.

View File

@ -80,9 +80,10 @@
information must be installed.
<p>
Note that those sanity checks are also perfomed when an explicit
--enable-clocale=gnu configure option is used: this behavior is
new in gcc 4.2.1 and defends against misconfigurations.
Note however that the sanity checks involving the de_DE locale are
skipped when an explicit --enable-clocale=gnu configure option is
used: only the basic checks are carried out, defending against
misconfigurations.
</p>
<p>