Skip to content
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

Add setup-fedora.sh #8374

Closed
wants to merge 1 commit into from
Closed

Conversation

czentgr
Copy link
Collaborator

@czentgr czentgr commented Jan 13, 2024

This script allows you to setup the dependencies to attempt a build on Velox. It has been tested from a clean install of Fedora 39.

Note: this version builds and installs Boost 0.84. The other scripts install Boost 0.72 but this version causes compile errors. Boost will needed to be upgraded at some point because there is a known bug that causes incorrect results in Velox which is being fixed in Boost.

Fedora 38/39 ships with gcc13 and you cannot downgrade gcc to a version (e.g. gcc9 or gcc10) that won't report compile errors in the code of the currently used dependency versions.

Two issues found are compile errors in:

  1. DuckDB -> upgrade from 0.8.2 to 0.9.2 fixes these
    Error with 0.8.2
/home/czentgr/gitspace/velox/_build/debug/_deps/duckdb-src/src/core_functions/scalar/enum/enum_functions.cpp:15:15: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
   15 |     	auto &enum_vector = EnumType::GetValuesInsertOrder(input.GetTypes()[0]);
  	|           	^~~~~~~~~~~
  1. folly

Folly error:

/home/czentgr/gitspace/velox/_build/debug/_deps/folly-src/folly/system/AtFork.cpp: In member function ‘void folly::AtForkList::append(const void*, folly::Function<bool()>, folly::Function<void()>, folly::Function<void()>)’:
/home/czentgr/gitspace/velox/_build/debug/_deps/folly-src/folly/system/AtFork.cpp:73:26: error: ‘invalid_argument’ is not a member of ‘std’
   73 | 	throw_exception<std::invalid_argument>("at-fork: append: duplicate");
  	|                      	^~~~~~~~~~~~~~~~
/home/czentgr/gitspace/velox/_build/debug/_deps/folly-src/folly/system/AtFork.cpp:23:1: note: ‘std::invalid_argument’ is defined in header ‘<stdexcept>’; did you forget to ‘#include <stdexcept>’?
   22 | #include <folly/synchronization/SanitizeThread.h>
  +++ |+#include <stdexcept>
   23 |
/home/czentgr/gitspace/velox/_build/debug/_deps/folly-src/folly/system/AtFork.cpp:73:43: error: no matching function for call to ‘throw_exception<<expression error> >(const char [27])’
   73 | 	throw_exception<std::invalid_argument>("at-fork: append: duplicate");
  	| 	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

At this point I stopped the investigation for now. However, the script at least allows you to use Fedora and play.

Resolves: #8344

Copy link

netlify bot commented Jan 13, 2024

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 6c168be
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/6600f5648b04d00008110720

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jan 13, 2024
@kgpai
Copy link
Contributor

kgpai commented Jan 13, 2024

Thanks @czentgr , I will try testing this out an instance of Fedora soon.

@czentgr
Copy link
Collaborator Author

czentgr commented Jan 14, 2024

@kgpai

Thanks @czentgr , I will try testing this out an instance of Fedora soon.

This doesn't fully work though because Velox will not build due to issues with DuckDB and Folly and (likely others) others due to gcc13.
I was about to change the script to build and install gcc10 (which I know from Ubuntu did ok).

@majetideepak
Copy link
Collaborator

We are upgrading fmt and folly. I hope that will resolve the folly issues.

@czentgr
Copy link
Collaborator Author

czentgr commented Mar 25, 2024

I've updated the script now due to the newest additions and updates. This will build the dependencies with gcc13/g++13 - the default compiler in Fedora 39.

The next issue is that the Velox code isn't ready for gcc13. There are some stricter rules now. For example, I found where a std::function parameter returns a const string& and a test implementation for this lambda has as body {returns ""} - which is now an error.

I've started to look at some of these. Depending on the time its probably a good idea to try and make this work for gcc13?

Copy link

stale bot commented Jun 23, 2024

This pull request has been automatically marked as stale because it has not had recent activity. If you'd still like this PR merged, please comment on the PR, make sure you've addressed reviewer comments, and rebase on the latest main. Thank you for your contributions!

@stale stale bot added the stale label Jun 23, 2024
@stale stale bot closed this Jul 9, 2024
@czentgr czentgr deleted the cz_fedora branch July 31, 2024 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support Velox on fedora
4 participants