gienah      15/07/07 13:25:35

  Added:                octave-4.0.0-imagemagick.patch
                        octave-4.0.0-llvm-3.5.patch
                        octave-4.0.0-imagemagick-configure.patch
  Log:
  Bump octave to 4.0.0, fixes Bug 550858 - sci-mathematics/octave-4.0 version 
bump, thanks to Bohdan Trach for reporting. octave 4.0.0 allows llvm 3.5, 
fixing Bug 531672 - sci-mathematics/octave-3.8.2 USE=jit depends on 
<sys-devel/llvm-3.5, thanks to Juergen Rose for reporting and eroen for an 
upstream bug reference. Fix Bug 539886 - sci-mathematics/octave-3.8.2 should 
depend on x11-libs/fltk[opengl,xft], thanks to Andreas Fink for reporting and 
the fix.
  
  (Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 
618E971F)

Revision  Changes    Path
1.1                  sci-mathematics/octave/files/octave-4.0.0-imagemagick.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-4.0.0-imagemagick.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-4.0.0-imagemagick.patch?rev=1.1&content-type=text/plain

Index: octave-4.0.0-imagemagick.patch
===================================================================
--- octave-4.0.0-orig/libinterp/dldfcn/__magick_read__.cc       2015-05-24 
00:21:53.000000000 +1000
+++ octave-4.0.0/libinterp/dldfcn/__magick_read__.cc    2015-07-06 
18:17:52.263146804 +1000
@@ -38,8 +38,15 @@
 #include "gripes.h"
 
 #ifdef HAVE_MAGICK
-
+#define MAGICKCORE_EXCLUDE_DEPRECATED 1
 #include <Magick++.h>
+#if !defined(QuantumRange) && defined(MaxRGB)
+#define QuantumRange MaxRGB
+#endif
+#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(QuantumDepth)
+#define MAGICKCORE_QUANTUM_DEPTH QuantumDepth
+#endif
+
 #include <clocale>
 
 // In theory, it should be enough to check the class:
@@ -121,12 +128,18 @@
 get_depth (Magick::Image& img)
 {
   octave_idx_type depth = img.depth ();
+#if defined(MagickLibVersion) && (MagickLibVersion <= 0x686)
+#define Magick MagickCore
+#endif
   if (depth == 8
       && img.channelDepth (Magick::RedChannel)     == 1
       && img.channelDepth (Magick::CyanChannel)    == 1
       && img.channelDepth (Magick::OpacityChannel) == 1
       && img.channelDepth (Magick::GrayChannel)    == 1)
     depth = 1;
+#if defined(MagickLibVersion) && (MagickLibVersion <= 0x686)
+#undef Magick
+#endif
 
   return depth;
 }
@@ -350,7 +363,10 @@
   if (imvec[def_elem].depth () == 32)
     divisor = std::numeric_limits<uint32_t>::max ();
   else
-    divisor = MaxRGB / ((uint64_t (1) << imvec[def_elem].depth ()) - 1);
+  {
+    using namespace Magick;
+    divisor = QuantumRange / ((uint64_t (1) << imvec[def_elem].depth ()) - 1);
+  }
 
   // FIXME: this workaround should probably be fixed in GM by creating a
   //        new ImageType BilevelMatteType
@@ -484,7 +500,8 @@
                 for (octave_idx_type row = 0; row < nRows; row++)
                   {
                     img_fvec[idx] = pix->red / divisor;
-                    a_fvec[idx]   = (MaxRGB - pix->opacity) / divisor;
+                    using namespace Magick;
+                    a_fvec[idx]   = (QuantumRange - pix->opacity) / divisor;
                     pix += row_shift;
                     idx++;
                   }
@@ -563,7 +580,8 @@
                     rbuf[idx]     = pix->red     / divisor;
                     gbuf[idx]     = pix->green   / divisor;
                     bbuf[idx]     = pix->blue    / divisor;
-                    a_fvec[a_idx++] = (MaxRGB - pix->opacity) / divisor;
+                    using namespace Magick;
+                    a_fvec[a_idx++] = (QuantumRange - pix->opacity) / divisor;
                     pix += row_shift;
                     idx++;
                   }
@@ -650,7 +668,8 @@
                     mbuf[idx]     = pix->green   / divisor;
                     ybuf[idx]     = pix->blue    / divisor;
                     kbuf[idx]     = pix->opacity / divisor;
-                    a_fvec[a_idx++] = (MaxRGB - *apix) / divisor;
+                    using namespace Magick;
+                    a_fvec[a_idx++] = (QuantumRange - *apix) / divisor;
                     pix += row_shift;
                     idx++;
                   }
@@ -709,10 +728,11 @@
       // Restore locale from before GraphicsMagick initialisation
       setlocale (LC_ALL, locale.c_str ());
 
-      if (QuantumDepth < 32)
+      using namespace Magick;
+      if (MAGICKCORE_QUANTUM_DEPTH < 32)
         warning_with_id ("Octave:GraphicsMagic-Quantum-Depth",
                          "your version of %s limits images to %d bits per 
pixel",
-                         MagickPackageName, QuantumDepth);
+                         MagickPackageName, MAGICKCORE_QUANTUM_DEPTH);
 
       initialized = true;
     }
