Skip to content

Unable to build inside another go package #378

Description

@mztbc

Hello @ncruces!

Sadly my project is failing to build due to:

../../../.cache/go/mod/github.com/ncruces/go-sqlite3@v0.33.3/wrap.go:31:27: cannot use &env{} (value of type *env) as sqlite3_wasm.Xenv value in variable declaration: *env does not implement interface{Xacos(v0 float64) float64; Xacosh(v0 float64) float64; Xasin(v0 float64) float64; Xasinh(v0 float64) float64; Xatan(v0 float64) float64; Xatan2(v0 float64, v1 float64) float64; Xatanh(v0 float64) float64; Xcos(v0 float64) float64; Xcosh(v0 float64) float64; Xexit(v0 int32); Xexp(v0 float64) float64; Xfclose(v0 int32) int32; Xfflush(v0 int32) int32; Xfmod(v0 float64, v1 float64) float64; Xfopen(v0 int32, v1 int32) int32; Xfputc(v0 int32, v1 int32) int32; Xfread(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xfseek(v0 int32, v1 int32, v2 int32) int32; Xftell(v0 int32) int32; Xfwrite(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_access(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_authorizer(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_autovacuum_pages(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_busy_handler(v0 int32, v1 int32) int32; Xgo_busy_timeout(v0 int32, v1 int32) int32; Xgo_check_reserved_lock(v0 int32, v1 int32) int32; Xgo_close(v0 int32) int32; Xgo_collation_needed(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_commit_hook(v0 int32) int32; Xgo_compare(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_close(v0 int32) int32; Xgo_cur_column(v0 int32, v1 int32, v2 int32) int32; Xgo_cur_eof(v0 int32) int32; Xgo_cur_filter(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_next(v0 int32) int32; Xgo_cur_open(v0 int32, v1 int32) int32; Xgo_cur_rowid(v0 int32, v1 int32) int32; Xgo_current_time_64(v0 int32, v1 int32) int32; Xgo_delete(v0 int32, v1 int32, v2 int32) int32; Xgo_destroy(v0 int32); Xgo_device_characteristics(v0 int32) int32; Xgo_file_control(v0 int32, v1 int32, v2 int32) int32; Xgo_file_size(v0 int32, v1 int32) int32; Xgo_full_pathname(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_func(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_inverse(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_localtime(v0 int32, v1 int64) int32; Xgo_lock(v0 int32, v1 int32) int32; Xgo_log(v0 int32, v1 int32, v2 int32); Xgo_open(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_progress_handler(v0 int32) int32; Xgo_randomness(v0 int32, v1 int32, v2 int32) int32; Xgo_read(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xgo_rollback_hook(v0 int32); Xgo_sector_size(v0 int32) int32; Xgo_shm_barrier(v0 int32); Xgo_shm_lock(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_shm_map(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_shm_unmap(v0 int32, v1 int32) int32; Xgo_sleep(v0 int32, v1 int32) int32; Xgo_step(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32); Xgo_sync(v0 int32, v1 int32) int32; Xgo_trace(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_truncate(v0 int32, v1 int64) int32; Xgo_unlock(v0 int32, v1 int32) int32; Xgo_update_hook(v0 int32, v1 int32, v2 int32, v3 int32, v4 int64); Xgo_value(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_vfs_find(v0 int32) int32; Xgo_vtab_begin(v0 int32) int32; Xgo_vtab_best_index(v0 int32, v1 int32) int32; Xgo_vtab_commit(v0 int32) int32; Xgo_vtab_connect(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_create(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_destroy(v0 int32) int32; Xgo_vtab_disconnect(v0 int32) int32; Xgo_vtab_find_function(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_vtab_integrity(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_release(v0 int32, v1 int32) int32; Xgo_vtab_rename(v0 int32, v1 int32) int32; Xgo_vtab_rollback(v0 int32) int32; Xgo_vtab_rollback_to(v0 int32, v1 int32) int32; Xgo_vtab_savepoint(v0 int32, v1 int32) int32; Xgo_vtab_sync(v0 int32) int32; Xgo_vtab_update(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_wal_hook(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_write(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xlog(v0 float64) float64; Xlog10(v0 float64) float64; Xlog2(v0 float64) float64; Xmemchr(v0 int32, v1 int32, v2 int32) int32; Xmemcmp(v0 int32, v1 int32, v2 int32) int32; Xmemory() sqlite3_wasm.Memory; Xpow(v0 float64, v1 float64) float64; Xputs(v0 int32) int32; Xsin(v0 float64) float64; Xsinh(v0 float64) float64; Xstrchr(v0 int32, v1 int32) int32; Xstrchrnul(v0 int32, v1 int32) int32; Xstrcmp(v0 int32, v1 int32) int32; Xstrcpy(v0 int32, v1 int32) int32; Xstrcspn(v0 int32, v1 int32) int32; Xstrlen(v0 int32) int32; Xstrncmp(v0 int32, v1 int32, v2 int32) int32; Xstrrchr(v0 int32, v1 int32) int32; Xstrspn(v0 int32, v1 int32) int32; Xstrstr(v0 int32, v1 int32) int32; Xstrtol(v0 int32, v1 int32, v2 int32) int32; Xsystem(v0 int32) int32; Xtan(v0 float64) float64; Xtanh(v0 float64) float64} (missing method Xstrtol)
../../../.cache/go/mod/github.com/ncruces/go-sqlite3@v0.33.3/wrap.go:45:32: cannot use env (variable of type *env) as sqlite3_wasm.Xenv value in argument to sqlite3_wasm.New: *env does not implement interface{Xacos(v0 float64) float64; Xacosh(v0 float64) float64; Xasin(v0 float64) float64; Xasinh(v0 float64) float64; Xatan(v0 float64) float64; Xatan2(v0 float64, v1 float64) float64; Xatanh(v0 float64) float64; Xcos(v0 float64) float64; Xcosh(v0 float64) float64; Xexit(v0 int32); Xexp(v0 float64) float64; Xfclose(v0 int32) int32; Xfflush(v0 int32) int32; Xfmod(v0 float64, v1 float64) float64; Xfopen(v0 int32, v1 int32) int32; Xfputc(v0 int32, v1 int32) int32; Xfread(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xfseek(v0 int32, v1 int32, v2 int32) int32; Xftell(v0 int32) int32; Xfwrite(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_access(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_authorizer(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_autovacuum_pages(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_busy_handler(v0 int32, v1 int32) int32; Xgo_busy_timeout(v0 int32, v1 int32) int32; Xgo_check_reserved_lock(v0 int32, v1 int32) int32; Xgo_close(v0 int32) int32; Xgo_collation_needed(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_commit_hook(v0 int32) int32; Xgo_compare(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_close(v0 int32) int32; Xgo_cur_column(v0 int32, v1 int32, v2 int32) int32; Xgo_cur_eof(v0 int32) int32; Xgo_cur_filter(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_next(v0 int32) int32; Xgo_cur_open(v0 int32, v1 int32) int32; Xgo_cur_rowid(v0 int32, v1 int32) int32; Xgo_current_time_64(v0 int32, v1 int32) int32; Xgo_delete(v0 int32, v1 int32, v2 int32) int32; Xgo_destroy(v0 int32); Xgo_device_characteristics(v0 int32) int32; Xgo_file_control(v0 int32, v1 int32, v2 int32) int32; Xgo_file_size(v0 int32, v1 int32) int32; Xgo_full_pathname(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_func(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_inverse(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_localtime(v0 int32, v1 int64) int32; Xgo_lock(v0 int32, v1 int32) int32; Xgo_log(v0 int32, v1 int32, v2 int32); Xgo_open(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_progress_handler(v0 int32) int32; Xgo_randomness(v0 int32, v1 int32, v2 int32) int32; Xgo_read(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xgo_rollback_hook(v0 int32); Xgo_sector_size(v0 int32) int32; Xgo_shm_barrier(v0 int32); Xgo_shm_lock(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_shm_map(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_shm_unmap(v0 int32, v1 int32) int32; Xgo_sleep(v0 int32, v1 int32) int32; Xgo_step(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32); Xgo_sync(v0 int32, v1 int32) int32; Xgo_trace(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_truncate(v0 int32, v1 int64) int32; Xgo_unlock(v0 int32, v1 int32) int32; Xgo_update_hook(v0 int32, v1 int32, v2 int32, v3 int32, v4 int64); Xgo_value(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_vfs_find(v0 int32) int32; Xgo_vtab_begin(v0 int32) int32; Xgo_vtab_best_index(v0 int32, v1 int32) int32; Xgo_vtab_commit(v0 int32) int32; Xgo_vtab_connect(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_create(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_destroy(v0 int32) int32; Xgo_vtab_disconnect(v0 int32) int32; Xgo_vtab_find_function(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_vtab_integrity(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_release(v0 int32, v1 int32) int32; Xgo_vtab_rename(v0 int32, v1 int32) int32; Xgo_vtab_rollback(v0 int32) int32; Xgo_vtab_rollback_to(v0 int32, v1 int32) int32; Xgo_vtab_savepoint(v0 int32, v1 int32) int32; Xgo_vtab_sync(v0 int32) int32; Xgo_vtab_update(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_wal_hook(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_write(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xlog(v0 float64) float64; Xlog10(v0 float64) float64; Xlog2(v0 float64) float64; Xmemchr(v0 int32, v1 int32, v2 int32) int32; Xmemcmp(v0 int32, v1 int32, v2 int32) int32; Xmemory() sqlite3_wasm.Memory; Xpow(v0 float64, v1 float64) float64; Xputs(v0 int32) int32; Xsin(v0 float64) float64; Xsinh(v0 float64) float64; Xstrchr(v0 int32, v1 int32) int32; Xstrchrnul(v0 int32, v1 int32) int32; Xstrcmp(v0 int32, v1 int32) int32; Xstrcpy(v0 int32, v1 int32) int32; Xstrcspn(v0 int32, v1 int32) int32; Xstrlen(v0 int32) int32; Xstrncmp(v0 int32, v1 int32, v2 int32) int32; Xstrrchr(v0 int32, v1 int32) int32; Xstrspn(v0 int32, v1 int32) int32; Xstrstr(v0 int32, v1 int32) int32; Xstrtol(v0 int32, v1 int32, v2 int32) int32; Xsystem(v0 int32) int32; Xtan(v0 float64) float64; Xtanh(v0 float64) float64} (missing method Xstrtol)
../../../.cache/go/mod/github.com/ncruces/go-sqlite3@v0.33.3/func.go:34:20: c.wrp.Xsqlite3_anycollseq_init undefined (type *sqlite3_wrap.Wrapper has no field or method Xsqlite3_anycollseq_init)

Apparently it's triggered here, removing it make's everything works as this seems to not be used anywhere? I'm not sure if removing this is somewhat correct, I'm new to go.

go-sqlite3/wrap.go

Lines 29 to 31 in 4ba8027

var _ sqlite3_wasm.Xenv = &env{}
type env struct{ *sqlite3_wrap.Wrapper }

*sqlite3_wrap.Wrapper doesn't implement Xstrtol, weirdly enought the project builds just fine in standalone but breaks if used inside another package go.module, I thought this was some kind of cache problem but after cleaning everything nothing changed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions