Bug#812280: Fix/Workaround for the newmat FTBFS

2016-11-21 Thread Robert Davies

I have made a fix to the code but haven't tested it yet on all compilers.
There is one other problem that gives a lot of warnings with
some compilers that I am still trying to understand.

One wants to switch to C++14 if one possibly can.

What do I need to do when I am satisfied with the updated version?

Robert



At 10:07 AM 22/11/2016, Adrian Bunk wrote:


Control: tags -1 patch

What broke the build is that gcc 6 changed the default C++ standard
from C++98 to C++14.

Not all valid C++98 code is also valid C++11 and C++14 code.

Note that this just changed the default, when told to process C++98 code
gcc 6 does not differ in any significant way from gcc 5.

Making the code compatible with C++14 would be the best possible
solution, but as a workaround it is possible to fix the build with
this change to tell gcc that this is C++98 code.

CXXFLAGS set in debian/rules were not used at all, this is also fixed.

--- debian/rules.old2016-11-21 21:00:13.0 +
+++ debian/rules2016-11-21 21:02:13.0 +
@@ -15,6 +15,8 @@
CXXFLAGS += -O2
 endif

+CXXFLAGS += -std=gnu++98
+
 # shared library versions,
 version=`ls src/.libs/lib*.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
@@ -33,7 +35,7 @@

 configure-stamp: config-stamp
dh_testdir
-   CFLAGS="$(CFLAGS) -Wl,-z,defs" \
+   CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS) -Wl,-z,defs" \
./configure --host=$(DEB_HOST_GNU_TYPE) \
--build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
--mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info


cu
Adrian

--

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed




Bug#812280: Fix/Workaround for the newmat FTBFS

2016-11-21 Thread Adrian Bunk
Control: tags -1 patch

What broke the build is that gcc 6 changed the default C++ standard
from C++98 to C++14.

Not all valid C++98 code is also valid C++11 and C++14 code.

Note that this just changed the default, when told to process C++98 code 
gcc 6 does not differ in any significant way from gcc 5.

Making the code compatible with C++14 would be the best possible 
solution, but as a workaround it is possible to fix the build with
this change to tell gcc that this is C++98 code.

CXXFLAGS set in debian/rules were not used at all, this is also fixed.

--- debian/rules.old2016-11-21 21:00:13.0 +
+++ debian/rules2016-11-21 21:02:13.0 +
@@ -15,6 +15,8 @@
CXXFLAGS += -O2
 endif
 
+CXXFLAGS += -std=gnu++98
+
 # shared library versions,
 version=`ls src/.libs/lib*.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
@@ -33,7 +35,7 @@
 
 configure-stamp: config-stamp
dh_testdir
-   CFLAGS="$(CFLAGS) -Wl,-z,defs" \
+   CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS) -Wl,-z,defs" \
 ./configure --host=$(DEB_HOST_GNU_TYPE) \
 --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
 --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info


cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed