Bug#859463: ruby-unf-ext FTBFS on ppc64el: unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 'char' inside { } [-Wnarrowing]

2017-04-11 Thread Niels Thykier
Control: tags -1 upstream fixed-upstream

On Sat, 08 Apr 2017 14:25:00 + Niels Thykier  wrote:
> Antonio Terceiro:
> > On Tue, Apr 04, 2017 at 02:26:00PM +, Niels Thykier wrote:
> >>[...]
> > 
> > Nope. That was actually done after the current upstream release that we
> > have in Debian, actually tyring to _fix_ the issue. The actual fix comes
> > a little later in
> > https://github.com/knu/ruby-unf_ext/commit/8a6a735b51ef903200fc541112e35b7cea781856
> > 
> > I even proposed to revert that:
> > https://github.com/knu/ruby-unf_ext/pull/27
> > 
> > Upstream seems to be cooking a new release, to be released at any time
> > now I assume. With or without that special case for ARM, the code buids
> > OK under ppc64el.
> > 
> > I will probably upload that, since the resulting upstream diff looks
> > quite unproblematic (if they accept my proposal, the chunk for
> > ext/unf_ext/extconf.rb will disappear from the final diff):
> > 
> > [...]
> > 
> 
> Great, thanks for following up. :)
> 
> I am looking forward to hearing about upstream's take on it and seeing
> the fix in stretch. :)
> 
> Thanks,
> ~Niels
> 
> 
> 
> 

I just noticed that upstream seems to have merged your pull request and
released 0.0.7.3, so I assume this bug is now fixed upstream:


https://github.com/knu/ruby-unf_ext/releases/tag/v0.0.7.3

Thanks,
~Niels



Processed: Re: Bug#859463: ruby-unf-ext FTBFS on ppc64el: unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 'char' inside { } [-Wnarrowing]

2017-04-11 Thread Debian Bug Tracking System
Processing control commands:

> tags -1 upstream fixed-upstream
Bug #859463 [src:ruby-unf-ext] ruby-unf-ext FTBFS on ppc64el: 
unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 
'char' inside { } [-Wnarrowing]
Added tag(s) fixed-upstream and upstream.

-- 
859463: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859463
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#859463: ruby-unf-ext FTBFS on ppc64el: unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 'char' inside { } [-Wnarrowing]

2017-04-08 Thread Niels Thykier
Antonio Terceiro:
> On Tue, Apr 04, 2017 at 02:26:00PM +, Niels Thykier wrote:
>>[...]
> 
> Nope. That was actually done after the current upstream release that we
> have in Debian, actually tyring to _fix_ the issue. The actual fix comes
> a little later in
> https://github.com/knu/ruby-unf_ext/commit/8a6a735b51ef903200fc541112e35b7cea781856
> 
> I even proposed to revert that:
> https://github.com/knu/ruby-unf_ext/pull/27
> 
> Upstream seems to be cooking a new release, to be released at any time
> now I assume. With or without that special case for ARM, the code buids
> OK under ppc64el.
> 
> I will probably upload that, since the resulting upstream diff looks
> quite unproblematic (if they accept my proposal, the chunk for
> ext/unf_ext/extconf.rb will disappear from the final diff):
> 
> [...]
> 

Great, thanks for following up. :)

I am looking forward to hearing about upstream's take on it and seeing
the fix in stretch. :)

Thanks,
~Niels



Bug#859463: ruby-unf-ext FTBFS on ppc64el: unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 'char' inside { } [-Wnarrowing]

