-
-
Notifications
You must be signed in to change notification settings - Fork 896
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
dep: libxml 2.12.0 upgrade (with libxml2 patch for weakref) #3032
Conversation
7f4a743
to
9c9c99c
Compare
CI didn't kick off, so the manual run is https://github.com/sparklemotion/nokogiri/actions/runs/6916120729 |
because extconf contains the recipe by which libxml2/libxslt are built
because link-time behavior is important for the libpthread changes being made.
though note that libxslt was also previously updated to 1.1.39 on the v1.15.x branch. - https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.12.0 - https://gitlab.gnome.org/GNOME/libxslt/-/releases/v1.1.39
OK, so even with the patches applied, we're still pulling in You can read more about TLS at https://maskray.me/blog/2021-02-14-all-about-thread-local-storage Turning off TLS by configuring libxml2 with |
Using thread-local variables in position-independent code (i.e., combining `__thread` variables with the `-fPIC` compiler option) introduces a (non-weak) reference to `__tls_get_addr` which resolves to `ld-linux` on glibc systems and `libwinpthread` on windows systems. This is an issue when precompiling for musl on glibc systems. If and when we can build a separate musl native gem, we can revisit this decision.
9c9c99c
to
004e6a6
Compare
This seems like the winner. |
There have been two recent changes in libxml2 2.11 and than 2.12 which broke two specs related to the conversion of UTF-8 chars. This commit sets the minimum required Nokogiri version to 1.16 which bundles libxml2 2.12, in order to have a predictable behaviour. References: - premailer#430 - sparklemotion/nokogiri#2965 - sparklemotion/nokogiri#3032 - GNOME/libxml2@f1c1f5c - GNOME/libxml2@37cedc0 Close premailer#443
There have been two recent changes in libxml2 2.11 and than 2.12 which broke two specs related to the conversion of UTF-8 chars. This commit sets the minimum required Nokogiri version to 1.16 which bundles libxml2 2.12, in order to have a predictable behaviour. References: - premailer#430 - sparklemotion/nokogiri#2965 - sparklemotion/nokogiri#3032 - GNOME/libxml2@f1c1f5c - GNOME/libxml2@37cedc0 Close premailer#443
What problem is this PR intended to solve?
#3031
This approach uses the patches submitted upstream at:
and turns off libxml2's thread-local storage feature, which is an issue when precompiling for musl on glibc systems. If and when we can build a separate musl native gem, we can revisit this decision.