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

Reply via email to