2017-04-06 Thread Antonio Terceiro
On Tue, Apr 04, 2017 at 02:26:00PM +, Niels Thykier wrote:
> On Mon, 03 Apr 2017 23:38:48 +0300 Adrian Bunk  wrote:
> > Source: ruby-unf-ext
> > Version: 0.0.7.2-2
> > Severity: serious
> > 
> > ruby-unf-ext FTBFS on ppc64el (originally reported by Frederic Bonnard):
> > 
> > ...
> > unf/table.hh:13539:25: error: narrowing conversion of '-51' from 'int' to 
> > 'char' inside { } [-Wnarrowing]
> > unf/table.hh:13539:25: error: narrowing conversion of '-123' from 'int' to 
> > 'char' inside { } [-Wnarrowing]
> > unf/table.hh:13539:25: error: narrowing conversion of '-50' from 'int' to 
> > 'char' inside { } [-Wnarrowing]
> > unf/table.hh:13539:25: error: narrowing conversion of '-105' from 'int' to 
> > 'char' inside { } [-Wnarrowing]
> > unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 
> > 'char' inside { } [-Wnarrowing]
> > ...
> > 
> > 
> > Complete log is attached.
> 
> This is caused by ppc64el having "char" being unsigned by default.
> Beyond the table that needs to be converted/dealt with, there are about
> 20 -Wsign-conversion issues in the code that smells like they may cause
> issues as well.
> 
> That said, a short term fix may be to revert:
> https://github.com/knu/ruby-unf_ext/commit/1e2d2bc29798342ab2616eb3d74ea36c793a33e4

Nope. That was actually done after the current upstream release that we
have in Debian, actually tyring to _fix_ the issue. The actual fix comes
a little later in
https://github.com/knu/ruby-unf_ext/commit/8a6a735b51ef903200fc541112e35b7cea781856

I even proposed to revert that:
https://github.com/knu/ruby-unf_ext/pull/27

Upstream seems to be cooking a new release, to be released at any time
now I assume. With or without that special case for ARM, the code buids
OK under ppc64el.

I will probably upload that, since the resulting upstream diff looks
quite unproblematic (if they accept my proposal, the chunk for
ext/unf_ext/extconf.rb will disappear from the final diff):

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c20624..60c99a6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.0.7.3 (2017-04-06)
+
+- Fix compile issues on ARM and GCC 6.
+
 ## 0.0.7.2 (2016-02-01)
 
 - Version bump just for adding Windows binaries for Ruby 2.3.
diff --git a/ext/unf_ext/extconf.rb b/ext/unf_ext/extconf.rb
index 9068085..746d7ca 100644
--- a/ext/unf_ext/extconf.rb
+++ b/ext/unf_ext/extconf.rb
@@ -6,6 +6,17 @@ else
   have_library('stdc++')
 end
 
+case RUBY_PLATFORM
+when /\Aarm/
+  # A quick fix for char being unsigned by default on ARM
+  if defined?($CXXFLAGS)
+$CXXFLAGS << ' -fsigned-char'
+  else
+# Ruby < 2.0
+$CFLAGS << ' -fsigned-char'
+  end
+end
+
 create_makefile 'unf_ext'
 
 unless CONFIG['CXX']
