MQ

 View Only
Expand all | Collapse all

MacOS Toolkit release for M1 Apple silicon processor

  • 1.  MacOS Toolkit release for M1 Apple silicon processor

    Posted Fri January 21, 2022 09:42 AM
    I'm struggling getting this tool to work on Apple's M1 pro laptop using pymqi package.
    During pip installation I'm getting this warning:
    ld: warning: ignoring file /opt/mqm/lib64/libmqic_r.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
     Although the installation doesn't fail, the library fails to load due to missing symbols:
    ...symbol not found in flat namespace '_MQBACK'
    It says that ibmqic_r.dylib is ignored.

    I've heard that there is an open issue on the toolkit build to allow cross x86_64 and arm64 compatibility. Is there any scheduled release on this?

    ------------------------------
    Andreas Gounaris
    ------------------------------


  • 2.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon January 24, 2022 02:44 AM
    Hi, The MQ Toolkit for Mac is built for x86_64 and currently not for the ARM based Macs, but the dev team is looking to make it work in the future.  You can add your voice to the suggestion: https://integration-development.ideas.ibm.com/ideas/MESNS-I-369.

    Brian

    ------------------------------
    Brian S Paskin
    Sr. Web Engineer
    IBM Tech Garage
    ------------------------------



  • 3.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon January 24, 2022 04:34 AM
    Thanks Brian,
    the link doesn't seem to work for me, (lack of permissions?), let's hope they are aware.

    ------------------------------
    Andreas Gounaris
    ------------------------------



  • 4.  RE: MacOS Toolkit release for M1 Apple silicon processor

    IBM Champion
    Posted Mon January 24, 2022 04:37 AM
    Edited by Morag Hughson Mon January 24, 2022 04:37 AM

    The problem with the link provided is that it shouldn't have a full stop on the end. Try this one:-

    https://integration-development.ideas.ibm.com/ideas/MESNS-I-369

    Cheers,
    Morag



    ------------------------------
    Morag Hughson
    MQ Technical Education Specialist
    MQGem Software Limited
    Website: https://www.mqgem.com
    ------------------------------



  • 5.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon January 24, 2022 04:45 AM
    It works, thanks a lot.

    I've placed my vote as well, however this suggestion concerns the Docker container which I suppose needs more work.
    What I need is the client provided through MacOS Toolkit to be able to connect to the server. 

    Is there any alternative ?

    ------------------------------
    Andreas Gounaris
    ------------------------------



  • 6.  RE: MacOS Toolkit release for M1 Apple silicon processor

    IBM Champion
    Posted Mon January 24, 2022 04:47 AM
    I suspect that in order to produce the Docker Container requested by that IDEA, they first need to make an ARM compatible version of the Client. You should (if you haven't already) add a comment to say exactly what you need, so they know that, on it's own, the ARM Mac OS MQ Client is wanted. I suspect they know already, but repetition will do no harm, you're adding another voice to the request.

    ------------------------------
    Morag Hughson
    MQ Technical Education Specialist
    MQGem Software Limited
    Website: https://www.mqgem.com
    ------------------------------



  • 7.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon January 24, 2022 04:50 AM
    Did that, thank you Morag :)

    ------------------------------
    Andreas Gounaris
    ------------------------------



  • 8.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Tue January 25, 2022 07:39 AM
    Edited by Soheel Chughtai Tue January 25, 2022 07:43 AM

    Update of the container image and the client toolkit are fortunately unrelated. 

    The container image requires that the base image in use support ARM. This would apply as ARM Linux support which would satisfy running the container on Mac ARM M1. 

    The client toolkit requires that the ARM binaries be built with 
    -target arm64-apple-macos11

    Once the binaries are built, the question then comes to how to package them. They could be packaged separately as ARM64 and x86_64 packages. Or they could be combined into universal MacOS binaries, but the package size would grow as they would contain both set of binaries. 


    The toolkit apps that you find in /opt/mqm /bin and /opt/mqm/samp/bin should already run on M1 Macs but will prompt you to install Rosetta if you don't have it already.



    ------------------------------
    Soheel Chughtai
    ------------------------------



  • 9.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Tue January 25, 2022 12:49 PM
    Thank you for answering, I guess your instructions on the client toolkit are not directed to me, can't build without the source anyway. 

    The toolkit apps that you find in /opt/mqm /bin and /opt/mqm/samp/bin should already run on M1 Macs but will prompt you to install Rosetta if you don't have it already.
    This means I can use the binaries from version 9.2 ?
    I do have Rosetta installed, however pymqi installation fails as mentioned in my first post.

    ------------------------------
    Andreas Gounaris
    ------------------------------



  • 10.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon February 21, 2022 11:28 AM
    Having this same issue on Apple M1 macbook with `pymqi`.

    The MacOS Toolkit that is installed seems to be the x86_64 version that supports Rosetta interoperability, meaning it will run on arm64.

    However, `pymqi` is running on python for arm64 and tries to compile against MacOS Toolkit and fails, try running:

    ```
    DYLD_LIBRARY_PATH=/opt/mqm/lib64 pip install --no-cache-dir --force-reinstall --compile pymqi --verbose
    ```
    and you'll see warning:
    ```
    ld: warning: ignoring file /opt/mqm/lib64/libmqic_r.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
    ```

    So even though `pymqi` installs with PIP it is broken.

    ------------------------------
    Alexander de Goeij
    ------------------------------



  • 11.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon February 21, 2022 11:28 AM
    so I guess we'll need to wait for a "compiled against arm64" version of macos toolkit for this to work, or perhaps python for intel on macos m1 with rosetta could work :shrug:

    ------------------------------
    Alexander de Goeij
    ------------------------------



  • 12.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Mon February 21, 2022 11:28 AM

    so I had this problem too, but with the MacOS Toolkit SDK for use with `pymqi`.

    My solution to that issue (in case anyone is wondering) is going to python.org and downloading the Intel-only installer for Python, install that on MacOS with M1 processor and then create a virtualenv like so:

    mkvirtualenv -p /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 my_mqi_env_on_m1 good luck :)
    on this new venv do your pip install pymqi --verbose and it should compile.

    see Activity Monitor to check lots of "Intel" processes doing stuff ;)



    ------------------------------
    Alexander de Goeij
    ------------------------------



  • 13.  RE: MacOS Toolkit release for M1 Apple silicon processor

    Posted Thu February 24, 2022 04:42 PM
    Thank you Alexander for your suggestion.
    You propose to setup a complete Intel-based environment so that everything runs with Rosetta 2.

    This could be a possible workaround and since I need to have an Oracle thin client as well (no arm64 release exists so far), it may worth to try it.

    I've found this post on How to install Oracle instant client on Apple silicon M1 that is based on the terminal app setting (open using Rosetta).
    Still, what is puzzling me is that I have to install an x86 version of brew and wondering how this could live side by side with the arm64 version of Brew.

    Your suggestion seems to bypass this requirement, have you tried it yourself? Note that pymqi is not the only package for my project, there are many modules that need to be installed, including pandas and numpy, memcached, django, celery for rabbitmq and many more. All of them runs fine in arm64, my issues are with MQ Toolkit and Oracle instant client.

    Currently I'm settled with a Windows workstation and my old Macbook Pro until a proper arm64 release is available.
    Struggling with workarounds doesn't justify the effort, maybe I'll try this in my free time, (so funny how this sounds :))

    ------------------------------
    Andreas Gounaris
    ------------------------------