Does go-duckdb
has a glibc version dependency?
#290
-
I have a simple cgo code(https://github.com/pskrbasu/cgo-cross-compilation) that fails to build and run on Amazon Linux 2(glibc 2.26). When trying to run the binary built using goreleaser I get this error(which seems like a runtime error):
When trying to build the binary in the Amazon Linux 2 server I get this See full logsmake make: *** [build] Error 1 However when I remove the Does this mean that go-duckdb has packages that cannot run/build on versions < 2.29 ? |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
Same problem |
Beta Was this translation helpful? Give feedback.
-
Same problem |
Beta Was this translation helpful? Give feedback.
-
Yes that's correct, and that package in particular is the libduckdb shared static library. go-duckdb uses the bundled pre-compiled libduckdb.a / libduckdb.so static library, but that library is compiled on Ubuntu 20.04 (@marcboeker, @taniabogatsch please correct me if I'm wrong) which has newer glibc library. AL2 is very old, reaching its end-of-life next year... |
Beta Was this translation helpful? Give feedback.
-
I'm also having this problem... Do you have any advice on the best practices of dealing with this issue? Right now I can only think of git cloning go-duck, building from source on the machine (make deps.xxx.xxx) to get the compatible static library, and then copy it around to the go build folder... But this is kinda messy and I don't know if it's best practices... |
Beta Was this translation helpful? Give feedback.
-
For any C++/C code, there will always (almost always) be runtime dependencies, and they vary from system to system. The best way to get them to work on your system, is to compile the C/C++ code on your system. This is unfortunate, but has been the case for probably decades, and sadly wont change in the near future. TLDR: Compile on your own system for the best results |
Beta Was this translation helpful? Give feedback.
For any C++/C code, there will always (almost always) be runtime dependencies, and they vary from system to system. The best way to get them to work on your system, is to compile the C/C++ code on your system. This is unfortunate, but has been the case for probably decades, and sadly wont change in the near future.
TLDR: Compile on your own system for the best results