diff --git a/ext/unf_ext/unf/normalizer.hh b/ext/unf_ext/unf/normalizer.hh
index b19b99c..d20244b 100644
--- a/ext/unf_ext/unf/normalizer.hh
+++ b/ext/unf_ext/unf/normalizer.hh
@@ -17,9 +17,9 @@ namespace UNF {
 
   public:
 Normalizer()
-  : nf_d(TABLE::NODES, TABLE::CANONICAL_DECOM_ROOT, TABLE::STRINGS),
-   nf_kd(TABLE::NODES, TABLE::COMPATIBILITY_DECOM_ROOT, TABLE::STRINGS),
-   nf_c(TABLE::NODES, TABLE::CANONICAL_COM_ROOT, TABLE::STRINGS),
+  : nf_d(TABLE::NODES, TABLE::CANONICAL_DECOM_ROOT, (const char 
*)TABLE::STRINGS),
+   nf_kd(TABLE::NODES, TABLE::COMPATIBILITY_DECOM_ROOT, (const char 
*)TABLE::STRINGS),
+   nf_c(TABLE::NODES, TABLE::CANONICAL_COM_ROOT, (const char 
*)TABLE::STRINGS),
nf_c_qc(TABLE::NODES, TABLE::NFC_ILLEGAL_ROOT),
nf_kc_qc(TABLE::NODES, TABLE::NFKC_ILLEGAL_ROOT),
ccc(TABLE::NODES, TABLE::CANONICAL_CLASS_ROOT)
diff --git a/ext/unf_ext/unf/table.hh b/ext/unf_ext/unf/table.hh
index 2b45703..ecfe147 100644
--- a/ext/unf_ext/unf/table.hh
+++ b/ext/unf_ext/unf/table.hh
@@ -6297,7 +6297,7 @@ const unsigned NODES[]={
 
0xFF00,0xFF00,0xFF00,0xFF00,0xFF00,0xFF00,0xFF00,0xFF00,0xFF00,0xFF00,
 0xFF00,0xFF00,0xFF00,0xFF00,0xFF00};
 
-const char STRINGS[]={
+const signed char STRINGS[]={
  -27,-113, -81, -27, -66,-105, -27,-106, -74, -25,-108, -77, -26, -70,-128, 
-27,-112,-120, -25, -87,
  -70, -25, -90,-127, -26,-116,-121, -23,-127,-118, -26,-115,-107, 
-26,-118,-107, -26, -68,-108, -27,
 -112, -71, -27, -93, -80, -24, -78, -87, -25, -75,-126, -27,-120, -99, 
-26,-106, -80, -27, -66,-116,
diff --git a/lib/unf_ext/version.rb b/lib/unf_ext/version.rb
index f9d0c50..7c77497 100644
--- a/lib/unf_ext/version.rb
+++ b/lib/unf_ext/version.rb
@@ -1,5 +1,5 @@
 module UNF
   class Normalizer
-VERSION = "0.0.7.2"
+VERSION = "0.0.7.3"
   end
 end
diff --git a/unf_ext.gemspec b/unf_ext.gemspec
index 28f6eda..c00426c 100644
--- a/unf_ext.gemspec
+++ b/unf_ext.gemspec
@@ -25,15 +25,16 @@ Gem::Specification.new do |gem|
   ]
 
   if RUBY_VERSION < "1.9"
+gem.add_development_dependency("rake", [">= 0.9.2.2", "< 11"])
 gem.add_development_dependency('i18n', '< 0.7.0')
 # Cap 

Bug#859463: ruby-unf-ext FTBFS on ppc64el: unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 'char' inside { } [-Wnarrowing]

2017-04-04 Thread Niels Thykier
On Mon, 03 Apr 2017 23:38:48 +0300 Adrian Bunk  wrote:
> Source: ruby-unf-ext
> Version: 0.0.7.2-2
> Severity: serious
> 
> ruby-unf-ext FTBFS on ppc64el (originally reported by Frederic Bonnard):
> 
> ...
> unf/table.hh:13539:25: error: narrowing conversion of '-51' from 'int' to 
> 'char' inside { } [-Wnarrowing]
> unf/table.hh:13539:25: error: narrowing conversion of '-123' from 'int' to 
> 'char' inside { } [-Wnarrowing]
> unf/table.hh:13539:25: error: narrowing conversion of '-50' from 'int' to 
> 'char' inside { } [-Wnarrowing]
> unf/table.hh:13539:25: error: narrowing conversion of '-105' from 'int' to 
> 'char' inside { } [-Wnarrowing]
> unf/table.hh:13539:25: error: narrowing conversion of '-52' from 'int' to 
> 'char' inside { } [-Wnarrowing]
> ...
> 
> 
> Complete log is attached.

This is caused by ppc64el having "char" being unsigned by default.
Beyond the table that needs to be converted/dealt with, there are about
20 -Wsign-conversion issues in the code that smells like they may cause
issues as well.

That said, a short term fix may be to revert:
https://github.com/knu/ruby-unf_ext/commit/1e2d2bc29798342ab2616eb3d74ea36c793a33e4

Thanks,
~Niels