From: stephan Date: Wed, 9 Apr 2025 13:32:15 +0000 (+0000) Subject: Doc updates in proj.tcl. Improve configure check for whether fdatasync or nanosleep... X-Git-Tag: major-release~112 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=509d899a2dec05549c88147429c205598d9ee061;p=thirdparty%2Fsqlite.git Doc updates in proj.tcl. Improve configure check for whether fdatasync or nanosleep require -lrt. Remove references to 'tcl-config' build mode from sqlite-config.tcl, as that build is now implemented without a depency on sqlite-config.tcl because the TEA build's needs are considerably more modest. FossilOrigin-Name: 394bef54411c81fd8ca3aafc13ec2a774e9ff56c7282d90b8425cc8f383aa74c --- diff --git a/autosetup/proj.tcl b/autosetup/proj.tcl index 5c1f6bb346..75ec46c64c 100644 --- a/autosetup/proj.tcl +++ b/autosetup/proj.tcl @@ -648,10 +648,12 @@ proc proj-file-write {args} { # which controls whether to run/skip this check. # # Returns 1 if supported, else 0. Defines MAKE_COMPILATION_DB to "yes" -# if supported, "no" if not. +# if supported, "no" if not. The use of MAKE_COMPILATION_DB is +# deprecated/discouraged. It also sets HAVE_COMPILE_COMMANDS to 0 or +# 1, and that's the preferred usage. # -# This test has a long history of false positive results because of -# compilers reacting differently to the -MJ flag. +# ACHTUNG: this test has a long history of false positive results +# because of compilers reacting differently to the -MJ flag. proc proj-check-compile-commands {{configFlag {}}} { msg-checking "compile_commands.json support... " if {"" ne $configFlag && ![proj-opt-truthy $configFlag]} { @@ -664,11 +666,13 @@ proc proj-check-compile-commands {{configFlag {}}} { # Martin G.'s older systems. drh also reports a false # positive on an unspecified older Mac system. msg-result "compiler supports compile_commands.json" - define MAKE_COMPILATION_DB yes + define MAKE_COMPILATION_DB yes; # deprecated + define HAVE_COMPILE_COMMANDS 1 return 1 } else { msg-result "compiler does not support compile_commands.json" define MAKE_COMPILATION_DB no + define HAVE_COMPILE_COMMANDS 0 return 0 } } @@ -1259,6 +1263,11 @@ proc proj-dump-defs-json {file args} { # over any values from hidden aliases into their canonical names, such # that [opt-value canonical] will return X if --alias=X is passed to # configure. +# +# That said: autosetup's [opt-src] does support alias forms, but it +# requires that the caller know all possible aliases. It's simpler, in +# terms of options handling, if there's only a single canonical name +# which each down-stream call of [opt-...] has to know. proc proj-xfer-options-aliases {mapping} { foreach {hidden - canonical} [proj-strip-hash-comments $mapping] { if {[proj-opt-was-provided $hidden]} { diff --git a/autosetup/sqlite-config.tcl b/autosetup/sqlite-config.tcl index 2ab8508a8c..0e50f9dd25 100644 --- a/autosetup/sqlite-config.tcl +++ b/autosetup/sqlite-config.tcl @@ -63,14 +63,13 @@ array set sqliteConfig [subst [proj-strip-hash-comments { # # The list of feature --flags which the --all flag implies. This - # requires special handling in a few places and gets replaced with - # a different list in the tcl-extension build. + # requires special handling in a few places. # all-flag-enables {fts4 fts5 rtree geopoly session} # - # Default value for the --all flag. Gets changed for the - # tcl-extension build. + # Default value for the --all flag. Can hypothetically be modified + # by non-canonical builds. # all-flag-default 0 }]] @@ -97,7 +96,7 @@ array set sqliteConfig [subst [proj-strip-hash-comments { proc sqlite-configure {buildMode configScript} { proj-assert {$::sqliteConfig(build-mode) eq "unknown"} \ "sqlite-configure must not be called more than once" - set allBuildModes {canonical autoconf tcl-extension} + set allBuildModes {canonical autoconf} if {$buildMode ni $allBuildModes} { user-error "Invalid build mode: $buildMode. Expecting one of: $allBuildModes" } @@ -229,7 +228,7 @@ proc sqlite-configure {buildMode configScript} { copy of autosetup/jimsh0.c for that. The SQLite TCL extension and the test code require a canonical tclsh.} } - {canonical tcl-extension} { + {canonical} { with-tcl:DIR => {Directory containing tclConfig.sh or a directory one level up from that, from which we can derive a directory containing tclConfig.sh. @@ -620,15 +619,21 @@ proc sqlite-check-common-system-deps {} { cc-check-functions gmtime_r isnan localtime_r localtime_s \ malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64 - set ldrt "" - # Collapse funcs from librt into LDFLAGS_RT. - # Some systems (ex: SunOS) require -lrt in order to use nanosleep - foreach func {fdatasync nanosleep} { - if {[proj-check-function-in-lib $func rt]} { - lappend ldrt [get-define lib_${func}] + apply {{} { + set ldrt "" + # Collapse funcs from librt into LDFLAGS_RT. + # Some systems (ex: SunOS) require -lrt in order to use nanosleep + foreach func {fdatasync nanosleep} { + if {[proj-check-function-in-lib $func rt]} { + set ldrt [get-define lib_${func} ""] + undefine lib_${func} + if {"" ne $ldrt} { + break + } + } } - } - define LDFLAGS_RT [join [lsort -unique $ldrt] ""] + define LDFLAGS_RT $ldrt + }} # Check for needed/wanted headers cc-check-includes \ diff --git a/manifest b/manifest index 5c53411289..31ce7f2d77 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\san\sincorrect\sALWAYS()\smacro.\s\s[forum:/forumpost/23875495059357a2|Forum\spost\s2025-04-08T19:16:42Z]. -D 2025-04-08T20:00:33.824 +C Doc\supdates\sin\sproj.tcl.\sImprove\sconfigure\scheck\sfor\swhether\sfdatasync\sor\snanosleep\srequire\s-lrt.\sRemove\sreferences\sto\s'tcl-config'\sbuild\smode\sfrom\ssqlite-config.tcl,\sas\sthat\sbuild\sis\snow\simplemented\swithout\sa\sdepency\son\ssqlite-config.tcl\sbecause\sthe\sTEA\sbuild's\sneeds\sare\sconsiderably\smore\smodest. +D 2025-04-09T13:32:15.311 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -51,8 +51,8 @@ F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e F autosetup/find_tclconfig.tcl e64886ffe3b982d4df42cd28ed91fe0b5940c2c5785e126c1821baf61bc86a7e F autosetup/jimsh0.c a57c16e65dcffc9c76e496757cb3f7fb47e01ecbd1631a0a5e01751fc856f049 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba -F autosetup/proj.tcl a02eddcb7a940e36732993c09b8e59e65fb4a196fedbd85af4d93713c4802797 -F autosetup/sqlite-config.tcl 4d5d2a3baa2e3c1cba4558eb09b3436c40bf34697186315c61c7b2576eb88271 +F autosetup/proj.tcl e4170f543e417fcc1ae3c8aedcf8d6044221dbdeb880d324579730e0c96a6198 +F autosetup/sqlite-config.tcl a61e86a4033e3a77680bfba45e7950950285beaf756ddc2d14bec5147972d2b1 F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3 @@ -2216,8 +2216,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 99827144f112303e27a829c990b1858d227bd7369095100a435c367637985fad -R 91b13f4ff305e3d80ef9a44cf85a7a37 -U drh -Z da0ef43ade8651ffc793a2c525f660e1 +P 062cca9c63ef6d7b9a525df69391e9b032284703aeb45a18c728305dd5957c43 +R 92b3c5f2612e90a858308a2688d29a68 +U stephan +Z 18638b3b1088f615bed2bb48a17a75b6 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 11830e35f0..66e517a16a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -062cca9c63ef6d7b9a525df69391e9b032284703aeb45a18c728305dd5957c43 +394bef54411c81fd8ca3aafc13ec2a774e9ff56c7282d90b8425cc8f383aa74c