libtbb upgrade breaks build
Hi again,
unfortunately, a system update of mine broke the build again. The following report is more a list of things that I think might have happened, but I don’t know since I’m not a C++ expert (or even novice).
This time, my OS updated libtbb
to version 2021.4.0. This is what I have figured out so far, I think:
- Just running
make
yielded the error message:
../../../Source/Ember/EmberPch.h:72:18: fatal error: tbb/task_scheduler_init.h: No such file or directory
- I then found this article describing that that file was being replaced with something else I think. From the version history, I figured out that they removed this file in version 2021.1.1
Being a naive non-C++ user, I wanted to figure out what would happen if i just comment out line 72 inEmberPch.h
:
// #include <tbb/task_scheduler_init.h>
This yielded errors that I have no clue about:
/usr/include/oneapi/tbb/profiling.h:229:15: error: expected unqualified-id before ‘)’ token
It might be related to some C++-std-version? Unfortunately, this is where I’m no further help I think. I have tried compiling it with C++20, but that just resulted in more compilation errors that I have no clue about.
If I can be of any help, don’t hesitate to ask.
I’m running the build using GCC 11.1 on Arch Linux 5.15.11, if that is of any help.
Comments (5)
-
repo owner -
repo owner I’ve spent some time looking at this. It appears Intel has relinquished control of Threading Building Blocks and passed on maintenance responsibility to some other organization. They’ve changed around some of how tbb is structured, and added a new dependency for querying hardware capabilities. I am highly reluctant to add new dependencies to the project, because keep in mind they have to work on all three major OSes. I also really don’t have much time to spend on this project, as I am currently spending almost all of my free time on my other project, Keysharp.
The main reason I was using TBB was for the parallel_for() function. I didn’t use any fancy dynamic partitioning, I just needed to break work up into chunks, one for each core.
So I have decided to completely strip all TBB dependencies out of the project and just write my own parallel_for() function which took all of 20 lines to do.
Please pull fresh and try to build again. Let me know how it goes.
-
reporter Hi Matt,
the build works like a charm. Thank you very much.
I would like to support you and the development of Fractorium, is there a way where I could donate something?
Cheers,
Benjamin -
repo owner Glad to hear it works now. One less dependency.
Thanks for the offer, I am flattered, but I’ve never taken any donations for Fractorium. Maybe I will set up a donation page for Keysharp once I release the code, which should be in a few months.
-
repo owner - changed status to closed
Fixed by removing tbb.
- Log in to comment
Thanks for the report. Let me grab the latest tbb from github and see where it breaks and I’ll report back.