Skip to content

Add support for reentrant qhull#4540

Merged
mvieth merged 16 commits intoPointCloudLibrary:masterfrom
al-tu:reentrant-qhull-support
May 18, 2021
Merged

Add support for reentrant qhull#4540
mvieth merged 16 commits intoPointCloudLibrary:masterfrom
al-tu:reentrant-qhull-support

Conversation

@al-tu
Copy link
Copy Markdown
Contributor

@al-tu al-tu commented Dec 10, 2020

non-reentrant qhull is deprecated
for me turned out to be the only way to deal with "undefined reference to 'qh_qh'" with any qhull/pcl build options combinations i tried
tested with qhull 8.0.2

related issues/PRs:
#1618
#1565

@kunaltyagi kunaltyagi linked an issue Dec 15, 2020 that may be closed by this pull request
@kunaltyagi kunaltyagi changed the title reentrant qhull support Add support for reentrant qhull Dec 15, 2020
@larshg
Copy link
Copy Markdown
Contributor

larshg commented Dec 20, 2020

I think this one can be merged, after ci 16.04 is removed.

set(QHULL_MAJOR_VERSION 8)

if(QHULL_USE_STATIC)
set(QHULL_RELEASE_NAME qhullstatic)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be changed to qhullstatic_r (and below qhullstatic_r_d)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, thanks

@Tobias-Fischer
Copy link
Copy Markdown
Contributor

With the addition of the minor change above, I found this PR works nicely when building pcl on conda-forge: conda-forge/pcl-feedstock#30

@kunaltyagi kunaltyagi added the needs: testing Specify why not closed/merged yet label Apr 4, 2021
Copy link
Copy Markdown
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CMake along with the HAVE_QHULL_2011 flag needs to be looked at more deeply. Sadly, I'm not an active user of surface, and my testing will not be deeper than what the CI already does

The other changes LGTM (though I'm surprised only these few changes are needed)

@mvieth
Copy link
Copy Markdown
Member

mvieth commented Apr 4, 2021

@al-tu Could you delete these two lines so that our Ubuntu 20.10 check also runs the hull tests?

@larshg
Copy link
Copy Markdown
Contributor

larshg commented Apr 4, 2021

The CMake along with the HAVE_QHULL_2011 flag needs to be looked at more deeply. Sadly, I'm not an active user of surface, and my testing will not be deeper than what the CI already does

Some of this was discussed in #3741.

@kunaltyagi
Copy link
Copy Markdown
Member

Based on that discussion, the conditional statements for 2011 shouldn't be needed (since the lowest we support is 18.04)

@mvieth
Copy link
Copy Markdown
Member

mvieth commented Apr 18, 2021

@al-tu Are you still willing to work on this pull request so that we can hopefully merge it soon?

@al-tu
Copy link
Copy Markdown
Contributor Author

al-tu commented Apr 19, 2021

@al-tu Could you delete these two lines so that our Ubuntu 20.10 check also runs the hull tests?

done

@al-tu
Copy link
Copy Markdown
Contributor Author

al-tu commented Apr 20, 2021

build failed with "out of disk space" error on runner, should i just retry (i hope some rotation takes place in such cases)?

@mvieth
Copy link
Copy Markdown
Member

mvieth commented Apr 20, 2021

build failed with "out of disk space" error on runner, should i just retry (i hope some rotation takes place in such cases)?

I re-ran the failed test, that error happens from time to time, we don't have a solution for that yet.

Copy link
Copy Markdown
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All instances of qh macro and 2011 macro have been replaced :)

There are some instances where qh_* functions don't take a qh parameter (eg: concanve_hull.hpp, line 272), but I assume that's not an issue because the CI doesn't complain

PR LGTM otherwise (Will approve after some discussion)

Should we be changing our minimum versions supported after this PR?

@mvieth
Copy link
Copy Markdown
Member

mvieth commented May 11, 2021

Should we be changing our minimum versions supported after this PR?

Where do you mean? In the tutorials about compiling PCL or somewhere else?
The tutorials mention many outdated library versions, not only qhull but also Eigen, Boost, etc.

Copy link
Copy Markdown
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true, tutorials is quite outdated wrt claim of min version

@kunaltyagi kunaltyagi requested a review from mvieth May 17, 2021 12:41
Copy link
Copy Markdown
Member

@mvieth mvieth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @al-tu !

@mvieth mvieth merged commit b19c99a into PointCloudLibrary:master May 18, 2021
@al-tu al-tu deleted the reentrant-qhull-support branch July 28, 2021 22:30
mvieth pushed a commit to mvieth/pcl that referenced this pull request Dec 27, 2021
* using reentrant qhull by default, qhull calls edits

* using reentrant qhull by default, qhull calls edits

* using reentrant qhull by default, qhull calls edits

* cmake for qhull fix

* cmake for qhull fix

* static libs made reentrant as well

* turning surface tests on for 20.10

* typos fixes, using errfile for qh_zero second param

* removing HAVE_QHULL_2011 and assuming its always true

* removing QHULL_MAJOR_VERSION
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs: testing Specify why not closed/merged yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failed to build PCL against recent **Qhull libqhull_r.so**

5 participants