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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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