symbol h_errno version GLIBC_PRIVATE not defined in file libc.so.6

jcbigears
Joined: 18 Jun 20
Posts: 4
Credit: 269125
RAC: 0
Topic 222985

Hi,

I have a Raspberry Pi 3B running Raspbian and Boinc and einstein@home without any troubles. No changes to config, etc, required. I then bought a Raspi4...

Clean install of Raspbian and boinc client packages. Rosetta runs fine after following instructions here 

  • arm_64bit=1 into config.txt
  • <alt_platform>aarch64-unknown-linux-gnu</alt_platform> into cc_config.xml
  • I also put in <alt_platform>arm-unknown-linux-gnueabihf</alt_platform> to try and problem solve - didn't help!

Boinc runs with the following output:

│2 Jul 20:07
│Starting BOINC client version 7.14.2 for arm-unknown-linux-gnueabihf
│log flags: file_xfer, sched_ops, task
│Libraries: libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librt
│Data directory: /var/lib/boinc-client 
│No usable GPUs found 
│[libc detection] gathered: 2.28, Debian GLIBC 2.28-10+rpi1
│Host name: raspberrypi4
│Processor: 4 ARM BCM2835 [Impl 0x41 Arch 8 Variant 0x0 Part 0xd08 Rev 3]
│Processor features: fp asimd evtstrm crc32 cpuid
│OS: Linux Raspbian: Raspbian GNU/Linux 10 (buster) [4.19.118-v8+|libc 2.28 (Debian GLIBC 2.28-10+rpi1)]
│Memory: 3.77 GB physical, 100.00 MB virtual
│Disk: 28.98 GB total, 24.85 GB free
│Local time is UTC +10 hours
│Config: GUI RPCs allowed from:
│Config: alternate platform: aarch64-unknown-linux-gnu
│2 Jul 20:07 Einstein@Home
│URL http://einstein.phys.uwm.edu/; Computer ID 12839529; resource share 100
│2 Jul 20:07 Rosetta@home
│URL https://boinc.bakerlab.org/rosetta/; Computer ID 4718989; resource share 100

When I connect to Einstein, it downloads tasks but each one fails immediately. I get Outcome: Computation error

Computation for task p2030.20170531.G47.10+02.68.S.b0s0g0.00000_707_0 finished

Output file p2030.20170531.G47.10+02.68.S.b0s0g0.00000_707_0_0 for task p2030.20170531.G47.10+02.68.S.b0s0g0.00000_707_0 absent

Stderr output

<core_client_version>7.14.2</core_client_version>
<![CDATA[
<message>
process exited with code 127 (0x7f, -129)</message>
<stderr_txt>
../../projects/einstein.phys.uwm.edu/einsteinbinary_BRP4_1.06_arm-unknown-linux-gnueabihf: relocation error: ../../projects/einstein.phys.uwm.edu/einsteinbinary_BRP4_1.06_arm-unknown-linux-gnueabihf: symbol h_errno version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

ldd /bin/ls
    /usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v8l.so (0xf7e87000)
    libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0xf7e55000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf7d07000)
    /lib/ld-linux-armhf.so.3 (0xf7e9c000)
    libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0xf7c90000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xf7c7d000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xf7c53000)

I found this thread but it didn't seem to lead anywhere

So my questions are

  1.  Since making the changes to config.txt and cc_config.xml, have I prevented my Rasp4 from running Einstein?
  2. Is there a simple solution?
  3. Should I give up and install another operating system altogether? I tried Ubuntu but it didn't want to play either...

Thanks for your help!

John

robl
robl
Joined: 2 Jan 13
Posts: 1709
Credit: 1454482221
RAC: 8693

I am running several Pi4s

I am running several Pi4s both 4 GB and 8 GB using Ubuntu 20.04.  Here is a link to my webpage with instructions on how to install Ubuntu 20 on a Pi 4

