Yea! Glad to hear it.
I don't have much wisdom about how to structure perl and modules on Mac.
My attempt the other day was my first.
Take care,
Doug
[email protected]
Software Engineer
UCAR - COSMIC, Tel. (303) 497-2611
On Tue, 22 Oct 2013, Stig Syndergaard wrote:
I got it to work! But only after installing another 'flavour' of perl5.12 using
MacPorts (well, I installed clang-3.4 which
includes perl5.12). This perl is x86_64; the one that came with my MacBook is
both i386 and x86_64. Then I re-installed PDL via
the cpan prompt as you had suggested (I also tried with cpanm and by
downloading PDL-2.007.tar, but none of those methods
worked). When installing via the cpan prompt (and with my env PATH pointing to
the newly installed perl), the PDL bundles
became x86_64 architecture. Building PDL::NetCDF on top of that was without
problems.
So it's working for me now, but it's probably not the most elegant way. I have
two perl installations, with some modules
installed in /opt/local/lib/perl5/, while others are still in
/System/Library/Perl. So if anyone have better ways, I'll be
happy to learn about it.
Best Regards,
-Stig
On Mon, Oct 21, 2013 at 12:44 PM, Stig Syndergaard <[email protected]>
wrote:
Hi Doug,Thanks much for the try. I followed your instructions
(uninstalled NetCDF and PDL, and installed them as
you suggested; that part worked fine for me), but the PDL::NetCDF build
didn't work for me. I still get the same
error:
# Error: Can't load
'/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle'
for module
PDL::NetCDF:
dlopen(/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle,
2): no suitable image
found. Did find:
# /Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle:
mach-o, but wrong architecture at
/System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm line 204.
I know nothing about bundles or why things are build as bundles. But I see
similar bundles in the PDL directory, e.g.:
/Library/Perl/5.12/darwin-thread-multi-2level/auto/PDL/Core/Core.bundle
Does your PDL installation look very different?
All the bundles that comes with the PDL installation seems to have 2
architectures, e.g.:
/Library/Perl/5.12/darwin-thread-multi-2level/auto/PDL/Core> file Core.bundle
Core.bundle: Mach-O universal binary with 2 architectures
Core.bundle (for architecture i386): Mach-O bundle i386
Core.bundle (for architecture x86_64): Mach-O 64-bit bundle x86_64
or
/Library/Perl/5.12/darwin-thread-multi-2level/auto/PDL/Bad> file Bad.bundle
Bad.bundle: Mach-O universal binary with 2 architectures
Bad.bundle (for architecture i386): Mach-O bundle i386
Bad.bundle (for architecture x86_64): Mach-O 64-bit bundle x86_64
etc.
But for the NetCDF (if I ignore the error and install it anyways) there is only
one architecture:
/Library/Perl/5.12/darwin-thread-multi-2level/auto/PDL/NetCDF> file
NetCDF.bundle
NetCDF.bundle: Mach-O 64-bit bundle x86_64
I wonder how these things look on your iMac.
-Stig
On Mon, Oct 21, 2013 at 12:00 AM, Douglas Hunt <[email protected]> wrote:
Hi Stig: It seems like you are installing a PDL::NetCDF bundle? I don't
know much about this. It might be
better to try to uninstall all traces of PDL::NetCDF (probably just find
a directory under PERL5LIB under
'PDL'--just delete the whole NetCDF directory. Then install the latest
version of PDL::NetCDF.tar.gz by
hand.
I just tried this on my macOS 10.8.5 machine at home and it worked:
Using the system perl, type:
sudo cpan
# answer a few questions with default answers and wait
cpan> install PDL
# wait for a long time while it compiles PDL and a bunch of dependencies
cpan> quit
# Download netcdf-4.3.0.tar.gz
tar -xvzf netcdf-4.3.0.tar.gz
cd netcdf-4.3.0
./configure --disable-netcdf-4 # I don't want to hassle with HDF
make
make check
sudo make install
# Download PDL-NetCDF-4.19.tar.gz
tar -xvzf PDL-NetCDF-4.19.tar.gz
cd PDL-NetCDF-4.19
export NETCDF_LIBDIR=/usr/local/lib # this is where the netcdf default
install is
export NETCDF_INCDIR=/usr/local/include
export ARCHFLAGS='-arch x86_64'
perl Makefile.PL
make
make test
sudo make install
This process seems to work on my recent iMac.
Hope this helps,
Doug
On Sun, 20 Oct 2013, Stig Syndergaard wrote:
Hi,
I found out that if I set the ARCHFLAGS environment variable to
'-arch x86_64', then perl
Makefile.PL and make seems
to get through without errors (still warnings though). But now I
get this error on make test:
# Error: Can't load
'/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle'
for module
PDL::NetCDF:
dlopen(/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle,
2): no suitable image
found. Did find:
#
/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle:
mach-o, but wrong
architecture at
/System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm
line 204.
There is a lot of those on the net in different forums, but I
haven't been able to solve my
problem.
I checked the architecture.
file
/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle
gives:
/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle:
Mach-O 64-bit
bundle x86_64
Not sure if that is the way it should be. Other bundles in my perl
distribution has both
architectures.
If I don't set ARCHFLAGS to '-arch x86_64', then compilation is
with both i386 and x86_64,
and
/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle
then becomes
both i386 and x86_64
architecture, but then I'm back to square one with the problems
explained before.
Checking architecture of installed dependencies:
/Users/ssy> which ncdump
/opt/local/bin/ncdump
/Users/ssy> file /opt/local/bin/ncdump
/opt/local/bin/ncdump: Mach-O 64-bit executable x86_64
/Users/ssy> which pdl
/usr/local/bin/pdl
/Users/ssy> file /usr/local/bin/pdl
/usr/local/bin/pdl: Mach-O 64-bit executable x86_64
/Users/ssy> which perl
/usr/bin/perl
/Users/ssy> file /usr/bin/perl
/usr/bin/perl: Mach-O universal binary with 2 architectures
/usr/bin/perl (for architecture i386): Mach-O executable i386
/usr/bin/perl (for architecture x86_64): Mach-O 64-bit executable
x86_64
Any ideas anyone?
-Stig
On Mon, Oct 14, 2013 at 5:49 PM, Doug Hunt <[email protected]> wrote:
Thanks, Craig!
--Doug
[email protected]
Software Engineer
UCAR - COSMIC, Tel. (303) 497-2611
On Sun, 13 Oct 2013, Craig DeForest wrote:
I'm on it -- but I just triggered an update of my
macports tree, so it'll be tomorrow
(it'll
probably run all night tonight).
On Oct 13, 2013, at 9:05 PM, Douglas Hunt
<[email protected]> wrote:
Hi Stig: Sorry to hear PDL::NetCDF is
misbehaving for you. I'm forwarding
this to
the PDL list, where there are many kind people
who run PDL on Macs. Perhaps
they
can help. I've only been using Linux, and these
errors don't look familiar to
me.
The floods were quite dramatic, but things are
getting back to normal. We were
very
lucky to not have had more than the handful of
deaths that we did. My house
was
never in danger and the worst we've had is the
inconveniece of water being cut
off
for a while. My mom lives in Estes Park, a
mountain town hard hit by the
flood,
she is staying with us while sewer service is
restored--perhaps several months.
Best Regards to you and Andrea,
Doug
---------- Forwarded message ----------
Date: Sun, 13 Oct 2013 18:06:28 +0200
From: Stig Syndergaard
<[email protected]>
To: [email protected]
Subject: PDL::NETCDF
Hi Doug,
I'm trying to install your PDL::NETCDF module on
my Mac. I had it running and
working well for years, but then my Mac
got stolen last April, and I got a new one (now
running OS X 10.8.4). I had a
backup, so I got all my old stuff back on
to the new Mac, but now the PDL::NETCDF is not
working anymore :-(
I've tried many things, installed new NetCDF
library (4.2.1.1), new PDL
(2.007),
and downloaded
PDL-NetCDF-4.19. But I can't make the PDL::NETCDF
compile right. I've tried
almost
everything, including changing
Makefile.PL files to make them look for files in
the right paths, but nothing
seems
to help much. It may be the
architecture, but I'm not sure. I get many
warnings and errors. One of them
(when
running make) says:
ld: warning: ignoring file NetCDF.o, file was
built for unsupported file format
(
0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x
1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which
is not the architecture being
linked (i386): NetCDF.o
which made me think that it is related to the 32
vs 64 bit architecture, but I
really don't know much about these
things. And I don't know it this warning is
important.
Another one (when running make test) is:
# Error: Can't find 'boot_PDL__NetCDF'
symbol in
/Users/ssy/Downloads/PDL-NetCDF-4.19/blib/arch/auto/PDL/NetCDF/NetCDF.bundle
which is also the error I get if I ignore
everything and install anyways and
try
use the module by running one of my
scripts:
Can't find 'boot_PDL__NetCDF' symbol in
/Library/Perl/5.12/darwin-thread-multi-2level/auto/PDL/NetCDF/NetCDF.bundle
Have you seen anything like these errors/warnings
before? Any ideas what I can
do?
Hope you are doing good in Boulder after all the
flooding you had. We read and
heard a lot about it here, and were
thinking about you all.
Best regards,
-Stig
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl