-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Implement #70374: Update libtool #13476
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
base: master
Are you sure you want to change the base?
Conversation
0177389
to
f9ace69
Compare
Just a quick update here. At the time of writing, there is Libtool 2.5.0 being rolled out and another update will soon followi this tag. It might take few months for this to happen as it's not uploaded yet to public servers or officially announced yet. The recent fixes that were added to the php-src forked/bundled libtool 1.5.26 will be included most likely in the 2.5.1. 🤞 (mainly those strict-prototypes warnings). I'll recheck this and open a separate discussion when time is right for this. Hopefully, PHP-8.4 should get this bumped also in some way. Otherwise, the PHP version after the 8.4 definitely. Also there could be an optional "feature" in this PR also to patch the libtool using a .patch file to include critical updates if needed in the future. |
This adds a simple shell script that copies Libtool generated files and merges all M4 macro files to a single file libtool.m4 for convenience.
The libtool 1.5.26 is bundled with PHP since the very early days of the Autotools build system to ease the building process and avoid additional dependency on the system Libtool. This updates the bundled libtool to the current 2.5.4 version. Fixes and implementations: - Fixed race conditions when building PHP in parallel ("cannot create .libs" warnings). - Implements request #70374 (Update libtool.m4) Changes: - On macOS linker now uses -undefined dynamic_lookup flag for shared extensions and shared embed SAPI (libphp) instead of older '-undefined suppress -flat_namespace' combination. Steps done: ``` git clone https://git.savannah.gnu.org/git/libtool.git cd libtool git checkout v2.5.4 ./bootstrap cp build-aux/ltmain.sh \ m4/libtool.m4 \ m4/lt\~obsolete.m4 \ m4/ltoptions.m4 \ m4/ltsugar.m4 \ m4/ltversion.m4 \ ../php-src/build/ cd ../php-src sed -e 's/^#[ ]*serial .*lt.*/dnl &/g' < build/libtool.m4 \ > build/libtool.m4.tmp && mv build/libtool.m4.tmp build/libtool.m4 ```
Rebased commits and updated files for Libtool 2.5.4 version. Changes are noted in commit(s). |
The libtool 1.5.26 is bundled with PHP since the very early days of the Autotools build system to ease the building process and avoid additional dependency on the system Libtool.
This updates the bundled libtool to newer version.
There were attempts to upgrade this tool in the past but we were concerned with too many failure possibilities at the time. I think PHP-8.4-dev is ready for this step today. It's actually not so much of a problem. Libtool is a very simple tool from the generated Makefile point of view - it generates the linking rules etc and it can be easily compared with the previous version from the Makefile directly. This is for now only in the draft PR phase, because I'll rebase the branch on the way and probably refactor more in the PR. This is just to get an overview.