X-Original-To: alpine-devel@lists.alpinelinux.org Received: from mail-qt0-f180.google.com (mail-qt0-f180.google.com [209.85.216.180]) by lists.alpinelinux.org (Postfix) with ESMTP id EC21D5C4E61 for ; Sat, 24 Feb 2018 18:41:41 +0000 (GMT) Received: by mail-qt0-f180.google.com with SMTP id g14so14430936qti.2 for ; Sat, 24 Feb 2018 10:41:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Ien1uHIv2xzumZt2Vycljje5IrvJrsrueJDZsKzi1X4=; b=mYfvpdDziCJBf/Z39JhBCNoab1wQhirzlDZMgNYeEA5hx8LeECGfzYZHadHfcmycHe e4qXJtWY0xLcjzUyxHmCv4CyIFX3tTzQ+gqKxGrKmheA+NuG+/Dny4NpVVGY08rUrvMH EuEbxhOzBseX3EXAwh3gns/XHled5mZMj5RgYuQs7U6XHWMiwtqeEVGNlvPAAc+AOQov xxLR/BmB3W2CmYJcuR9uvVrHqz96kIFseO8VPKC/k0psKwqf7LhbLDQG9X7BdJHms5+a XjOI7wasa8NtZmGL2hUAsaUCgZYDfaHPug1G14KwYsP/AHuUvUBz7JEOPglvtWxrYcsR QLFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ien1uHIv2xzumZt2Vycljje5IrvJrsrueJDZsKzi1X4=; b=WmU+BbCl9uNpmiQoSs7Ckp+RzQZYOg9UM/JE3pN5Gx3RgFQNgkxdiL05/kplcn3Q7R pIgPaPHFPvFDY/8i/wQLeyGWq+uKPwwDN6wQU50LkAEeVm+xIfECINVOcVZhH9v6kBAm ZGaEPecHqPYqPUeqYbHTufKhoKvLGqlX/F6GUyOvapDoEb/0U1b9+5wtsG9k0cKd4kIa Dc+rTNvL7eBG5DDiLNzdiJg2KDS0ksZIJqiwPBdoGJOCXS6Vr/NbmWl+5Mrr8nWTdyWl 5cuGFJ4QwA5hlexu1WX6FrkQkkZ80BcU28Gd3agmN8GhJi8O9I/6PA3iH/gwxwlupVwT 0vFQ== X-Gm-Message-State: APf1xPC6wZ8zwo2cm+G5BLzEaSmsPB5QK4BHQ8PmBC9qGLD9njoVkLlz Oh2oiRIiybPBaR3dGxRugxCJLGK+0arHa8RmNQFqjiiS X-Google-Smtp-Source: AG47ELvwVaBXJz0VmdQ88XqeVuZpmULT64RysammFPswHqhssrM2afeqUYLShzfkiI4WMNPbDsVHDaQdLEVM4fZxSMw= X-Received: by 10.237.33.75 with SMTP id 69mr8913641qtc.21.1519497701347; Sat, 24 Feb 2018 10:41:41 -0800 (PST) X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Received: by 10.12.212.173 with HTTP; Sat, 24 Feb 2018 10:41:40 -0800 (PST) From: Andrew Bell Date: Sat, 24 Feb 2018 13:41:40 -0500 Message-ID: Subject: [alpine-devel] Missing 64-bit support in jsoncpp-dev build To: alpine-devel@lists.alpinelinux.org Content-Type: multipart/alternative; boundary="94eb2c0c8016b9d56f0565f9a0c4" --94eb2c0c8016b9d56f0565f9a0c4 Content-Type: text/plain; charset="UTF-8" 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, std::allocator > 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, std::allocator > 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@gmail.com --94eb2c0c8016b9d56f0565f9a0c4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

It seems that there's a problem= with the way that the jsoncpp-dev package was built. It's missing supp= ort for 64-bit integer types on x86_64 and perhaps other platforms.

Checking the contents of the library for 64 bit=C2=A0Json= ::Values, I see that they're missing (no long long, unsinged long long)=

$ readelf -W --dyn-sym libjsoncpp.so | c++filt | grep "Va= lue::Value"
=C2=A0 =C2=A0 89: 0000000000018a3a=C2=A0 =C2=A0 = 42 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::Value::Value(doubl= e)
=C2=A0 =C2=A0 94: 00000000000189ba=C2=A0 =C2=A0 32 FUNC=C2=A0 = =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::Value::Value(int)
=C2= =A0 =C2=A0 98: 00000000000189da=C2=A0 =C2=A0 32 FUNC=C2=A0 =C2=A0 GLOBAL DE= FAULT=C2=A0 =C2=A010 Json::Value::Value(unsigned int)
=C2=A0 =C2= =A0100: 00000000000189fa=C2=A0 =C2=A0 31 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT= =C2=A0 =C2=A010 Json::Value::Value(long)
=C2=A0 =C2=A0102: 000000= 0000018a1a=C2=A0 =C2=A0 31 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 = Json::Value::Value(unsigned long)
=C2=A0 =C2=A0112: 0000000000018= aa6=C2=A0 =C2=A0 35 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::V= alue::Value(Json::Value&&)
=C2=A0 =C2=A0148: 000000000001= 8a64=C2=A0 =C2=A0 35 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::= Value::Value(Json::StaticString const&)
=C2=A0 =C2=A0260: 000= 0000000018cb8=C2=A0 =C2=A0 51 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A0= 10 Json::Value::Value(char const*, char const*)
=C2=A0 =C2=A0305:= 0000000000018be6=C2=A0 =C2=A0210 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 = =C2=A010 Json::Value::Value(char const*)
=C2=A0 =C2=A0332: 000000= 0000018cb8=C2=A0 =C2=A0 51 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 = Json::Value::Value(char const*, char const*)
=C2=A0 =C2=A0392: 00= 00000000018aca=C2=A0 =C2=A0162 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2= =A010 Json::Value::Value(Json::ValueType)
=C2=A0 =C2=A0438: 00000= 0000001ad74=C2=A0 =C2=A0627 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010= Json::Value::Value(Json::Value const&)
=C2=A0 =C2=A0452: 000= 0000000018be6=C2=A0 =C2=A0210 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A0= 10 Json::Value::Value(char const*)
=C2=A0 =C2=A0453: 000000000001= 8a64=C2=A0 =C2=A0 35 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::= Value::Value(Json::StaticString const&)
=C2=A0 =C2=A0503: 000= 0000000018aca=C2=A0 =C2=A0162 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A0= 10 Json::Value::Value(Json::ValueType)
=C2=A0 =C2=A0559: 00000000= 00018a88=C2=A0 =C2=A0 30 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Js= on::Value::Value(bool)
=C2=A0 =C2=A0561: 0000000000018a3a=C2=A0 = =C2=A0 42 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::Value::Valu= e(double)
=C2=A0 =C2=A0564: 00000000000189ba=C2=A0 =C2=A0 32 FUNC= =C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::Value::Value(int)
=C2=A0 =C2=A0567: 00000000000189da=C2=A0 =C2=A0 32 FUNC=C2=A0 =C2=A0 GLO= BAL DEFAULT=C2=A0 =C2=A010 Json::Value::Value(unsigned int)
=C2= =A0 =C2=A0572: 00000000000189fa=C2=A0 =C2=A0 31 FUNC=C2=A0 =C2=A0 GLOBAL DE= FAULT=C2=A0 =C2=A010 Json::Value::Value(long)
=C2=A0 =C2=A0574: 0= 000000000018dc6=C2=A0 =C2=A0 46 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT=C2=A0 =C2= =A010 Json::Value::Value(std::__cxx11::basic_string<char, std::char_trai= ts<char>, std::allocator<char> > const&)
=C2= =A0 =C2=A0575: 0000000000018a1a=C2=A0 =C2=A0 31 FUNC=C2=A0 =C2=A0 GLOBAL DE= FAULT=C2=A0 =C2=A010 Json::Value::Value(unsigned long)
=C2=A0 =C2= =A0579: 000000000001ad74=C2=A0 =C2=A0627 FUNC=C2=A0 =C2=A0 GLOBAL DEFAULT= =C2=A0 =C2=A010 Json::Value::Value(Json::Value const&)
=C2=A0= =C2=A0585: 0000000000018dc6=C2=A0 =C2=A0 46 FUNC=C2=A0 =C2=A0 GLOBAL DEFAU= LT=C2=A0 =C2=A010 Json::Value::Value(std::__cxx11::basic_string<char, st= d::char_traits<char>, std::allocator<char> > const&)
=C2=A0 =C2=A0591: 0000000000018aa6=C2=A0 =C2=A0 35 FUNC=C2=A0 =C2=A0= GLOBAL DEFAULT=C2=A0 =C2=A010 Json::Value::Value(Json::Value&&)
=C2=A0 =C2=A0612: 0000000000018a88=C2=A0 =C2=A0 30 FUNC=C2=A0 =C2= =A0 GLOBAL DEFAULT=C2=A0 =C2=A010 Json::Value::Value(bool)
=
There's a place you can turn off 64-bit support off in c= onfig.h, but it's commented out in the distribution and I don't kno= w why 64-bit support wouldn't be provided as part of the package on x86= _64:

// If JSON_NO_INT64 is defined, then Jso= n 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 des= cription:
JSON C++ library (development files)

jsoncpp-dev-1.8.1-r1 webpage:

jsoncpp-dev-1.8.1-r1 installed size:
<= div>122880

--
--94eb2c0c8016b9d56f0565f9a0c4-- --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---