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

[fftw3] Fix the build error and usage of feature openmp #35483

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

LilyWangLL
Copy link
Contributor

Fixes #10930, fix the build error and usage of feature fftw3[openmp].
About the build error, the related upstream issue: FFTW/fftw3#120.

Feature fftw3[openmp] passed with following triplets:

x86-windows
x64-windows
x64-windows-static

Usage test passed on x64-windows.

  • Changes comply with the maintainer guide
  • SHA512s are updated for each updated download
  • The "supports" clause reflects platforms that may be fixed by this new version
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

@LilyWangLL LilyWangLL added category:port-bug The issue is with a library, which is something the port should already support info:internal This PR or Issue was filed by the vcpkg team. labels Dec 4, 2023
@LilyWangLL LilyWangLL marked this pull request as ready for review December 4, 2023 11:01
@Cheney-W Cheney-W added the info:reviewed Pull Request changes follow basic guidelines label Dec 4, 2023

if (OPENMP_FOUND)
- add_library (${fftw3_lib}_omp ${fftw_omp_SOURCE})
+ add_library (${fftw3_lib}_omp ${SOURCEFILES} ${fftw_omp_SOURCE})
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure, but this seems incorrect to me because it's going to duplicate builds of all those other files, and:

add_library (${fftw3_lib} ${SOURCEFILES})
# ...
target_link_libraries (${fftw3_lib}_omp ${fftw3_lib})

means symbols declared by those files should already be available to ${fftw3_lib}_omp.

I observe that fftw3 spams these functions out with 'X macros' ; is it possible the actual problem is that something else disagrees between the build of fftw3_lib and fftw3_lib_omp?

Copy link
Member

Choose a reason for hiding this comment

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

Oh wait I think I see the problem now. ${fftw3_lib} is being built as a DLL that doesn't correctly export these. I'm still not sure repeating their definitions in the DLL is the correct outcome...

Copy link
Member

Choose a reason for hiding this comment

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

Has this been reported upstream? Worst case the feature could be marked with "supports": "!windows | static".

Block Windows and dynamic is: !(windows & !static).
Demorgan to get rid of parens: !windows | static.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I submitted an upstream issue: FFTW/fftw3#342, waiting for the upstream's response.

Copy link
Contributor

Choose a reason for hiding this comment

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

It is always difficult to report vcpkg issues to upstream unless fully understanding the modifcations which are already in vcpkg.

Copy link
Contributor

Choose a reason for hiding this comment

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

And upstream has very little activity. Still waiting for FFTW/fftw3#331.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is true that the upstream response is slow. If there is no response, I will add supports for this feature next week.

@BillyONeal BillyONeal added requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. and removed info:reviewed Pull Request changes follow basic guidelines labels Dec 5, 2023
@BillyONeal BillyONeal marked this pull request as draft December 5, 2023 03:47
@dg0yt
Copy link
Contributor

dg0yt commented Dec 8, 2023

Fixes #10930, fix the build error and usage of feature fftw3[openmp].

... from 2020

About the build error, the related upstream issue: FFTW/fftw3#120.

... from 2017.

Is this still an active issue?
https://github.com/microsoft/vcpkg/pull/32999/files added some changes to the port, also for openmp.

@LilyWangLL
Copy link
Contributor Author

Is this still an active issue?
https://github.com/microsoft/vcpkg/pull/32999/files added some changes to the port, also for openmp.

Yes, this issue still exists, fftw3[openmp] still build failed on dynamic.

@Cheney-W Cheney-W removed the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Dec 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support info:internal This PR or Issue was filed by the vcpkg team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[fftw3[openmp]] build failure
4 participants