mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-10 07:39:16 +00:00
ICU-5423 One possible fix for properly detecting the default timezone on Linux.
X-SVN-Rev: 20621
This commit is contained in:
parent
33659ae69f
commit
b64be9aad4
6 changed files with 275 additions and 2 deletions
|
@ -551,6 +551,15 @@ uprv_tzset()
|
|||
#endif
|
||||
}
|
||||
|
||||
static int32_t uprv_daylight() {
|
||||
#ifdef U_DAYLIGHT
|
||||
return U_DAYLIGHT;
|
||||
#else
|
||||
/* Windows documentation says the default is 1. */
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
U_CAPI int32_t U_EXPORT2
|
||||
uprv_timezone()
|
||||
{
|
||||
|
@ -617,6 +626,94 @@ static UBool isValidOlsonID(const char *id) {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef U_TZNAME
|
||||
#include <stdio.h>
|
||||
#define CONVERT_HOURS_TO_SECONDS(offset) (int32_t)(offset*3600)
|
||||
typedef struct OffsetZoneMapping {
|
||||
int32_t offsetSeconds;
|
||||
int32_t daylight;
|
||||
const char *stdID;
|
||||
const char *dstID;
|
||||
const char *olsonID;
|
||||
} OffsetZoneMapping;
|
||||
|
||||
/*
|
||||
This list tries to disambiguate a set of abbreviated timezone IDs and offsets
|
||||
and maps it to an Olson ID.
|
||||
Before adding anything to this list, take a look at
|
||||
icu/source/tools/tzcode/tz.alias
|
||||
*/
|
||||
static const struct OffsetZoneMapping OFFSET_ZONE_MAPPINGS[] = {
|
||||
{-45900, 1, "CHAST", "CHADT", "Pacific/Chatham"},
|
||||
{-43200, 1, "PETT", "PETST", "Asia/Kamchatka"},
|
||||
{-43200, 1, "NZST", "NZDT", "Pacific/Auckland"},
|
||||
{-43200, 1, "ANAT", "ANAST", "Asia/Anadyr"},
|
||||
{-39600, 1, "MAGT", "MAGST", "Asia/Magadan"},
|
||||
/*{-36000, 1, "EST", "EST", "Australia/Melbourne"},*/
|
||||
{-36000, 1, "SAKT", "SAKST", "Asia/Sakhalin"},
|
||||
{-36000, 1, "VLAT", "VLAST", "Asia/Vladivostok"},
|
||||
/*{-34200, 1, "CST", "CST", "Australia/Adelaide"},*/
|
||||
{-32400, 1, "YAKT", "YAKST", "Asia/Yakutsk"},
|
||||
{-32400, 1, "CHOT", "CHOST", "Asia/Choibalsan"},
|
||||
{-28800, 1, "IRKT", "IRKST", "Asia/Irkutsk"},
|
||||
{-28800, 1, "ULAT", "ULAST", "Asia/Ulaanbaatar"},
|
||||
{-25200, 1, "HOVT", "HOVST", "Asia/Hovd"},
|
||||
{-25200, 1, "KRAT", "KRAST", "Asia/Krasnoyarsk"},
|
||||
{-21600, 1, "NOVT", "NOVST", "Asia/Novosibirsk"},
|
||||
{-21600, 1, "OMST", "OMSST", "Asia/Omsk"},
|
||||
{-18000, 1, "YEKT", "YEKST", "Asia/Yekaterinburg"},
|
||||
{-14400, 1, "SAMT", "SAMST", "Europe/Samara"},
|
||||
{-14400, 1, "AMT", "AMST", "Asia/Yerevan"},
|
||||
{-14400, 1, "AZT", "AZST", "Asia/Baku"},
|
||||
{-10800, 1, "AST", "ADT", "Asia/Baghdad"},
|
||||
{-10800, 1, "MSK", "MSD", "Europe/Moscow"},
|
||||
{-7200, 0, "EET", "CEST", "Africa/Tripoli"},
|
||||
/*{-7200, 1, "EET", "EEST", "Africa/Cairo"},*/
|
||||
{-7200, 1, "IST", "IDT", "Asia/Jerusalem"},
|
||||
{-3600, 0, "CET", "WEST", "Africa/Algiers"},
|
||||
/*{-3600, 1, "WAT", "WAST", "Africa/Windhoek"},*/
|
||||
{0, 1, "GMT", "IST", "Europe/Dublin"},
|
||||
{0, 1, "GMT", "BST", "Europe/London"},
|
||||
/*{0, 1, "WET", "WEST", "Africa/Casablanca"},*/
|
||||
{0, 0, "WET", "WET", "Africa/El_Aaiun"},
|
||||
{3600, 1, "AZOT", "AZOST", "Atlantic/Azores"},
|
||||
{3600, 1, "EGT", "EGST", "America/Scoresbysund"},
|
||||
{10800, 1, "PMST", "PMDT", "America/Miquelon"},
|
||||
{10800, 1, "UYT", "UYST", "America/Montevideo"},
|
||||
{10800, 1, "WGT", "WGST", "America/Godthab"},
|
||||
{12600, 1, "NST", "NDT", "America/St_Johns"},
|
||||
/*{14400, 1, "AST", "ADT", "America/Halifax"},*/
|
||||
{14400, 1, "CLT", "CLST", "America/Santiago"},
|
||||
{14400, 1, "FKT", "FKST", "Atlantic/Stanley"},
|
||||
{14400, 1, "PYT", "PYST", "America/Asuncion"},
|
||||
{18000, 1, "CST", "CDT", "America/Havana"},
|
||||
/*{18000, 1, "EST", "EDT", "America/New_York"},*/ /* This doesn't work for America/Indianapolis, America/Jamaica, and some other non-US regions. */
|
||||
{21600, 1, "EAST", "EASST", "Chile/EasterIsland"},
|
||||
{21600, 0, "CST", "MDT", "America/Regina"},
|
||||
/*{25200, 1, "MST", "MDT", "America/Denver"},*/ /* This doesn't work for America/Phoenix and some places in Mexico */
|
||||
{28800, 0, "PST", "PST", "Pacific/Pitcairn"},
|
||||
{32400, 1, "AKST", "AKDT", "America/Juneau"},
|
||||
{36000, 1, "HAST", "HADT", "America/Adak"}
|
||||
};
|
||||
|
||||
static const char* remapShortTimeZone(const char *stdID, const char *dstID, int32_t daylightUsed, int32_t offset)
|
||||
{
|
||||
int32_t idx;
|
||||
fprintf(stderr, "std=%s dst=%s daylight=%d offset=%d\n", stdID, dstID, daylightUsed, offset);
|
||||
for (idx = 0; idx < (int32_t)sizeof(OFFSET_ZONE_MAPPINGS)/sizeof(OFFSET_ZONE_MAPPINGS[0]); idx++)
|
||||
{
|
||||
if (offset == OFFSET_ZONE_MAPPINGS[idx].offsetSeconds
|
||||
&& daylightUsed == OFFSET_ZONE_MAPPINGS[idx].daylight
|
||||
&& strcmp(OFFSET_ZONE_MAPPINGS[idx].stdID, stdID) == 0
|
||||
&& strcmp(OFFSET_ZONE_MAPPINGS[idx].dstID, dstID) == 0)
|
||||
{
|
||||
return OFFSET_ZONE_MAPPINGS[idx].olsonID;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
U_CAPI const char* U_EXPORT2
|
||||
uprv_tzname(int n)
|
||||
{
|
||||
|
@ -682,6 +779,10 @@ uprv_tzname(int n)
|
|||
U_TZNAME is usually a non-unique abbreviation,
|
||||
which isn't normally usable.
|
||||
*/
|
||||
tzenv = remapShortTimeZone(U_TZNAME[0], U_TZNAME[1], uprv_daylight(), uprv_timezone());
|
||||
if (tzenv != NULL) {
|
||||
return tzenv;
|
||||
}
|
||||
return U_TZNAME[n];
|
||||
#else
|
||||
return "";
|
||||
|
|
|
@ -246,6 +246,9 @@ typedef unsigned int uint32_t;
|
|||
#if @U_HAVE_TZNAME@
|
||||
#define U_TZNAME @U_TZNAME@
|
||||
#endif
|
||||
#if @U_HAVE_DAYLIGHT@
|
||||
#define U_DAYLIGHT @U_DAYLIGHT@
|
||||
#endif
|
||||
|
||||
#define U_HAVE_MMAP @HAVE_MMAP@
|
||||
#define U_HAVE_POPEN @U_HAVE_POPEN@
|
||||
|
|
|
@ -253,6 +253,9 @@ Intel can define _M_IX86 or _M_X64
|
|||
#if 1
|
||||
#define U_TZNAME _tzname
|
||||
#endif
|
||||
#if 1
|
||||
#define U_DAYLIGHT _daylight
|
||||
#endif
|
||||
|
||||
#define U_HAVE_MMAP 0
|
||||
#define U_HAVE_POPEN 0
|
||||
|
|
|
@ -44,7 +44,7 @@ endif
|
|||
|
||||
# For a dynamically called DLL module to share access to the POSIX external
|
||||
# variables, with its caller, the DLL module must define these _SHR_* macros.
|
||||
SHAREDLIBCPPFLAGS = -D_SHR_TZNAME -D_SHR_TIMEZONE
|
||||
SHAREDLIBCPPFLAGS = -D_SHR_TZNAME -D_SHR_TIMEZONE -D_SHR_DAYLIGHT
|
||||
|
||||
## Additional flags when building libraries and with threads
|
||||
THREADSCPPFLAGS = -D_OPEN_THREADS
|
||||
|
|
134
icu4c/source/configure
vendored
134
icu4c/source/configure
vendored
|
@ -309,7 +309,7 @@ ac_includes_default="\
|
|||
# include <unistd.h>
|
||||
#endif"
|
||||
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION LIB_VERSION LIB_VERSION_MAJOR UNICODE_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPPFLAGS CC CFLAGS LDFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA U_MAKE DOXYGEN ARFLAGS COMPILE_LINK_ENVVAR LIB_M ENABLE_SHARED ENABLE_STATIC ENABLE_DEBUG ENABLE_RELEASE U_DEFAULT_SHOW_DRAFT RANLIB ac_ct_RANLIB AR U_DISABLE_RENAMING U_ENABLE_TRACING ENABLE_RPATH U_INLINE THREADS_TRUE ICU_USE_THREADS HAVE_MMAP GENCCODE_ASSEMBLY CPP EGREP U_HAVE_INTTYPES_H U_IOSTREAM_SOURCE U_IS_BIG_ENDIAN U_HAVE_NL_LANGINFO U_HAVE_NL_LANGINFO_CODESET U_NL_LANGINFO_CODESET U_HAVE_NAMESPACE U_OVERRIDE_CXX_ALLOCATION U_HAVE_PLACEMENT_NEW U_HAVE_POPEN U_HAVE_TZSET U_TZSET U_HAVE_TZNAME U_TZNAME U_HAVE_TIMEZONE U_TIMEZONE HAVE_INT8_T HAVE_UINT8_T HAVE_INT16_T HAVE_UINT16_T HAVE_INT32_T HAVE_UINT32_T HAVE_INT64_T HAVE_UINT64_T U_HAVE_WCHAR_H U_HAVE_WCSCPY U_SIZEOF_WCHAR_T EXTRAS_TRUE ICUIO_TRUE LAYOUT_TRUE thedatadir pkgicudatadir thepkgicudatadir DATA_PACKAGING_MODE ICULIBSUFFIX U_HAVE_LIB_SUFFIX ICULIBSUFFIXCNAME TESTS_TRUE SAMPLES_TRUE ICUDATA_CHAR platform platform_make_fragment_name platform_make_fragment ld_rpath_suf AIX_SHLIB LIBOBJS LTLIBOBJS'
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION LIB_VERSION LIB_VERSION_MAJOR UNICODE_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPPFLAGS CC CFLAGS LDFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA U_MAKE DOXYGEN ARFLAGS COMPILE_LINK_ENVVAR LIB_M ENABLE_SHARED ENABLE_STATIC ENABLE_DEBUG ENABLE_RELEASE U_DEFAULT_SHOW_DRAFT RANLIB ac_ct_RANLIB AR U_DISABLE_RENAMING U_ENABLE_TRACING ENABLE_RPATH U_INLINE THREADS_TRUE ICU_USE_THREADS HAVE_MMAP GENCCODE_ASSEMBLY CPP EGREP U_HAVE_INTTYPES_H U_IOSTREAM_SOURCE U_IS_BIG_ENDIAN U_HAVE_NL_LANGINFO U_HAVE_NL_LANGINFO_CODESET U_NL_LANGINFO_CODESET U_HAVE_NAMESPACE U_OVERRIDE_CXX_ALLOCATION U_HAVE_PLACEMENT_NEW U_HAVE_POPEN U_HAVE_TZSET U_TZSET U_HAVE_TZNAME U_TZNAME U_HAVE_TIMEZONE U_TIMEZONE U_HAVE_DAYLIGHT U_DAYLIGHT HAVE_INT8_T HAVE_UINT8_T HAVE_INT16_T HAVE_UINT16_T HAVE_INT32_T HAVE_UINT32_T HAVE_INT64_T HAVE_UINT64_T U_HAVE_WCHAR_H U_HAVE_WCSCPY U_SIZEOF_WCHAR_T EXTRAS_TRUE ICUIO_TRUE LAYOUT_TRUE thedatadir pkgicudatadir thepkgicudatadir DATA_PACKAGING_MODE ICULIBSUFFIX U_HAVE_LIB_SUFFIX ICULIBSUFFIXCNAME TESTS_TRUE SAMPLES_TRUE ICUDATA_CHAR platform platform_make_fragment_name platform_make_fragment ld_rpath_suf AIX_SHLIB LIBOBJS LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
|
@ -6482,6 +6482,136 @@ fi
|
|||
|
||||
|
||||
|
||||
U_HAVE_DAYLIGHT=0
|
||||
echo "$as_me:$LINENO: checking for daylight" >&5
|
||||
echo $ECHO_N "checking for daylight... $ECHO_C" >&6
|
||||
if test "${ac_cv_var_daylight+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#ifndef __USE_POSIX
|
||||
#define __USE_POSIX
|
||||
#endif
|
||||
#ifndef __USE_XOPEN
|
||||
#define __USE_XOPEN
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
daylight = 1;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
(eval $ac_link) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest$ac_exeext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_cv_var_daylight=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_var_daylight=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_var_daylight" >&5
|
||||
echo "${ECHO_T}$ac_cv_var_daylight" >&6
|
||||
if test $ac_cv_var_daylight = yes; then
|
||||
U_DAYLIGHT=daylight
|
||||
U_HAVE_DAYLIGHT=1
|
||||
else
|
||||
echo "$as_me:$LINENO: checking for __daylight" >&5
|
||||
echo $ECHO_N "checking for __daylight... $ECHO_C" >&6
|
||||
if test "${ac_cv_var___daylight+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <time.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
__daylight = 1;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
(eval $ac_link) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest$ac_exeext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_cv_var___daylight=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_var___daylight=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_var___daylight" >&5
|
||||
echo "${ECHO_T}$ac_cv_var___daylight" >&6
|
||||
if test $ac_cv_var___daylight = yes; then
|
||||
U_DAYLIGHT=__daylight
|
||||
U_HAVE_DAYLIGHT=1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "$as_me:$LINENO: checking for int8_t" >&5
|
||||
echo $ECHO_N "checking for int8_t... $ECHO_C" >&6
|
||||
if test "${ac_cv_type_int8_t+set}" = set; then
|
||||
|
@ -8426,6 +8556,8 @@ s,@U_HAVE_TZNAME@,$U_HAVE_TZNAME,;t t
|
|||
s,@U_TZNAME@,$U_TZNAME,;t t
|
||||
s,@U_HAVE_TIMEZONE@,$U_HAVE_TIMEZONE,;t t
|
||||
s,@U_TIMEZONE@,$U_TIMEZONE,;t t
|
||||
s,@U_HAVE_DAYLIGHT@,$U_HAVE_DAYLIGHT,;t t
|
||||
s,@U_DAYLIGHT@,$U_DAYLIGHT,;t t
|
||||
s,@HAVE_INT8_T@,$HAVE_INT8_T,;t t
|
||||
s,@HAVE_UINT8_T@,$HAVE_UINT8_T,;t t
|
||||
s,@HAVE_INT16_T@,$HAVE_INT16_T,;t t
|
||||
|
|
|
@ -655,6 +655,40 @@ fi
|
|||
AC_SUBST(U_HAVE_TIMEZONE)
|
||||
AC_SUBST(U_TIMEZONE)
|
||||
|
||||
U_HAVE_DAYLIGHT=0
|
||||
AC_CACHE_CHECK(for daylight,ac_cv_var_daylight,
|
||||
[AC_TRY_LINK(
|
||||
changequote(<<, >>)dnl
|
||||
<<#ifndef __USE_POSIX
|
||||
#define __USE_POSIX
|
||||
#endif
|
||||
#ifndef __USE_XOPEN
|
||||
#define __USE_XOPEN
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
>>,
|
||||
changequote([, ])dnl
|
||||
[daylight = 1;], ac_cv_var_daylight=yes, ac_cv_var_daylight=no)])
|
||||
if test $ac_cv_var_daylight = yes; then
|
||||
U_DAYLIGHT=daylight
|
||||
U_HAVE_DAYLIGHT=1
|
||||
else
|
||||
AC_CACHE_CHECK(for __daylight,ac_cv_var___daylight,
|
||||
[AC_TRY_LINK(
|
||||
changequote(<<, >>)dnl
|
||||
<<#include <time.h>
|
||||
>>,
|
||||
changequote([, ])dnl
|
||||
[__daylight = 1;], ac_cv_var___daylight=yes, ac_cv_var___daylight=no)])
|
||||
if test $ac_cv_var___daylight = yes; then
|
||||
U_DAYLIGHT=__daylight
|
||||
U_HAVE_DAYLIGHT=1
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(U_HAVE_DAYLIGHT)
|
||||
AC_SUBST(U_DAYLIGHT)
|
||||
|
||||
dnl Checks for typedefs
|
||||
AC_CHECK_TYPE(int8_t,signed char)
|
||||
AC_CHECK_TYPE(uint8_t,unsigned char)
|
||||
|
|
Loading…
Add table
Reference in a new issue