Hi,
It seems that there's a problem with the way that the jsoncpp-dev package
was built. It's missing support for 64-bit integer types on x86_64 and
perhaps other platforms.
Checking the contents of the library for 64 bit Json::Values, I see that
they're missing (no long long, unsinged long long)
$ readelf -W --dyn-sym libjsoncpp.so | c++filt | grep "Value::Value"
89: 0000000000018a3a 42 FUNC GLOBAL DEFAULT 10
Json::Value::Value(double)
94: 00000000000189ba 32 FUNC GLOBAL DEFAULT 10
Json::Value::Value(int)
98: 00000000000189da 32 FUNC GLOBAL DEFAULT 10
Json::Value::Value(unsigned int)
100: 00000000000189fa 31 FUNC GLOBAL DEFAULT 10
Json::Value::Value(long)
102: 0000000000018a1a 31 FUNC GLOBAL DEFAULT 10
Json::Value::Value(unsigned long)
112: 0000000000018aa6 35 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::Value&&)
148: 0000000000018a64 35 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::StaticString const&)
260: 0000000000018cb8 51 FUNC GLOBAL DEFAULT 10
Json::Value::Value(char const*, char const*)
305: 0000000000018be6 210 FUNC GLOBAL DEFAULT 10
Json::Value::Value(char const*)
332: 0000000000018cb8 51 FUNC GLOBAL DEFAULT 10
Json::Value::Value(char const*, char const*)
392: 0000000000018aca 162 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::ValueType)
438: 000000000001ad74 627 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::Value const&)
452: 0000000000018be6 210 FUNC GLOBAL DEFAULT 10
Json::Value::Value(char const*)
453: 0000000000018a64 35 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::StaticString const&)
503: 0000000000018aca 162 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::ValueType)
559: 0000000000018a88 30 FUNC GLOBAL DEFAULT 10
Json::Value::Value(bool)
561: 0000000000018a3a 42 FUNC GLOBAL DEFAULT 10
Json::Value::Value(double)
564: 00000000000189ba 32 FUNC GLOBAL DEFAULT 10
Json::Value::Value(int)
567: 00000000000189da 32 FUNC GLOBAL DEFAULT 10
Json::Value::Value(unsigned int)
572: 00000000000189fa 31 FUNC GLOBAL DEFAULT 10
Json::Value::Value(long)
574: 0000000000018dc6 46 FUNC GLOBAL DEFAULT 10
Json::Value::Value(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)
575: 0000000000018a1a 31 FUNC GLOBAL DEFAULT 10
Json::Value::Value(unsigned long)
579: 000000000001ad74 627 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::Value const&)
585: 0000000000018dc6 46 FUNC GLOBAL DEFAULT 10
Json::Value::Value(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)
591: 0000000000018aa6 35 FUNC GLOBAL DEFAULT 10
Json::Value::Value(Json::Value&&)
612: 0000000000018a88 30 FUNC GLOBAL DEFAULT 10
Json::Value::Value(bool)
There's a place you can turn off 64-bit support off in config.h, but it's
commented out in the distribution and I don't know why 64-bit support
wouldn't be provided as part of the package on x86_64:
// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
// integer
// Storages, and 64 bits integer support is disabled.
// #define JSON_NO_INT64 1
So at a minimum, there's a mismatch between the provided header file and
library.
$ apk info jsoncpp-dev
jsoncpp-dev-1.8.1-r1 description:
JSON C++ library (development files)
jsoncpp-dev-1.8.1-r1 webpage:
https://github.com/open-source-parsers/jsoncpp
jsoncpp-dev-1.8.1-r1 installed size:
122880
--
Andrew Bell
andrew.bell.ia_at_gmail.com
---
Unsubscribe: alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help: alpine-devel+help_at_lists.alpinelinux.org
---
Received on Sat Feb 24 2018 - 13:41:40 UTC