diff options
Diffstat (limited to 'vendor')
-rw-r--r-- | vendor/modernc.org/libc/libc_openbsd.go | 10 | ||||
-rw-r--r-- | vendor/modernc.org/sqlite/doc.go | 121 | ||||
-rw-r--r-- | vendor/modernc.org/sqlite/issue120.diff | 78 | ||||
-rw-r--r-- | vendor/modules.txt | 4 |
4 files changed, 210 insertions, 3 deletions
diff --git a/vendor/modernc.org/libc/libc_openbsd.go b/vendor/modernc.org/libc/libc_openbsd.go index 62a820cd1..a577ff9c4 100644 --- a/vendor/modernc.org/libc/libc_openbsd.go +++ b/vendor/modernc.org/libc/libc_openbsd.go @@ -1468,8 +1468,16 @@ func X__inet_ntoa(t *TLS, in1 in.In_addr) uintptr { } func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr { + // On 2021-12-23, a new syscall for mmap was introduced: + // + // 49 STD NOLOCK { void *sys_mmap(void *addr, size_t len, int prot, \ + // int flags, int fd, off_t pos); } + // src: https://github.com/golang/go/issues/59661 + + const unix_SYS_MMAP = 49 + // Cannot avoid the syscall here, addr sometimes matter. - data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + data, _, err := unix.Syscall6(unix_SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) if err != 0 { if dmesgs { dmesg("%v: %v FAIL", origin(1), err) diff --git a/vendor/modernc.org/sqlite/doc.go b/vendor/modernc.org/sqlite/doc.go index 61a9ce53e..04a7887a6 100644 --- a/vendor/modernc.org/sqlite/doc.go +++ b/vendor/modernc.org/sqlite/doc.go @@ -29,6 +29,7 @@ // linux arm64 3.41.2 // linux ppc64le 3.41.2 // linux riscv64 3.41.2 +// linux s390x 3.41.2 // windows amd64 3.41.2 // windows arm64 3.41.2 // @@ -40,6 +41,10 @@ // // Changelog // +// 2023-04-22 v1.22.0: +// +// Support linux/s390x. +// // 2023-02-23 v1.21.0: // // Upgrade to SQLite 3.41.0, release notes at https://sqlite.org/releaselog/3_41_0.html. @@ -201,6 +206,122 @@ // // Note: To run `go generate` you need to have modernc.org/ccgo/v3 installed. // +// Hacking +// +// This is an example of how to use the debug logs in modernc.org/libc when hunting a bug. +// +// +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ git status +// On branch master +// Your branch is up to date with 'origin/master'. +// +// nothing to commit, working tree clean +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ git log -1 +// commit df33b8d15107f3cc777799c0fe105f74ef499e62 (HEAD -> master, tag: v1.21.1, origin/master, origin/HEAD, wips, ok) +// Author: Jan Mercl <0xjnml@gmail.com> +// Date: Mon Mar 27 16:18:28 2023 +0200 +// +// upgrade to SQLite 3.41.2 +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ rm -f /tmp/libc.log ; go test -v -tags=libc.dmesg -run TestScalar ; ls -l /tmp/libc.log +// test binary compiled for linux/amd64 +// === RUN TestScalar +// --- PASS: TestScalar (0.09s) +// PASS +// ok modernc.org/sqlite 0.128s +// -rw-r--r-- 1 jnml jnml 76 Apr 6 11:22 /tmp/libc.log +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ cat /tmp/libc.log +// [10723 sqlite.test] 2023-04-06 11:22:48.288066057 +0200 CEST m=+0.000707150 +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ +// +// +// The /tmp/libc.log file is created as requested. No useful messages there because none are enabled in libc. Let's try to enable Xwrite as an example. +// +// +// 0:jnml@e5-1650:~/src/modernc.org/libc$ git status +// On branch master +// Your branch is up to date with 'origin/master'. +// +// Changes not staged for commit: +// (use "git add <file>..." to update what will be committed) +// (use "git restore <file>..." to discard changes in working directory) +// modified: libc_linux.go +// +// no changes added to commit (use "git add" and/or "git commit -a") +// 0:jnml@e5-1650:~/src/modernc.org/libc$ git log -1 +// commit 1e22c18cf2de8aa86d5b19b165f354f99c70479c (HEAD -> master, tag: v1.22.3, origin/master, origin/HEAD) +// Author: Jan Mercl <0xjnml@gmail.com> +// Date: Wed Feb 22 20:27:45 2023 +0100 +// +// support sqlite 3.41 on linux targets +// 0:jnml@e5-1650:~/src/modernc.org/libc$ git diff +// diff --git a/libc_linux.go b/libc_linux.go +// index 1c2f482..ac1f08d 100644 +// --- a/libc_linux.go +// +++ b/libc_linux.go +// @@ -332,19 +332,19 @@ func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t { +// var n uintptr +// switch n, _, err = unix.Syscall(unix.SYS_WRITE, uintptr(fd), buf, uintptr(count)); err { +// case 0: +// - // if dmesgs { +// - // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n)))) +// - // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n) +// - // } +// + if dmesgs { +// + // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n)))) +// + dmesg("%v: %d %#x: %#x", origin(1), fd, count, n) +// + } +// return types.Ssize_t(n) +// case errno.EAGAIN: +// // nop +// } +// } +// +// - // if dmesgs { +// - // dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err) +// - // } +// + if dmesgs { +// + dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err) +// + } +// t.setErrno(err) +// return -1 +// } +// 0:jnml@e5-1650:~/src/modernc.org/libc$ +// +// +// We need to tell the Go build system to use our local, patched/debug libc: +// +// +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ go work use $(go env GOPATH)/src/modernc.org/libc +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ go work use . +// +// +// And run the test again: +// +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ rm -f /tmp/libc.log ; go test -v -tags=libc.dmesg -run TestScalar ; ls -l /tmp/libc.log +// test binary compiled for linux/amd64 +// === RUN TestScalar +// --- PASS: TestScalar (0.26s) +// PASS +// ok modernc.org/sqlite 0.285s +// -rw-r--r-- 1 jnml jnml 918 Apr 6 11:29 /tmp/libc.log +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ cat /tmp/libc.log +// [11910 sqlite.test] 2023-04-06 11:29:13.143589542 +0200 CEST m=+0.000689270 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x200: 0x200 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0xc: 0xc +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 7 0x1000: 0x1000 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 7 0x1000: 0x1000 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x200: 0x200 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x4: 0x4 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x1000: 0x1000 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x4: 0x4 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x4: 0x4 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x1000: 0x1000 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0x4: 0x4 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 8 0xc: 0xc +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 7 0x1000: 0x1000 +// [11910 sqlite.test] libc_linux.go:337:Xwrite: 7 0x1000: 0x1000 +// 0:jnml@e5-1650:~/src/modernc.org/sqlite$ +// // Sqlite documentation // // See https://sqlite.org/docs.html diff --git a/vendor/modernc.org/sqlite/issue120.diff b/vendor/modernc.org/sqlite/issue120.diff new file mode 100644 index 000000000..e51607907 --- /dev/null +++ b/vendor/modernc.org/sqlite/issue120.diff @@ -0,0 +1,78 @@ +--- /home/jnml/tmp/test_syscall.c 2023-04-21 16:26:44.302689709 +0200 ++++ testdata/sqlite-src-3410200/src/test_syscall.c 2023-04-21 16:29:28.000869993 +0200 +@@ -110,15 +110,15 @@ + static int ts_fstat(int fd, struct stat *p); + static int ts_ftruncate(int fd, off_t n); + static int ts_fcntl(int fd, int cmd, ... ); +-static int ts_read(int fd, void *aBuf, size_t nBuf); +-static int ts_pread(int fd, void *aBuf, size_t nBuf, off_t off); ++static ssize_t ts_read(int fd, void *aBuf, size_t nBuf); ++static ssize_t ts_pread(int fd, void *aBuf, size_t nBuf, off_t off); + /* Note: pread64() and pwrite64() actually use off64_t as the type on their + ** last parameter. But that datatype is not defined on many systems + ** (ex: Mac, OpenBSD). So substitute a likely equivalent: sqlite3_uint64 */ +-static int ts_pread64(int fd, void *aBuf, size_t nBuf, sqlite3_uint64 off); +-static int ts_write(int fd, const void *aBuf, size_t nBuf); +-static int ts_pwrite(int fd, const void *aBuf, size_t nBuf, off_t off); +-static int ts_pwrite64(int fd, const void *aBuf, size_t nBuf, sqlite3_uint64 off); ++static ssize_t ts_pread64(int fd, void *aBuf, size_t nBuf, sqlite3_uint64 off); ++static ssize_t ts_write(int fd, const void *aBuf, size_t nBuf); ++static ssize_t ts_pwrite(int fd, const void *aBuf, size_t nBuf, off_t off); ++static ssize_t ts_pwrite64(int fd, const void *aBuf, size_t nBuf, sqlite3_uint64 off); + static int ts_fchmod(int fd, mode_t mode); + static int ts_fallocate(int fd, off_t off, off_t len); + static void *ts_mmap(void *, size_t, int, int, int, off_t); +@@ -313,7 +313,7 @@ + /* + ** A wrapper around read(). + */ +-static int ts_read(int fd, void *aBuf, size_t nBuf){ ++static ssize_t ts_read(int fd, void *aBuf, size_t nBuf){ + if( tsIsFailErrno("read") ){ + return -1; + } +@@ -323,7 +323,7 @@ + /* + ** A wrapper around pread(). + */ +-static int ts_pread(int fd, void *aBuf, size_t nBuf, off_t off){ ++static ssize_t ts_pread(int fd, void *aBuf, size_t nBuf, off_t off){ + if( tsIsFailErrno("pread") ){ + return -1; + } +@@ -333,7 +333,7 @@ + /* + ** A wrapper around pread64(). + */ +-static int ts_pread64(int fd, void *aBuf, size_t nBuf, sqlite3_uint64 off){ ++static ssize_t ts_pread64(int fd, void *aBuf, size_t nBuf, sqlite3_uint64 off){ + if( tsIsFailErrno("pread64") ){ + return -1; + } +@@ -343,7 +343,7 @@ + /* + ** A wrapper around write(). + */ +-static int ts_write(int fd, const void *aBuf, size_t nBuf){ ++static ssize_t ts_write(int fd, const void *aBuf, size_t nBuf){ + if( tsIsFailErrno("write") ){ + if( tsErrno("write")==EINTR ) orig_write(fd, aBuf, nBuf/2); + return -1; +@@ -354,7 +354,7 @@ + /* + ** A wrapper around pwrite(). + */ +-static int ts_pwrite(int fd, const void *aBuf, size_t nBuf, off_t off){ ++static ssize_t ts_pwrite(int fd, const void *aBuf, size_t nBuf, off_t off){ + if( tsIsFailErrno("pwrite") ){ + return -1; + } +@@ -364,7 +364,7 @@ + /* + ** A wrapper around pwrite64(). + */ +-static int ts_pwrite64(int fd, const void *aBuf, size_t nBuf, sqlite3_uint64 off){ ++static ssize_t ts_pwrite64(int fd, const void *aBuf, size_t nBuf, sqlite3_uint64 off){ + if( tsIsFailErrno("pwrite64") ){ + return -1; + } diff --git a/vendor/modules.txt b/vendor/modules.txt index 85a116d8c..52470b94a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -893,7 +893,7 @@ modernc.org/cc/v3 # modernc.org/ccgo/v3 v3.16.13 ## explicit; go 1.17 modernc.org/ccgo/v3/lib -# modernc.org/libc v1.22.3 +# modernc.org/libc v1.22.4 ## explicit; go 1.18 modernc.org/libc modernc.org/libc/errno @@ -930,7 +930,7 @@ modernc.org/memory # modernc.org/opt v0.1.3 ## explicit; go 1.13 modernc.org/opt -# modernc.org/sqlite v1.21.1 +# modernc.org/sqlite v1.22.0 ## explicit; go 1.18 modernc.org/sqlite modernc.org/sqlite/lib |