-
-
Notifications
You must be signed in to change notification settings - Fork 686
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
libtiff: update to 4.7.0 #4961
libtiff: update to 4.7.0 #4961
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally looks good. Do you plan to do an update to 4.7.0 now, or is that left for later?
I think it will be done in this PR. VTK's 4.6.0 changes were used and were committed in the same sub-tree as upstream. However this changes get clobbered when the updating to 4.7.0. I believe that the merge of the VTK changes need to be "flattened" so that they are in the main ITK tree. @bradking How do you suggest fixing the history so that updating to 4.7.0 will not remove the VTK changes? |
I don't think we should import into ITK from VTK's third-party repo. I'll rebuild this to make the net changes directly. |
I did a "git cherry-pick -m 1 7408285" and that seemed to "flatten the merge into a single parent commit. EDIT: Just updated the PR with that WIP. |
2c5e1b4
to
270da9e
Compare
270da9e
to
5e2afda
Compare
@blowekamp I rebuilt your PR to update directly from upstream tiff 4.7.0 and apply ITK-specific build system edits. |
@blowekamp if there are any problems in CI, you can just edit the last commit or add new commits. This needs to be merged with a real merge commit and no rebase or squash. Then future updates with |
Amazing work! How was the name mangling generated? Does it still need to be run on other systems? Also It looks like libtiff.def needs to be converted to a "cmake.in" to support Also the libtiff.map file has the unmagled names but it looks like the file is not used and can be removed. |
I'll rebuild the branch with |
Code extracted from: https://gitlab.com/libtiff/libtiff.git at commit 9dff73bebc5661f2dace6f16e14cf9e857172f4e (v4.7.0).
* upstream-tiff: tiff 2024-09-11 (9dff73be)
Some have been adamant that these command must be run on all platforms to ensure all symbols have been identified. So what platform(s) was it run on?
This is the commit that introduced it: My understanding is that 3D Slicer has multiple version of ITK in the runtime. ( ITK Python for pip and local build?) and there were problems with conflicting symbols. Additionally, missing mangled symbols with third partly libraries have caused problems. |
5e2afda
to
256bb57
Compare
Okay, I pushed an update to drop the The mangling currently accounts for Windows, macOS, and Linux. |
I've seen this in the past, with HDF5 I think, which both VTK and ITK use, where the mangling was done only with some OSes and some symbols where missed, and then both VTK and ITK have the same symbol and you get a link error. 95% of symbols are of course shared between OSes, but that 5% has bitten us in the past. |
@bradking Thanks for all the work! I checked the symbols an my Mac ARM and nothing were missing. I did have to modify the commands to make the symbols unique and sort them with case insensitivity ( but there were still order difference). I also build from an installed version of ITK successfully too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bradking @blowekamp THANK YOU FOR YOUR HARD WORK!!!
Hans
7e3492b
into
InsightSoftwareConsortium:master
PR Checklist
Refer to the ITK Software Guide for
further development details if necessary.