-
Notifications
You must be signed in to change notification settings - Fork 231
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
configure: error: tbb include file (tbb.h) not found #3055
Comments
Macaulay2 requires at least TBB 2020. Try installing a newer TBB first: https://github.com/oneapi-src/oneTBB/blob/master/INSTALL.md |
That makes sense. Where should the files need to end up for M2 to be happy? I tried setting "-DCMAKE_INSTALL_PREFIX=" from the tbb INSTALL instructions to my M2 directory where I am running ./configure. I've tried placing tbb in the "include" directory as well, but it still doesn't see tbb.h. I guess what I am asking is where does this check for tbb.h? |
It likely checks in directories like So for example, let's say you installed the TBB header files to something like |
Ah, okay! That worked! However, I then run into: Using the --without-libffi option, as it says, it gets to this strange error: EDIT: Guess I should mention I have libffi-3.1-24.el8.x86_64 installed. |
It's definitely fine to compile using The next error is strange! What happens if you try compiling the following simple little C program? #include <stdio.h>
#include <netdb.h>
int main(void)
{
struct addrinfo *addr;
printf("%d\n", getaddrinfo("1.2.3.4", "80", 0, &addr));
return 0;
} You could save it as something like |
Ran the above and it returns 0, so it seems to work. I found the similar section of the configure file and was looking at that.
If I'm reading this right, this ought to return 0, but is returning 99? |
I think if Can you attach the |
Here you go. I am, probably unwisely, running make after bypassing that section of code. (I simply edited the following if statement from "!= 99" to "= 99".) It seems to be working, but I'd definitely would prefer to know why it fails since i have no idea what the purpose is for the getaddrinfo test. I intend to install this on other identical machines. I saw an option for "--enable-rpm" in the configure help and would be attempting that if I can get this to work. |
Ah, ok! I don't think this has anything to do with
So similar to using I also noticed that it's going to try building a lot of dependencies:
If you can find rpm's of any of those and install those ahead of time, then that will also simplify things. There's a list in the Macaulay2 Lines 136 to 142 in 86d6c70
|
Can you install brew on RHEL? |
Never used it before, but have heard of it. It looks like it's a possibility. The end goal is to have a repeatable method of deploying Macaulay2 since we've got a bunch of machines with multiple users who will be wanting to install it. Preferably in some way that an Ansible playbook could handle.
I've got all the packages installed it seems like, but must be missing something:
I still can't succeed with compiling, and the From what I can tell, gcc looks in these directories when I execute dummy compile command I found:
I've tried placing tbb and gcc libraries directly in /usr/local/lib. I've tried putting the headers or symlinks in the above include directories as well, but it seems like it still can't find them. |
Ah, then brew might not be very optimal. Have you tried the CMake build? (See INSTALL-CMake.md) Also, I think @antonleykin has built M2 on RHEL before. |
Sorry for not following up. I've been running down other issues. I think I'll start over on a blank RHEL8 box and try fresh using cmake steps. Will follow up with what I run into. |
I've had a little time and started over with a fresh RHEL 8 box that I can revert snapshots on at will. There's nothing on this other than me trying to run this compile. When I run the "INSTALL" instructions I get to the gcc make step and run into issues:
I will attempt to do CMAKE instead and see if that goes better. I attempted linuxbrew without much luck before building this VM to test. |
For my CMAKE attempt, I wind up running into TBB and other issues again. I'm doing nothing outside the instructions other than running "dnf install gcc gcc-c++ openssl-devel git gtest texlive-latex" and running make for compiling CMAKE itself.
My attempt to dnf install tbb shows: Listing the /usr/include/tbb/ directory shows:
|
Okay, so looking at it again, I see that the CMAKE version also wants TBB and I've been trying to narrow down these dependencies.
So, I'm not sure how I got tbb 2020 on my original machine. Possibly via pip. For my current VM, I'm trying to start clean and maybe I'm over complicating this. I'm attempting to use rpmbuild with the Fedora 38 source rpm.
I've eliminated all dependencies for this TBB rebuild except this. So, if doing a rpmbuild --rebuild of the srpm is a bad idea, let me know now. Otherwise, that's what I'm trying to figure out. |
It seems that following the instructions in https://github.com/oneapi-src/oneTBB/blob/master/INSTALL.md was helpful in building TBB and then M2 on RHEL8.1: #3485. Does this work for you? |
I'm attempting to compile M2 on multiple RHEL 8 machines and keep running into issues:
I seem to have tbb already installed, but not sure what the issue is. I've very little experience with compiling or using make to use software.
What should be my next steps? I seem to already have tbb:
Package tbb-2018.2-9.el8.x86_64 is already installed.
The text was updated successfully, but these errors were encountered: