-
-
Notifications
You must be signed in to change notification settings - Fork 521
Closed
Description
Summary
gopass built for OpenBSD from the master branch will fail to link to syscall(2) at runtime once OpenBSD removes syscall(2) from libc.
There are two usages of syscall(2) that I could find: one is due to pledge (will be fixed by https://golang.org/cl/468095), and the other is in readline, which I've opened a PR for. Unfortunately, it doesn't seem that the owner is maintaining that readline library anymore, and a switch to that other fork might be needed, unless you wish to use a module replacement that points to my PR's branch.
Steps To Reproduce
$ pwd
/home/jrick/src/gopass
$ go build
$ ./gopass
gopass:./gopass: undefined symbol 'syscall'
ld.so: gopass: lazy binding failed!
Killed
Expected behavior
gopass executes without hitting a lazy linking error.
Environment
- OS: OpenBSD
- OS version: -current with the full syscall(2) removal patch, including removal from libc
- gopass Version: master branch
- Installation method: repo
Additional context
A working gopass can be built with patches to x/sys and readline.
$ pwd
/home/jrick/src/gopass
$ got br
master
$ got status
$ go work init
$ go work use .
$ go work use ../sys # golang.org/cl/468095
$ go work use ../readline # github.com/chzyer/readline/pull/232
$ go build
$ ./gopass
__ _ _ _ _ _ ___ ___
/'_ '\ /'_'\ ( '_'\ /'_' )/',__)/',__)
( (_) |( (_) )| (_) )( (_| |\__, \\__, \
'\__ |'\___/'| ,__/''\__,_)(____/(____/
( )_) | | |
\___/' (_)
� Welcome to gopass!
â� This is the built-in shell. Type 'help' for a list of commands.
gopass> ^D
Metadata
Metadata
Assignees
Labels
cleanupCode hygieneCode hygiene