Giter VIP home page Giter VIP logo

docker-alpine-glibc's People

Contributors

ambs avatar ashleysommer avatar aviadlevy avatar benatkin avatar danisevas avatar franklynalexander avatar frol avatar jordaaash avatar luka5 avatar mgcm avatar sgerrand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-alpine-glibc's Issues

/lib64/ld-linux-x86-64.so.2 points to musl

On the latest version of the container as of today, /lib/ld-linux-x86-64.so.2 points to glibc but /lib64 points to musl. This means depending on how your binary was linked it's not really using glibc.

Latest build that I can see that has both /lib and /lib64 pointing to glibc was alpine-3.11_glibc-2.31.

I think the root cause was this sgerrand/alpine-pkg-glibc@ddfe092

lib64 ldlinux library does not point to glibc one

This behavior seems to have changed in the latest images:

$ docker run --platform=linux/amd64  frolvlad/alpine-glibc:glibc-2.28 /bin/ls -l /lib64
lrwxrwxrwx    1 root     root            42 Sep 25  2021 ld-linux-x86-64.so.2 -> /usr/glibc-compat/lib/ld-linux-x86-64.so.2
$ docker run --platform=linux/amd64  frolvlad/alpine-glibc /bin/ls -l /lib64
total 0
lrwxrwxrwx    1 root     root            26 May 24 16:32 ld-linux-x86-64.so.2 -> /lib/libc.musl-x86_64.so.1

Update Dockerhub Image frequently

Hi,
this Docker image in Dockerhub with the "latest" tag is now over 5 months old.

Please run your build process/pipeline regularly even without new commits in this repo to get regular security updates of the base images.

Thanks!

Feature Request | add new tag - `alpine-3`

Can you consider adding new tag alpine-3.
I personally don't want to keep manually update my Dockerfile on each minor version alpine publishing, but I don't want to use latest tag in case some breaking major update published.

What do you think?

[help with downstream issue] Symbolic linking of libstdc++ broken

Hello!

After the last update, we've been seeing some issues with the installation of libstdc++. See report in the downstream repo: tibotiber/hasura-action#13.

2022-01-10T07:32:02.0266519Z �/usr/glibc-compat/sbin/ldconfig: /usr/glibc-compat/lib/ld-linux-x86-64.so.2 is not a symbolic link

I'm now explicitly using the previous version (for now) but I was wondering if you had any recommendation on how to get around this?

Cc @danisevas

Not reponse to docker stop

  1. run in terminal 1
docker run -it --rm --name test frolvlad/alpine-glibc
  1. try stop in terminal2
time docker stop test
test

real	0m10.787s
user	0m0.032s
sys	0m0.018s
  1. after 10s terminal 1 show
/ # ✘-KILL ~

system:
mac osx: 10.15.5
docker destop Version 2.0.0.3 (31259)
Docker Engine: 18.09.2

Can't get user credentials/getuid() with frolvlad/alpine-glibc:alpine-3.3_glibc-2.22

Hi, I was using frolvlad/alpine-glibc and it worked OK with my testing script, but it isn't working properly with new frolvlad/alpine-glibc:alpine-3.3_glibc-2.22.

The test script is written in Go and tests C bindings, zlib compress and CGO (by calling getuid() with user.Current() from Go). I am not cross-compiling.

Bellow I show you how to reproduce the error:

main.go (test script)

package main

import (
    "bytes"
    "compress/zlib"
    "fmt"
    "io"
    "os"
    "os/user"
)

/*
char* foo(void) { return "Hello world - from the good old C"; }
*/
import "C"

func main() {
    fmt.Println(C.GoString(C.foo()))

    var b bytes.Buffer
    w := zlib.NewWriter(&b)
    w.Write([]byte("Hello world - compressed\n"))
    w.Close()
    r, err := zlib.NewReader(&b)
    check(err)
    io.Copy(os.Stdout, r)
    r.Close()

    user, err := user.Current()
    check(err)
    fmt.Printf("Olar, I am %v (%v:%v) - from Go app\n", user.Username, user.Uid, user.Gid)
}

func check(err error) {
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

Builder container (to compile Go binaries)

$ docker run -it --rm -v $(pwd):/go/src/main golang:1.5.3
root@go-container:/go# cd src/main
root@go-container:/go/src/main# ls
main.go

Build dynamic

root@go-container:/go/src/main# go build
root@go-container:/go/src/main# mv main main.simple

Build static

root@go-container:/go/src/main# go build --ldflags='-extldflags "-static"'
root@go-container:/go/src/main# mv main main.static

Prep for upx

root@go-container:/go/src/main# apt-get update
root@go-container:/go/src/main# apt-get install -y upx-ucl
root@go-container:/go/src/main# go get github.com/pwaller/goupx

Binary upx

root@go-container:/go/src/main# cp main.simple main.simple.upx
root@go-container:/go/src/main# goupx --strip-binary main.simple.upx
root@go-container:/go/src/main# cp main.static main.static.upx
root@go-container:/go/src/main# goupx --strip-binary main.static.upx

root@go-container:/go/src/main# ls -l
-rw-r--r-- 1 root root 603 Feb 14 23:52 main.go
-rwxr-xr-x 1 root root 2885624 Feb 14 23:52 main.simple*
-rwxr-xr-x 1 root root 611192 Feb 14 23:59 main.simple.upx*
-rwxr-xr-x 1 root root 3974304 Feb 14 23:53 main.static*
-rwxr-xr-x 1 root root 935388 Feb 14 23:59 main.static.upx*

Test frolvlad/alpine-glibc (works OK)

$ for x in main.s*; do echo "- $x"; docker run -it --rm -v $(pwd):/go/src/main frolvlad/alpine-glibc /go/src/main/$x; echo; done

main.simple

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.simple.upx

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.static

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.static.upx

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

Test frolvlad/alpine-glibc:alpine-3.3_glibc-2.22 (is failing for some binaries)

$ for x in main.s*; do echo "- $x"; docker run -it --rm -v $(pwd):/go/src/main frolvlad/alpine-glibc:alpine-3.3_glibc-2.22 /go/src/main/$x; echo; done

main.simple

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.simple.upx

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.static

Hello world - from the good old C
Hello world - compressed
user: lookup userid 0: no such file or directory

main.static.upx

Hello world - from the good old C
Hello world - compressed
user: lookup userid 0: no such file or directory

I would like to still building my code with --ldflags='-extldflags "-static"' to make tottaly static binaries. Why this approach generates erros only in the frolvlad/alpine-glibc:alpine-3.3_glibc-2.22 image?

no match for platform in manifest

Hi there! I've got a dockerfile using frovlad/alpine-glibc in a project which seems to have broken the build for my usecase since yesterday.

frolvlad/alpine-glibc: no match for platform in manifest sha256:44a54734fa33b549162845a9839fa4c745c5132a1e59f5d871c681050a9dd6bb: not found

Not sure what this means, but I assume it has something to do with the build from yesterday. If I switch back to frolvlad/alpine-glibc:alpine-3.16_glibc-2.34 everything works.

ldconfig question

when use Dockerfile build and question is

Executing glibc-bin-2.30-r0.trigger
/usr/glibc-compat/sbin/ldconfig: /usr/glibc-compat/lib/ld-linux-x86-64.so.2 is not a symbolic link

OK: 46 MiB in 21 packages
failed to set locale!
[warning] No definition for LC_PAPER category found
failed to set locale!
[warning] No definition for LC_NAME category found
failed to set locale!
[warning] No definition for LC_ADDRESS category found
failed to set locale!
[warning] No definition for LC_TELEPHONE category found
failed to set locale!
[warning] No definition for LC_MEASUREMENT category found
failed to set locale!
[warning] No definition for LC_IDENTIFICATION category found

Oracle Java 10.0.1 fail to run

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f4b255b6368, pid=2751, tid=2752
#
# JRE version:  (10.0.1+10) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0.1+10, mixed mode, aot, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libc.so.6+0x5a368]  _IO_vfscanf+0xc8
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %P" (or dumping to /opt/bin/core.2751)
#
# An error report file with more information is saved as:
# /opt/bin/hs_err_pid2751.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)

The issue is probably quite the same as this issue on another distribution: sgerrand/alpine-pkg-glibc#75

Add edge tag?

Would you mind adding the edge tag from alpine:edge? I've tried building the image by myself and everything seems to work fine

Localedef is faling

I believe this step is failing. My output running docker build is:

failed to set locale!
[warning] No definition for LC_PAPER category found
failed to set locale!
[warning] No definition for LC_NAME category found
failed to set locale!
[warning] No definition for LC_ADDRESS category found
failed to set locale!
[warning] No definition for LC_TELEPHONE category found
failed to set locale!
[warning] No definition for LC_MEASUREMENT category found
failed to set locale!
[warning] No definition for LC_IDENTIFICATION category found

no version information available

Hi, i have the question with the image

I add below in dockerfile
RUN apk --update add --no-cache libstdc++

but will appear /usr/lib/libstdc++.so.6: no version information available
when execute binary file.

how could i solve this problem.

some quirks to make glibc work side by side with musl libc

Thank you for sharing your image! I am trying to install glibc on Alpine. Could you elaborate a bit on the quirks you applied? I followed instructionn at https://github.com/sgerrand/alpine-pkg-glibc and based on your dockerfile, it seems you are just installing glibc, glibc-bin and glibc-i18n package from the same repo. My image works ok so far but I'm new to building images so just want to make sure I'm not missing anything, and my image built from sgerrand's instruction won't give me any issues in the future.

Fix musl libc dns problems with glibc?

Hi, can you Fix the DNS-problems of alpine using glibc?

Since musl libc ignores SEARCH and DOMAIN in /etc/resolv.conf and uses parallel querying of name servers it can't be used in environments that require that (like kubernetes).

I don't know how this can be done but it looks like you are more familiar with the differences of musl libc and glibc.

Alpine 3.11 Version

Any chance you can add a build of 3.11?

It would get around some current CVE's that exist around curl and Alpine 3.10

I would submit a pull request, but I dont see how you are building.

Library path?

Hi
First things first, thanks for this image, that promises to be useful for me.
But I am having a little issue. How to run ldconfig?
It looks it doesn't do a thing...?

/app # ldconfig -v /usr/lib
/app # ldconfig -v /usr/local/lib/

This makes my app to fail:

/app # j2kdriver --version
j2kdriver: error while loading shared libraries: libawj2k.so: cannot open shared object file: No such file or directory

But if I used LD_LIBRARY_PATH:

/app # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
/app # j2kdriver --version
Warning: Unrecognized option `--version' ignored.

I can go on, for now, with the env var, but I would like to get rid of it.
Ideas?
Thanks

symbol not found

hi guys, I try using this image to install python cx_Oracle library, and get this error:

/usr/lib/instantclient_12_1 # ldd libclntsh.so.12.1
	ldd (0x561095877000)
	libmql1.so => /usr/lib/instantclient_12_1/libmql1.so (0x7fbb66577000)
	libipc1.so => /usr/lib/instantclient_12_1/libipc1.so (0x7fbb661f9000)
	libnnz12.so => /usr/lib/instantclient_12_1/libnnz12.so (0x7fbb65aef000)
	libons.so => /usr/lib/instantclient_12_1/libons.so (0x7fbb658aa000)
	libdl.so.2 => ldd (0x561095877000)
	libm.so.6 => ldd (0x561095877000)
	libpthread.so.0 => ldd (0x561095877000)
Error loading shared library libnsl.so.1: No such file or directory (needed by libclntsh.so.12.1)
	librt.so.1 => ldd (0x561095877000)
	libc.so.6 => ldd (0x561095877000)
	ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7fbb65685000)
	libaio.so.1 => /usr/lib/libaio.so.1 (0x7fbb65483000)
	libclntshcore.so.12.1 => /usr/lib/instantclient_12_1/libclntshcore.so.12.1 (0x7fbb64f11000)
Error loading shared library libnsl.so.1: No such file or directory (needed by /usr/lib/instantclient_12_1/libclntshcore.so.12.1)
Error relocating /usr/lib/instantclient_12_1/libipc1.so: __cmsg_nxthdr: symbol not found
Error relocating libclntsh.so.12.1: canonicalize_file_name: symbol not found
Error relocating libclntsh.so.12.1: getcontext: symbol not found
Error relocating libclntsh.so.12.1: bindresvport: symbol not found
Error relocating libclntsh.so.12.1: __finite: symbol not found

Clean apk cache

Could you delete apk cache (rm -rf /var/cache/apk/*), please?
alpine:3.8 doesn't have any cached files, so we can save 1.2MB:

$ docker run --rm -ti alpine:3.8 ls -lah /var/cache/apk
total 0
drwxr-xr-x    2 root     root           6 Jul  5 14:47 .
drwxr-xr-x    4 root     root          29 Jul  5 14:47 ..
$ docker run --rm -ti frolvlad/alpine-glibc:alpine-3.8 ls -lah /var/cache/apk
total 1244
drwxr-xr-x    2 root     root          70 Jul  6 18:02 .
drwxr-xr-x    5 root     root          45 Jul  6 18:02 ..
-rw-r--r--    1 root     root      730.6K Jul  6 18:02 APKINDEX.adfa7ceb.tar.gz
-rw-r--r--    1 root     root      512.0K Jul  6 18:02 APKINDEX.efaa1f73.tar.gz
$ docker run --rm -ti frolvlad/alpine-glibc:alpine-3.8 du -sh /var/cache/apk
1.2M    /var/cache/apk

Thank you.

Can't get user credentials/getuid() with frolvlad/alpine-glibc:alpine-3.3_glibc-2.22

Hi, I was using frolvlad/alpine-glibc and it worked OK with my testing script, but it isn't working properly with new frolvlad/alpine-glibc:alpine-3.3_glibc-2.22.

The test script is written in Go and tests C bindings, zlib compress and CGO (by calling getuid() with user.Current() from Go). I am not cross-compiling.

Bellow I show you how to reproduce the error:

main.go (test script)

package main

import (
    "bytes"
    "compress/zlib"
    "fmt"
    "io"
    "os"
    "os/user"
)

/*
char* foo(void) { return "Hello world - from the good old C"; }
*/
import "C"

func main() {
    fmt.Println(C.GoString(C.foo()))

    var b bytes.Buffer
    w := zlib.NewWriter(&b)
    w.Write([]byte("Hello world - compressed\n"))
    w.Close()
    r, err := zlib.NewReader(&b)
    check(err)
    io.Copy(os.Stdout, r)
    r.Close()

    user, err := user.Current()
    check(err)
    fmt.Printf("Olar, I am %v (%v:%v) - from Go app\n", user.Username, user.Uid, user.Gid)
}

func check(err error) {
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

Builder container (to compile Go binaries)

$ docker run -it --rm -v $(pwd):/go/src/main golang:1.5.3
root@go-container:/go# cd src/main
root@go-container:/go/src/main# ls
main.go

Build dynamic

root@go-container:/go/src/main# go build
root@go-container:/go/src/main# mv main main.simple

Build static

root@go-container:/go/src/main# go build --ldflags='-extldflags "-static"'
root@go-container:/go/src/main# mv main main.static

Prep for upx

root@go-container:/go/src/main# apt-get update
root@go-container:/go/src/main# apt-get install -y upx-ucl
root@go-container:/go/src/main# go get github.com/pwaller/goupx

Binary upx

root@go-container:/go/src/main# cp main.simple main.simple.upx
root@go-container:/go/src/main# goupx --strip-binary main.simple.upx
root@go-container:/go/src/main# cp main.static main.static.upx
root@go-container:/go/src/main# goupx --strip-binary main.static.upx

root@go-container:/go/src/main# ls -l
-rw-r--r-- 1 root root 603 Feb 14 23:52 main.go
-rwxr-xr-x 1 root root 2885624 Feb 14 23:52 main.simple*
-rwxr-xr-x 1 root root 611192 Feb 14 23:59 main.simple.upx*
-rwxr-xr-x 1 root root 3974304 Feb 14 23:53 main.static*
-rwxr-xr-x 1 root root 935388 Feb 14 23:59 main.static.upx*

Test frolvlad/alpine-glibc (works OK)

$ for x in main.s*; do echo "- $x"; docker run -it --rm -v $(pwd):/go/src/main frolvlad/alpine-glibc /go/src/main/$x; echo; done

main.simple

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.simple.upx

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.static

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.static.upx

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

Test frolvlad/alpine-glibc:alpine-3.3_glibc-2.22 (is failing for some binaries)

$ for x in main.s*; do echo "- $x"; docker run -it --rm -v $(pwd):/go/src/main frolvlad/alpine-glibc:alpine-3.3_glibc-2.22 /go/src/main/$x; echo; done

main.simple

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.simple.upx

Hello world - from the good old C
Hello world - compressed
Olar, I am root (0:0) - from Go app

main.static

Hello world - from the good old C
Hello world - compressed
user: lookup userid 0: no such file or directory

main.static.upx

Hello world - from the good old C
Hello world - compressed
user: lookup userid 0: no such file or directory

I would like to still building my code with --ldflags='-extldflags "-static"' to make tottaly static binaries. Why this approach generates erros only in the frolvlad/alpine-glibc:alpine-3.3_glibc-2.22 image?

docker-alpine-glibc for arm64

Hi guys
I'm wondering if you have tried to build the same image for ARM64 arch, is there any plan to support other platforms. I'm struggling to build such image by my own, unfortunately, have limited knowledge base on the Linux realm as a JAVA developer.

JDK11 crashed in this base image

Dockerfile:

FROM frolvlad/alpine-glibc:latest
RUN mkdir -p /usr/java/
ADD jdk-11.0.5_linux-x64_bin.tar.gz /usr/java/
ENV JAVA_HOME=/usr/java/jdk-11.0.5
ENV PATH ${PATH}:${JAVA_HOME}/bin

when enter container and input command:

/ # java -version
java version "11.0.5" 2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
[thread 11 also had an error]
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f28dcb2aab1, pid=6, tid=21
#
# JRE version: Java(TM) SE Runtime Environment (11.0.5+10) (build 11.0.5+10-LTS)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0.5+10-LTS, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libc.so.6+0x11dab1][thread 12 also had an error]

#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to //core.6)
#
# An error report file with more information is saved as:
# //hs_err_pid6.log
[thread 9 also had an error]
[thread 16 also had an error]
[thread 13 also had an error]
[thread 7 also had an error]
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)

Why this happened? Can someone help me? Thanks very much!

Alpine Linux 3.10.1 is out

Please, release a compatible image! Not sure why 3.9 is newer than 3.10 and that there's no glibc version in the tag.

OCI8

I had tries add oci8 PHP extension, and always unsuccessful, u have test things like this?

thanks

Alpine 3.14.3 is available

Hi @frol, alpine 3.14.3 is out now and has some bug fixes, but this image hasn't been updated?

alpine:3.14.3
Last pushed12 days agobydoijanky
frolvlad/alpine-glibc:alpine-3.14_glibc-2.33
Last pushed2 months agobyfrolvlad

Is there any chance it could please be updated?

Also, is there any possibility you could please release images named in such as way to track the alpine releases, e.g. frolvlad/alpine-glibc:alpine-3.14.3_glibc-2.33?

Thanks.

value of field `int_curr_symbol' has wrong length

hi,while i have tried to build a images from Dockerfile,I got the WARN message.

fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
(1/4) Installing glibc (2.25-r0)
(2/4) Installing libgcc (6.2.1-r1)
(3/4) Installing glibc-bin (2.25-r0)
(4/4) Installing glibc-i18n (2.25-r0)
Executing glibc-bin-2.25-r0.trigger
OK: 22 MiB in 21 packages
LC_MONETARY: value of field `int_curr_symbol' has wrong length
No definition for LC_PAPER category found
No definition for LC_NAME category found
No definition for LC_ADDRESS category found
No definition for LC_TELEPHONE category found
No definition for LC_MEASUREMENT category found
No definition for LC_IDENTIFICATION category found

(1/1) Purging glibc-i18n (2.25-r0)
OK: 12 MiB in 20 packages

Successfully built 47dc001ae5a8

Q: any hints on how to track down 'symbol not found's?

I'm trying to install NCBI BLAST is alpine-glibc container and got to the point where

/ # ldd /usr/bin/blastp
	/lib64/ld-linux-x86-64.so.2 (0x7f5602444000)
	libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f5602444000)
	libz.so.1 => /lib/libz.so.1 (0x7f560222d000)
	libbz2.so.1 => /usr/lib/libbz2.so.1 (0x7f5602020000)
	libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f5602444000)
	libnsl.so.1 => /usr/lib/libnsl.so.1 (0x7f5601e0a000)
	libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f5602444000)
	libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f5602444000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7f5601bf8000)
	ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7f56019cf000)
	libtirpc.so.3 => /usr/lib/libtirpc.so.3 (0x7f56017a2000)
	libintl.so.8 => /usr/lib/libintl.so.8 (0x7f5601594000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x7f5601352000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x7f560108c000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x7f5600e5e000)
	libcom_err.so.2 => /lib/libcom_err.so.2 (0x7f5600c5a000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x7f5600a4f000)
	libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x7f560084b000)
Error relocating /usr/bin/blastp: backtrace_symbols: symbol not found
Error relocating /usr/bin/blastp: malloc_trim: symbol not found
Error relocating /usr/bin/blastp: __register_atfork: symbol not found
Error relocating /usr/bin/blastp: __strtod_internal: symbol not found
Error relocating /usr/bin/blastp: backtrace: symbol not found

I'm having hard time figuring out what gives. Any hints?

The binary was, according to ncbi_package_info file, built with

  Package-Config:  Linux64-Centos : icc : ./c++/compilers/unix/ICC.sh --with-bin-release --with-strip --without-debug --without-pcre --with-mt --with-openmp --with-flat-make
file --with-experimental=Int8GI --without-vdb --without-gnutls --without-gcrypt --with-build-root-sfx=--Linux64-Centos-icc --with-flat-makefile --with-ncbi-public --without
-ccache --without-caution --without-runpath --without-makefile-auto-update --with-projects=scripts/projects/blast/project.lst --with-internal
 Build-Signature:  ICC_1503-ReleaseMT64--x86_64-unknown-linux3.10.0-gnu2.17-coremake22

TIA

More of a Question about Usage

I have an executable that was designed to be in a glibc environment. I used your image, and when i run

ldd /app/clidriver/bin/db2cli
        /lib64/ld-linux-x86-64.so.2 (0x7fe9feb26000)
        libdb2.so.1 => /app/clidriver/lib//libdb2.so.1 (0x7fe9fc69b000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fe9feb26000)
        libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fe9feb26000)
        libstdc++.so.6 => ../lib/libstdc++.so.6 (0x7fe9fc502000)
        libgcc_s.so.1 => ../lib/libgcc_s.so.1 (0x7fe9fc4ee000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fe9feb26000)
        libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fe9feb26000)
        libcrypt.so.1 => /usr/glibc-compat/lib//libcrypt.so.1 (0x7fe9fc4b5000)
        librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7fe9feb26000)
        libpam.so.0 => /lib/libpam.so.0 (0x7fe9fc4a6000)
        libxml2.so.2 => ./libxml2.so.2 (0x7fe9fc37d000)
        libz.so.1 => /lib/libz.so.1 (0x7fe9fc363000)
        liblzma.so.5 => ./liblzma.so.5 (0x7fe9fc340000)
Error relocating /app/clidriver/lib//libdb2.so.1: pthread_mutexattr_setkind_np: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: pthread_attr_setaffinity_np: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: __snprintf_chk: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: __register_atfork: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: __vsnprintf_chk: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: sysctl: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: backtrace: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: getgrent_r: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: __res_init: symbol not found
Error relocating /app/clidriver/lib//libdb2.so.1: dlvsym: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __stpncpy: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __open_nocancel: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __read_nocancel: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __snprintf: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __explicit_bzero_chk: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __libc_alloca_cutoff: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: __close_nocancel: symbol not found
Error relocating /usr/glibc-compat/lib//libcrypt.so.1: errno: symbol not found
Error relocating /app/clidriver/bin/db2cli: __printf_chk: symbol not found
Error relocating /app/clidriver/bin/db2cli: __strncat_chk: symbol not found
Error relocating /app/clidriver/bin/db2cli: __vsprintf_chk: symbol not found
Error relocating /app/clidriver/bin/db2cli: __fprintf_chk: symbol not found

I have added /usr/glibc-compat/lib to the LD_LIBRARY_PATH and it can clearly find SOME of the libraries.

I'm by no means an expert at this type of low level work, but I imagine its possible to some how get a closed source vendor library that was clearly compiled on debian or ubuntu with glibc. I just can't figure out how to make it find the glibc versions of the libraries, or if i need to somehow find these magic glibc versions. "symbol not found" seems to be that the abis are different.

Let me know if this is like chasing ghosts though.

Error relocating /lib/ld-linux-x86-64.so.2: unsupported relocation type 37

I use graalvm create a mostly static native image that only depends glibc.
It works fine in docker frolvlad/alpine-glibc (or maybe not fully tested. )
but when I use ldd to check dependencies found some error following

bash-5.1# ldd misc
	/lib64/ld-linux-x86-64.so.2 (0x7fd723484000)
	libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fd723484000)
	libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fd723484000)
	libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fd723484000)
	ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7fd72002c000)
Error relocating /lib/ld-linux-x86-64.so.2: unsupported relocation type 37
Error relocating misc: __strtok_r: symbol not found
Error relocating misc: __strdup: symbol not found
Error relocating misc: __sprintf_chk: symbol not found

so I want to ask can I ignore this error?

RuntimeError: can't start new thread

8b8d6e33dd95:~# uname -a
Linux 8b8d6e33dd95 4.15.0-193-generic #204-Ubuntu SMP Fri Aug 26 19:20:21 UTC 2022 x86_64 Linux
8b8d6e33dd95:~# /root/anaconda3/bin/ipython
Traceback (most recent call last):
  File "/root/anaconda3/bin/ipython", line 11, in <module>
    sys.exit(start_ipython())
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/__init__.py", line 126, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 844, in launch_instance
    app.initialize(argv)
  File "/root/anaconda3/lib/python3.8/site-packages/traitlets/config/application.py", line 87, in inner
    return method(app, *args, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/terminal/ipapp.py", line 317, in initialize
    self.init_shell()
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/terminal/ipapp.py", line 331, in init_shell
    self.shell = self.interactive_shell_class.instance(parent=self,
  File "/root/anaconda3/lib/python3.8/site-packages/traitlets/config/configurable.py", line 537, in instance
    inst = cls(*args, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/terminal/interactiveshell.py", line 525, in __init__
    super(TerminalInteractiveShell, self).__init__(*args, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 661, in __init__
    self.init_history()
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 1803, in init_history
    self.history_manager = HistoryManager(shell=self, parent=self)
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/core/history.py", line 551, in __init__
    self.save_thread.start()
  File "/root/anaconda3/lib/python3.8/threading.py", line 852, in start
    _start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread

If you suspect this is an IPython 7.19.0 bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at [email protected]

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    c.Application.verbose_crash=True

Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/root/anaconda3/lib/python3.8/site-packages/IPython/core/history.py", line 847, in stop
    self.join()
  File "/root/anaconda3/lib/python3.8/threading.py", line 1006, in join
    raise RuntimeError("cannot join thread before it is started")
RuntimeError: cannot join thread before it is started
8b8d6e33dd95:~# 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.