From be3dc6699ec31a45116750812a9567cdb0a84d7a Mon Sep 17 00:00:00 2001 From: stephan Date: Tue, 1 Sep 2026 16:26:50 +0000 Subject: [PATCH] Cygwin portability patches sent off-list from from Jan Nijtmans. FossilOrigin-Name: f8306cd54d28ceda631ce9053d94df2bb28cffccce2a7e72d088b4b1f2a0d3ed --- autosetup/cc.tcl | 2 +- manifest | 31 +++++++++++++++++-------------- manifest.tags | 4 ++-- manifest.uuid | 2 +- src/mutex.h | 2 +- src/test_delete.c | 4 ++-- test/fuzzinvariants.c | 6 +++--- test/shell8.test | 2 +- test/testrunner.tcl | 4 ++-- test/testrunner_data.tcl | 2 +- tool/mkpragmatab.tcl | 2 +- 11 files changed, 32 insertions(+), 29 deletions(-) diff --git a/autosetup/cc.tcl b/autosetup/cc.tcl index 05c1b1cf40..7c9284b194 100644 --- a/autosetup/cc.tcl +++ b/autosetup/cc.tcl @@ -583,7 +583,7 @@ proc cctest {args} { configlog "============" } file delete $src - file delete $tmp + catch {file delete $tmp} # cache it set ::cc_cache($cmdline,$lines) $ok diff --git a/manifest b/manifest index fb4bd6518b..45e7cd40e1 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Make\ssure\sthe\sextra\ssorting\scursor\sused\sby\sSQLITE_ENABLE_SORTER_REFERENCES\nis\sinitialized\seven\sif\sthe\scorresponding\stable\sis\sempty.\n[bugs:/info/2026-09-01T01:34:02Z|Bug\s2026-09-01T01:34:02Z] -D 2026-09-01T12:36:03.322 +C Cygwin\sportability\spatches\ssent\soff-list\sfrom\sfrom\sJan\sNijtmans. +D 2026-09-01T16:26:50.550 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -43,7 +43,7 @@ F autosetup/autosetup-test-tclsh 749d20defee533a3842139df47d700fc7a334a5da7bdbd4 F autosetup/cc-db.tcl 6e0ed90146197a5a05b245e649975c07c548e30926b218ca3e1d4dc034b10a7b F autosetup/cc-lib.tcl 493c5935b5dd3bf9bd4eca89b07c8b1b1a9356d61783035144e21795facf7360 F autosetup/cc-shared.tcl 163eda58c14cd662fd8a504bd2ad8a716ef4db7015dc1de0095d5de8dd601a4b -F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e45f +F autosetup/cc.tcl b5ff60395b32d2b5fdb1fa24a5496d646a7077fea92d23a00dc4ccbdb18dfe5b F autosetup/find_tclconfig.tcl 3394bcd1aad45d6af48262f50808d4f0ac4f1088ba8fa9d08f6b8b6cff80d219 F autosetup/jimsh0.c daf13a86959fe2d055ed42d9417ceb63d698ae4b71bde959a0979ab729a83819 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba @@ -718,7 +718,7 @@ F src/memdb.c 290a67488b83fccb0ca9c637342043466e0b16c945ef7d68e0f91679661ff315 F src/memjournal.c c283c6c95d940eb9dc70f1863eef3ee40382dbd35e5a1108026e7817c206e8a0 F src/msvc.h 80b35f95d93bf996ccb3e498535255f2ef1118c78764719a7cd15ab4106ccac9 F src/mutex.c 00b8cee206a67fd764d001f3a148494331d8d0b3b9c3974ecd69ff29bb444462 -F src/mutex.h a7b2293c48db5f27007c3bdb21d438873637d12658f5a0bf8ad025bb96803c4a +F src/mutex.h e2159f6ce3201c90d63045701f0eaa669e9154e8b79d000982d2fa1467432a94 F src/mutex_noop.c 9d4309c075ba9cc7249e19412d3d62f7f94839c4 F src/mutex_unix.c caec9862aeebad01f6c8997cf709a239abeb0715fcce1895720b87fe7e2ef42f F src/mutex_w32.c d44e94c064f8ab39e0318fb6fa00171cf7e5645bd4241129b07d655a8ddbd44b @@ -768,7 +768,7 @@ F src/test_bestindex.c d75fad21369d80910238032bcf8d9ca1f2bffda13c1ceec63bfbb7f70 F src/test_blob.c 3a946319c1b062a58d249c67be099c3bc1ec52f2e6ba23b1867699f0b8189ac2 F src/test_btree.c 28283787d32b8fa953eb77412ad0de2c9895260e4e5bd5a94b3c7411664f90d5 F src/test_config.c 45b83ce7981fd01c58e85b67955bc6a344da5abfb4db1c3f2ba6dcc7adc85d83 -F src/test_delete.c d0e8f6dc55cfc98a7c27c057fb88d512260564bf0b611482656c68b8f7f401ed +F src/test_delete.c 4abfe8cb9da1f7faf725b18ae93391485e8d8c7df0bad9dcb68f6066add5b8c3 F src/test_demovfs.c 3efa2adf4f21e10d95521721687d5ca047aea91fa62dd8cc22ac9e5a9c942383 F src/test_devsym.c 649434ed34d0b03fbd5a6b42df80f0f9a7e53f94dd1710aad5dd8831e91c4e86 F src/test_fs.c a946408c81231feff4b6a2c18068f20aefe254dc82288687128af8b7520d32cb @@ -1274,7 +1274,7 @@ F test/fuzzdata8.db 8f34ae00d8d5d4747dd80983cf46161065e4f78324dcff3c893506ff8db3 F test/fuzzer1.test 33dfbddc7b70c8639af895e1f4db6fe895c1e6e048b71b30413890e5b3822872 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test f64c4aef4c9e9edf1d6dc0d3f1e65dcc81e67c996403c88d14f09b74807a42bc -F test/fuzzinvariants.c 6768bcd03290776cd982624729d2abee2e89e6aba62b4a2b839a98332725a167 +F test/fuzzinvariants.c 12e6bd4b878bce8627e72ba6a228f72ea30c242fe12a5210d058210fb237caba F test/gcfault.test 4ea410ac161e685f17b19e1f606f58514a2850e806c65b846d05f60d436c5b0d F test/gencol1.test ceb3163b59cb77f4ad57ae4f01a143ce36b06fdd6a8dab1149235db89979ffd8 F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98 @@ -1647,7 +1647,7 @@ F test/shell4.test 931c7555d5a0dcac255561a936fcf1f54c12dd66f668e27e8b0d9ed0d4b9f F test/shell5.test a0c43d82a811a463a5d07d6418c5a045ab01a072544db8aa31ae394e93845d8d F test/shell6.test 596f2eb385a1097d4e9130b4d4f663a24cba294b35f13b774b8f13553dec307d F test/shell7.test 6b006d296b569a7ec78b8168af77578b3bde8f58b79c32d9f46cff1eaf763a29 -F test/shell8.test 38c9e4d7e85d2a3ecfacaa9f6cda4f7a81bf4fffb5f3f37f9cd76827c6883192 +F test/shell8.test d2fc95f7467c3d93834cac3327bdac03554991afed6d9a07e6a2b204b037f9d7 F test/shell9.test c0e8871061a92151450b3332279a893b516fa73a6c46d4f51a0998407cbf8c89 F test/shellA.test 05cdaafa1f79913654487ce3aefa038d4106245d58f52e02faf506140a76d480 F test/shellB.test 592748d685ccf4986fcd2b464098ea244b3b4c03d5400ee097e6698f14ed9a67 @@ -1735,8 +1735,8 @@ F test/temptrigfault.tes fc5918e64f3867156fefe7cfca9d8e1f495134a5229b2b511b0dc11 F test/temptrigger.test a00f258ed8d21a0e8fd4f322f15e8cfb5cef2e43655670e07a753e3fb4769d61 F test/tester.tcl dfd8dd05b54bc493a8db6cc1263ee364c36e3c27fab258dad7305cd79b948f3f F test/testloadext.c 862b848783eaed9985fbce46c65cd214664376b549fae252b364d5d1ef350a27 -F test/testrunner.tcl 501584fa440904f1080b9eb34f2ccb4a2e741010e80b3397cf12179ca1a2f69b x -F test/testrunner_data.tcl 4c75dd01fe5ba96b425f3571bff1ddf927734caa3c79e19acd9c84966d7ddfa3 +F test/testrunner.tcl 926a31b398846af738f6cb2f1fc8ca6a62ea17bd4312af7b6ed9652f3db67230 x +F test/testrunner_data.tcl 72ffc35e17dc332af3114faecc03109a91dd5ba8ef239d1879d15b7139df46cf F test/testrunner_estwork.tcl 81e2ae10238f50540f42fbf2d94913052a99bfb494b69e546506323f195dcff9 F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899 F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502 @@ -2167,7 +2167,7 @@ F tool/mkmsvcmin.tcl d76c45efda1cce2d4005bcea7b8a22bb752e3256009f331120fb4fecb14 F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef F tool/mkopcodeh.tcl 2b4e6967a670ef21bf53a164964c35c6163277d002a4c6f56fa231d68c88d023 F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa -F tool/mkpragmatab.tcl 3801ce32f8c55fe63a3b279f231fb26c2c1a2ea9a09d2dd599239d87a609acec +F tool/mkpragmatab.tcl 5615f8ea9ae6990b73da765c5f121117cbc2a5197b65bed25c56f71c7ab2f42a F tool/mkshellc.tcl da6918b128e928a8f0d663519e14829153e59465bd5eb596442e99fa10a411b7 F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9 F tool/mksqlite3c-noext.tcl 351c55256213154cabb051a3c870ef9f4487de905015141ae50dc7578a901b84 @@ -2219,8 +2219,11 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 6f73383647fdf579dca72e15cc8a9627be72fd524e8e843e7d62dfc9253e20d2 -R 47730e78b477d63ef98769fc107189d7 -U drh -Z ce2a09c9a551ecf3de70212ee2494115 +P a418005ba503e65944808a5a8397359210293bcde4c5ddd8800c66ea5c103292 +R aaf485fd99c0771bc97b378ed11fce63 +T *branch * cygwin-portability +T *sym-cygwin-portability * +T -sym-trunk * Cancelled\sby\sbranch. +U stephan +Z c0b5de897b5d9dd354634c9fe6082823 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.tags b/manifest.tags index bec971799f..1a3c770d51 100644 --- a/manifest.tags +++ b/manifest.tags @@ -1,2 +1,2 @@ -branch trunk -tag trunk +branch cygwin-portability +tag cygwin-portability diff --git a/manifest.uuid b/manifest.uuid index 3f16ff8916..b4fe67ee9b 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a418005ba503e65944808a5a8397359210293bcde4c5ddd8800c66ea5c103292 +f8306cd54d28ceda631ce9053d94df2bb28cffccce2a7e72d088b4b1f2a0d3ed diff --git a/src/mutex.h b/src/mutex.h index a6806a2505..e2129a64a5 100644 --- a/src/mutex.h +++ b/src/mutex.h @@ -41,7 +41,7 @@ # define SQLITE_MUTEX_OMIT #endif #if SQLITE_THREADSAFE && !defined(SQLITE_MUTEX_NOOP) -# if SQLITE_OS_UNIX +# if SQLITE_OS_UNIX || defined(__CYGWIN__) # define SQLITE_MUTEX_PTHREADS # elif SQLITE_OS_WIN # define SQLITE_MUTEX_W32 diff --git a/src/test_delete.c b/src/test_delete.c index 3f34a72c46..988555b129 100644 --- a/src/test_delete.c +++ b/src/test_delete.c @@ -63,7 +63,7 @@ static int sqlite3DeleteUnlinkIfExists( int *pbExists ){ int rc = SQLITE_ERROR; -#ifdef _WIN32 +#ifdef SQLITE_OS_WIN if( pVfs ){ if( pbExists ) *pbExists = 1; rc = pVfs->xDelete(pVfs, zFile, 0); @@ -115,7 +115,7 @@ SQLITE_API int sqlite3_delete_database( { "%s-wal%03d", SQLITE_MULTIPLEX_WAL_8_3_OFFSET, 1 }, }; -#ifdef _WIN32 +#ifdef SQLITE_OS_WIN sqlite3_vfs *pVfs = sqlite3_vfs_find("win32"); #else sqlite3_vfs *pVfs = 0; diff --git a/test/fuzzinvariants.c b/test/fuzzinvariants.c index 9341b2056c..9be7f8bbb4 100644 --- a/test/fuzzinvariants.c +++ b/test/fuzzinvariants.c @@ -339,7 +339,7 @@ static char *fuzz_invariant_sql(sqlite3_stmt *pStmt, int iCnt){ zIn = sqlite3_sql(pStmt); if( zIn==0 ) return 0; nIn = strlen(zIn); - while( nIn>0 && (isspace(zIn[nIn-1]) || zIn[nIn-1]==';') ) nIn--; + while( nIn>0 && (isspace((unsigned char)zIn[nIn-1]) || zIn[nIn-1]==';') ) nIn--; if( strchr(zIn, '?') ) return 0; pTest = sqlite3_str_new(0); sqlite3_str_appendf(pTest, "SELECT %s* FROM (", @@ -357,8 +357,8 @@ static char *fuzz_invariant_sql(sqlite3_stmt *pStmt, int iCnt){ const char *zColName = sqlite3_column_name(pBase,i); const char *zSuffix = zColName ? strrchr(zColName, ':') : 0; if( zSuffix - && isdigit(zSuffix[1]) - && (zSuffix[1]>'3' || isdigit(zSuffix[2])) + && isdigit((unsigned char)zSuffix[1]) + && (zSuffix[1]>'3' || isdigit((unsigned char)zSuffix[2])) ){ /* This is a randomized column name and so cannot be used in the ** WHERE clause. */ diff --git a/test/shell8.test b/test/shell8.test index 40579a599d..145e2458f1 100644 --- a/test/shell8.test +++ b/test/shell8.test @@ -196,7 +196,7 @@ do_test 2.1.1 { # Test symbolic links. # -if {$tcl_platform(platform)=="unix"} { +if {$tcl_platform(os) ne "Windows NT"} { populate_dir ar2 { file1 "1234" file2 "3456" diff --git a/test/testrunner.tcl b/test/testrunner.tcl index 2fc0876c61..fc0c4ff62f 100755 --- a/test/testrunner.tcl +++ b/test/testrunner.tcl @@ -341,8 +341,8 @@ switch -nocase -glob -- $tcl_platform(os) { set TRG(platform) cygwin set TRG(make) make.sh set TRG(makecmd) "bash make.sh" - set TRG(testfixture) testfixture - set TRG(shell) sqlite3 + set TRG(testfixture) testfixture.exe + set TRG(shell) sqlite3.exe set TRG(run) run.sh set TRG(runcmd) "bash run.sh" } diff --git a/test/testrunner_data.tcl b/test/testrunner_data.tcl index 7f8216196b..26f13fd242 100644 --- a/test/testrunner_data.tcl +++ b/test/testrunner_data.tcl @@ -451,7 +451,7 @@ proc trd_fuzztest_data {buildname bNoSan} { set lSessionDb [glob [file join $::testdir sessionfuzz-data*.db]] set sanBuilds {All-Debug Apple Have-Not Update-Delete-Limit} - if {$::tcl_platform(platform) eq "windows"} { + if {$::tcl_platform(os) eq "Windows NT"} { return [list fuzzcheck.exe $lFuzzDb] } else { set lRet [list [trd_get_bin_name fuzzcheck] $lFuzzDb] diff --git a/tool/mkpragmatab.tcl b/tool/mkpragmatab.tcl index 70988cf82e..78127f74ad 100644 --- a/tool/mkpragmatab.tcl +++ b/tool/mkpragmatab.tcl @@ -216,7 +216,7 @@ set pragma_def { NAME: data_store_directory FLAG: NoColumns1 - IF: !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_OS_WIN + IF: !defined(SQLITE_OMIT_PAGER_PRAGMAS) && defined(_WIN32) NAME: lock_proxy_file FLAG: NoColumns1