acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for glibc 2.3 and later...
* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for glibc 2.3 and later, but not uClibc, without an execution test. * configure: Regenerate. * doc/xml/manual/configure.xml, doc/xml/manual/prerequisites.xml, doc/xml/faq.xml: Update. From-SVN: r159664
This commit is contained in:
parent
40013784db
commit
22b36782a3
@ -1,3 +1,11 @@
|
||||
2010-05-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for
|
||||
glibc 2.3 and later, but not uClibc, without an execution test.
|
||||
* configure: Regenerate.
|
||||
* doc/xml/manual/configure.xml, doc/xml/manual/prerequisites.xml,
|
||||
doc/xml/faq.xml: Update.
|
||||
|
||||
2010-05-21 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* include/tr1/functional: Use std::__addressof.
|
||||
|
@ -1740,41 +1740,11 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
|
||||
if test $enable_clocale_flag = gnu; then
|
||||
AC_EGREP_CPP([_GLIBCXX_ok], [
|
||||
#include <features.h>
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
|
||||
#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__)
|
||||
_GLIBCXX_ok
|
||||
#endif
|
||||
], enable_clocale_flag=gnu, enable_clocale_flag=generic)
|
||||
|
||||
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 j;
|
||||
__locale_t loc;
|
||||
__locale_t loc_dup;
|
||||
loc = __newlocale(1 << LC_ALL, "de_DE", 0);
|
||||
loc_dup = __duplocale(loc);
|
||||
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])
|
||||
fi
|
||||
|
||||
# Set it to scream when it hurts.
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="-Wimplicit-function-declaration -Werror"
|
||||
|
45
libstdc++-v3/configure
vendored
45
libstdc++-v3/configure
vendored
@ -15628,7 +15628,7 @@ fi
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <features.h>
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
|
||||
#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__)
|
||||
_GLIBCXX_ok
|
||||
#endif
|
||||
|
||||
@ -15642,49 +15642,6 @@ fi
|
||||
rm -f conftest*
|
||||
|
||||
|
||||
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 confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* 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";
|
||||
const char __two[] = "Äuglein";
|
||||
int i;
|
||||
int j;
|
||||
__locale_t loc;
|
||||
__locale_t loc_dup;
|
||||
loc = __newlocale(1 << LC_ALL, "de_DE", 0);
|
||||
loc_dup = __duplocale(loc);
|
||||
i = __strcoll_l(__one, __two, loc);
|
||||
j = __strcoll_l(__one, __two, loc_dup);
|
||||
return 0;
|
||||
}
|
||||
|
||||
_ACEOF
|
||||
if ac_fn_c_try_run "$LINENO"; then :
|
||||
enable_clocale_flag=gnu
|
||||
else
|
||||
enable_clocale_flag=generic
|
||||
fi
|
||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Set it to scream when it hurts.
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="-Wimplicit-function-declaration -Werror"
|
||||
|
@ -640,6 +640,8 @@
|
||||
5.0.1) and later uses localization and formatting code from the system
|
||||
C library (glibc) version 2.2.5 which contains necessary bugfixes.
|
||||
Most GNU/Linux distros make more recent versions available now.
|
||||
libstdc++ 4.6.0 and later require glibc 2.3 or later for this
|
||||
localization and formatting code.
|
||||
</para>
|
||||
<para>The guideline is simple: the more recent the C++ library, the
|
||||
more recent the C library. (This is also documented in the main
|
||||
|
@ -113,8 +113,7 @@
|
||||
<para>If not explicitly specified, the configure proccess tries
|
||||
to guess the most suitable package from the choices above. The
|
||||
default is 'generic'. On glibc-based systems of sufficient
|
||||
vintage (2.2.5 and newer) and capability (with installed DE and
|
||||
FR locale data), 'gnu' is automatically selected. This option
|
||||
vintage (2.3 and newer), 'gnu' is automatically selected. This option
|
||||
can change the library ABI.
|
||||
</para>
|
||||
</listitem></varlistentry>
|
||||
|
@ -58,16 +58,8 @@
|
||||
<para>
|
||||
If gcc 3.1.0 or later on is being used on linux, an attempt
|
||||
will be made to use "C" library functionality necessary for
|
||||
C++ named locale support. For gcc 3.2.1 and later, this
|
||||
means that glibc 2.2.5 or later is required and the "C"
|
||||
library de_DE locale information must be installed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
C++ named locale support. For gcc 4.6.0 and later, this
|
||||
means that glibc 2.3 or later is required.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Loading…
Reference in New Issue
Block a user