jcbigears
Joined: 18 Jun 20
Posts: 4
Credit: 269125
RAC: 0

Thanks. I've found several of

Thanks. I've found several of your posts on this topic already.

Does Boinc now run on ubuntu on a Pi4 then? I'm happy to install it if it will. When I tried it before it returned "platform aarch64-unknown-linux-gnu not found"

John

robl
robl
Joined: 2 Jan 13
Posts: 1709
Credit: 1454482221
RAC: 8693

jcbigears wrote:Thanks.

jcbigears wrote:

Thanks. I've found several of your posts on this topic already.

Does Boinc now run on ubuntu on a Pi4 then? I'm happy to install it if it will. When I tried it before it returned "platform aarch64-unknown-linux-gnu not found"

John

JC, 

disregard what I stated and go to install Ubuntu 19.  This page states that I was running on Ubuntu 19 and I was.  This page should work fine for Ubuntu 19 but there could be issues if you install with Ubuntu 20.  You might want to read this link for installing Ubuntu 20 on a Pi4.  There were issues with hdmi monitors on Ubuntu 20.  They are explained and resolved in the Ubuntu 20 install procedure.  I would install  Ubuntu 19 following the Ubuntu 19 procedure. 

The bulk of this work was done by a user:  n30dg

I apologize for the confusion made only worse by this response

jcbigears
Joined: 18 Jun 20
Posts: 4
Credit: 269125
RAC: 0

Thanks. So in other words,

Thanks. So in other words, abandon Raspbian and go down the Ubuntu route again....

Appreciate it!

John

jcbigears
Joined: 18 Jun 20
Posts: 4
Credit: 269125
RAC: 0

Just to close the circle, I

Just to close the circle, I found that I couldn't run Rosetta and Einstein at the same time on a Raspberry. Have tried Ubuntu but now gone back to Raspian and running Einstein only. Reasonably happy with results.

PorkyPies
PorkyPies
Joined: 27 Apr 16
Posts: 197
Credit: 28021067
RAC: 8627

The project doesn't currently

The project doesn't currently have any official aarch64 apps. The official app is an armhf app (ie a 32 bit app).

There is an unofficial aarch64 BRP4 app that the Pi3 and Pi4 can run, compiled and optimized by user N30DG-ARM. To use it you would need to use BOINC's anonymous platform mechanism. It won't work under Raspbian even if you set the boot parameter to arm_64bit=1 as Raspbian has a 32 bit userland. It will work under Raspberry Pi OS (64 bit) as its basically Debian for aarch64 with tweaks for the Pi. The Rpi foundation state its a "beta" version but I updated all my Pi4's to it some months ago and haven't had an issues so far. Ideally you'll need a 2GB Pi because the app uses a bit more memory than the official one (about 30Mb per task) but its almost twice as fast as the official app.

You'll be able to run both Rosetta and Einstein if you run Raspberry Pi OS (64 bit) and the unofficial BRP4 app, although with Rosetta they can use lots of memory for some tasks.

If you are interested in going down this path let me know and I will see if I can dig out some links to both Raspberry Pi OS (64 bit) and the BRP4 app for you. The Rpi OS link is in a forum post on their website and the BRP4 app is in a couple of forum posts on here.

PorkyPies
PorkyPies
Joined: 27 Apr 16
Posts: 197
Credit: 28021067
RAC: 8627

Here is the link to the

Here is the link to the announcement of Raspberry Pi OS 64 bit:

https://www.raspberrypi.org/forums/viewtopic.php?t=275370

 

And here is the message thread with instructions for the aarch64 BRP4 app:

https://einsteinathome.org/content/high-speed-linux-brp-app-odroid-c2

 

Viktor
Viktor
Joined: 8 Mar 20
Posts: 2
Credit: 162470
RAC: 55

I'm reviving this thread with

