You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In PR #3001 , libsqlite was added to the relay module. But there were issues when statically linking libsqlite to the x86_64-unknown-linux-musl relay binary in relay image, so we used shared library libsqlite3.so. Now since busybox image being a minimalist docker image, a shared library can not be installed, hence we moved to using alpine image and installed sqlite-libs to dynamically link libsqlite3.so.
Expectation
But ideally we want to statically link libsqlite3.a to the relay binary and revert back to using minimalist busybox image. The dockerfile for the relay server: weaver/core/relay/Dockerfile.server.
When trying to statically link libsqlite using libsqlite.a, and build relay docker image (before the PR changes, i.e. revert the attached diff changes, and add libsqlite.a as library in builder image), we get following error:
Error:
113.9 = note: /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `putVarint64':
113.9 (.text+0x75f): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `pagerPagecount':
113.9 (.text+0xd9d): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `databaseIsUnmoved':
113.9 (.text+0xe28): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `btreeGetPage':
113.9 (.text+0x1102): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `vdbeSorterExtendFile':
113.9 (.text+0x161c): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x1707): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `unixSleep':
113.9 (.text+0x74d3): undefined reference to `sleep'
113.9 /usr/bin/ld: (.text+0x74e1): undefined reference to `usleep'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `patternCompare':
113.9 (.text+0x7f0e): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3OsCurrentTimeInt64':
113.9 (.text+0x8163): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `invokeProfileCallback':
113.9 (.text+0x8210): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `pthreadMutexFree':
113.9 (.text+0x8a65): undefined reference to `pthread_mutex_destroy'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3GetVarint32':
113.9 (.text+0x91c2): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sessionSkipRecord':
113.9 (.text+0x927d): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `unixAccess':
113.9 (.text+0x9433): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `pragmaVtabBestIndex':
113.9 (.text+0x9876): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `identPut':
113.9 (.text+0x9b50): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0xa462): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `dotlockLock':
113.9 (.text+0x1495f): undefined reference to `utime'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3HashInsert':
113.9 (.text+0x153d9): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `fts3EvalDlPhraseNext':
113.9 (.text+0x15dcf): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `fts3PoslistPhraseMerge':
113.9 (.text+0x166c9): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `fts3EvalNearTrim':
113.9 (.text+0x16843): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3VdbePreUpdateHook':
113.9 (.text+0x16bab): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x17142): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `pthreadMutexAlloc':
113.9 (.text+0x1c3e6): undefined reference to `pthread_mutexattr_init'
113.9 /usr/bin/ld: (.text+0x1c3f3): undefined reference to `pthread_mutexattr_settype'
113.9 /usr/bin/ld: (.text+0x1c3fe): undefined reference to `pthread_mutex_init'
113.9 /usr/bin/ld: (.text+0x1c406): undefined reference to `pthread_mutexattr_destroy'
113.9 /usr/bin/ld: (.text+0x1c45b): undefined reference to `pthread_mutex_init'
113.9 /usr/bin/ld: (.text+0x1c480): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3IdListAppend':
113.9 (.text+0x1c8a9): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3_stmt_status':
113.9 (.text+0x1d228): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `unixShmLock':
113.9 (.text+0x1ded2): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3PagerSetPagesize':
113.9 (.text+0x1e36d): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x1ebad): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `localtimeOffset':
113.9 (.text+0x276f3): undefined reference to `localtime_r'
113.9 /usr/bin/ld: (.text+0x27778): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3Utf16to8.constprop.0':
113.9 (.text+0x2782e): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3VdbeMakeReady':
113.9 (.text+0x27d7e): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3ExprImpliesNonNullRow':
113.9 (.text+0x2a33b): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3ExprAnalyzeAggList':
113.9 (.text+0x2a40b): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x2a556): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3VdbeMemStringify':
113.9 (.text+0x30a4a): undefined reference to `__memcpy_chk'
113.9 /usr/bin/ld: (.text+0x30aae): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `unicodeFunc':
113.9 (.text+0x31168): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `soundexFunc':
113.9 (.text+0x31799): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `vdbeCompareMemString':
113.9 (.text+0x3199e): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `printfFunc':
113.9 (.text+0x32026): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x33988): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `whereLoopAddOr':
113.9 (.text+0x495b9): undefined reference to `__memcpy_chk'
113.9 /usr/bin/ld: (.text+0x4969a): undefined reference to `__memcpy_chk'
113.9 /usr/bin/ld: (.text+0x4987b): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `analyzeAggregate':
113.9 (.text+0x49b95): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3VdbeExplain':
113.9 (.text+0x4a09f): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `checkAppendMsg':
113.9 (.text+0x4a1ef): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `checkPtrmap':
113.9 (.text+0x4a2c2): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x4a5eb): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `balance_nonroot':
113.9 (.text+0x64c2e): undefined reference to `__memset_chk'
113.9 /usr/bin/ld: (.text+0x64ca6): undefined reference to `__memset_chk'
113.9 /usr/bin/ld: (.text+0x65f4b): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `balance':
113.9 (.text+0x66c74): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `clearDatabasePage':
113.9 (.text+0x66f78): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `accessPayload':
113.9 (.text+0x67452): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `btreeCreateTable':
113.9 (.text+0x67dfb): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x680cb): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `fts5Bm25Function':
113.9 (.text+0x718e7): undefined reference to `log'
113.9 /usr/bin/ld: (.text+0x71974): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3Fts5Init':
113.9 (.text+0x7241a): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `fts5ParseTokenize':
113.9 (.text+0x734e9): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `fts3TokenizerFunc':
113.9 (.text+0x73e2f): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `unixFullPathname':
113.9 (.text+0x744c7): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x74900): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `unixOpen':
113.9 (.text+0x7b273): undefined reference to `__memcpy_chk'
113.9 /usr/bin/ld: (.text+0x7b4eb): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sqlite3_load_extension':
113.9 (.text+0x7bb6e): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `loadExt':
113.9 (.text+0x7bd08): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `sessionChangesetToHash':
113.9 (.text+0x7c753): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o): in function `jsonReturn.constprop.0':
113.9 (.text+0x7ce0e): undefined reference to `__stack_chk_fail'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.text+0x7d1be): more undefined references to `__stack_chk_fail' follow
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.data.rel+0x38): undefined reference to `access'
113.9 /usr/bin/ld: /usr/lib/x86_64-linux-musl/libsqlite3.a(sqlite3.o):(.data.rel+0xb0): undefined reference to `fcntl64'
113.9 collect2: error: ld returned 1 exit status
113.9
113.9 = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
113.9 = note: use the `-l` flag to specify native libraries to link
113.9 = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.
html#cargorustc-link-libkindname)
113.9
113.9 warning: `relay` (bin "server") generated 16 warnings
113.9 error: could not compile `relay` (bin "server") due to previous error; 16 warnings emitted
Based on some internet search, tried adding RUSTFLAGS=-Clink-arg=-fstack-protector-strong and RUSTFLAGS=-Clink-arg=-fstack-protector-all (source) to the cargo build, but still the same error.
The text was updated successfully, but these errors were encountered:
In PR #3001 ,
libsqlite
was added to the relay module. But there were issues when statically linkinglibsqlite
to thex86_64-unknown-linux-musl
relay binary in relay image, so we used shared librarylibsqlite3.so
. Now sincebusybox
image being a minimalist docker image, a shared library can not be installed, hence we moved to usingalpine
image and installedsqlite-libs
to dynamically linklibsqlite3.so
.Expectation
But ideally we want to statically link
libsqlite3.a
to the relay binary and revert back to using minimalistbusybox
image. The dockerfile for the relay server:weaver/core/relay/Dockerfile.server
.Here is the diff of the change which can be useful when reverting back:
relay-server_3001_diff.txt
Issue with static linking
When trying to statically link
libsqlite
usinglibsqlite.a
, and build relay docker image (before the PR changes, i.e. revert the attached diff changes, and addlibsqlite.a
as library in builder image), we get following error:Error:
Based on some internet search, tried adding
RUSTFLAGS=-Clink-arg=-fstack-protector-strong
andRUSTFLAGS=-Clink-arg=-fstack-protector-all
(source) to thecargo build
, but still the same error.The text was updated successfully, but these errors were encountered: