From e2fd01035ba85b906dbf0e6b6112b7f8ff52beef Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Tue, 11 Jul 2017 14:27:07 -0700 Subject: [PATCH] Move non-locale.h APIs out of locale.cpp. libandroid_support only needs the locale.h stuff. Test: make checkbuild Bug: None Change-Id: I0c53fe9d2df4f9ff4b99771727034508bc89cb32 --- libc/Android.bp | 24 +++++++++++-------- libc/bionic/locale.cpp | 56 -------------------------------------------- libc/bionic/stdlib_l.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++++++ libc/bionic/string_l.cpp | 42 +++++++++++++++++++++++++++++++++ libc/bionic/strings_l.cpp | 38 ++++++++++++++++++++++++++++++ libc/bionic/wchar_l.cpp | 38 ++++++++++++++++++++++++++++++ 6 files changed, 191 insertions(+), 66 deletions(-) create mode 100644 libc/bionic/stdlib_l.cpp create mode 100644 libc/bionic/string_l.cpp create mode 100644 libc/bionic/strings_l.cpp create mode 100644 libc/bionic/wchar_l.cpp diff --git a/libc/Android.bp b/libc/Android.bp index 4f6ff1a7e..735915d2f 100644 --- a/libc/Android.bp +++ b/libc/Android.bp @@ -1330,6 +1330,13 @@ genrule { cc_library_static { defaults: ["libc_defaults"], srcs: [ + "bionic/NetdClientDispatch.cpp", + "bionic/__cmsg_nxthdr.cpp", + "bionic/__errno.cpp", + "bionic/__gnu_basename.cpp", + "bionic/__libc_current_sigrtmax.cpp", + "bionic/__libc_current_sigrtmin.cpp", + "bionic/__set_errno.cpp", "bionic/abort.cpp", "bionic/accept.cpp", "bionic/accept4.cpp", @@ -1352,7 +1359,6 @@ cc_library_static { "bionic/clock_nanosleep.cpp", "bionic/clone.cpp", "bionic/close.cpp", - "bionic/__cmsg_nxthdr.cpp", "bionic/connect.cpp", "bionic/ctype.cpp", "bionic/dirent.cpp", @@ -1360,7 +1366,6 @@ cc_library_static { "bionic/epoll_create.cpp", "bionic/epoll_pwait.cpp", "bionic/epoll_wait.cpp", - "bionic/__errno.cpp", "bionic/error.cpp", "bionic/eventfd_read.cpp", "bionic/eventfd_write.cpp", @@ -1386,7 +1391,6 @@ cc_library_static { "bionic/getpid.cpp", "bionic/getpriority.cpp", "bionic/gettid.cpp", - "bionic/__gnu_basename.cpp", "bionic/grp_pwd.cpp", "bionic/ifaddrs.cpp", "bionic/inotify_init.cpp", @@ -1394,8 +1398,6 @@ cc_library_static { "bionic/langinfo.cpp", "bionic/lchown.cpp", "bionic/lfs64_support.cpp", - "bionic/__libc_current_sigrtmax.cpp", - "bionic/__libc_current_sigrtmin.cpp", "bionic/libc_init_common.cpp", "bionic/libgen.cpp", "bionic/link.cpp", @@ -1414,9 +1416,8 @@ cc_library_static { "bionic/mknod.cpp", "bionic/mntent.cpp", "bionic/mremap.cpp", - "bionic/netdb.cpp", - "bionic/NetdClientDispatch.cpp", "bionic/net_if.cpp", + "bionic/netdb.cpp", "bionic/netinet_in.cpp", "bionic/nl_types.cpp", "bionic/open.cpp", @@ -1443,7 +1444,6 @@ cc_library_static { "bionic/semaphore.cpp", "bionic/send.cpp", "bionic/setegid.cpp", - "bionic/__set_errno.cpp", "bionic/seteuid.cpp", "bionic/setpgrp.cpp", "bionic/sigaction.cpp", @@ -1469,21 +1469,24 @@ cc_library_static { "bionic/socket.cpp", "bionic/stat.cpp", "bionic/statvfs.cpp", + "bionic/stdlib_l.cpp", "bionic/strchrnul.cpp", "bionic/strerror.cpp", "bionic/strerror_r.cpp", + "bionic/string_l.cpp", + "bionic/strings_l.cpp", "bionic/strsignal.cpp", "bionic/strtold.cpp", "bionic/symlink.cpp", "bionic/sync_file_range.cpp", - "bionic/sysinfo.cpp", - "bionic/syslog.cpp", "bionic/sys_msg.cpp", "bionic/sys_sem.cpp", "bionic/sys_shm.cpp", "bionic/sys_siglist.c", "bionic/sys_signame.c", "bionic/sys_time.cpp", + "bionic/sysinfo.cpp", + "bionic/syslog.cpp", "bionic/system_properties.cpp", "bionic/tdestroy.cpp", "bionic/termios.cpp", @@ -1493,6 +1496,7 @@ cc_library_static { "bionic/unlink.cpp", "bionic/wait.cpp", "bionic/wchar.cpp", + "bionic/wchar_l.cpp", "bionic/wcstod.cpp", "bionic/wctype.cpp", "bionic/wmempcpy.cpp", diff --git a/libc/bionic/locale.cpp b/libc/bionic/locale.cpp index 38e15b713..07f856933 100644 --- a/libc/bionic/locale.cpp +++ b/libc/bionic/locale.cpp @@ -178,59 +178,3 @@ locale_t uselocale(locale_t new_locale) { return old_locale; } - -int strcasecmp_l(const char* s1, const char* s2, locale_t) { - return strcasecmp(s1, s2); -} - -int strcoll_l(const char* s1, const char* s2, locale_t) { - return strcoll(s1, s2); -} - -char* strerror_l(int error, locale_t) { - return strerror(error); -} - -int strncasecmp_l(const char* s1, const char* s2, size_t n, locale_t) { - return strncasecmp(s1, s2, n); -} - -double strtod_l(const char* s, char** end_ptr, locale_t) { - return strtod(s, end_ptr); -} - -float strtof_l(const char* s, char** end_ptr, locale_t) { - return strtof(s, end_ptr); -} - -long strtol_l(const char* s, char** end_ptr, int base, locale_t) { - return strtol(s, end_ptr, base); -} - -long double strtold_l(const char* s, char** end_ptr, locale_t) { - return strtold(s, end_ptr); -} - -long long strtoll_l(const char* s, char** end_ptr, int base, locale_t) { - return strtoll(s, end_ptr, base); -} - -unsigned long strtoul_l(const char* s, char** end_ptr, int base, locale_t) { - return strtoul(s, end_ptr, base); -} - -unsigned long long strtoull_l(const char* s, char** end_ptr, int base, locale_t) { - return strtoull(s, end_ptr, base); -} - -size_t strxfrm_l(char* dst, const char* src, size_t n, locale_t) { - return strxfrm(dst, src, n); -} - -int wcscasecmp_l(const wchar_t* ws1, const wchar_t* ws2, locale_t) { - return wcscasecmp(ws1, ws2); -} - -int wcsncasecmp_l(const wchar_t* ws1, const wchar_t* ws2, size_t n, locale_t) { - return wcsncasecmp(ws1, ws2, n); -} diff --git a/libc/bionic/stdlib_l.cpp b/libc/bionic/stdlib_l.cpp new file mode 100644 index 000000000..18e9f86fa --- /dev/null +++ b/libc/bionic/stdlib_l.cpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +double strtod_l(const char* s, char** end_ptr, locale_t) { + return strtod(s, end_ptr); +} + +float strtof_l(const char* s, char** end_ptr, locale_t) { + return strtof(s, end_ptr); +} + +long strtol_l(const char* s, char** end_ptr, int base, locale_t) { + return strtol(s, end_ptr, base); +} + +long double strtold_l(const char* s, char** end_ptr, locale_t) { + return strtold(s, end_ptr); +} + +long long strtoll_l(const char* s, char** end_ptr, int base, locale_t) { + return strtoll(s, end_ptr, base); +} + +unsigned long strtoul_l(const char* s, char** end_ptr, int base, locale_t) { + return strtoul(s, end_ptr, base); +} + +unsigned long long strtoull_l(const char* s, char** end_ptr, int base, locale_t) { + return strtoull(s, end_ptr, base); +} + diff --git a/libc/bionic/string_l.cpp b/libc/bionic/string_l.cpp new file mode 100644 index 000000000..66bfb0e62 --- /dev/null +++ b/libc/bionic/string_l.cpp @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +int strcoll_l(const char* s1, const char* s2, locale_t) { + return strcoll(s1, s2); +} + +char* strerror_l(int error, locale_t) { + return strerror(error); +} + +size_t strxfrm_l(char* dst, const char* src, size_t n, locale_t) { + return strxfrm(dst, src, n); +} diff --git a/libc/bionic/strings_l.cpp b/libc/bionic/strings_l.cpp new file mode 100644 index 000000000..0983ab1de --- /dev/null +++ b/libc/bionic/strings_l.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +int strcasecmp_l(const char* s1, const char* s2, locale_t) { + return strcasecmp(s1, s2); +} + +int strncasecmp_l(const char* s1, const char* s2, size_t n, locale_t) { + return strncasecmp(s1, s2, n); +} diff --git a/libc/bionic/wchar_l.cpp b/libc/bionic/wchar_l.cpp new file mode 100644 index 000000000..0a131e878 --- /dev/null +++ b/libc/bionic/wchar_l.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +int wcscasecmp_l(const wchar_t* ws1, const wchar_t* ws2, locale_t) { + return wcscasecmp(ws1, ws2); +} + +int wcsncasecmp_l(const wchar_t* ws1, const wchar_t* ws2, size_t n, locale_t) { + return wcsncasecmp(ws1, ws2, n); +} -- 2.11.0