@@ -1087,8 +1107,9 @@
   // From GM documentation:
   //  Color arguments are must be scaled to fit the Quantum size according to
   //  the range of MaxRGB
+  using namespace Magick;
   const double divisor = static_cast<double>((uint64_t (1) << bitdepth) - 1)
-                         / MaxRGB;
+                         / QuantumRange;
 
   const P *img_fvec = img.fortran_vec ();
   const P *a_fvec   = alpha.fortran_vec ();
@@ -1140,8 +1161,9 @@
                 for (octave_idx_type row = 0; row < nRows; row++)
                   {
                     double grey = double (*img_fvec) / divisor;
+                    using namespace Magick;
                     Magick::Color c (grey, grey, grey,
-                                     MaxRGB - (double (*a_fvec) / divisor));
+                                     QuantumRange - (double (*a_fvec) / 
divisor));
                     pix[GM_idx] = c;
                     img_fvec++;
                     a_fvec++;
@@ -1209,10 +1231,11 @@
               {
                 for (octave_idx_type row = 0; row < nRows; row++)
                   {
+                    using namespace Magick;
                     Magick::Color c (double (*img_fvec)          / divisor,
                                      double (img_fvec[G_offset]) / divisor,
                                      double (img_fvec[B_offset]) / divisor,
-                                     MaxRGB - (double (*a_fvec) / divisor));
+                                     QuantumRange - (double (*a_fvec) / 
divisor));
                     pix[GM_idx] = c;
                     img_fvec++;
                     a_fvec++;
@@ -1290,7 +1313,8 @@
                                      double (img_fvec[Y_offset]) / divisor,
                                      double (img_fvec[K_offset]) / divisor);
                     pix[GM_idx] = c;
-                    ind[GM_idx] = MaxRGB - (double (*a_fvec) / divisor);
+                    using namespace Magick;
+                    ind[GM_idx] = QuantumRange - (double (*a_fvec) / divisor);
                     img_fvec++;
                     a_fvec++;
                     GM_idx += nCols;



1.1                  sci-mathematics/octave/files/octave-4.0.0-llvm-3.5.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-4.0.0-llvm-3.5.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-4.0.0-llvm-3.5.patch?rev=1.1&content-type=text/plain

Index: octave-4.0.0-llvm-3.5.patch
===================================================================
diff -r 3797df921988 configure.ac
--- a/configure.ac      Wed Apr 29 17:09:24 2015 -0700
+++ b/configure.ac      Sun May 03 22:48:56 2015 +0200
@@ -815,8 +815,13 @@
       AC_MSG_NOTICE([using -isystem for LLVM headers])])
 
     dnl Use -isystem so we don't get warnings from llvm headers
-    LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
-    LLVM_CXXFLAGS=
+    AX_CHECK_COMPILE_FLAG([-std=c++11],[
+      LLVM_CPPFLAGS="-std=c++11 $LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
+      LLVM_CXXFLAGS="-std=c++11"
+    ],[
+      LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
+      LLVM_CXXFLAGS=
+    ])
     LLVM_LDFLAGS="-L`$LLVM_CONFIG --libdir`"
 
 
@@ -860,6 +865,8 @@
     OCTAVE_LLVM_CALLINST_ADDATTRIBUTE_API
     OCTAVE_LLVM_RAW_FD_OSTREAM_API
     OCTAVE_LLVM_LEGACY_PASSMANAGER_API
+    OCTAVE_LLVM_DATALAYOUTPASS_API
+
     AC_LANG_POP(C++)
     CPPFLAGS="$save_CPPFLAGS"
     CXXFLAGS="$save_CXXFLAGS"
diff -r 3797df921988 libinterp/corefcn/jit-typeinfo.cc
--- a/libinterp/corefcn/jit-typeinfo.cc Wed Apr 29 17:09:24 2015 -0700
+++ b/libinterp/corefcn/jit-typeinfo.cc Sun May 03 22:48:56 2015 +0200
@@ -1208,7 +1208,7 @@
   for (int op = 0; op < octave_value::num_binary_ops; ++op)
     {
       llvm::Twine fn_name ("octave_jit_binary_any_any_");
-      fn_name = fn_name + llvm::Twine (op);
+      fn_name.concat( llvm::Twine (op) );
 
       fn = create_internal (fn_name, any, any, any);
       fn.mark_can_error ();
diff -r 3797df921988 libinterp/corefcn/pt-jit.cc
--- a/libinterp/corefcn/pt-jit.cc       Wed Apr 29 17:09:24 2015 -0700
+++ b/libinterp/corefcn/pt-jit.cc       Sun May 03 22:48:56 2015 +0200
@@ -59,6 +59,7 @@
 
 #include <llvm/Bitcode/ReaderWriter.h>
 #include <llvm/ExecutionEngine/ExecutionEngine.h>
+#include <llvm/ExecutionEngine/MCJIT.h>
 #include <llvm/ExecutionEngine/JIT.h>
 
 #ifdef LEGACY_PASSMANAGER
@@ -83,6 +84,7 @@
 #include <llvm/IRBuilder.h>
 #endif
 
+#include <llvm/Support/FileSystem.h>
 #include <llvm/Support/raw_os_ostream.h>
 #include <llvm/Support/TargetSelect.h>
 
@@ -2077,7 +2079,11 @@
   module_pass_manager->add (llvm::createAlwaysInlinerPass ());
 
 #ifdef HAVE_LLVM_DATALAYOUT
+#ifdef HAVE_LLVM_DATALAYOUTPASS
+  pass_manager->add (new llvm::DataLayoutPass (*engine->getDataLayout ()));
+#else
   pass_manager->add (new llvm::DataLayout (*engine->getDataLayout ()));
+#endif
 #else
   pass_manager->add (new llvm::TargetData (*engine->getTargetData ()));
 #endif
@@ -2192,7 +2198,7 @@
       std::string error;
 #ifdef RAW_FD_OSTREAM_ARG_IS_LLVM_SYS_FS
       llvm::raw_fd_ostream fout ("test.bc", error,
-                                 llvm::sys::fs::F_Binary);
+                                 llvm::sys::fs::F_Text);
 #else
       llvm::raw_fd_ostream fout ("test.bc", error,
                                  llvm::raw_fd_ostream::F_Binary);
