Mercurial > vim
view runtime/vimlogo.eps @ 33060:897f3ed27be2 v9.0.1818
patch 9.0.1818: dynamically linking perl is broken
Commit: https://github.com/vim/vim/commit/55460da26c2756ec057c03c7d8641eda861bfcd2
Author: Christian Brabandt <cb@256bit.org>
Date: Tue Aug 29 21:31:28 2023 +0200
patch 9.0.1818: dynamically linking perl is broken
Problem: dynamically linking perl is broken
Solution: Fix all issues
This is a combination of several commits:
1) Fix if_perl.xs not being able to build on all versions of Perl (5.30)
This fixes the dynamic builds of Perl interface. The Perl interface file
previously had to manually copy and paste misc inline functions verbatim
from the Perl headers, because we defined `PERL_NO_INLINE_FUNCTIONS`
which prevents us form getting some function definitions. The original
reason we defined it was because those inline functions would reference
Perl functions that would cause linkage errors.
This is a little fragile as every time a new version of Perl comes out,
we inevitably have to copy over new versions of inline functions to our
file, and it's also easy to miss updates to existing functions.
Instead, remove the `PERL_NO_INLINE_FUNCTIONS` define, remove the manual
copy-pasted inline functions. Simply add stub implementations of the
missing linked functions like `Perl_sv_free2` and forward them to the
DLL version of the function at runtime. There are only a few functions
that need this treatment, and it's a simple stub so there is very low
upkeep compared to copying whole implementations to the file.
Also, fix the configure script so that if we are using dynamic linkage,
we don't pass `-lperl` to the build flags, to avoid accidental external
linkage while using dynamic builds. This is similar to how Python
integration works.
2) Fix GIMME_V deprecation warnings in Perl 5.38
Just use GIMME_V, and only use GIMME when using 5.30 to avoid needing to
link Perl_block_gimme. We could provide a stub like the other linked
functions like Perl_sv_free2, but simply using GIMME is the simplest and
it has always worked before.
3) Fix Perl 5.38 issues
Fix two issues:
3.1. Perl 5.38 links against more functions in their inline headers, so we
need to stub them too.
3.2. Perl 5.38 made Perl_get_context an inline function, but *only* for
non-Windows build. Fix that. Note that this was happening in Vim
currently, as it would build, but fail to run Perl code at runtime.
4) Fix Perl 5.36/5.38 when thread local is used
Perl 5.36 introduced using `_Thread_local` for the current context,
which causes inline functions to fail. Create a stub
`PL_current_context` thread local variable to satisfy the linker for
inlined functions. Note that this is going to result in a different
`PL_current_context` being used than the one used in the library, but so
far from testing it seems to work.
5) Add docs for how to build Perl for dynamic linking to work
closes: #12827
closes: #12914
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 29 Aug 2023 22:15:03 +0200 |
parents | 9521463d4fc1 |
children |
line wrap: on
line source
%!PS-Adobe-3.0 EPSF-3.0 %%For: %%Title: %%Creator: Scribus1.4.2 %%Pages: 1 %%BoundingBox: 0 0 282 282 %%HiResBoundingBox: 0 0 282 282 %%LanguageLevel: 3 %%EndComments %%BeginProlog /Scribusdict 100 dict def Scribusdict begin /sp {showpage} bind def /oldsetgray /setgray load def /cmyk {setcmykcolor} def /m {moveto} bind def /l {lineto} bind def /li {lineto} bind def /cu {curveto} bind def /cl {closepath} bind def /gs {gsave} bind def /gr {grestore} bind def /tr {translate} bind def /ro {rotate} bind def /sh {show} bind def /shg {setcmykcolor moveto glyphshow} def /shgsp {moveto glyphshow} def /sc {scale} bind def /se {selectfont} bind def /sf {setfont} bind def /sw {setlinewidth} bind def /f {findfont} bind def /fi {fill} bind def /st {stroke} bind def /shgf {gs dup scale begin cvx exec fill end gr} bind def /shgs {gs dup 1 exch div currentlinewidth mul sw dup scale begin cvx exec st end gr} bind def /bEPS { /b4_Inc_state save def /dict_count countdictstack def /op_count count 1 sub def userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint } if } if } bind def /eEPS { count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_Inc_state restore } bind def end %%EndProlog %%BeginSetup %%EndSetup %%Page: 1 1 %%PageOrientation: Portrait Scribusdict begin save /DeviceCMYK setcolorspace 0 0 tr 0 0 m 282 0 li 282 282 li 0 282 li cl clip newpath gs 0.708406 281.428 m 281.58 281.428 li 281.58 0.556 li 0.708406 0.556 li 0.708406 281.428 li cl eoclip newpath gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 0.816406 281.32 tr 280.656 -138.888 m 138.888 0 li 0 -141.696 li 138.888 -280.656 li 280.656 -138.888 li cl 0 0 0 1 cmyk eofill 280.656 -138.888 m 138.888 0 li 0 -141.696 li 138.888 -280.656 li 280.656 -138.888 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 139.704 142.432 tr 127.584 0 m 136.08 0 li 0 -136.08 li 0 -127.584 li 127.584 0 li cl 0.6 0 0.4 0.580392 cmyk eofill 127.584 0 m 136.08 0 li 0 -136.08 li 0 -127.584 li 127.584 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 6.50391 139.624 tr 0 0 m 8.49609 0 li 133.2 -124.776 li 133.2 -133.272 li 0 0 li cl 0.6 0 0.4 0.509804 cmyk eofill 0 0 m 8.49609 0 li 133.2 -124.776 li 133.2 -133.272 li 0 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 6.50391 275.632 tr 133.2 -8.42384 m 133.2 0 li 0 -136.008 li 8.49609 -136.008 li 133.2 -8.42384 li cl 0.6 0 0.4 0 cmyk eofill 133.2 -8.42384 m 133.2 0 li 0 -136.008 li 8.49609 -136.008 li 133.2 -8.42384 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 139.704 275.632 tr 0 0 m 0 -8.42384 li 127.584 -133.2 li 136.08 -133.2 li 0 0 li cl 0.729412 0 0.988235 0 cmyk eofill 0 0 m 0 -8.42384 li 127.584 -133.2 li 136.08 -133.2 li 0 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 15 267.208 tr 124.704 -252.36 m 252.288 -124.776 li 124.704 0 li 0 -127.584 li 124.704 -252.36 li cl 0.6 0 0.4 0.4 cmyk eofill 124.704 -252.36 m 252.288 -124.776 li 124.704 0 li 0 -127.584 li 124.704 -252.36 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 18.8164 270.016 tr 147.384 -31.1758 m 155.88 -39.7431 li 97.2716 -99.2156 li 97.2716 -39.7431 li 102.96 -39.7431 li 111.456 -31.1758 li 111.456 -8.5674 li 102.96 0 li 8.4951 0 li 0 -8.5674 li 0 -31.1758 li 8.4951 -39.7431 li 15.1191 -39.7431 li 15.1191 -232.488 li 25.4873 -240.984 li 54.792 -240.984 li 257.904 -31.1758 li 257.904 -8.5674 li 249.408 0 li 156.816 0 li 147.384 -8.5674 li 147.384 -31.1758 li cl 0 0 0 1 cmyk eofill 147.384 -31.1758 m 155.88 -39.7431 li 97.2716 -99.2156 li 97.2716 -39.7431 li 102.96 -39.7431 li 111.456 -31.1758 li 111.456 -8.5674 li 102.96 0 li 8.4951 0 li 0 -8.5674 li 0 -31.1758 li 8.4951 -39.7431 li 15.1191 -39.7431 li 15.1191 -232.488 li 25.4873 -240.984 li 54.792 -240.984 li 257.904 -31.1758 li 257.904 -8.5674 li 249.408 0 li 156.816 0 li 147.384 -8.5674 li 147.384 -31.1758 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 24.4316 264.4 tr 5.6885 -28.4404 m 0 -22.752 li 0 -5.7608 li 5.6885 -0.0723 li 94.5364 0 li 100.152 -5.7608 li 94.5364 -8.4961 li 91.6564 -5.7608 li 5.6885 -19.8721 li 5.6885 -28.4404 li cl 0 0 0 0 cmyk eofill 5.6885 -28.4404 m 0 -22.752 li 0 -5.7608 li 5.6885 -0.0723 li 94.5364 0 li 100.152 -5.7608 li 94.5364 -8.4961 li 91.6564 -5.7608 li 5.6885 -19.8721 li 5.6885 -28.4404 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 40.4883 241.648 tr 6.624 -206.928 m 0 -201.24 li 0 -5.6162 li 6.624 0 li 6.624 -206.928 li cl 0 0 0 0 cmyk eofill 6.624 -206.928 m 0 -201.24 li 0 -5.6162 li 6.624 0 li 6.624 -206.928 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 100.032 241.648 tr 88.848 -5.6884 m 94.536 0 li 94.536 -11.3759 li 0 -107.712 li 10.44 -85.0324 li 88.848 -5.6884 li cl 0 0 0 0 cmyk eofill 88.848 -5.6884 m 94.536 0 li 94.536 -11.3759 li 0 -107.712 li 10.44 -85.0324 li 88.848 -5.6884 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 30.1201 247.336 tr 18.9356 -2.8798 m 16.9922 -5.6875 li 10.3682 -11.3759 li 0 -11.3759 li 0 0 li 18.9356 -2.8798 li cl 0 0 0 0.501961 cmyk eofill 18.9356 -2.8798 m 16.9922 -5.6875 li 10.3682 -11.3759 li 0 -11.3759 li 0 0 li 18.9356 -2.8798 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 100.032 258.64 tr 10.44 -22.6796 m 10.44 -102.024 li 0 -124.632 li 0 -16.9199 li 16.056 -16.9199 li 18.936 -14.1113 li 16.056 0 li 24.552 0 li 24.552 -16.9912 li 18.936 -22.6796 li 10.44 -22.6796 li cl 0 0 0 0.501961 cmyk eofill 10.44 -22.6796 m 10.44 -102.024 li 0 -124.632 li 0 -16.9199 li 16.056 -16.9199 li 18.936 -14.1113 li 16.056 0 li 24.552 0 li 24.552 -16.9912 li 18.936 -22.6796 li 10.44 -22.6796 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 171.888 264.328 tr 5.616 -28.3681 m 0 -22.6797 li 0 -5.6885 li 6.552 0 li 92.592 0 li 99.216 -5.6885 li 89.712 -14.1845 li 5.616 -19.7998 li 5.616 -28.3681 li cl 0 0 0 0 cmyk eofill 5.616 -28.3681 m 0 -22.6797 li 0 -5.6885 li 6.552 0 li 92.592 0 li 99.216 -5.6885 li 89.712 -14.1845 li 5.616 -19.7998 li 5.616 -28.3681 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 47.1123 258.64 tr 223.992 -16.9912 m 24.5518 -223.92 li 0 -223.92 li 0 -215.424 li 18 -215.424 li 217.368 -11.3037 li 214.488 0 li 223.992 0 li 223.992 -16.9912 li cl 0 0 0 0.501961 cmyk eofill 223.992 -16.9912 m 24.5518 -223.92 li 0 -223.92 li 0 -215.424 li 18 -215.424 li 217.368 -11.3037 li 214.488 0 li 223.992 0 li 223.992 -16.9912 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 177.504 247.336 tr 18.936 -2.8798 m 16.992 -5.6875 li 11.376 -11.3759 li 0 -11.3759 li 0 0 li 18.936 -2.8798 li cl 0 0 0 0.501961 cmyk eofill 18.936 -2.8798 m 16.992 -5.6875 li 11.376 -11.3759 li 0 -11.3759 li 0 0 li 18.936 -2.8798 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 30.1201 258.712 tr 69.9119 -124.704 m 69.9119 -16.9922 li 85.9679 -16.9922 li 88.8479 -14.1836 li 88.8479 -2.8076 li 85.9679 0 li 2.8076 0 li 0 -2.8076 li 0 -14.1836 li 2.8076 -16.9922 li 16.9922 -16.9922 li 16.9922 -215.496 li 20.6641 -218.304 li 36.8643 -218.304 li 235.296 -11.376 li 235.296 -3.2402 li 232.416 0 li 150.264 0 li 147.384 -2.8076 li 147.384 -14.2558 li 150.264 -17.0635 li 164.448 -17.0635 li 164.448 -28.4394 li 69.9119 -124.704 li cl 0 0 0 0.2 cmyk eofill 69.9119 -124.704 m 69.9119 -16.9922 li 85.9679 -16.9922 li 88.8479 -14.1836 li 88.8479 -2.8076 li 85.9679 0 li 2.8076 0 li 0 -2.8076 li 0 -14.1836 li 2.8076 -16.9922 li 16.9922 -16.9922 li 16.9922 -215.496 li 20.6641 -218.304 li 36.8643 -218.304 li 235.296 -11.376 li 235.296 -3.2402 li 232.416 0 li 150.264 0 li 147.384 -2.8076 li 147.384 -14.2558 li 150.264 -17.0635 li 164.448 -17.0635 li 164.448 -28.4394 li 69.9119 -124.704 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 145.896 139.552 tr 5.688 -5.688 m 12.312 0 li 29.304 0 li 34.056 -5.688 li 28.368 -22.68 li 21.816 -28.368 li 4.824 -28.368 li 0 -22.68 li 5.688 -5.688 li cl 0 0 0 1 cmyk eofill 5.688 -5.688 m 12.312 0 li 29.304 0 li 34.056 -5.688 li 28.368 -22.68 li 21.816 -28.368 li 4.824 -28.368 li 0 -22.68 li 5.688 -5.688 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 157.272 108.376 tr 0 -68.04 m 17.064 -17.064 li 11.376 -17.064 li 17.064 0 li 42.48 0 li 48.168 -5.688 li 51.984 -5.688 li 57.6 0 li 76.536 0 li 82.224 -5.688 li 85.968 -5.688 li 91.656 0 li 112.392 0 li 119.952 -11.376 li 107.568 -51.696 li 113.184 -51.696 li 107.712 -68.04 li 73.656 -68.04 li 86.976 -28.368 li 78.48 -28.368 li 70.632 -51.552 li 76.248 -51.552 li 70.92 -68.04 li 36.864 -68.04 li 50.112 -28.368 li 41.616 -28.368 li 33.696 -51.696 li 39.384 -51.696 li 34.056 -68.04 li 0 -68.04 li cl 0 0 0 1 cmyk eofill 0 -68.04 m 17.064 -17.064 li 11.376 -17.064 li 17.064 0 li 42.48 0 li 48.168 -5.688 li 51.984 -5.688 li 57.6 0 li 76.536 0 li 82.224 -5.688 li 85.968 -5.688 li 91.656 0 li 112.392 0 li 119.952 -11.376 li 107.568 -51.696 li 113.184 -51.696 li 107.712 -68.04 li 73.656 -68.04 li 86.976 -28.368 li 78.48 -28.368 li 70.632 -51.552 li 76.248 -51.552 li 70.92 -68.04 li 36.864 -68.04 li 50.112 -28.368 li 41.616 -28.368 li 33.696 -51.696 li 39.384 -51.696 li 34.056 -68.04 li 0 -68.04 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 164.832 102.688 tr 102.24 0 m 106.632 -6.264 li 92.664 -51.048 li 98.28 -51.048 li 96.408 -56.664 li 73.728 -56.664 li 86.976 -16.992 li 67.104 -16.992 li 55.8 -51.048 li 61.416 -51.048 li 59.544 -56.664 li 36.864 -56.664 li 50.112 -16.992 li 30.24 -16.992 li 18.936 -51.048 li 24.624 -51.048 li 22.68 -56.664 li 0 -56.664 li 17.064 -5.688 li 11.376 -5.688 li 13.248 0 li 34.056 0 li 39.744 -5.688 li 45.36 -5.688 li 51.048 0 li 68.04 0 li 73.728 -5.688 li 79.416 -5.688 li 85.104 0 li 102.24 0 li cl 0 0 0 0.2 cmyk eofill 102.24 0 m 106.632 -6.264 li 92.664 -51.048 li 98.28 -51.048 li 96.408 -56.664 li 73.728 -56.664 li 86.976 -16.992 li 67.104 -16.992 li 55.8 -51.048 li 61.416 -51.048 li 59.544 -56.664 li 36.864 -56.664 li 50.112 -16.992 li 30.24 -16.992 li 18.936 -51.048 li 24.624 -51.048 li 22.68 -56.664 li 0 -56.664 li 17.064 -5.688 li 11.376 -5.688 li 13.248 0 li 34.056 0 li 39.744 -5.688 li 45.36 -5.688 li 51.048 0 li 68.04 0 li 73.728 -5.688 li 79.416 -5.688 li 85.104 0 li 102.24 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 120.408 108.376 tr 51.048 0 m 33.696 -51.624 li 39.6 -51.624 li 33.984 -68.04 li 0 -68.04 li 16.992 -17.064 li 11.304 -17.064 li 51.048 0 li cl 11.304 -17.064 m 16.992 0 li 51.048 0 li 11.304 -17.064 li cl 0 0 0 1 cmyk eofill 51.048 0 m 33.696 -51.624 li 39.6 -51.624 li 33.984 -68.04 li 0 -68.04 li 16.992 -17.064 li 11.304 -17.064 li 51.048 0 li cl 11.304 -17.064 m 16.992 0 li 51.048 0 li 11.304 -17.064 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 127.968 102.688 tr 22.68 -56.664 m 24.552 -51.048 li 18.864 -51.048 li 35.928 0 li 12.312 0 li 10.368 -5.688 li 16.992 -5.688 li 0 -56.664 li 22.68 -56.664 li cl 0 0 0 0.2 cmyk eofill 22.68 -56.664 m 24.552 -51.048 li 18.864 -51.048 li 35.928 0 li 12.312 0 li 10.368 -5.688 li 16.992 -5.688 li 0 -56.664 li 22.68 -56.664 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 152.52 133.864 tr 16.992 -14.184 m 20.808 -2.808 li 18.936 0 li 7.56 0 li 3.816 -2.808 li 0 -14.184 li 1.944 -16.992 li 13.32 -16.992 li 16.992 -14.184 li cl 0 0 0 0.2 cmyk eofill 16.992 -14.184 m 20.808 -2.808 li 18.936 0 li 7.56 0 li 3.816 -2.808 li 0 -14.184 li 1.944 -16.992 li 13.32 -16.992 li 16.992 -14.184 li cl 0 0 0 1 cmyk st gr gr %%PageTrailer restore gs gr sp end %%Trailer %%EOF