diff -ru octave-4.0.3.orig/libgnu/Makefile.in octave-4.0.3/libgnu/Makefile.in --- octave-4.0.3.orig/libgnu/Makefile.in 2016-07-01 20:44:48.000000000 +0200 +++ octave-4.0.3/libgnu/Makefile.in 2018-03-01 11:26:53.437030700 +0100 @@ -932,7 +932,7 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ -HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_LOCALTIME_R = 1 HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ diff -ru octave-4.0.3.orig/libgnu/mktime.c octave-4.0.3/libgnu/mktime.c --- octave-4.0.3.orig/libgnu/mktime.c 2016-07-01 20:43:44.000000000 +0200 +++ octave-4.0.3/libgnu/mktime.c 2018-03-01 08:51:30.571844300 +0100 @@ -34,6 +34,7 @@ # define LEAP_SECONDS_POSSIBLE 1 #endif +#define _POSIX_C_SOURCE 1 #include #include diff -ru octave-4.0.3.orig/libgnu/strptime.c octave-4.0.3/libgnu/strptime.c --- octave-4.0.3.orig/libgnu/strptime.c 2016-07-01 20:43:45.000000000 +0200 +++ octave-4.0.3/libgnu/strptime.c 2018-03-01 08:53:08.758545200 +0100 @@ -19,6 +19,7 @@ # include #endif +#define _POSIX_C_SOURCE 1 #include #include diff -ru octave-4.0.3.orig/libgnu/time.in.h octave-4.0.3/libgnu/time.in.h --- octave-4.0.3.orig/libgnu/time.in.h 2016-07-01 20:43:45.000000000 +0200 +++ octave-4.0.3/libgnu/time.in.h 2018-03-01 09:27:49.362764000 +0100 @@ -31,12 +31,14 @@ && !defined __MINGW32__) \ || defined _@GUARD_PREFIX@_TIME_H) +#define _POSIX_C_SOURCE 1 # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H +#define _POSIX_C_SOURCE 1 # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ diff -ru octave-4.0.3.orig/libgnu/time_rz.c octave-4.0.3/libgnu/time_rz.c --- octave-4.0.3.orig/libgnu/time_rz.c 2016-07-01 20:43:42.000000000 +0200 +++ octave-4.0.3/libgnu/time_rz.c 2018-03-01 08:53:45.508591900 +0100 @@ -24,6 +24,7 @@ #include +#define _POSIX_C_SOURCE 1 #include #include diff -ru octave-4.0.3.orig/libgnu/timegm.c octave-4.0.3/libgnu/timegm.c --- octave-4.0.3.orig/libgnu/timegm.c 2016-07-01 20:43:42.000000000 +0200 +++ octave-4.0.3/libgnu/timegm.c 2018-03-01 08:54:31.977398700 +0100 @@ -20,6 +20,7 @@ # include #endif +#define _POSIX_C_SOURCE 1 #include #ifdef _LIBC diff -ru octave-4.0.3.orig/libinterp/corefcn/data.cc octave-4.0.3/libinterp/corefcn/data.cc --- octave-4.0.3.orig/libinterp/corefcn/data.cc 2016-07-01 20:40:27.000000000 +0200 +++ octave-4.0.3/libinterp/corefcn/data.cc 2018-03-01 08:13:34.078298700 +0100 @@ -4718,7 +4718,7 @@ else { int expon; - gnulib::frexpf (val, &expon); + frexpf (val, &expon); epsval(i) = std::pow (2.0f, static_cast (expon - 24)); } @@ -4744,7 +4744,7 @@ else { int expon; - gnulib::frexp (val, &expon); + frexp (val, &expon); epsval(i) = std::pow (2.0, static_cast (expon - 53)); } diff -ru octave-4.0.3.orig/libinterp/corefcn/gcd.cc octave-4.0.3/libinterp/corefcn/gcd.cc --- octave-4.0.3.orig/libinterp/corefcn/gcd.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/libinterp/corefcn/gcd.cc 2018-03-01 08:13:34.092947000 +0100 @@ -64,8 +64,8 @@ divide (const std::complex& a, const std::complex& b, std::complex& q, std::complex& r) { - FP qr = gnulib::floor ((a/b).real () + 0.5); - FP qi = gnulib::floor ((a/b).imag () + 0.5); + FP qr = floor ((a/b).real () + 0.5); + FP qi = floor ((a/b).imag () + 0.5); q = std::complex (qr, qi); @@ -131,7 +131,7 @@ while (bb != 0) { - double qq = gnulib::floor (aa / bb); + double qq = floor (aa / bb); double tt = fmod (aa, bb); aa = bb; diff -ru octave-4.0.3.orig/libinterp/corefcn/graphics.cc octave-4.0.3/libinterp/corefcn/graphics.cc --- octave-4.0.3.orig/libinterp/corefcn/graphics.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/libinterp/corefcn/graphics.cc 2018-03-01 08:13:34.124344800 +0100 @@ -6876,7 +6876,7 @@ } else { - b = static_cast (gnulib::floor (std::log10 (std::abs (x)))); + b = static_cast (floor (std::log10 (std::abs (x)))); a = x / std::pow (10.0, b); } } @@ -6974,14 +6974,14 @@ if (min_val > 0) { // Log plots with all positive data - min_val = pow (10, gnulib::floor (log10 (min_val))); + min_val = pow (10, floor (log10 (min_val))); max_val = pow (10, std::ceil (log10 (max_val))); } else { // Log plots with all negative data min_val = -pow (10, std::ceil (log10 (-min_val))); - max_val = -pow (10, gnulib::floor (log10 (-max_val))); + max_val = -pow (10, floor (log10 (-max_val))); } } else @@ -7000,7 +7000,7 @@ } double tick_sep = calc_tick_sep (min_val , max_val); - double min_tick = gnulib::floor (min_val / tick_sep); + double min_tick = floor (min_val / tick_sep); double max_tick = std::ceil (max_val / tick_sep); // Prevent round-off from cropping ticks min_val = std::min (min_val, tick_sep * min_tick); @@ -7062,7 +7062,7 @@ else tick_sep = calc_tick_sep (lo , hi); - int i1 = static_cast (gnulib::floor (lo / tick_sep)); + int i1 = static_cast (floor (lo / tick_sep)); int i2 = static_cast (std::ceil (hi / tick_sep)); if (limmode_is_auto) @@ -7143,9 +7143,9 @@ for (int i = 0; i < values.numel (); i++) { if (values(i) < 0.) - exponent = gnulib::floor (std::log10 (-values(i))); + exponent = floor (std::log10 (-values(i))); else - exponent = gnulib::floor (std::log10 (values(i))); + exponent = floor (std::log10 (values(i))); significand = values(i) * std::pow (10., -exponent); os.str (std::string ()); os << significand; diff -ru octave-4.0.3.orig/libinterp/corefcn/pr-output.cc octave-4.0.3/libinterp/corefcn/pr-output.cc --- octave-4.0.3.orig/libinterp/corefcn/pr-output.cc 2016-04-20 20:23:56.000000000 +0200 +++ octave-4.0.3/libinterp/corefcn/pr-output.cc 2018-03-01 08:13:34.139958300 +0100 @@ -238,7 +238,7 @@ if (x != 0) { double absval = (x < 0.0 ? -x : x); - int logabsval = static_cast (gnulib::floor (log10 (absval))); + int logabsval = static_cast (floor (log10 (absval))); /* Avoid using modulo function with negative arguments for portability. * See extended comment at calc_scale_exp */ if (logabsval < 0.0) @@ -254,7 +254,7 @@ { return 1 + (print_eng ? engineering_exponent (x) - : static_cast (gnulib::floor (log10 (x)))); + : static_cast (floor (log10 (x)))); } class @@ -3258,7 +3258,7 @@ { int new_digits = static_cast - (gnulib::floor (log10 (double (abs (nda(i).value ()))) + 1.0)); + (floor (log10 (double (abs (nda(i).value ()))) + 1.0)); if (new_digits > digits) digits = new_digits; diff -ru octave-4.0.3.orig/libinterp/corefcn/quadcc.cc octave-4.0.3/libinterp/corefcn/quadcc.cc --- octave-4.0.3.orig/libinterp/corefcn/quadcc.cc 2016-04-20 20:23:56.000000000 +0200 +++ octave-4.0.3/libinterp/corefcn/quadcc.cc 2018-03-01 08:13:34.155680300 +0100 @@ -1673,7 +1673,7 @@ wrap = true; for (i = 0; i < nivals + 1; i++) if (xisinf (iivals[i])) - iivals[i] = gnulib::copysign (1.0, iivals[i]); + iivals[i] = copysign (1.0, iivals[i]); else iivals[i] = 2.0 * atan (iivals[i]) / M_PI; } @@ -2037,7 +2037,7 @@ && ivl->c[0] / iv->c[0] > 2); if (ivl->ndiv > ndiv_max && 2 * ivl->ndiv > ivl->rdepth) { - igral = gnulib::copysign (octave_Inf, igral); + igral = copysign (octave_Inf, igral); warning ("quadcc: divergent integral detected"); break; } @@ -2133,7 +2133,7 @@ && ivr->c[0] / iv->c[0] > 2); if (ivr->ndiv > ndiv_max && 2 * ivr->ndiv > ivr->rdepth) { - igral = gnulib::copysign (octave_Inf, igral); + igral = copysign (octave_Inf, igral); warning ("quadcc: divergent integral detected"); break; } diff -ru octave-4.0.3.orig/libinterp/corefcn/rand.cc octave-4.0.3/libinterp/corefcn/rand.cc --- octave-4.0.3.orig/libinterp/corefcn/rand.cc 2016-04-20 20:23:56.000000000 +0200 +++ octave-4.0.3/libinterp/corefcn/rand.cc 2018-03-01 08:13:34.186606100 +0100 @@ -1205,7 +1205,7 @@ for (octave_idx_type i = 0; i < m; i++) { octave_idx_type k = i + - gnulib::floor (rvec[i] * (n - i)); + floor (rvec[i] * (n - i)); //For shuffling first m entries, no need to use extra //storage @@ -1229,7 +1229,7 @@ for (octave_idx_type i = 0; i < m; i++) { octave_idx_type k = i + - gnulib::floor (rvec[i] * (n - i)); + floor (rvec[i] * (n - i)); std::swap (ivec[i], ivec[k]); } } diff -ru octave-4.0.3.orig/libinterp/octave-value/ov-cell.cc octave-4.0.3/libinterp/octave-value/ov-cell.cc --- octave-4.0.3.orig/libinterp/octave-value/ov-cell.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/libinterp/octave-value/ov-cell.cc 2018-03-01 08:13:34.202242900 +0100 @@ -1141,7 +1141,7 @@ for (octave_idx_type i = 0; i < nel; i++) { std::ostringstream buf; - int digits = static_cast (gnulib::floor (::log10 (static_cast + int digits = static_cast (floor (::log10 (static_cast (nel)) + 1.0)); buf << "_" << std::setw (digits) << std::setfill ('0') << i; std::string s = buf.str (); diff -ru octave-4.0.3.orig/libinterp/octave-value/ov-float.cc octave-4.0.3/libinterp/octave-value/ov-float.cc --- octave-4.0.3.orig/libinterp/octave-value/ov-float.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/libinterp/octave-value/ov-float.cc 2018-03-01 08:13:34.218031200 +0100 @@ -318,7 +318,7 @@ SCALAR_MAPPER (exp, ::expf); SCALAR_MAPPER (expm1, ::expm1f); SCALAR_MAPPER (fix, ::fix); - SCALAR_MAPPER (floor, gnulib::floorf); + SCALAR_MAPPER (floor, floorf); SCALAR_MAPPER (log, rc_log); SCALAR_MAPPER (log2, rc_log2); SCALAR_MAPPER (log10, rc_log10); diff -ru octave-4.0.3.orig/libinterp/octave-value/ov-scalar.cc octave-4.0.3/libinterp/octave-value/ov-scalar.cc --- octave-4.0.3.orig/libinterp/octave-value/ov-scalar.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/libinterp/octave-value/ov-scalar.cc 2018-03-01 08:13:34.233708600 +0100 @@ -340,7 +340,7 @@ SCALAR_MAPPER (exp, ::exp); SCALAR_MAPPER (expm1, ::expm1); SCALAR_MAPPER (fix, ::fix); - SCALAR_MAPPER (floor, gnulib::floor); + SCALAR_MAPPER (floor, floor); SCALAR_MAPPER (log, rc_log); SCALAR_MAPPER (log2, rc_log2); SCALAR_MAPPER (log10, rc_log10); diff -ru octave-4.0.3.orig/liboctave/array/Range.cc octave-4.0.3/liboctave/array/Range.cc --- octave-4.0.3.orig/liboctave/array/Range.cc 2016-04-20 20:23:56.000000000 +0200 +++ octave-4.0.3/liboctave/array/Range.cc 2018-03-01 08:13:34.249575500 +0100 @@ -495,11 +495,11 @@ double rmax = q / (2.0 - ct); - double t1 = 1.0 + gnulib::floor (x); + double t1 = 1.0 + floor (x); t1 = (ct / q) * (t1 < 0.0 ? -t1 : t1); t1 = rmax < t1 ? rmax : t1; t1 = ct > t1 ? ct : t1; - t1 = gnulib::floor (x + t1); + t1 = floor (x + t1); if (x <= 0.0 || (t1 - x) < rmax) return t1; diff -ru octave-4.0.3.orig/liboctave/cruft/Faddeeva/Faddeeva.cc octave-4.0.3/liboctave/cruft/Faddeeva/Faddeeva.cc --- octave-4.0.3.orig/liboctave/cruft/Faddeeva/Faddeeva.cc 2016-04-20 20:23:56.000000000 +0200 +++ octave-4.0.3/liboctave/cruft/Faddeeva/Faddeeva.cc 2018-03-01 08:13:34.265323200 +0100 @@ -210,8 +210,8 @@ // has to do with floor(-0), which doesn't occur in the usage below, but // the Octave developers prefer that we silence the warning. # ifdef GNULIB_NAMESPACE -# define floor GNULIB_NAMESPACE::floor -# define log GNULIB_NAMESPACE::log +# define floor ::floor +# define log ::log # endif #else // !__cplusplus, i.e. pure C (requires C99 features) diff -ru octave-4.0.3.orig/liboctave/numeric/lo-mappers.cc octave-4.0.3/liboctave/numeric/lo-mappers.cc --- octave-4.0.3.orig/liboctave/numeric/lo-mappers.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/liboctave/numeric/lo-mappers.cc 2018-03-01 08:13:34.280819400 +0100 @@ -45,24 +45,24 @@ double xtrunc (double x) { - return gnulib::trunc (x); + return trunc (x); } double xcopysign (double x, double y) { - return gnulib::copysign (x, y); + return copysign (x, y); } double xfloor (double x) { - return gnulib::floor (x); + return floor (x); } double xround (double x) { - return gnulib::round (x); + return round (x); } double @@ -92,7 +92,7 @@ double xlog2 (double x) { - return gnulib::log2 (x); + return log2 (x); } Complex @@ -101,7 +101,7 @@ #if defined (M_LN2) static double ln2 = M_LN2; #else - static double ln2 = gnulib::log (2); + static double ln2 = log (2); #endif return std::log (x) / ln2; @@ -116,7 +116,7 @@ #if defined (M_LN2) static double ln2 = M_LN2; #else - static double ln2 = gnulib::log (2); + static double ln2 = log (2); #endif return exp (x * ln2); @@ -126,7 +126,7 @@ double xlog2 (double x, int& exp) { - return gnulib::frexp (x, &exp); + return frexp (x, &exp); } Complex @@ -280,24 +280,24 @@ float xtrunc (float x) { - return gnulib::truncf (x); + return truncf (x); } float xcopysign (float x, float y) { - return gnulib::copysignf (x, y); + return copysignf (x, y); } float xfloor (float x) { - return gnulib::floorf (x); + return floorf (x); } float xround (float x) { - return gnulib::roundf (x); + return roundf (x); } float @@ -327,7 +327,7 @@ float xlog2 (float x) { - return gnulib::log2f (x); + return log2f (x); } FloatComplex @@ -363,7 +363,7 @@ float xlog2 (float x, int& exp) { - return gnulib::frexpf (x, &exp); + return frexpf (x, &exp); } FloatComplex @@ -561,7 +561,7 @@ rc_log (double x) { const double pi = 3.14159265358979323846; - return x < 0.0 ? Complex (gnulib::log (-x), pi) : Complex (gnulib::log (x)); + return x < 0.0 ? Complex (log (-x), pi) : Complex (log (x)); } FloatComplex @@ -569,8 +569,8 @@ { const float pi = 3.14159265358979323846f; return (x < 0.0f - ? FloatComplex (gnulib::logf (-x), pi) - : FloatComplex (gnulib::logf (x))); + ? FloatComplex (logf (-x), pi) + : FloatComplex (logf (x))); } Complex diff -ru octave-4.0.3.orig/liboctave/numeric/lo-mappers.h octave-4.0.3/liboctave/numeric/lo-mappers.h --- octave-4.0.3.orig/liboctave/numeric/lo-mappers.h 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/liboctave/numeric/lo-mappers.h 2018-03-01 08:13:34.296672500 +0100 @@ -377,7 +377,7 @@ T xsignbit (T x) { - return signbit (x); + return std::signbit (x); } #endif diff -ru octave-4.0.3.orig/liboctave/numeric/lo-specfun.cc octave-4.0.3/liboctave/numeric/lo-specfun.cc --- octave-4.0.3.orig/liboctave/numeric/lo-specfun.cc 2016-04-20 20:23:57.000000000 +0200 +++ octave-4.0.3/liboctave/numeric/lo-specfun.cc 2018-03-01 08:13:34.312276100 +0100 @@ -633,7 +633,7 @@ retval = 2 * (s + 1) * u; } else - retval = gnulib::log (1 + x); + retval = log (1 + x); return retval; } @@ -692,7 +692,7 @@ retval = 2 * (s + 1.0f) * u; } else - retval = gnulib::logf (1.0f + x); + retval = logf (1.0f + x); return retval; } @@ -2978,7 +2978,7 @@ { const double pi = 3.14159265358979323846; return (x < -1.0 - ? Complex (gnulib::log (-(1.0 + x)), pi) + ? Complex (log (-(1.0 + x)), pi) : Complex (log1p (x))); } @@ -2986,7 +2986,7 @@ { const float pi = 3.14159265358979323846f; return (x < -1.0f - ? FloatComplex (gnulib::logf (-(1.0f + x)), pi) + ? FloatComplex (logf (-(1.0f + x)), pi) : FloatComplex (log1pf (x))); } @@ -3040,7 +3040,7 @@ else if (ax < 1.0) { // Tail region. - const double q = sqrt (-2*gnulib::log (0.5*(1-ax))); + const double q = sqrt (-2*log (0.5*(1-ax))); const double yn = ((((c[0]*q + c[1])*q + c[2])*q + c[3])*q + c[4])*q + c[5]; const double yd = (((d[0]*q + d[1])*q + d[2])*q + d[3])*q + 1.0; y = yn / yd * signum (-x); @@ -3119,8 +3119,8 @@ { // Tail region. const double q = (x < 1 - ? sqrt (-2*gnulib::log (0.5*x)) - : sqrt (-2*gnulib::log (0.5*(2-x)))); + ? sqrt (-2*log (0.5*x)) + : sqrt (-2*log (0.5*(2-x)))); const double yn = ((((c[0]*q + c[1])*q + c[2])*q + c[3])*q + c[4])*q + c[5]; @@ -3243,8 +3243,8 @@ if (temp <= acu && temp <= acu * value) { - value = value * exp (pp * gnulib::log (xx) - + (qq - 1.0) * gnulib::log (cx) - beta) / pp; + value = value * exp (pp * log (xx) + + (qq - 1.0) * log (cx) - beta) / pp; if (indx) { @@ -3342,7 +3342,7 @@ // Calculate the initial approximation. - r = sqrt (- gnulib::log (a * a)); + r = sqrt (- log (a * a)); ycur = r - (2.30753 + 0.27061 * r) / (1.0 + (0.99229 + 0.04481 * r) * r); @@ -3363,7 +3363,7 @@ if (t <= 0.0) { - value = 1.0 - exp ((gnulib::log ((1.0 - a) * qq) + beta) / qq); + value = 1.0 - exp ((log ((1.0 - a) * qq) + beta) / qq); } else { @@ -3371,7 +3371,7 @@ if (t <= 1.0) { - value = exp ((gnulib::log (a * pp) + beta) / pp); + value = exp ((log (a * pp) + beta) / pp); } else { @@ -3413,8 +3413,8 @@ } xin = value; - ycur = (ycur - a) * exp (beta + r * gnulib::log (xin) - + t * gnulib::log (1.0 - xin)); + ycur = (ycur - a) * exp (beta + r * log (xin) + + t * log (1.0 - xin)); if (ycur * yprev <= 0.0) { diff -ru octave-4.0.3.orig/src/Makefile.in octave-4.0.3/src/Makefile.in --- octave-4.0.3.orig/src/Makefile.in 2016-07-01 20:44:53.000000000 +0200 +++ octave-4.0.3/src/Makefile.in 2018-03-02 03:32:36.955223700 +0100 @@ -1334,7 +1334,7 @@ # List of libraries and their special compilation flags LIBOCTINTERP = @LIBOCTINTERP@ LIBPRE = @LIBPRE@ -LIBS = @LIBS@ +LIBS = @LIBS@ -lz LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_CRYPTO = @LIB_CRYPTO@