-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0.21.0 broken on macOS 12 and below when built via Macports #589
Comments
Thanks for the report. It works at CRAN where macOS binaries for tiledb-r 0.21.0 have already appeared. Quoting from the CRAN page now and less than 20 or so hours after this was uploaded:
As we do not work with macports nor consider this to be a direct release architecture, maybe you can liase with them and smooth this out? If you find that something needs to change at our end we will gladly consider clean PRs. |
@eddelbuettel Thank you for responding. We will look into that, I have already opened a ticket on Trac too: https://trac.macports.org/ticket/68162 |
@eddelbuettel MacPorts just builds the software created by its developers. When it does not build, we report things to the developers so that they can fix them. Sergey is the maintainer of this software in MacPorts and he is reporting to you that it does not build. This does not mean MacPorts is the problem; it means there is a build scenario you haven't considered and should consider. At the moment, I suspect it may be the compiler version. I will add more notes to the MacPorts ticket. |
I concur that it is likely the compiler version, and we do state our requirements. I retirerate that this is a package written for R ecosystem, and CRAN sets pretty clear standards. In particular, the macOS maintainer for CRAN and R Core is quite adamant in his recommendation that 'his' tools from mac.r-project.org should be used (even though in real life many people use homebrew "just because"). So it appears that we are standing in the middle of a little skirmish between macports and CRAN. We have little to add here: we use CRAN tooling, and that works. |
@eddelbuettel Well, if something does not build on every recent macOS on the standard arch (x86_64) and with the modern and standard compiler (clang-15), it suggests that there is likely a bug in the code, even if CRAN tools may get around or obscure it. (Were the error happening only on old macOS or unsupported archs, I would first assume the problem is there; here, however, GCC builds |
@barracuda156 You have access to the platform where it fails, we do not. That means you can reproduce, we cannot. As I said in first comment, we will gladly entertain clean and well reasoned PRs without side effects. Otherwise our work may prioritise progress on platforms used by our clients and/or us. This currently covers neither powerpc, nor macports. |
I see these requirements listed: Lines 20 to 21 in 3c675c6
This appears to be a typo; you appear to have meant macOS 10.14, not 11.14 (which does not exist). In this issue we are talking about macOS 12.6.8 on x86_64 building with MacPorts clang 15.0.7. PowerPC processors are not involved. I am not familiar with R or CRAN or its policies or recommendations. MacPorts is a build from source system. Sergey has been instrumental in getting at this point over well over 4,000 R modules into MacPorts for the benefit of R users who like to install their software that way, and we greatly appreciate his efforts in improving MacPorts. |
Indeed a typo. Code is truth, as always. Lines 161 to 166 in 3c675c6
Again, we work with what we have access to, which is CRAN's setup on macOS. I think we should close this now as we are going in circles. We can support your port on a best-efforts, basis but our priorities lie elsewhere so we cannot port this for you. (I have a personal side project support 20k binaries from CRAN for Ubuntu on two Ubuntu LTS build flavours but life is easier on x86_64: https://eddelbuettel.github.io/r2u) |
*** caught illegal operation *** address 0x10bdb08e2, cause 'illegal opcode'
By the way, the build succeeds on all macOS versions (11, 12, 13) on arm64, but only succeeds on macOS 13 on x86_64. |
When arm64 was added I think as minimum compile version was imposed. I will close (and possibly lock) this now. I am not part of the r-sig-mac mailing list and I cannot help you any further: our repository contains as R package which builds on the supported macOS builds. For the rest (including ports to platforms we do not have) you are on your own. We will try to help, I do not feel like this discusssion has helped anyone (besides you informing about a type I shall fix, so thank you). |
As I said, at MacPorts we encourage our contributors to report problems to the developers so that they can be fixed at the source. By closing such bug reports without addressing them, you are sending the message that you do not want bug reports and you disincentivize your users and partners from reporting any future problems—even those that might affect your supported platforms, because how would we know the scope of the problem? As a result, the quality of your software will suffer. |
Thanks. We heard you the first time. We wish you well. |
@barracuda156 @ryandesign thanks for opening the issue. Circling back here, we're happy to keep this open as a line of communication while you debug. The only thing that comes to mind immediately as a potential cause for Assuming we are not enabling the AVX2 code, and libtiledb + tiledb-r are both compiled completely from source, then I would start to consider other possibilities. It would be very helpful to know exactly what CPU architecture you are running on, and whether all build+tests processes in macports are guaranteed to occur on the same build node. |
Note that the As detailed in the installation options vignette if and when a library has been built locally, potentially better reflecting local platform settings, then |
@ihnorton @eddelbuettel Just to be clear:
P. S. I will look into what happens with Intel-specific build choices, but the error looks unfamiliar to me. I believe, I never saw it happening with |
We have seen this on aging CPUs: the illegal instruction is eg what happens when you hit AVX2 code a cpu too old to support. I have also seen it with package arrow on an ancient Xeon I use for bulk tests. |
@ryandesign Ryan, could you please check locally if it builds for you on any recent macOS (x86_64) which is convenient to test? Just to make sure it is not only our buildbots which fail. |
Also FWIW before downloading a convenience pre-made library for users on Linux we check for avx2 availability. On the more controlled macOS side that was never an issue / is not an issue for CRAN from where our users get their macOS builds: TileDB-R/tools/fetchTileDBLib.R Lines 33 to 43 in 3c675c6
If your hardware deviates, your best bet (and documented option) is to compile TileDB Embedded locally for use by the TileDB R package. |
@eddelbuettel This is precisely what is being done. |
I am sure you will be able to devise a workaround given that you can reproduce it. We cannot. (Also unclear from your diff. The same logic applies also for downloaded blobs. But life is too short for arguing here so I will no longer engage. I gave you the help I can give you.) |
There is no implication that anyone should, but in a case someone wishes to, it is trivial to reproduce Macports setup, provided hardware is available: for x86_64 pre-built ports are there, so |
Thanks for the information, @barracuda156. |
@ihnorton Perhaps worth adding: if Macports is just installed, run |
https://build.macports.org/builders/ports-10.15_x86_64-builder/builds/155770/steps/install-port/logs/stdio
The same on every macOS version from 12 down, examples:
https://build.macports.org/builders/ports-12_x86_64-builder/builds/82096/steps/install-port/logs/stdio
https://build.macports.org/builders/ports-11_x86_64-builder/builds/127411/steps/install-port/logs/stdio
https://build.macports.org/builders/ports-10.13_x86_64-builder/builds/205106/steps/install-port/logs/stdio
The text was updated successfully, but these errors were encountered: