]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Doc updates in proj.tcl. Improve configure check for whether fdatasync or nanosleep...
authorstephan <stephan@noemail.net>
Wed, 9 Apr 2025 13:32:15 +0000 (13:32 +0000)
committerstephan <stephan@noemail.net>
Wed, 9 Apr 2025 13:32:15 +0000 (13:32 +0000)
FossilOrigin-Name: 394bef54411c81fd8ca3aafc13ec2a774e9ff56c7282d90b8425cc8f383aa74c

autosetup/proj.tcl
autosetup/sqlite-config.tcl
manifest
manifest.uuid

index 5c1f6bb34604ec98f00015a8944009d8155d8adc..75ec46c64c569e028256647e72d580dae2aa06ab 100644 (file)
@@ -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]} {
index 2ab8508a8cabaf0235b4410051a975856d6bffc8..0e50f9dd258df1beac21e26b8406840c4fbfbee0 100644 (file)
@@ -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 \
index 5c5341128951efc9317aea8fe2114a32cba30936..31ce7f2d7786343bc43f17172f88557c30ec73ae 100644 (file)
--- 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.
index 11830e35f0a67021deda1c4cc01138708581415c..66e517a16a47623b030b5af6cb2baaa32338adf5 100644 (file)
@@ -1 +1 @@
-062cca9c63ef6d7b9a525df69391e9b032284703aeb45a18c728305dd5957c43
+394bef54411c81fd8ca3aafc13ec2a774e9ff56c7282d90b8425cc8f383aa74c