diff options
author | somov <somov@yandex-team.com> | 2024-03-15 09:59:14 +0300 |
---|---|---|
committer | somov <somov@yandex-team.com> | 2024-03-15 10:09:57 +0300 |
commit | 65d0d84a586133fec1a91bf9816e40be597cf9a0 (patch) | |
tree | 426353c6c219c9cb3fa888580593a9af92052202 | |
parent | 972deb0a3ffc507a9ff49edafa83fde2ab49df83 (diff) | |
download | ydb-65d0d84a586133fec1a91bf9816e40be597cf9a0.tar.gz |
Fix USE_ICONV=local on macOS
07564a01625ba418360cb1b39a9df66f31a2ca6a
-rw-r--r-- | contrib/libs/libiconv/ya.make | 4 | ||||
-rw-r--r-- | library/cpp/charset/iconv.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/contrib/libs/libiconv/ya.make b/contrib/libs/libiconv/ya.make index 629f048083..6c6e4898be 100644 --- a/contrib/libs/libiconv/ya.make +++ b/contrib/libs/libiconv/ya.make @@ -36,6 +36,10 @@ ELSEIF (USE_ICONV == "dynamic") ELSEIF (USE_ICONV == "local") GLOBAL_CFLAGS(${USE_LOCAL_ICONV_CFLAGS}) + IF (OS_DARWIN) + LDFLAGS(-liconv) + ENDIF() + # Opensource code is compatible with libc provided iconv API on major linux distributions and macos. ELSE() PEERDIR( diff --git a/library/cpp/charset/iconv.cpp b/library/cpp/charset/iconv.cpp index 0b6dbace9e..66995bf770 100644 --- a/library/cpp/charset/iconv.cpp +++ b/library/cpp/charset/iconv.cpp @@ -20,7 +20,7 @@ TDescriptor::TDescriptor(const char* from, const char* to) TDescriptor::~TDescriptor() { if (!Invalid()) { - iconv_close(Descriptor_); + iconv_close(static_cast<iconv_t>(Descriptor_)); } } @@ -33,7 +33,7 @@ size_t NICONVPrivate::RecodeImpl(const TDescriptor& descriptor, const char* in, char* outPtr = out; size_t inSizeMod = inSize; size_t outSizeMod = outSize; - size_t res = iconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod); + size_t res = iconv(static_cast<iconv_t>(descriptor.Get()), &inPtr, &inSizeMod, &outPtr, &outSizeMod); read = inSize - inSizeMod; written = outSize - outSizeMod; |