sys-siglist missing in Docker build

748 views
Skip to first unread message

anders

unread,
May 28, 2019, 3:06:24 PM5/28/19
to Eiffel Users
I am trying to run "Hello Eiffel" in a Docker container at Ubuntu 18.04. It does not start so I run 

 ldd eiffeltest

inside docker and get this message:

        /lib64/ld-linux-x86-64.so.2 (0x7fe2cec90000)
        libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fe2cec90000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fe2cec90000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fe2cec90000)
Error relocating eiffeltest: sys_siglist: symbol not found



I found this recent commit:

Revision 102961 - Directory Listing 
Modified Fri Mar 15 17:16:24 2019 UTC (2 months, 1 week ago) by jfiat
Replaced "sys_siglist[sig]" by "strsignal(sig)" .
- the "strsignal" manpage recommends to use strsignal instead of the "sys_siglist" array when possible.
- "strsignal" is more portable (sometime "sys_siglist" is not available -- for instance in "musl-dev" with Alpine linux).
( Contribution from https://github.com/EiffelSoftware/EiffelStudio/pull/44 )




Do you think it is related to my problem? Can I solve it by adding any package or do I need to upgrade

This is the star of the Docker file:

FROM ubuntu:18.04

RUN apt-get update \
        && apt-get -y install \
curl bzip2 make gcc git-core libc6 libsm6 \
apache2 libapache2-mod-fcgid libfcgi-dev \
        && rm -rf /var/lib/apt/lists/*


anders

unread,
May 29, 2019, 4:43:47 PM5/29/19
to Eiffel Users
After upgrading to 19.05 I got this errors instead. Unable to find the reason. As usual the executable works fine outside Docker.

Error relocating eiffeltest: __longjmp_chk: symbol not found
Error relocating eiffeltest: __fprintf_chk: symbol not found
Error relocating eiffeltest: __memcpy_chk: symbol not found
Error relocating eiffeltest: __strcat_chk: symbol not found
Error relocating eiffeltest: __strcpy_chk: symbol not found
Error relocating eiffeltest: __fread_chk: symbol not found
Error relocating eiffeltest: __sprintf_chk: symbol not found

Emmanuel Stapf

unread,
May 30, 2019, 12:44:48 AM5/30/19
to Eiffel Users
Looks like you need to follow this advice and install glibc onto your
docker image: https://github.com/frol/docker-alpine-glibc/blob/master/Dockerfile.

More info at https://github.com/android-ndk/ndk/issues/354

Manu
> --
> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
> Visit this group at https://groups.google.com/group/eiffel-users.
> To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/68886400-4125-4d0d-a50a-ccea691fe012%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
------------------------------------------------------------------------
Eiffel Software
805-685-1006
http://www.eiffel.com
Customer support: http://support.eiffel.com
User group: http://groups.eiffel.com/join
------------------------------------------------------------------------

Anders Persson

unread,
May 30, 2019, 2:27:50 AM5/30/19
to Eiffel Users
Thanks, I will try that. I have tried installing glibc but always failed. This seems as a potential solution.

Vänligen

Anders Persson
+46 763 17 23 25



Jocelyn Fiat

unread,
May 30, 2019, 6:09:35 AM5/30/19
to Eiffel Users
An alternative is to use the eiffel/eiffel docker image:

docker pull eiffel/eiffel
docker -it --rm eiffel/eiffel /bin/bash

I started experimentation with alpine Linux, but I ended up using the Debian base image, as in practice it was easier to extend and install other packages.


For more options, visit https://groups.google.com/d/optout.


--
Jocelyn
------------------------------------------------------------------------
Eiffel Software
https://www.eiffel.com
Customer support: https://support.eiffel.com
User group: https://groups.google.com/forum/#!forum/eiffel-users
------------------------------------------------------------------------

anders

unread,
May 31, 2019, 1:16:27 AM5/31/19
to Eiffel Users
Thanks Manu and Jocelyn

I found the problem. It was due to me not understanding how Docker works.

I had this in the beginning

FROM ubuntu:18.04

then I later wanted to include yet another software and did something like this

FROM XXXX

and of course I got another LInux, Without investigating it further I probably got alpine Linux and then the problem described in this post. By removing that FROM XXX it solved the problem. I now have the following start of my Docker file


FROM ubuntu:18.04

RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl \ bzip2 \ gcc make \ libxtst-dev \ libgtk2.0-dev \ libssl-dev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*


and then the Hello Eiffel example works and my own Eiffelserver

Regards

Anders
> To unsubscribe from this group and stop receiving emails from it, send an email to eiffel...@googlegroups.com.

> Visit this group at https://groups.google.com/group/eiffel-users.
> To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/68886400-4125-4d0d-a50a-ccea691fe012%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
------------------------------------------------------------------------
Eiffel Software
805-685-1006
http://www.eiffel.com
Customer support: http://support.eiffel.com
User group: http://groups.eiffel.com/join
------------------------------------------------------------------------

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages