Fri Oct 14 01:12:06 2011 UTC ()
Fix build of boost-libs in NetBSD/macppc: 'char' is not signed, so a piece
of code was raising warnings and failing to build.  Changed to use 255 for
error conditions instead of -1, along with unsigned chars unconditionally.


(jmmv)
diff -r1.35 -r1.36 pkgsrc/meta-pkgs/boost/distinfo
diff -r0 -r1.8 pkgsrc/meta-pkgs/boost/patches/patch-af

cvs diff -r1.35 -r1.36 pkgsrc/meta-pkgs/boost/distinfo (expand / switch to unified diff)

--- pkgsrc/meta-pkgs/boost/distinfo 2011/10/11 10:02:08 1.35
+++ pkgsrc/meta-pkgs/boost/distinfo 2011/10/14 01:12:06 1.36
@@ -1,14 +1,15 @@ @@ -1,14 +1,15 @@
1$NetBSD: distinfo,v 1.35 2011/10/11 10:02:08 adam Exp $ 1$NetBSD: distinfo,v 1.36 2011/10/14 01:12:06 jmmv Exp $
2 2
3SHA1 (boost_1_47_0.tar.bz2) = 6e3eb548b9d955c0bc6f71c51042b713b678136a 3SHA1 (boost_1_47_0.tar.bz2) = 6e3eb548b9d955c0bc6f71c51042b713b678136a
4RMD160 (boost_1_47_0.tar.bz2) = 511144eb5ade340115971c372a3c849bd55181f1 4RMD160 (boost_1_47_0.tar.bz2) = 511144eb5ade340115971c372a3c849bd55181f1
5Size (boost_1_47_0.tar.bz2) = 45952657 bytes 5Size (boost_1_47_0.tar.bz2) = 45952657 bytes
6SHA1 (patch-aa) = 62bb260fce3bca6dd5f61dd9b179fd40593d31b4 6SHA1 (patch-aa) = 62bb260fce3bca6dd5f61dd9b179fd40593d31b4
7SHA1 (patch-ab) = f1c95ae229465a4d2da76ce6ff88d76ace52fdd8 7SHA1 (patch-ab) = f1c95ae229465a4d2da76ce6ff88d76ace52fdd8
8SHA1 (patch-ac) = 54d40e6a62cdf40c4155c64d9f02df475fbe111d 8SHA1 (patch-ac) = 54d40e6a62cdf40c4155c64d9f02df475fbe111d
9SHA1 (patch-ad) = d36799e40e1f7e6f62768e1144859f22ce76a265 9SHA1 (patch-ad) = d36799e40e1f7e6f62768e1144859f22ce76a265
10SHA1 (patch-ae) = 2fb49c90bbb3fd797ccdfaaf44c93494a5988f52 10SHA1 (patch-ae) = 2fb49c90bbb3fd797ccdfaaf44c93494a5988f52
 11SHA1 (patch-af) = 560157e198b416be700f15fe816e0196134fe414
11SHA1 (patch-ag) = b19bf29b0c08ede6470e0a697f99d4ea796ab987 12SHA1 (patch-ag) = b19bf29b0c08ede6470e0a697f99d4ea796ab987
12SHA1 (patch-ah) = c32b43bdbbe3cecc15ad56172083ee6ed926b45b 13SHA1 (patch-ah) = c32b43bdbbe3cecc15ad56172083ee6ed926b45b
13SHA1 (patch-aq) = e5c7b72ffa2942ce401f3d9bf05498fd761df17a 14SHA1 (patch-aq) = e5c7b72ffa2942ce401f3d9bf05498fd761df17a
14SHA1 (patch-ar) = 91981e2edb93666de78c203a6cef3d5011b2b26a 15SHA1 (patch-ar) = 91981e2edb93666de78c203a6cef3d5011b2b26a

File Added: pkgsrc/meta-pkgs/boost/patches/Attic/patch-af
$NetBSD: patch-af,v 1.8 2011/10/14 01:12:06 jmmv Exp $

A 'char' cannot be expected to be signed.  PowerPC, for example, defines
the 'char' type as unsigned.  Fix this piece of code to not deal with
signed characters.

--- ./boost/archive/iterators/binary_from_base64.hpp.orig	2011-10-13 23:56:25.000000000 +0000
+++ ./boost/archive/iterators/binary_from_base64.hpp
@@ -39,28 +39,28 @@ template<class CharType>
 struct to_6_bit {
     typedef CharType result_type;
     CharType operator()(CharType t) const{
-        const char lookup_table[] = {
-            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-            -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,
-            52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,
-            -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,
-            15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,
-            -1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
-            41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1
+        unsigned char lookup_table[] = {
+            255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+            255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+            255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,
+            52,53,54,55,56,57,58,59,60,61,255,255,255,255,255,255,
+            255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,
+            15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,
+            255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
+            41,42,43,44,45,46,47,48,49,50,51,255,255,255,255,255
         };
         // metrowerks trips this assertion - how come?
         #if ! defined(__MWERKS__)
         BOOST_STATIC_ASSERT(128 == sizeof(lookup_table));
         #endif
-        signed char value = -1;
+        unsigned char value = 255;
         if((unsigned)t <= 127)
             value = lookup_table[(unsigned)t];
-        if(-1 == value)
+        if(255 == value)
             boost::serialization::throw_exception(
                 dataflow_exception(dataflow_exception::invalid_base64_character)
             );
-        return value;
+        return static_cast< CharType >(value);
     }
 };