diff -r 3797df921988 m4/acinclude.m4
--- a/m4/acinclude.m4   Wed Apr 29 17:09:24 2015 -0700
+++ b/m4/acinclude.m4   Sun May 03 22:48:56 2015 +0200
@@ -1784,10 +1784,11 @@
     [AC_LANG_PUSH(C++)
       AC_COMPILE_IFELSE(
         [AC_LANG_PROGRAM([[
+          #include <llvm/Support/FileSystem.h>
           #include <llvm/Support/raw_os_ostream.h>
           ]], [[
           std::string str;
-          llvm::raw_fd_ostream fout ("", str, llvm::sys::fs::F_Binary);
+          llvm::raw_fd_ostream fout ("", str, llvm::sys::fs::F_Text);
         ]])],
         octave_cv_raw_fd_ostream_arg_is_llvm_sys_fs=yes,
         octave_cv_raw_fd_ostream_arg_is_llvm_sys_fs=no)
@@ -1828,6 +1829,33 @@
   fi
 ])
 dnl
+dnl Check for llvm::DataLayoutPass API
+dnl
+AC_DEFUN([OCTAVE_LLVM_DATALAYOUTPASS_API], [
+  AC_CACHE_CHECK([check for LLVM::DataLayoutPass],
+    [octave_cv_datalayoutpass],
+    [AC_LANG_PUSH(C++)
+      save_LIBS="$LIBS"
+      LIBS="$LLVM_LIBS $LIBS"
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM([[
+          #include <llvm/IR/DataLayout.h>
+          ]], [[
+          llvm::Module *module;
+          llvm::DataLayoutPass *datalayoutpass;
+          datalayoutpass = new llvm::DataLayoutPass (module)
+        ]])],
+        octave_cv_datalayoutpass=yes,
+        octave_cv_datalayoutpass=no)
+      LIBS="$save_LIBS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_datalayoutpass = yes; then
+    AC_DEFINE(HAVE_LLVM_DATALAYOUTPASS, 1,
+      [Define to 1 if LLVM::DataLayoutPass exists.])
+  fi
+])
+dnl
 dnl Check for ar.
 dnl
 AC_DEFUN([OCTAVE_PROG_AR], [



1.1                  
sci-mathematics/octave/files/octave-4.0.0-imagemagick-configure.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-4.0.0-imagemagick-configure.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-4.0.0-imagemagick-configure.patch?rev=1.1&content-type=text/plain

Index: octave-4.0.0-imagemagick-configure.patch
===================================================================
--- octave-4.0.0-orig/configure.ac      2015-05-27 02:16:39.000000000 +1000
+++ octave-4.0.0/configure.ac   2015-07-06 18:11:43.461136517 +1000
@@ -1086,11 +1086,11 @@
 MAGICK_LIBS=
 
 PKG_CHECK_EXISTS([$magick++], [
-  ## Make sure we only get -I, -L, and -l flags.  Some Graphics/ImageMagick++
+  ## Make sure we only get -I, -D, -L, and -l flags.  Some 
Graphics/ImageMagick++
   ## packages add extra flags that are useful when building
   ## Graphics/ImageMagick++ extentions.  These extra flags break the
   ## Octave build.
-  MAGICK_CPPFLAGS=`$PKG_CONFIG --cflags-only-I $magick++`
+  MAGICK_CPPFLAGS=`$PKG_CONFIG --cflags $magick++ | sed -e 
's/\(-@<:@DI@:>@@<:@^ \t@:>@*\)\|\(-@<:@^ \t@:>@*\)/\1/g'`
   MAGICK_LDFLAGS=`$PKG_CONFIG --libs-only-L $magick++`
   MAGICK_LIBS=`$PKG_CONFIG --libs-only-l $magick++`
 




Reply via email to