From: stephan Date: Thu, 20 Feb 2025 17:14:40 +0000 (+0000) Subject: configure: automatically fail the check for rpath on AIX systems and provide a -... X-Git-Tag: major-release~255 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a80089c5167856f0aadc9c878bd65843df724c06;p=thirdparty%2Fsqlite.git configure: automatically fail the check for rpath on AIX systems and provide a --disable-rpath flag as a fallback for use on platforms which pass the configure-time rpath check but then fail at link-time. Based on discussion in [forum:ae5bd8a84b|forum thread ae5bd8a84b]. FossilOrigin-Name: a15e0f6802a5ba7bc5a7a70d6a162ea4548b49b132a5ac31263e64c388bbafcb --- diff --git a/auto.def b/auto.def index 9df87f579a..84dfa824c2 100644 --- a/auto.def +++ b/auto.def @@ -59,7 +59,7 @@ proj-define-for-opt linemacros AMALGAMATION_LINE_MACROS \ define LINK_TOOLS_DYNAMICALLY [proj-opt-was-provided dynlink-tools] -proj-check-rpath +sqlite-handle-rpath sqlite-handle-soname sqlite-handle-debug sqlite-handle-tcl diff --git a/autoconf/auto.def b/autoconf/auto.def index 099b52aff7..069f3e931f 100644 --- a/autoconf/auto.def +++ b/autoconf/auto.def @@ -11,7 +11,7 @@ use sqlite-config sqlite-config-bootstrap autoconf sqlite-check-common-bins sqlite-check-common-system-deps -proj-check-rpath +sqlite-handle-rpath sqlite-handle-soname sqlite-setup-default-cflags sqlite-handle-debug diff --git a/autosetup/proj.tcl b/autosetup/proj.tcl index c81fe910d0..210c79b428 100644 --- a/autosetup/proj.tcl +++ b/autosetup/proj.tcl @@ -947,9 +947,20 @@ proc proj-check-emsdk {} { # # Achtung: we have seen platforms which report that a given option # checked here will work but then fails at build-time, and the current -# order of checks reflects that. +# order of checks reflects that. Similarly, platforms which are known +# to report success here but fail to handle this flag at link-time are +# special-cased here to behave as if the check failed. proc proj-check-rpath {} { - set rc 1 + switch -glob -- [get-define host] { + *-*-aix* { + # Skip this check on platform(s) where we know it to pass at + # this step but fail at build-time, as a workaround for + # https://sqlite.org/forum/forumpost/ae5bd8a84b until we can + # find a more reliable approach. + define LDFLAGS_RPATH "" + return 0 + } + } if {[proj-opt-was-provided libdir] || [proj-opt-was-provided exec-prefix]} { set lp "[get-define libdir]" @@ -971,10 +982,9 @@ proc proj-check-rpath {} { define LDFLAGS_RPATH "-Wl,-R$lp" } else { define LDFLAGS_RPATH "" - set rc 0 } } - return $rc + expr {"" ne [get-define LDFLAGS_RPATH]} } ######################################################################## diff --git a/autosetup/sqlite-config.tcl b/autosetup/sqlite-config.tcl index 7d9a9ea84b..be2522fb12 100644 --- a/autosetup/sqlite-config.tcl +++ b/autosetup/sqlite-config.tcl @@ -244,6 +244,9 @@ proc sqlite-config-bootstrap {buildMode} { static-shell=1 => {Link the sqlite3 shell app against the DLL instead of embedding sqlite3.c} } {*} { + # rpath: https://sqlite.org/forum/forumpost/fa3a6ed858 + rpath=1 + => {Disable checking for rpath support} # soname: https://sqlite.org/src/forumpost/5a3b44f510df8ded soname:=legacy => {SONAME for libsqlite3.so. "none", or not using this flag, sets no @@ -644,6 +647,17 @@ proc sqlite-handle-debug {} { } } +######################################################################## +# If the --disable-rpath flag is used, this [define]s LDFLAGS_RPATH to +# an empty string, else it invokes [proj-check-rpath]. +proc sqlite-handle-rpath {} { + proj-if-opt-truthy rpath { + proj-check-rpath + } { + define LDFLAGS_RPATH "" + } +} + ######################################################################## # "soname" for libsqlite3.so. See discussion at: # https://sqlite.org/src/forumpost/5a3b44f510df8ded diff --git a/manifest b/manifest index b3754afc40..6e5b6edfe0 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sautoconf\sbundle\sto\shonor\sthe\s--disable-static\sand\s--disable-shared\sflags,\sas\sreported\sin\s[forum:ae5bd8a84b|forum\spost\sae5bd8a84b].\sProblem\sintroduced\sin\s3.49.0. -D 2025-02-20T16:45:45.335 +C configure:\sautomatically\sfail\sthe\scheck\sfor\srpath\son\sAIX\ssystems\sand\sprovide\sa\s--disable-rpath\sflag\sas\sa\sfallback\sfor\suse\son\splatforms\swhich\spass\sthe\sconfigure-time\srpath\scheck\sbut\sthen\sfail\sat\slink-time.\sBased\son\sdiscussion\sin\s[forum:ae5bd8a84b|forum\sthread\sae5bd8a84b]. +D 2025-02-20T17:14:40.228 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@ -14,13 +14,13 @@ F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531 -F auto.def eddf6aef976e2c1a56c0accc3244945e0b22ec6799074c40be160e5a9a5662b0 +F auto.def 9e4315ae57d558c033a7bfb1f3ba0e9e0117147516b8c78c06276663b83b8cad F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac F autoconf/Makefile.in ed042ba44540e67e17b1e7bd787e8118a9d14664ba8049966ec9bc54a10676ce F autoconf/Makefile.msc 1249e425a24859c7b3f17575275247df9eec3bddc0d1d7e73941f1abdbb95a92 F autoconf/README.first f1d3876e9a7852c22f275a6f06814e64934cecbc0b5b9617d64849094c1fd136 F autoconf/README.txt 7f01dc3915e2d68f329011073662369e62a0938a2c69398807823c57591cb288 -F autoconf/auto.def 3a318c4898024b35ed61a4876a42e3dcc313f93bd8486874d1ad498b88643d1a +F autoconf/auto.def 64c1a116162da18783a5467b49e539538f7013ea50ae192f182987b5c2f66f9e F autoconf/tea/Makefile.in ba0556fee8da09c066bad85a4457904e46ee2c2eabaa309c0e83a78f2f151a8e F autoconf/tea/README.txt 61e62e519579e4a112791354d6d440f8b51ea6db3b0bab58d59f29df42d2dfe3 F autoconf/tea/aclocal.m4 52c47aac44ce0ddb1f918b6993e8beb8eee88f43 @@ -49,8 +49,8 @@ F autosetup/cc-shared.tcl 4f024e94a47f427ba61de1739f6381ef0080210f9fae89112d5c1d F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e45f F autosetup/jimsh0.c 6573f6bc6ff204de0139692648d7037ca0b6c067bac83a7b4e087f20a86866a4 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba -F autosetup/proj.tcl 90cec210224dde699f3bee756d88c2477044f713db8a38112e695ec02e531eeb -F autosetup/sqlite-config.tcl e1d65cc632e1de94ff39618ac82b649f2062f674ca36dae78ab3573cab096761 +F autosetup/proj.tcl 57dadc3b9a1e88e8450d1e81b2fdb22d3abf3862f22730cec4441ee346c95d8e +F autosetup/sqlite-config.tcl 87732c140cce3327b709d1f7746c999149500fd28682dff384da58af68c844b0 F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad @@ -2210,8 +2210,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P e4539ebebd89840b76f5a0626393299100685a38f45546a0bf7a62e4df56f863 -R 34877b8b42b297ff0e60f31b146ccdd9 +P 56027220cc15b69cb98ba5360ffd3718c997e10d51e30eebeff14f0dc358d103 +R f3ae16535d715f2c6ddf37b01c3a97d9 U stephan -Z 1623c39947cf064dc746ab5f77cf216c +Z e0fc1942290bf1287975667fbad9ae43 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index d46913efa2..72543de028 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -56027220cc15b69cb98ba5360ffd3718c997e10d51e30eebeff14f0dc358d103 +a15e0f6802a5ba7bc5a7a70d6a162ea4548b49b132a5ac31263e64c388bbafcb