I'm reviving this thread with a very similar error message. This is on a Raspberry 1 with 512 MB, and Raspbian 32-bit - 64-bit is not possible here. I do not expect support for such an old machine, just wondering if it's a software problem that I could solve, or if the Einstein binaries are not compatible with this system any more.

# ldd einsteinbinary_BRP4_1.06_arm-unknown-linux-gnueabihf
    /usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v6l.so (0xb6ed7000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6eab000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e3c000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6cb4000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6b60000)
    /lib/ld-linux-armhf.so.3 (0xb6eea000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6b33000)

<core_client_version>7.16.16</core_client_version>
<![CDATA[
<message>
process exited with code 127 (0x7f, -129)</message>
<stderr_txt>
../../projects/einstein.phys.uwm.edu/einsteinbinary_BRP4_1.06_arm-unknown-linux-gnueabihf: symbol lookup error: ../../projects/einstein.phys.uwm.edu/einsteinbinary_BRP4_1.06_arm-unknown-linux-gnueabihf: undefined symbol: h_errno, version GLIBC_PRIVATE

</stderr_txt>
]]>

Application: Binary Radio Pulsar Search (Arecibo) v1.06
arm-unknown-linux-gnueabihf

Mar 09 14:04:39 radioberry boinc[14399]: 09-Mar-2022 14:04:39 [---] Starting BOINC client version 7.16.16 for arm-unknown-linux-gnueabihf
Mar 09 14:04:39 radioberry boinc[14399]: 09-Mar-2022 14:04:39 [---] log flags: file_xfer, sched_ops, task
Mar 09 14:04:39 radioberry boinc[14399]: 09-Mar-2022 14:04:39 [---] Libraries: libcurl/7.74.0 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3
Mar 09 14:04:39 radioberry boinc[14399]: 09-Mar-2022 14:04:39 [---] Data directory: /var/lib/boinc-client
Mar 09 14:04:39 radioberry boinc[14399]: 09-Mar-2022 14:04:39 [---] No usable GPUs found
Mar 09 14:04:41 radioberry boinc[14399]: 09-Mar-2022 14:04:41 [---] libc: Debian GLIBC 2.31-13+rpt2+rpi1+deb11u2 version 2.31
Mar 09 14:04:41 radioberry boinc[14399]: 09-Mar-2022 14:04:41 [---] Host name: radioberry
Mar 09 14:04:41 radioberry boinc[14399]: 09-Mar-2022 14:04:41 [---] Processor: 1 ARM ARMv6-compatible processor rev 7 (v6l) [Impl 0x41 Arch 7 Variant 0x0 Part 0xb76 Rev 7]
Mar 09 14:04:41 radioberry boinc[14399]: 09-Mar-2022 14:04:41 [---] Processor features: half thumb fastmult vfp edsp java tls
Mar 09 14:04:41 radioberry boinc[14399]: 09-Mar-2022 14:04:41 [---] OS: Linux Raspbian: Raspbian GNU/Linux 11 (bullseye) [5.10.92+|libc 2.31 (Debian GLIBC 2.31-13+rpt2+rpi1+deb11u2)]
 

Viktor
Viktor
Joined: 8 Mar 20
Posts: 2
Credit: 162470
RAC: 55

This forum thread comes

This forum thread comes closest: https://forums.raspberrypi.com/viewtopic.php?t=197346

That looks like an incompatibility between glibc versions. Not sure when it happened but h_errno got renamed to __h_errno so at a guess your program (or a library it uses) was compiled against the older version of glibc and needs access to that internal symbol. Recompiling under Stretch should fix it.

Looking through some notes it was around 2015 so Jessie probably has the older glibc and Stretch will be using the newer one.

The v1.06 application is built in 2013, so wouldn't it break on most systems since 2015 ...?

In my preferences I have enabled "Run Linux app versions built with LIBC 2.15" to tell I'm running on "more recent" libcs, I don't see anything better that could be configured there? Can I somehow tell Einstein not to send me tasks for that v1.06 application?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.