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<http://mailman.jach.hawaii.edu/mailman/listinfo/perldl> >>> >>> >>> >>> >>> >>> >
_______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
