in reply to Re^5: Math::GMP won't install on Darwin
in thread Math::GMP won't install on Darwin

There are some ideas on things to try in the thread called "how do I force PIC code in libgmp.a on MacOSX (Intel)...?" beginning at http://swox.com/list-archives/gmp-bugs/2006-April/000341.html. Unfortunately it doesn't seem to resolve the problem - beyond the suggestion that you revert to GMP-4.1.4 (which should be quite adequate for your needs ... assuming that solution does, in fact, work).

I'm puzzled by the reference to 'modelo.o' (which I can't find anywhere in any of my GMP builds), and by the 'cc' (as opposed to 'gcc') call you report just before the failure occurs. I wonder whether the 'cc' call might have something to do with the error, though the thread I referred to above suggests that it has more to do with the 'bundle' switch ... and I have no idea what that switch does, or why it is being invoked.

My only other idea is to build GMP as a shared library (./configure --disable-static --enable-shared) .... and, if linking to the import lib still produces the same error, then amend the Math::GMP source so that it links directly to the GMP '.so'. (I have no idea whether that will help in this instance ... it's just something I would try.)

Cheers,
Rob
  • Comment on Re^6: Math::GMP won't install on Darwin

Replies are listed 'Best First'.
Re^7: Math::GMP won't install on Darwin
by peckel (Initiate) on Jul 17, 2006 at 09:45 UTC

    Hi Rob,

    thanks for your suggestions. I tried both building libgmp as a shared library (which didn't solve the problem) and reverting to libgmp 4.1.4 (which did).

    The reference to cc shouldn't be a problem, as /usr/bin/cc is a logical link to /usr/bin/gcc-4.0 (as is /usr/bin/gcc).

    The -bundle switch tells ld to create a bundle file:

    -bundle Produce a Mach-O bundle format file. The headers are pl +aced in the first segment. All sections are placed in their pro +per seg- ments and they are padded to the segment alignment. Thi +s has a file type of MH_BUNDLE.

    Thank you very much for your helpful suggestions!

    Regards,

      Peter.

      I tried both building libgmp as a shared library (which didn't solve the problem) and reverting to libgmp 4.1.4 (which did).

      Thanks for the feedback.

      Did you try forcing Math::GMP to link directly to the shared library (rather than linking to the import library) ? I gave that a fair chance of working ... on a hunch, more than anything else :-)

      Mind you, whilst I know that gcc can link directly to shared libraries on Win32 and Linux, I have no such knowledge regarding gcc on Macs. And, of course I've got no right to press you like this for details ... so please feel free to ignore.

      Cheers,
      Rob

        Hi Rob,

        after compiling libgmp as a shared library, I removed the static (.a) version, so probably the linker didn't have another choice than to use the shared version. If you think it makes sense, I'll do some more testing on a second system tomorrow - I don't want to touch the first one anymore, being glad to finally have it doing what it's supposed to :-)

        I'm not going to ignore this, considering that 1. you helped me out with a working solution and 2. I'm interested in getting a stable module as well, using current rather than outdated library versions. So whatever I can do (not much, probably, not being a C hacker myself), I'll try.

        Thanks again and best regards,

          Peter.