[Spice_discussion] CSPICE on M1 Apple-Silicon Macs

Bogdan Nicula bogdan at oma.be
Mon Apr 12 14:38:09 PDT 2021


Andrew,

The difference may be that for gcc it’s a warning (by default) and compilation continues, while for clang it’s an error (by default) and compilation stops. Since on stock macOS gcc is essentially an alias for clang, maybe the CI environment you use has an actual gcc copy and not the Apple (fake) gcc.

Personally I prefer the clang behavior and fixed this in my copy some time ago.

Cheers,
Bogdan

> On 11 Apr 2021, at 8:18 PM, Andrew Annex <aannex1 at jhu.edu> wrote:
> 
> Bogdan, well that is interesting because the CI builds did not run into the compilation error that Manikantan noted. Maybe it is something specific to the CI environment that does not raise the error? You can view the logs here:https://urldefense.us/v3/__https://dev.azure.com/conda-forge/84710dde-1620-425b-80d0-4cf5baca359d/_apis/build/builds/302195/logs/19__;!!PvBDto6Hs4WbVuu7!ZM1vqQB3_hVWdx6ynKE22rIpoJDzLUo3O1YkaFTrCzvs28zVZz9AbnhGEysESBTOPqIg75WMhdT8fA$  to see if there is a cause. In any case it is easy enough to add the patch to the cspice-feedstock so I may do that pre-emptively.
> From: Bogdan Nicula <bogdan at oma.be>
> Sent: Sunday, April 11, 2021 1:32 PM
> To: Andrew Annex <aannex1 at jhu.edu>
> Cc: Manikantan Ramadas <manikantan at istrac.gov.in>; Wright, Edward D (US 392N) <edward.d.wright at jpl.nasa.gov>; spice_discussion at naif.jpl.nasa.gov <spice_discussion at naif.jpl.nasa.gov>; mramadas at gmail.com <mramadas at gmail.com>
> Subject: Re: [Spice_discussion] CSPICE on M1 Apple-Silicon Macs
>  
> 
>       External Email - Use Caution
> 
> 
> 
> unistd.h should definitely be included for the `access` function, according to both Single UNIX Specification and the Linux man page. It just happened to work without before macOS 11. This has to be done when NON_UNIX_STDIO is defined.
> 
> Cheers,
> Bogdan
> 
> > On 11 Apr 2021, at 7:04 PM, Andrew Annex <aannex1 at jhu.edu> wrote:
> >
> > Hey All,
> >
> > Relevant to this discussion, CSPICE for aarch64 and osx-arm64 is now available through the conda-forge (https://urldefense.us/v3/__https://nam02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fconda-forge.org*2F&data=04*7C01*7Caannex1*40jhu.edu*7C1e6c4b2b5f7e44a9b69d08d8fd0fd91e*7C9fa4f438b1e6473b803f86f8aedf0dec*7C0*7C0*7C637537591809067785*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000&sdata=2i4jghobGQ1hd6Cc821Y*2F6hqs*2FPRXKZIWJzomqStxLE*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJQ!!PvBDto6Hs4WbVuu7!ZM1vqQB3_hVWdx6ynKE22rIpoJDzLUo3O1YkaFTrCzvs28zVZz9AbnhGEysESBTOPqIg75WfRYCcgQ$ , https://urldefense.us/v3/__https://nam02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fanaconda.org*2Fconda-forge*2Fcspice&data=04*7C01*7Caannex1*40jhu.edu*7C1e6c4b2b5f7e44a9b69d08d8fd0fd91e*7C9fa4f438b1e6473b803f86f8aedf0dec*7C0*7C0*7C637537591809067785*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000&sdata=MHi8*2FLC96*2BdrucojgTBZ7Dknzhv9GSqNO8KYwKGhRY4*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSU!!PvBDto6Hs4WbVuu7!ZM1vqQB3_hVWdx6ynKE22rIpoJDzLUo3O1YkaFTrCzvs28zVZz9AbnhGEysESBTOPqIg75UgXL5cLQ$  ). However, I don't own a Raspberry Pi or M1 mac to personally verify them. CI tests for spiceypy pass at least on aarch64, but tests are not currently run on osx-arm64 builds.
> >
> > Once you have anaconda/miniconda installed on those systems you should be able to run 'conda install cspice -c conda-forge' to install CSPICE for those platforms. SpiceyPy will also work similarly by running 'conda install spiceypy -c conda-forge'. You maybe able to extract the compiled libraries/executable utilities from the zip files hosted by anaconda as well.
> >
> > You can view the changes (not that many) I needed to perform to get it working at https://urldefense.us/v3/__https://nam02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fgithub.com*2Fconda-forge*2Fcspice-feedstock*2Ftree*2Fmaster*2Frecipe&data=04*7C01*7Caannex1*40jhu.edu*7C1e6c4b2b5f7e44a9b69d08d8fd0fd91e*7C9fa4f438b1e6473b803f86f8aedf0dec*7C0*7C0*7C637537591809067785*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000&sdata=QzsHgDzlNmlD*2BEY8NScMl0AGDQt2T6vNKm0JEBWr96Q*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ!!PvBDto6Hs4WbVuu7!ZM1vqQB3_hVWdx6ynKE22rIpoJDzLUo3O1YkaFTrCzvs28zVZz9AbnhGEysESBTOPqIg75WhZOJYHQ$ . Interestingly, I did not need to patch inquire.c which maybe down to the various GCC flags that their CI workers configure for me, although I didn't investigate this difference. The only change I really needed to do was remove the use of the '-m64' GCC flag from the various mkprodct.csh scripts.
> >
> > I would be curious for people with the relevant hardware to try out spiceypy/cspice conda-forge distributions.
> >
> > -Andrew
> >
> > From: Spice_discussion <spice_discussion-bounces at naif.jpl.nasa.gov> on behalf of Manikantan Ramadas <manikantan at istrac.gov.in>
> > Sent: Friday, April 9, 2021 12:32 AM
> > To: Wright, Edward D (US 392N) <edward.d.wright at jpl.nasa.gov>
> > Cc: spice_discussion at naif.jpl.nasa.gov <spice_discussion at naif.jpl.nasa.gov>; mramadas at gmail.com <mramadas at gmail.com>
> > Subject: Re: [Spice_discussion] CSPICE on M1 Apple-Silicon Macs
> >
> >
> >       External Email - Use Caution
> >
> >
> > Hi all,
> >
> > Please see the email below. This earlier mail didn't go through because of the PDF attachment, I had, I understand.
> >
> > Here I am sending the note in Text format. Hope it would help someone who is trying to get C SPICE library working on the Apple Silicon Macs.
> >
> >
> > Thanks and Regards,
> > Manikantan Ramadas
> > --
> > "By being pleasant always and smiling, it takes you nearer to God,
> > nearer than any prayer." - Sri Ramakrishna Paramahamsa
> > ------------------------------------------------------------------
> >
> >
> >
> >
> >
> >
> > From: mramadas at gmail.com <mramadas at gmail.com>
> > Sent: Thursday, April 8, 2021 12:17 AM
> > To: Wright, Edward D (US 392N)
> > Cc: spice_discussion at naif.jpl.nasa.gov; Manikantan Ramadas
> > Subject: Re: [Spice_discussion] CSPICE on M1 Apple-Silicon Macs
> >
> > Hi Mr.Edward Wright,
> >
> > Sorry about the delay in getting back. I couldn’t spend much time on this until now.
> >
> > Tonight, I did put in some time, and was able to make the SPICE Library compile on MacOS on Apple Silicon.
> > It had to do with the inclusion of the unistd.h header file that gives the access() function explicitly in the cspice/src/inquire.c
> >
> > I have written a short note on this. I have also include an Appendix in this Note on how to get the C Compiler environment going on Apple Silicon - because it was a bit of a learning curve for me, and it might help someone else.
> >
> > I have attached the Note, and a short file inquire.c.diff that you may use to quickly patch the inquire.c file (for Apple Silicon - if you were to make a SPICE library package for this hardware platform) as in:
> > patch inquire.c inquire.c.diff
> >
> > Thanks and Regards
> > R.Manikantan
> >
> >
> >> On 05-Mar-2021, at 9:31 PM, Wright, Edward D (US 392N) <edward.d.wright at jpl.nasa.gov> wrote:
> >>
> >> To: R Manikantan
> >> From: Edward Wright
> >>
> >> As of now, no work on an Apple ARM64 Mac by NAIF. We built and successfully tested CSPICE on the Raspberry Pi platform, so I believe an ARM64 build a solvable problem.
> >>
> >> What compile errors did you observe?
> >>
> >> As always,
> >> Edward Wright
> >>
> >>
> >>
> >> From: spice_discussion-bounces at naif.jpl.nasa.gov <spice_discussion-bounces at naif.jpl.nasa.gov> on behalf of Manikantan Ramadas <mramadas at gmail.com>
> >> Sent: Wednesday, March 3, 2021 9:20:06 AM
> >> To: spice_discussion at naif.jpl.nasa.gov
> >> Subject: [Spice_discussion] CSPICE on M1 Apple-Silicon Macs
> >>
> >> Hi all,
> >>
> >> I was wondering if any of us have successfully compiled and using CSPICE library on the new Apple Silicon (ARM64) M1 Macs?
> >>
> >> I got the gcc from Apple via Developer-Tools / XCODE package, but ran into certain compilation errors in the process. It would be good to know if anyone had already run into / solved issues on this front..
> >>
> >> Thanks & Regards,
> >> R Manikantan
> >> _______________________________________________
> >> Spice_discussion mailing list
> >> Spice_discussion at naif.jpl.nasa.gov
> >> https://urldefense.us/v3/__https://nam02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fnaif.jpl.nasa.gov*2Fmailman*2Flistinfo*2Fspice_discussion&data=04*7C01*7Caannex1*40jhu.edu*7C1e6c4b2b5f7e44a9b69d08d8fd0fd91e*7C9fa4f438b1e6473b803f86f8aedf0dec*7C0*7C0*7C637537591809067785*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000&sdata=cFhwT2N3Bv0wsU9oc0cHspwvtaVsxmXy7UtiFefbx5w*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJQ!!PvBDto6Hs4WbVuu7!ZM1vqQB3_hVWdx6ynKE22rIpoJDzLUo3O1YkaFTrCzvs28zVZz9AbnhGEysESBTOPqIg75Vkd5zaqA$ 
> >
> > _______________________________________________
> > Spice_discussion mailing list
> > Spice_discussion at naif.jpl.nasa.gov
> > https://urldefense.us/v3/__https://nam02.safelinks.protection.outlook.com/?url=http*3A*2F*2Fnaif.jpl.nasa.gov*2Fmailman*2Flistinfo*2Fspice_discussion&data=04*7C01*7Caannex1*40jhu.edu*7C1e6c4b2b5f7e44a9b69d08d8fd0fd91e*7C9fa4f438b1e6473b803f86f8aedf0dec*7C0*7C0*7C637537591809067785*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000&sdata=AXyAl4BVn3m9fVNgO6VFc5rquptVnCEOqCXkfF7dKKs*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJQ!!PvBDto6Hs4WbVuu7!ZM1vqQB3_hVWdx6ynKE22rIpoJDzLUo3O1YkaFTrCzvs28zVZz9AbnhGEysESBTOPqIg75WnGqKRjg$ 




More information about the Spice_discussion mailing list