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++`