I'm trying to build PDL-Graphics-PLplot 0.67 with plplot 5.11.0. First I need
the attached patch to handle the name change.
Next issue I'm running into is the plplot.t test segfaulting:
$ LD_LIBRARY_PATH=../blib/arch/auto/PDL/Graphics/PLplot/ gdb perl
GNU gdb (GDB) Fedora 7.9-11.fc23
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from perl...Reading symbols from
/home/orion/fedora/perl-PDL-Graphics-PLplot/PDL-Graphics-PLplot-0.67/t/perl...(no
debugging symbols found)...done.
(no debugging symbols found)...done.
Missing separate debuginfos, use: dnf debuginfo-install
perl-5.20.2-328.fc23.x86_64
(gdb) run -I../blib/lib ./plplot.t
Starting program: /usr/bin/perl -I../blib/lib ./plplot.t
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Detaching after fork from child process 26859.
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff2fd66fa in plP_state (op=op@entry=7)
at /usr/src/debug/plplot-5.11.0/src/plcore.c:260
260 ( *plsc->dispatch_table->pl_state )( (struct PLStream_struct
*) plsc, op );
(gdb) bt
#0 0x00007ffff2fd66fa in plP_state (op=op@entry=7)
at /usr/src/debug/plplot-5.11.0/src/plcore.c:260
#1 0x00007ffff2ff4e84 in c_plschr (def=<optimized out>, scale=<optimized out>)
at /usr/src/debug/plplot-5.11.0/src/plsdef.c:209
#2 0x00007ffff32e1ab2 in pdl_plschr_readdata (__tr=0x15924e0) at
PLplot.xs:11154
#3 0x00007ffff55a6194 in pdl.ensure_trans ()
from /usr/lib64/perl5/vendor_perl/auto/PDL/Core/Core.so
#4 0x00007ffff55a5150 in pdl_make_trans_mutual ()
from /usr/lib64/perl5/vendor_perl/auto/PDL/Core/Core.so
#5 0x00007ffff32ababf in XS_PDL_plschr (my_perl=<optimized out>,
cv=<optimized out>)
at PLplot.xs:50441
#6 0x00007ffff7aea6ab in Perl_pp_entersub () from /lib64/libperl.so.5.20
#7 0x00007ffff7ae2f36 in Perl_runops_standard () from /lib64/libperl.so.5.20
#8 0x00007ffff7a729c0 in perl_run () from /lib64/libperl.so.5.20
#9 0x0000000000400d79 in main ()
(gdb) list
255 plbuf_state( plsc, op );
256
257 save_locale = plsave_set_locale();
258 if ( !plsc->stream_closed )
259 {
260 ( *plsc->dispatch_table->pl_state )( (struct PLStream_struct
*) plsc, op );
261 }
262 plrestore_locale( save_locale );
263 }
264
(gdb) print plsc
$1 = (PLStream *) 0x7ffff321eaa0 <pls0>
(gdb) print op
$2 = 7
(gdb) print plsc->dispatch_table
$3 = (PLDispatchTable *) 0x0
(gdb) print *plsc
$2 = {ipls = 0, level = 0, verbose = 0, debug = 0, initialized = 0,
dev_initialized = 0,
program = 0x0, coordinate_transform = 0x0, coordinate_transform_data = 0x0,
icol0 = 0,
ncol0 = 16, icol1 = 0, ncol1 = 0, ncp1 = 0, curcmap = 0, cmap1_min = 0,
cmap1_max = 0,
curcolor = {r = 0 '\000', g = 0 '\000', b = 0 '\000', a = 0, name = 0x0},
tmpcolor = {
r = 0 '\000', g = 0 '\000', b = 0 '\000', a = 0, name = 0x0}, cmap0 =
0x155e310,
cmap1 = 0x0, cmap1cp = {{h = 0, l = 0, s = 0, p = 0, a = 0,
alt_hue_path = 0} <repeats 256 times>}, width = 0, widthset = 0,
widthlock = 0,
arrow_x = 0x0, arrow_y = 0x0, arrow_npts = 0, arrow_fill = 0, dispatch_table
= 0x0,
plbuf_read = 0, plbuf_write = 0, device = 0, dev_minor = 0, termin = 0,
graphx = 0,
nopause = 0, color = 0, colorset = 0, family = 0, member = 0, finc = 0,
fflen = 0,
bytemax = 0, famadv = 0, dev_fill0 = 0, dev_fill1 = 0, dev_dash = 0, dev_di =
0,
dev_flush = 0, dev_swin = 0, dev_text = 0, dev_xor = 0, dev_clear = 0,
dev_fastimg = 0,
dev_arc = 0, DevName = "xfig", '\000' <repeats 75 times>, OutFile = 0x0,
BaseName = 0x151a800 "test2.xfig", FileName = 0x155e2d0 "test2.xfig",
output_type = 0,
bytecnt = 0, page = 0, linepos = 0, pdfs = 0x0, dev_npts = 0, dev_x = 0x0,
dev_y = 0x0,
dev_nptsX = 0, dev_nptsY = 0, dev_ix = 0x0, dev_iy = 0x0, dev_z = 0x0,
dev_zmin = 0,
dev_zmax = 0, imclxmin = 0, imclxmax = 0, imclymin = 0, imclymax = 0, dev =
0x0,
dev_data = 0x0, KeyEH = 0x0, KeyEH_data = 0x0, ButtonEH = 0x0, ButtonEH_data
= 0x0,
LocateEH = 0x0, LocateEH_data = 0x0, bop_handler = 0x0, bop_data = 0x0,
eop_handler = 0x0,
eop_data = 0x0, xdpi = 0, ydpi = 0, xlength = 0, ylength = 0, xoffset = 0,
yoffset = 0,
pageset = 0, hack = 0, tidy = 0x0, tidy_data = 0x0, errcode = 0x0, errmsg =
0x0,
geometry = 0x0, window_id = 0, nopixmap = 0, db = 0, ext_resize_draw = 0,
server_name = 0x0,
server_host = 0x0, server_port = 0x0, user = 0x0, plserver = 0x0, plwindow =
0x0,
auto_path = 0x0, tk_file = 0x0, bufmax = 0, dp = 0, server_nokill = 0,
plbuf_buffer_grow = 0, plbuf_buffer_size = 0, plbuf_buffer = 0x0, plbuf_top =
0,
plbuf_readpos = 0, plbufOwner = 0, difilt = 0, diclpxmi = 0, diclpxma = 0,
diclpymi = 0,
diclpyma = 0, dipxmin = 0, dipymin = 0, dipxmax = 0, dipymax = 0, dipxax =
0, dipxb = 0,
dipyay = 0, dipyb = 0, aspdev = 0, aspect = 0, aspori = 0, caspfactor = 0,
mar = 0, jx = 0,
jy = 0, didxax = 0, didxb = 0, didyay = 0, didyb = 0, diorot = 0, dioxax =
0, dioxay = 0,
dioxb = 0, dioyax = 0, dioyay = 0, dioyb = 0, dimxax = 0, dimxb = 0, dimyay
= 0, dimyb = 0,
dimxmin = 0, dimymin = 0, dimxmax = 0, dimymax = 0, dimxpmm = 0, dimypmm = 0,
page_status = 0, freeaspect = 0, portrait = 0, patt = 0, inclin = {0, 0},
delta = {0, 0},
nps = 0, currx = 0, curry = 0, mark = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, space
= {0, 0, 0, 0,
0, 0, 0, 0, 0, 0}, nms = 0, timecnt = 0, alarm = 0, pendn = 0, curel = 0,
esc = 0 '\000',
scale = 0, chrdef = 0, chrht = 0, symdef = 0, symht = 0, majdef = 0, majht =
0, mindef = 0,
minht = 0, setpre = 0, precis = 0, xdigmax = 0, ydigmax = 0, zdigmax = 0,
xdigits = 0,
ydigits = 0, zdigits = 0, timefmt = 0x0, label_func = 0x0, label_data = 0x0,
vppxmi = 0,
vppxma = 0, vppymi = 0, vppyma = 0, sppxmi = 0, sppxma = 0, sppymi = 0,
sppyma = 0,
clpxmi = 0, clpxma = 0, clpymi = 0, clpyma = 0, phyxmi = 0, phyxma = 0,
phyxlen = 0,
phyymi = 0, phyyma = 0, phyylen = 0, umx = 0, umy = 0, xpmm = 0, ypmm = 0,
base3x = 0,
base3y = 0, basecx = 0, basecy = 0, domxmi = 0, domxma = 0, domymi = 0,
domyma = 0,
zzscl = 0, ranmi = 0, ranma = 0, cxx = 0, cxy = 0, cyx = 0, cyy = 0, cyz =
0, czx = 0,
czy = 0, czz = 0, nplwin = 0, plwin = {{dxmi = 0, dxma = 0, dymi = 0, dyma =
0, wxmi = 0,
wxma = 0, wymi = 0, wyma = 0} <repeats 64 times>}, nsubx = 0, nsuby = 0,
cursub = 0,
spdxmi = 0, spdxma = 0, spdymi = 0, spdyma = 0, vpdxmi = 0, vpdxma = 0,
vpdymi = 0,
vpdyma = 0, vpwxmi = 0, vpwxma = 0, vpwymi = 0, vpwyma = 0, wpxscl = 0,
wpxoff = 0,
wpyscl = 0, wpyoff = 0, wmxscl = 0, wmxoff = 0, wmyscl = 0, wmyoff = 0,
wdxscl = 0,
wdxoff = 0, wdyscl = 0, wdyoff = 0, dev_compression = 0, cfont = 0, FT = 0x0,
plPlotterPtr = 0x0, dev_unicode = 0, alt_unicode = 0, fci = 0, dev_hrshsym =
0,
original_chrdef = 0, original_chrht = 0, psdoc = 0x0, qsasconfig = 0x0,
dev_gradient = 0,
ngradient = 0, xgradient = 0x0, ygradient = 0x0, n_polygon = 0, x_polygon =
0x0,
y_polygon = 0x0, stream_closed = 0, line_style = 0, dev_mem_alpha = 0,
has_string_length = 0, string_length = 0, get_string_length = 0, dev_eofill =
0,
dev_modeset = 0, if_boxbb = 0, boxbb_xmin = 0, boxbb_xmax = 0, boxbb_ymin = 0,
boxbb_ymax = 0, mf_infile = 0x0, mf_outfile = 0x0}
This seems to happen right away:
use PDL;
use PDL::Config;
use PDL::Graphics::PLplot;
use Test::More qw(no_plan);
# Use xfig driver because it should always be installed.
#my $dev = 'png';
my $dev = 'xfig';
# redirect STDERR to purge silly 'opened *.xfig' messages
my ($pl, $x, $y, $min, $max, $oldwin, $nbins);
###
# Initial test to work around font file brain damage: for some kinds of
# PLplot errors, control never returns to us. FMH.
# --CED
###
my $tmpdir = $PDL::Config{TEMPDIR} || "/tmp";
my $tmpfile = $tmpdir . "/foo$$.$dev";
$pl = PDL::Graphics::PLplot->new (DEV => $dev,
FILE => "test2.$dev",
BACKGROUND => [255,255,255]);
Anything else to look for?
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane or...@nwra.com
Boulder, CO 80301 http://www.nwra.com
diff -up PDL-Graphics-PLplot-0.67/Makefile.PL.plplot PDL-Graphics-PLplot-0.67/Makefile.PL
--- PDL-Graphics-PLplot-0.67/Makefile.PL.plplot 2013-11-05 12:59:20.000000000 -0700
+++ PDL-Graphics-PLplot-0.67/Makefile.PL 2015-04-24 16:26:45.386789834 -0600
@@ -35,49 +35,58 @@ print "\nChecking PDL::Graphics::PLplot.
unlink ("OPTIONS!"); # remove file used to communicate with plplot.pd
-# on OS-X the library is called libplplotd.dylib, so we
-# use $Config{"so"} to get the extension name
-#
-my $libname = "libplplotd." . $Config{"so"};
-my $libname_static = "libplplotd.a";
+# plplot 5.11.0 renamed the library to libplplot
+
+my $libname = "";
+my $libname_static = "";
my $incname = "plplot.h";
my $devnull = File::Spec->devnull(); # Portable null device.
-# require bad value support. D. Hunt 10/20/2008
-unless ($PDL::Config{WITH_BADVAL}) {
- buildDummy ("Bad value support required! (Turn on WITH_BADVAL in perldl.conf)");
- return if (caller); exit;
-}
-
-
-foreach my $libdir (
- $ENV{PLPLOT_LIBDIR},
- $PDL::Config{WHERE_PLPLOT_LIBS},
- '/usr/local/plplot/lib64',
- '/usr/local/plplot/lib',
- '/usr/local/lib64',
- '/usr/local/lib',
- '/opt/local/lib',
- '/usr/lib64',
- '/usr/lib',
- '/opt/lib64',
- '/opt/lib',
- '/ops/tools/lib',
- '/sw/lib/', # default FINK installation
- # Add new library paths here!!
- ) {
+foreach my $plplotname ( 'plplot', 'plplotd' ) {
- if (-e "$libdir/$libname") {
- $plplot_lib_path = $libdir;
- $ENV{LD_LIBRARY_PATH} .= ":$libdir";
- last;
- } elsif (-e "$libdir/$libname_static") {
- $plplot_lib_path = $libdir;
- $ENV{LD_LIBRARY_PATH} .= ":$libdir";
- $libname = $libname_static;
- last;
+ # on OS-X the library is called libplplot.dylib, so we
+ # use $Config{"so"} to get the extension name
+ #
+ $libname = "lib" . $plplotname . "." . $Config{"so"};
+ $libname_static = "lib" . $plplotname . ".a";
+
+ # require bad value support. D. Hunt 10/20/2008
+ unless ($PDL::Config{WITH_BADVAL}) {
+ buildDummy ("Bad value support required! (Turn on WITH_BADVAL in perldl.conf)");
+ return if (caller); exit;
}
+
+
+ foreach my $libdir (
+ $ENV{PLPLOT_LIBDIR},
+ $PDL::Config{WHERE_PLPLOT_LIBS},
+ '/usr/local/plplot/lib64',
+ '/usr/local/plplot/lib',
+ '/usr/local/lib64',
+ '/usr/local/lib',
+ '/opt/local/lib',
+ '/usr/lib64',
+ '/usr/lib',
+ '/opt/lib64',
+ '/opt/lib',
+ '/ops/tools/lib',
+ '/sw/lib/', # default FINK installation
+ # Add new library paths here!!
+ ) {
+
+ if (-e "$libdir/$libname") {
+ $plplot_lib_path = $libdir;
+ $ENV{LD_LIBRARY_PATH} .= ":$libdir";
+ last;
+ } elsif (-e "$libdir/$libname_static") {
+ $plplot_lib_path = $libdir;
+ $ENV{LD_LIBRARY_PATH} .= ":$libdir";
+ $libname = $libname_static;
+ last;
+ }
+ }
+ last if defined ($plplot_lib_path);
}
unless (defined ($plplot_lib_path)) {
@@ -133,9 +142,9 @@ unless ($size == 8) {
# Try linking with library. New if blocks should be added if necessary
my $libs;
foreach my $l (
- "-L$plplot_lib_path -lplplotd -lX11",
- "-L$plplot_lib_path -lplplotd",
- "-L$plplot_lib_path -lplplotd -lqsastime -lcsirocsa -lgdi32 -lcomdlg32",
+ "-L$plplot_lib_path -lplplot -lX11",
+ "-L$plplot_lib_path -lplplot",
+ "-L$plplot_lib_path -lplplot -lqsastime -lcsirocsa -lgdi32 -lcomdlg32",
# New lib combinations should be added here!
) {
if (trylink( '', '#include <plplot.h>', 'plinit();', "$l $plplot_include_path")) {
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel