• Trouble running Entware gcc & make on QNAP NAS

    From Java Jive@21:1/5 to All on Sun Apr 20 01:30:11 2025
    XPost: alt.os.linux

    I have a QNAP TS-251+ NAS running their own version of linux ...

    [USER@NASNAME ~]# uname -a
    Linux NASNAME 5.10.60-qnap #1 SMP Wed Jan 8 01:44:37 CST 2025 x86_64
    GNU/Linux

    ... and have installed Entware development utilities ...

    [USER@NASNAME ~]# ll /share/CACHEDEV1_DATA/.qpkg/Entware/bin
    total 8520
    drwxr-xr-x 2 admin administrators 4096 2020-06-28 01:03 ./
    drwxr-xr-x 11 admin administrators 4096 2018-01-04 08:53 ../
    -rwxr-xr-x 1 admin administrators 27592 2018-01-04 08:53 addr2line* -rwxr-xr-x 1 admin administrators 56240 2018-01-04 08:53 ar*
    -rwxr-xr-x 1 admin administrators 357120 2018-01-04 08:53 as*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 c++ -> x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 27176 2018-01-04 08:53 c++filt*
    -rwxr-xr-x 1 admin administrators 882888 2018-01-04 08:53 cpp*
    -rwxr-xr-x 1 admin administrators 31456 2018-01-04 08:53 elfedit*
    -rwxr-xr-x 1 admin administrators 238672 2018-01-04 08:53 ffmpeg*
    -rwxr-xr-x 1 admin administrators 126696 2018-01-04 08:53 ffprobe*
    -rwxr-xr-x 1 admin administrators 132320 2018-01-04 08:53 ffserver*
    -rwxr-xr-x 1 admin administrators 275048 2018-01-04 08:53 find*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 g++ -> x86_64-openwrt-linux-gnu-g++*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 gcc -> x86_64-openwrt-linux-gnu-gcc*
    -rwxr-xr-x 1 admin administrators 175 2018-01-04 08:53 gcc_env.sh* -rwxr-xr-x 1 admin administrators 457960 2018-01-04 08:53 gcov*
    -rwxr-xr-x 1 admin administrators 94424 2018-01-04 08:53 gprof*
    -rwxr-xr-x 1 admin administrators 999376 2018-01-04 08:53 ld*
    -rwxr-xr-x 1 admin administrators 999376 2018-01-04 08:53 ld.bfd*
    -rwxr-xr-x 1 admin administrators 302600 2018-01-04 08:53 localedef.new* -rwxr-xr-x 1 admin administrators 38640 2018-01-04 08:53 locale.new* -rwxr-xr-x 1 admin administrators 199048 2018-01-04 08:53 make*
    -rwxr-xr-x 1 admin administrators 40680 2018-01-04 08:53 nm*
    -rwxr-xr-x 1 admin administrators 220216 2018-01-04 08:53 objcopy*
    -rwxr-xr-x 1 admin administrators 340272 2018-01-04 08:53 objdump*
    -rwxr-xr-x 1 admin administrators 162112 2018-01-04 08:53 opkg*
    -rwxr-xr-x 1 admin administrators 56272 2018-01-04 08:53 ranlib*
    -rwxr-xr-x 1 admin administrators 481112 2018-01-04 08:53 readelf*
    -rwxr-xr-x 1 admin administrators 27432 2018-01-04 08:53 size*
    -rwxr-xr-x 1 admin administrators 27560 2018-01-04 08:53 strings*
    -rwxr-xr-x 1 admin administrators 220224 2018-01-04 08:53 strip*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 x86_64-openwrt-linux-gnu-c++ -> x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 886984 2018-01-04 08:53 x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 882888 2018-01-04 08:53 x86_64-openwrt-linux-gnu-gcc*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 x86_64-openwrt-linux-gnu-gcc-6.3.0 -> x86_64-openwrt-linux-gnu-gcc*

    ... however my attempts to run any of these utilities end in failure:

    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory

    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or directory

    Note that the directory listing and the uname output show that the
    hardware objective coding of the development utilities is correct for
    the hardware, and I can't think of any other reason why the utilities
    won't run. Any ideas anyone?

    --

    Fake news kills!

    I may be contacted via the contact address given on my website:
    www.macfh.co.uk

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to Java Jive on Sun Apr 20 07:46:27 2025
    XPost: alt.os.linux

    Java Jive <java@evij.com.invalid> writes:

    I have a QNAP TS-251+ NAS running their own version of linux ...

    [USER@NASNAME ~]# uname -a
    Linux NASNAME 5.10.60-qnap #1 SMP Wed Jan 8 01:44:37 CST 2025 x86_64 GNU/Linux

    ... and have installed Entware development utilities ...

    [USER@NASNAME ~]# ll /share/CACHEDEV1_DATA/.qpkg/Entware/bin
    total 8520
    drwxr-xr-x 2 admin administrators 4096 2020-06-28 01:03 ./
    drwxr-xr-x 11 admin administrators 4096 2018-01-04 08:53 ../
    -rwxr-xr-x 1 admin administrators 27592 2018-01-04 08:53 addr2line* -rwxr-xr-x 1 admin administrators 56240 2018-01-04 08:53 ar*
    -rwxr-xr-x 1 admin administrators 357120 2018-01-04 08:53 as*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 c++ -> x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 27176 2018-01-04 08:53 c++filt* -rwxr-xr-x 1 admin administrators 882888 2018-01-04 08:53 cpp*
    -rwxr-xr-x 1 admin administrators 31456 2018-01-04 08:53 elfedit* -rwxr-xr-x 1 admin administrators 238672 2018-01-04 08:53 ffmpeg*
    -rwxr-xr-x 1 admin administrators 126696 2018-01-04 08:53 ffprobe* -rwxr-xr-x 1 admin administrators 132320 2018-01-04 08:53 ffserver* -rwxr-xr-x 1 admin administrators 275048 2018-01-04 08:53 find*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 g++ -> x86_64-openwrt-linux-gnu-g++*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 gcc -> x86_64-openwrt-linux-gnu-gcc*
    -rwxr-xr-x 1 admin administrators 175 2018-01-04 08:53 gcc_env.sh* -rwxr-xr-x 1 admin administrators 457960 2018-01-04 08:53 gcov*
    -rwxr-xr-x 1 admin administrators 94424 2018-01-04 08:53 gprof*
    -rwxr-xr-x 1 admin administrators 999376 2018-01-04 08:53 ld*
    -rwxr-xr-x 1 admin administrators 999376 2018-01-04 08:53 ld.bfd*
    -rwxr-xr-x 1 admin administrators 302600 2018-01-04 08:53 localedef.new* -rwxr-xr-x 1 admin administrators 38640 2018-01-04 08:53 locale.new* -rwxr-xr-x 1 admin administrators 199048 2018-01-04 08:53 make*
    -rwxr-xr-x 1 admin administrators 40680 2018-01-04 08:53 nm*
    -rwxr-xr-x 1 admin administrators 220216 2018-01-04 08:53 objcopy* -rwxr-xr-x 1 admin administrators 340272 2018-01-04 08:53 objdump* -rwxr-xr-x 1 admin administrators 162112 2018-01-04 08:53 opkg*
    -rwxr-xr-x 1 admin administrators 56272 2018-01-04 08:53 ranlib*
    -rwxr-xr-x 1 admin administrators 481112 2018-01-04 08:53 readelf* -rwxr-xr-x 1 admin administrators 27432 2018-01-04 08:53 size*
    -rwxr-xr-x 1 admin administrators 27560 2018-01-04 08:53 strings* -rwxr-xr-x 1 admin administrators 220224 2018-01-04 08:53 strip*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 x86_64-openwrt-linux-gnu-c++ -> x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 886984 2018-01-04 08:53
    x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 882888 2018-01-04 08:53
    x86_64-openwrt-linux-gnu-gcc*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 x86_64-openwrt-linux-gnu-gcc-6.3.0 -> x86_64-openwrt-linux-gnu-gcc*

    ... however my attempts to run any of these utilities end in failure:

    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory

    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or directory

    Note that the directory listing and the uname output show that the
    hardware objective coding of the development utilities is correct for
    the hardware, and I can't think of any other reason why the utilities
    won't run. Any ideas anyone?

    Some kind of dependency is missing, either the runtime linker used by
    those executables or possibly a shared library (though I think the
    diagnostic is more helpful in the latter case).

    Perhaps the place you got them from has some information about required dependencies.

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Green@21:1/5 to Java Jive on Sun Apr 20 08:54:06 2025
    XPost: alt.os.linux

    Java Jive <java@evij.com.invalid> wrote:
    I have a QNAP TS-251+ NAS running their own version of linux ...

    [USER@NASNAME ~]# uname -a
    Linux NASNAME 5.10.60-qnap #1 SMP Wed Jan 8 01:44:37 CST 2025 x86_64 GNU/Linux

    ... and have installed Entware development utilities ...

    [USER@NASNAME ~]# ll /share/CACHEDEV1_DATA/.qpkg/Entware/bin
    total 8520
    drwxr-xr-x 2 admin administrators 4096 2020-06-28 01:03 ./
    drwxr-xr-x 11 admin administrators 4096 2018-01-04 08:53 ../
    -rwxr-xr-x 1 admin administrators 27592 2018-01-04 08:53 addr2line* -rwxr-xr-x 1 admin administrators 56240 2018-01-04 08:53 ar*
    -rwxr-xr-x 1 admin administrators 357120 2018-01-04 08:53 as*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 c++ -> x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 27176 2018-01-04 08:53 c++filt* -rwxr-xr-x 1 admin administrators 882888 2018-01-04 08:53 cpp*
    -rwxr-xr-x 1 admin administrators 31456 2018-01-04 08:53 elfedit* -rwxr-xr-x 1 admin administrators 238672 2018-01-04 08:53 ffmpeg*
    -rwxr-xr-x 1 admin administrators 126696 2018-01-04 08:53 ffprobe* -rwxr-xr-x 1 admin administrators 132320 2018-01-04 08:53 ffserver* -rwxr-xr-x 1 admin administrators 275048 2018-01-04 08:53 find*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 g++ -> x86_64-openwrt-linux-gnu-g++*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 gcc -> x86_64-openwrt-linux-gnu-gcc*
    -rwxr-xr-x 1 admin administrators 175 2018-01-04 08:53 gcc_env.sh* -rwxr-xr-x 1 admin administrators 457960 2018-01-04 08:53 gcov*
    -rwxr-xr-x 1 admin administrators 94424 2018-01-04 08:53 gprof*
    -rwxr-xr-x 1 admin administrators 999376 2018-01-04 08:53 ld*
    -rwxr-xr-x 1 admin administrators 999376 2018-01-04 08:53 ld.bfd*
    -rwxr-xr-x 1 admin administrators 302600 2018-01-04 08:53 localedef.new* -rwxr-xr-x 1 admin administrators 38640 2018-01-04 08:53 locale.new* -rwxr-xr-x 1 admin administrators 199048 2018-01-04 08:53 make*
    -rwxr-xr-x 1 admin administrators 40680 2018-01-04 08:53 nm*
    -rwxr-xr-x 1 admin administrators 220216 2018-01-04 08:53 objcopy* -rwxr-xr-x 1 admin administrators 340272 2018-01-04 08:53 objdump* -rwxr-xr-x 1 admin administrators 162112 2018-01-04 08:53 opkg*
    -rwxr-xr-x 1 admin administrators 56272 2018-01-04 08:53 ranlib*
    -rwxr-xr-x 1 admin administrators 481112 2018-01-04 08:53 readelf* -rwxr-xr-x 1 admin administrators 27432 2018-01-04 08:53 size*
    -rwxr-xr-x 1 admin administrators 27560 2018-01-04 08:53 strings* -rwxr-xr-x 1 admin administrators 220224 2018-01-04 08:53 strip*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 x86_64-openwrt-linux-gnu-c++ -> x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 886984 2018-01-04 08:53 x86_64-openwrt-linux-gnu-g++*
    -rwxr-xr-x 1 admin administrators 882888 2018-01-04 08:53 x86_64-openwrt-linux-gnu-gcc*
    lrwxrwxrwx 1 admin administrators 28 2025-04-18 00:59 x86_64-openwrt-linux-gnu-gcc-6.3.0 -> x86_64-openwrt-linux-gnu-gcc*

    ... however my attempts to run any of these utilities end in failure:

    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory

    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or directory

    Note that the directory listing and the uname output show that the
    hardware objective coding of the development utilities is correct for
    the hardware, and I can't think of any other reason why the utilities
    won't run. Any ideas anyone?

    Are those asterisks at the ends of lines part of the file names? If
    so then that would explain the problem, the file(s) you actually have
    installed are 'gcc*' and 'make*'.

    --
    Chris Green
    ·

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Green@21:1/5 to All on Sun Apr 20 08:58:21 2025
    XPost: alt.os.linux

    ... ah, no sorry, forget my previous reply. Apparently 'll' is
    aliased to 'ls -alF' on some systems and that produces the * on the
    end.

    Is your PATH set up right?

    --
    Chris Green
    ·

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Theo@21:1/5 to Java Jive on Sun Apr 20 10:08:50 2025
    XPost: alt.os.linux

    In uk.comp.os.linux Java Jive <java@evij.com.invalid> wrote:
    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory

    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or directory

    Note that the directory listing and the uname output show that the
    hardware objective coding of the development utilities is correct for
    the hardware, and I can't think of any other reason why the utilities
    won't run. Any ideas anyone?

    As Richard says, 'no such file or directory' when running a binary usually means either the binary format is not supported (eg trying to run Arm
    binaries on x86), or some shared library is missing which means the dynamic linker is not able to start the program.

    Try 'ldd /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc'. It should show you
    the dynamic libraries that it is asking for. eg:

    $ ldd /bin/true
    linux-vdso.so.1 (0x00007ffcad29c000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000070e2c2000000)
    /lib64/ld-linux-x86-64.so.2 (0x000070e2c2269000)

    If you get 'not found' that it shows which shared libraries it couldn't
    find. eg:

    libQt5PrintSupport.so.5 => /lib/x86_64-linux-gnu/libQt5PrintSupport.so.5 (0x00007cd1707d7000)
    libtcl8.6.so => /lib/x86_64-linux-gnu/libtcl8.6.so (0x00007cd16f050000)
    libedit.so.0 => not found
    libicudata.so.69 => not found
    libicuuc.so.69 => not found
    liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007cd170eb6000)
    libfmt.so.7 => not found
    libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007cd170708000)
    libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007cd170e98000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007cd170e93000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007cd170e8e000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007cd170703000)
    libtcmalloc.so.9.9.5 => not found
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007cd16ee00000)

    Note that if this is compiled for a different distro (eg Ubuntu) it's
    possible it's built for shared libraries with different versions/options
    than you have on your system. To get it to run you may have to copy the
    shared libraries from Ubuntu and add that directory to your LD_LIBRARY_PATH
    so the dynamic linker finds them in advance of the system libraries.

    Theo

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Java Jive@21:1/5 to Theo on Mon Apr 21 00:49:13 2025
    XPost: alt.os.linux

    Thanks to both Richard and Theo ...

    On 2025-04-20 10:08, Theo wrote:

    In uk.comp.os.linux Java Jive <java@evij.com.invalid> wrote:

    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory >>
    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or directory >>
    Note that the directory listing and the uname output show that the
    hardware objective coding of the development utilities is correct for
    the hardware, and I can't think of any other reason why the utilities
    won't run. Any ideas anyone?

    As Richard says, 'no such file or directory' when running a binary usually means either the binary format is not supported (eg trying to run Arm binaries on x86)

    Not the case here.

    or some shared library is missing which means the dynamic
    linker is not able to start the program.

    Think this or something similar must be the answer ...

    By default, there is no LD_LIBRARY_PATH variable defined, so, as a first attempt, I edited /etc/profile to add the various lib* sub-directories
    of the various optional add-ons to a LD_LIBRARY_PATH variable, but,
    after a reboot, running any of the normal shell commands resulted in segmentation faults, but when I entered into the shell ...
    unset LD_LIBRARY_PATH
    ... everything worked again.

    Try 'ldd /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc'. It should show you the dynamic libraries that it is asking for. eg:

    [USER@NASNAME ~]# ldd /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make
    /sbin/ldd: line 117: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No
    such file or directory

    Note that if this is compiled for a different distro (eg Ubuntu) it's possible it's built for shared libraries with different versions/options
    than you have on your system. To get it to run you may have to copy the shared libraries from Ubuntu and add that directory to your LD_LIBRARY_PATH so the dynamic linker finds them in advance of the system libraries.

    Yes, it's a pain. I need a working make program to use CPAN in Perl,
    but cannot make any easy progress, but thanks for your and Richard's
    help and suggestions.

    --

    Fake news kills!

    I may be contacted via the contact address given on my website:
    www.macfh.co.uk

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Theo on Mon Apr 21 00:32:53 2025
    XPost: alt.os.linux

    On 20 Apr 2025 10:08:50 +0100 (BST), Theo wrote:

    To get it to run you may have to copy the shared libraries from
    Ubuntu and add that directory to your LD_LIBRARY_PATH so the dynamic
    linker finds them in advance of the system libraries.

    And don’t forget to do an ldconfig after that.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to Theo on Mon Apr 21 09:14:27 2025
    XPost: alt.os.linux

    Theo <theom+news@chiark.greenend.org.uk> writes:
    Java Jive <java@evij.com.invalid> wrote:
    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory >>
    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or directory >>
    Note that the directory listing and the uname output show that the
    hardware objective coding of the development utilities is correct for
    the hardware, and I can't think of any other reason why the utilities
    won't run. Any ideas anyone?

    As Richard says, 'no such file or directory' when running a binary
    usually means either the binary format is not supported (eg trying to
    run Arm binaries on x86),

    Wrong architecture yields ‘exec format error’ for me.

    $ ./ls
    -bash: ./ls: cannot execute binary file: Exec format error

    or some shared library is missing which means the dynamic linker is
    not able to start the program.

    Shared libraries produce a friendlier diagnostic, listing the missing
    shared library for me:

    ./t: error while loading shared libraries: libl.so: cannot open shared object file: No such file or directory


    The cause of bare ‘No such file or directory’, without further
    explanation, is either when the file directly addressed actually doesn’t exist, or when there is no better reporting channel to indicate what is missing. We know the file does exist so we’re in the second of these possibilities.

    The usual cause is where the ‘interpreter’ is absent; for scripts the interpreter is the token after the #!, for dynamic executables it’s the runtime linker. Either way the only error channel is the errno value set
    by the execve() syscall.

    I can’t 100% rule out other possibilities, but the answer in this case
    is almost certainly a missing runtime linker, which was my first
    suggestion. The failure of ldd mention in another post supports this,
    given the rather bizarre way ldd works.


    Concrete suggestions:

    1) Review the origin of these executables. Perhaps there is some
    information about their dependencies there. I already suggested this
    but there doesn’t seem to have been any followup.

    2) Run
    file /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc
    to find out what kind of executable they are.

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andy Burns@21:1/5 to Richard Kettlewell on Mon Apr 21 09:36:08 2025
    XPost: alt.os.linux

    Richard Kettlewell wrote:

    The cause of bare ‘No such file or directory’, without further explanation, is either when the file directly addressed actually doesn’t exist, or when there is no better reporting channel to indicate what is missing. We know the file does exist so we’re in the second of these possibilities.

    Run the errant command with strace?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Java Jive@21:1/5 to Richard Kettlewell on Mon Apr 21 12:38:14 2025
    XPost: alt.os.linux

    On 2025-04-21 09:14, Richard Kettlewell wrote:

    I can’t 100% rule out other possibilities, but the answer in this case
    is almost certainly a missing runtime linker, which was my first
    suggestion. The failure of ldd mention in another post supports this,
    given the rather bizarre way ldd works.

    Concrete suggestions:

    1) Review the origin of these executables. Perhaps there is some
    information about their dependencies there. I already suggested this
    but there doesn’t seem to have been any followup.

    It's actually rather complicated, so I tried the simpler suggestions
    from Theo first ...

    Entware are a tolerably well-known set of utilities written for a
    variety of embedded systems:

    https://github.com/entware/entware/wiki/Install-on-QNAP-NAS

    However, neither they, nor Perl which is the real destination in my
    case, are supported on the most recent versions of the firmware for this
    NAS, so I've downgraded it to the last previous major version. Now Perl
    is installed, but I need a 'make' command to be able to use CPAN, and
    Entware seems to be the only possible source for this. However, the
    latest versions of that don't seem to install properly, opening the qpkg
    file in 7-zip doesn't find any executable utility files, though there is
    a blob which might contain them, but, after the package has been
    installed apparently successfully, there is no findable folder
    containing the usual utility execs. So instead I simply copied in the
    files from a previous attempt to install it dating from soon after my
    purchase of the NAS about five years ago.

    2) Run
    file /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc
    to find out what kind of executable they are.

    [USER@NASNAME ~]# file /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc
    -sh: file: command not found
    [USER@NASNAME ~]# which file
    [USER@NASNAME ~]#

    I believe there is some sort of QNAP development package for those who
    want to write stuff to run on QNAP NASs, which, based on my experience
    of customising Zyxel NAS firmware, is a potentially long and rocky road
    I was hoping to avoid, but it seems I am fated to travel it if I want to
    run GetIPlayer on the thing. It's damned annoying, the latest firmware
    has, official from QNAP IIRC, Python packages, but not Perl, and GiP is
    written in Perl, so, unless I can find an installable and functional
    'make' command to allow me to install the required CPAN modules, I'm
    stuffed.

    --

    Fake news kills!

    I may be contacted via the contact address given on my website:
    www.macfh.co.uk

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to Java Jive on Mon Apr 21 15:46:41 2025
    XPost: alt.os.linux

    Java Jive <java@evij.com.invalid> writes:
    On 2025-04-21 09:14, Richard Kettlewell wrote:
    2) Run
    file /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc
    to find out what kind of executable they are.

    [USER@NASNAME ~]# file /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc
    -sh: file: command not found
    [USER@NASNAME ~]# which file
    [USER@NASNAME ~]#

    Copy/unpack it somewhere that does have file and run the same command
    there.

    I believe there is some sort of QNAP development package for those who
    want to write stuff to run on QNAP NASs, which, based on my experience
    of customising Zyxel NAS firmware, is a potentially long and rocky
    road I was hoping to avoid, but it seems I am fated to travel it if I
    want to run GetIPlayer on the thing. It's damned annoying, the latest firmware has, official from QNAP IIRC, Python packages, but not Perl,
    and GiP is written in Perl, so, unless I can find an installable and functional 'make' command to allow me to install the required CPAN
    modules, I'm stuffed.

    Sounds like a use case for a normal general-purpose computer, rather
    than niche hardware and mix-and-match software installs.

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to Andy Burns on Mon Apr 21 15:47:16 2025
    XPost: alt.os.linux

    Andy Burns <usenet@andyburns.uk> writes:
    Richard Kettlewell wrote:
    The cause of bare ‘No such file or directory’, without further
    explanation, is either when the file directly addressed actually doesn’t >> exist, or when there is no better reporting channel to indicate what is
    missing. We know the file does exist so we’re in the second of these
    possibilities.

    Run the errant command with strace?

    Will most likely just reveal that execve returns ENOENT.

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andy Burns@21:1/5 to Richard Kettlewell on Mon Apr 21 15:53:30 2025
    XPost: alt.os.linux

    Richard Kettlewell wrote:

    Andy Burns writes:

    Run the errant command with strace?

    Will most likely just reveal that execve returns ENOENT.
    I thought it might reveal the missing .so filename(s) or locations it's
    looking in.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to Andy Burns on Mon Apr 21 18:02:37 2025
    XPost: alt.os.linux

    Andy Burns <usenet@andyburns.uk> writes:
    Richard Kettlewell wrote:
    Andy Burns writes:
    Run the errant command with strace?
    Will most likely just reveal that execve returns ENOENT.
    I thought it might reveal the missing .so filename(s) or locations
    it's looking in.

    No, it won’t, in the situation at hand. It has no more information than
    the calling process, which in this case is just the error code returned
    by execve. This has all been covered already, see my previous post.

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Java Jive@21:1/5 to Java Jive on Thu Apr 24 07:36:25 2025
    XPost: alt.os.linux

    On 2025-04-20 01:30, Java Jive wrote:

    I have a QNAP TS-251+ NAS running their own version of linux ...

    [USER@NASNAME ~]# uname -a
    Linux NASNAME 5.10.60-qnap #1 SMP Wed Jan 8 01:44:37 CST 2025 x86_64 GNU/Linux

    ... and have installed Entware development utilities ...

    [USER@NASNAME ~]# ll /share/CACHEDEV1_DATA/.qpkg/Entware/bin
    total 8520
    drwxr-xr-x  2 admin administrators   4096 2020-06-28 01:03 ./
    drwxr-xr-x 11 admin administrators   4096 2018-01-04 08:53 ../
    -rwxr-xr-x  1 admin administrators  27592 2018-01-04 08:53 addr2line*
    [etc]
    ... however my attempts to run any of these utilities end in failure:

    [USER@NASNAME ~]# gcc --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/gcc: No such file or directory

    [USER@NASNAME ~]# make --version
    -sh: /share/CACHEDEV1_DATA/.qpkg/Entware/bin/make: No such file or
    directory

    It was the libraries. Being unable to use the normal linux methods to
    find out what it was trying to load, I loaded the make executable into
    Textpad to view it in hex, and the first thing I saw was ...

    /opt/lib/ld-linux-x86-64.so.2

    ... so the silly buggers had hardcoded the location of the library,
    quite unnecessarily, because this same file is already in /lib! This is
    one of the typical 'features' of Entware - it also zaps the entire
    /opt folder upon installation, without so much as a 'by your leave' let
    alone making a backup - which makes it a pain to install alongside
    other packages or extensions.

    However, I've managed it now, Perl & CPan are working, except a problem
    with certificates, and all the modules necessary to run GetIPlayer have
    been installed, and it works. The certificate issue manifests itself
    like this:

    [USER@NASNAME ~]# cpan Uniq
    Reading '/root/.cpan/Metadata'
    Database was generated on Wed, 23 Apr 2025 19:17:01 GMT
    Running install for module 'Uniq'
    CPAN: HTTP::Tiny loaded ok (v0.070)
    CPAN: Net::SSLeay loaded ok (v1.81)
    CPAN: IO::Socket::SSL loaded ok (v2.048)
    Fetching with HTTP::Tiny: https://cpan.org/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz
    HTTP::Tiny failed with an internal error: SSL connection failed for
    cpan.org: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

    Giving up on '/root/.cpan/sources/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz' Note: Current database in memory was generated on Wed, 23 Apr 2025
    19:17:01 GMT

    ... however ...

    [USER@NASNAME ~]# wget
    https://cpan.org/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz

    ... works fine. Anyone any idea of how I can fix the issue with
    downloading from within CPan?

    As for the fix, in case it's of interest to anyone else, and to remind
    myself in future, here's how I did it:

    0) Log in as 'admin' both to the web interface and via secure shell,
    the latter will leave you in ...
    /root

    1) In ssh, back up the /opt folder

    mv /opt /opt.save

    2) Back in the web interface, install Entware. On this QNAP it may be
    done more or less directly by adding an extra repository and installing
    it via that:

    2a) Launch the App Center

    2b) In the App Center, click the second icon in from the top right
    hand corner, a gearwheel, and select the 'App Repository' tab.

    2c) Click 'Add' and enter the following ...
    Name: MyQNAP
    URL: https://www.myqnap.org/repo.xml
    ... click 'Add' to complete.

    2d) There should now be a 'MyQNAP' icon in the left hand column,
    click it and click 'All Apps' in the next column.

    2e) Scroll down to 'Entware-std 1.03' and click the 'Install'
    button underneath it.

    You have now installed the legacy 'Entware-std 1.03', not the more
    recent Entware. According to the various QNAP-specific notes you
    upgrade to the more recent Entware, although the package name in the web interface will remain unchanged, by ...

    2g) Going back to ssh ...
    ls -al /opt
    ... should result in ...
    /opt -> /share/CACHEDEV1_DATA/.qpkg/Entware/

    2h) Enter ...
    /opt/bin/opkg update
    /opt/bin/opkg upgrade
    ... then repeat the two commands above.

    Although neither upgrade command appears to do anything, apparently
    Entware is also updated, because trying to install any of the listed
    Entware packages reports that each is up-to-date:
    entware-opt
    entware-release
    entware-upgrade

    3) However, this Entware package contains no 'make' command, which was
    what was needed to be able to use 'cpan', and was the primary purpose of
    the whole exercise! The following packages are listed by opkg ...
    cmake
    gcc
    make
    ... but I just copied back the files from my previous installation of Entware-ng, being careful not to overwrite any existing files (beware
    line wrap):

    cp -ia <saved files>/Entware-ng/* /share/CACHEDEV1_DATA/.qpkg/Entware/

    Now we need to house-train Entware so that it can co-exist happily with
    other packages ...

    4) Kill all attempts by Entware to install itself at boot, we must take
    care of that ourselves:

    chmod -x /share/CACHEDEV1_DATA/.qpkg/Entware/Entware.sh
    chmod -x /share/CACHEDEV1_DATA/.qpkg/Entware/etc/init.d/rc.unslung
    chmod -x /share/CACHEDEV1_DATA/.qpkg/Entware/etc/profile

    Depending on whether your personal profile has anything other than
    Entware to initialise ...

    sed -i 's#source /opt/etc/profile##' .profile

    ... or ...

    mv .profile .profile.not

    ... or ...

    rm .profile

    4) Preserve the /opt -> Entware link by moving it into the saved /opt
    with a suitable name, then restore the /opt folder:

    mv /opt /opt.save/Entware
    mv /opt.save /opt

    5) Now make links to fake the Entware root being the /opt folder
    (beware line wrap again):

    for A in bin etc lib libexec sbin share tmp usr; do ln -s /share/CACHEDEV1_DATA/.qpkg/Entware/${A} /opt/${A}; done

    6) Backup the /opt folder against disaster

    cp -a /opt /share/CACHEDEV1_DATA/.save

    7) Assuming you've already customised the 'autorun.sh' file so know how
    to do this - explaining how is beyond the scope of these notes -
    include something like the following:

    SAVE="/share/CACHEDEV1_DATA/.save"
    OPT="${SAVE}/opt"

    ...

    # Restore /opt configuration
    if [ -d ${OPT} ]
    then
    if [ -d /opt ]
    then
    cp -a ${OPT}/* /opt/
    elif [ -h /opt ]
    then
    cp -a /opt/* ${OPT}/
    rm -f /opt
    mkdir /opt
    cp -a ${OPT}/* /opt/
    else
    rm -f /opt
    mkdir /opt
    cp -a ${OPT}/* /opt/
    fi
    chown admin:administrators /opt
    chmod ug+rwX,o+rX,o-w -R /opt
    fi

    ...

    # Restore profile configuration
    if [ "$(grep autorun /etc/profile)" == "" ]
    then
    cat ${SAVE}/profile.sh >> /etc/profile
    fi
    chmod +x /etc/profile

    8) Create the /share/CACHEDEV1_DATA/.save/profile.sh file mentioned in
    the above code fragment to include at least the following (again, beware
    line wrap):

    # Additions by /tmp/config/autorun.sh ...

    ...

    LOG=${HOME}/profile.log
    OPTS="$(cat /root/packages.txt | tr '\n' ' ')"

    export ORG_PATH=${PATH}
    OLD_PATH="$(echo ${PATH} | tr ':' ' ')"
    NEW_PATH=""
    for P in ${OLD_PATH}
    do
    echo "Checking ${P} ..." >> ${LOG}
    if [ -d "${P}" ]
    then
    if [ -z "${NEW_PATH}" ]
    then
    echo "Adding ${P} ..." >> ${LOG}
    NEW_PATH="${P}"
    elif [ -z $(echo ${NEW_PATH} | grep "(^|:)${P}(:|$)") ]
    then
    echo "Adding ${P} ..." >> ${LOG}
    NEW_PATH="${NEW_PATH}:${P}"
    fi
    fi
    done
    for P in ${OPTS}
    do
    for B in bin sbin
    do
    echo "Checking ${P}/${B} ..." >> ${LOG}
    if [ -d "${P}/${B}" ]
    then
    if [ -z "${NEW_PATH}" ]
    then
    echo "Adding ${P}/${B} ..." >> ${LOG}
    NEW_PATH="${P}/${B}"
    elif [ -z "$( echo ${NEW_PATH} | grep ${P}/${B}
    )" ]
    then
    echo "Adding ${P}/${B} ..." >> ${LOG}
    NEW_PATH="${NEW_PATH}:${P}/${B}"
    fi
    fi
    done
    done
    echo "PATH=${NEW_PATH}" >> ${LOG}
    export PATH="${NEW_PATH}"

    export ORG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
    OLD_PATH="$(echo ${LD_LIBRARY_PATH:-/lib:/lib64:/usr/lib:/usr/lib64} |
    tr ':' ' ')"
    NEW_PATH=""
    for P in ${OLD_PATH}
    do
    echo "Checking ${P} ..." >> ${LOG}
    if [ -d "${P}" ]
    then
    if [ -z "${NEW_PATH}" ]
    then
    echo "Adding ${P} ..." >> ${LOG}
    NEW_PATH="${P}"
    elif [ -z "$( echo ${NEW_PATH} | grep ${P} )" ]
    then
    echo "Adding ${P} ..." >> ${LOG}
    NEW_PATH="${NEW_PATH}:${P}"
    fi
    fi
    done
    for P in ${OPTS}
    do
    for B in lib lib64 usr/lib usr/lib64
    do
    echo "Checking ${P}/${B} ..." >> ${LOG}
    if [ -d "${P}/${B}" ]
    then
    if [ -z "${NEW_PATH}" ]
    then
    echo "Adding ${P}/${B} ..." >> ${LOG}
    NEW_PATH="${P}/${B}"
    elif [ -z "$( echo ${NEW_PATH} | grep ${P}/${B}
    )" ]
    then
    echo "Adding ${P}/${B} ..." >> ${LOG}
    NEW_PATH="${NEW_PATH}:${P}/${B}"
    fi
    fi
    done
    done
    echo "LD_LIBRARY_PATH=${NEW_PATH}" >> ${LOG}
    export LD_LIBRARY_PATH="${NEW_PATH}"

    for P in ${OPTS}
    do
    if [ -x "${P}/etc/profile" ]
    then
    source "${P}/etc/profile"
    fi
    done

    unset B LOG NEW_PATH OLD_PATH OPTS P

    9) Create the /root/packages.txt file to include something like the
    following:

    /opt
    /share/CACHEDEV1_DATA/.qpkg/Entware
    <etc>

    --

    Fake news kills!

    I may be contacted via the contact address given on my website:
    www.macfh.co.uk

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to Java Jive on Thu Apr 24 08:38:29 2025
    XPost: alt.os.linux

    Java Jive <java@evij.com.invalid> writes:
    It was the libraries. Being unable to use the normal linux methods to
    find out what it was trying to load, I loaded the make executable into Textpad to view it in hex, and the first thing I saw was ...

    /opt/lib/ld-linux-x86-64.so.2

    That’s the runtime linker, not a library. ‘file’ would have reported
    its location.

    [...]
    However, I've managed it now, Perl & CPan are working, except a
    problem with certificates, and all the modules necessary to run
    GetIPlayer have been installed, and it works. The certificate issue manifests itself like this:

    [USER@NASNAME ~]# cpan Uniq
    Reading '/root/.cpan/Metadata'
    Database was generated on Wed, 23 Apr 2025 19:17:01 GMT
    Running install for module 'Uniq'
    CPAN: HTTP::Tiny loaded ok (v0.070)
    CPAN: Net::SSLeay loaded ok (v1.81)
    CPAN: IO::Socket::SSL loaded ok (v2.048)
    Fetching with HTTP::Tiny: https://cpan.org/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz
    HTTP::Tiny failed with an internal error: SSL connection failed for
    cpan.org: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

    Giving up on '/root/.cpan/sources/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz' Note: Current database in memory was generated on Wed, 23 Apr 2025
    19:17:01 GMT

    ... however ...

    [USER@NASNAME ~]# wget https://cpan.org/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz

    ... works fine. Anyone any idea of how I can fix the issue with
    downloading from within CPan?

    Getting some debugging output from cpan might shed light on the
    issue.

    My _guess_ is that it will turn out to be either the Perl install or
    wherever it gets its trust anchors from being too old, e.g. not having
    ISRG Root X1 (which is the root used by cpan.org and is relatively
    recent in PKI terms).

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Java Jive@21:1/5 to Richard Kettlewell on Thu Apr 24 20:36:56 2025
    XPost: alt.os.linux

    On 2025-04-24 08:38, Richard Kettlewell wrote:
    Java Jive <java@evij.com.invalid> writes:
    It was the libraries. Being unable to use the normal linux methods to
    find out what it was trying to load, I loaded the make executable into
    Textpad to view it in hex, and the first thing I saw was ...

    /opt/lib/ld-linux-x86-64.so.2

    That’s the runtime linker, not a library. ‘file’ would have reported its location.

    Yes; apologies, I'm getting a little rusty on this sort of thing.

    However, I've managed it now, Perl & CPan are working, except a
    problem with certificates, and all the modules necessary to run
    GetIPlayer have been installed, and it works. The certificate issue
    manifests itself like this:

    [USER@NASNAME ~]# cpan Uniq
    Reading '/root/.cpan/Metadata'
    Database was generated on Wed, 23 Apr 2025 19:17:01 GMT
    Running install for module 'Uniq'
    CPAN: HTTP::Tiny loaded ok (v0.070)
    CPAN: Net::SSLeay loaded ok (v1.81)
    CPAN: IO::Socket::SSL loaded ok (v2.048)
    Fetching with HTTP::Tiny:
    https://cpan.org/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz
    HTTP::Tiny failed with an internal error: SSL connection failed for
    cpan.org: SSL connect attempt failed error:14090086:SSL
    routines:ssl3_get_server_certificate:certificate verify failed

    Giving up on '/root/.cpan/sources/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz' >> Note: Current database in memory was generated on Wed, 23 Apr 2025
    19:17:01 GMT

    ... however ...

    [USER@NASNAME ~]# wget
    https://cpan.org/authors/id/S/SY/SYAMAL/Uniq-0.01.tar.gz

    ... works fine. Anyone any idea of how I can fix the issue with
    downloading from within CPan?

    Getting some debugging output from cpan might shed light on the
    issue.

    My _guess_ is that it will turn out to be either the Perl install or
    wherever it gets its trust anchors from being too old, e.g. not having
    ISRG Root X1 (which is the root used by cpan.org and is relatively
    recent in PKI terms).

    SOLVED!

    Absolutely correct, I replaced the cert file ...


    /share/CACHEDEV1_DATA/.qpkg/QPerl/lib/perl5/site_perl/5.26.0/Mozilla/CA/cacert.pem

    ... from here ...

    https://curl.se/ca/cacert.pem

    ... and now everything works. Many thanks for your help

    --

    Fake news kills!

    I may be contacted via the contact address given on my website:
    www.macfh.co.uk

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Richard Kettlewell on Thu Apr 24 22:01:13 2025
    XPost: alt.os.linux

    On Thu, 24 Apr 2025 08:38:29 +0100, Richard Kettlewell wrote:

    Java Jive <java@evij.com.invalid> writes:

    /opt/lib/ld-linux-x86-64.so.2

    That’s the runtime linker, not a library.

    It’s in a library directory, it has the name extension of a shared
    library, and furthermore, “nm -D” reports it defines symbols like a library:

    ldo@theon:~> nm -D /lib64/ld-linux-x86-64.so.2
    0000000000011ad0 T _dl_allocate_tls@@GLIBC_PRIVATE
    00000000000118b0 T _dl_allocate_tls_init@@GLIBC_PRIVATE
    0000000000035a58 D _dl_argv@@GLIBC_PRIVATE
    0000000000017950 T _dl_audit_preinit@@GLIBC_PRIVATE
    00000000000179d0 T _dl_audit_symbind_alt@@GLIBC_PRIVATE
    0000000000002320 T _dl_catch_exception@@GLIBC_PRIVATE
    0000000000011b10 T _dl_deallocate_tls@@GLIBC_PRIVATE
    0000000000003440 T _dl_debug_state@@GLIBC_PRIVATE
    0000000000004660 T _dl_exception_create@@GLIBC_PRIVATE
    0000000000004730 T _dl_exception_create_format@@GLIBC_PRIVATE
    0000000000004bb0 T _dl_exception_free@@GLIBC_PRIVATE
    000000000000d6a0 T _dl_fatal_printf@@GLIBC_PRIVATE
    000000000000bc50 T _dl_find_dso_for_object@@GLIBC_PRIVATE
    00000000000117b0 T _dl_get_tls_static_info@@GLIBC_PRIVATE
    000000000001ad90 T _dl_mcount@@GLIBC_2.2.5
    00000000000090a0 T _dl_rtld_di_serinfo@@GLIBC_PRIVATE
    0000000000002120 T _dl_signal_error@@GLIBC_PRIVATE
    00000000000020c0 T _dl_signal_exception@@GLIBC_PRIVATE
    0000000000017650 T _dl_x86_get_cpu_features@@GLIBC_PRIVATE
    0000000000000000 A GLIBC_2.2.5
    0000000000000000 A GLIBC_2.3
    0000000000000000 A GLIBC_2.34
    0000000000000000 A GLIBC_2.35
    0000000000000000 A GLIBC_2.4
    0000000000000000 A GLIBC_PRIVATE
    0000000000035a28 D __libc_enable_secure@@GLIBC_PRIVATE
    0000000000035a20 D __libc_stack_end@@GLIBC_2.2.5
    0000000000036bd8 B __nptl_initial_report_events@@GLIBC_PRIVATE
    0000000000036b78 B _r_debug@@GLIBC_2.2.5
    000000000002f3a0 R __rseq_flags@@GLIBC_2.35
    00000000000359e0 D __rseq_offset@@GLIBC_2.35
    00000000000359d8 D __rseq_size@@GLIBC_2.35
    0000000000036000 D _rtld_global@@GLIBC_PRIVATE
    0000000000035a80 D _rtld_global_ro@@GLIBC_PRIVATE
    00000000000282d0 T __rtld_version_placeholder@GLIBC_2.34
    0000000000014a40 T __tls_get_addr@@GLIBC_2.3
    0000000000012ee0 T __tunable_get_val@@GLIBC_PRIVATE
    00000000000128a0 T __tunable_is_initialized@@GLIBC_PRIVATE

    If that’s not enough to make it a “library”, I don’t know what is ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dillinger@21:1/5 to Lawrence D'Oliveiro on Fri Apr 25 13:05:00 2025
    XPost: alt.os.linux

    On 4/25/25 00:01, Lawrence D'Oliveiro wrote:
    On Thu, 24 Apr 2025 08:38:29 +0100, Richard Kettlewell wrote:

    Java Jive <java@evij.com.invalid> writes:

    /opt/lib/ld-linux-x86-64.so.2

    That’s the runtime linker, not a library.

    It’s in a library directory, it has the name extension of a shared library, and furthermore, “nm -D” reports it defines symbols like a library:

    ldo@theon:~> nm -D /lib64/ld-linux-x86-64.so.2
    0000000000011ad0 T _dl_allocate_tls@@GLIBC_PRIVATE
    00000000000118b0 T _dl_allocate_tls_init@@GLIBC_PRIVATE
    0000000000035a58 D _dl_argv@@GLIBC_PRIVATE
    0000000000017950 T _dl_audit_preinit@@GLIBC_PRIVATE
    00000000000179d0 T _dl_audit_symbind_alt@@GLIBC_PRIVATE
    0000000000002320 T _dl_catch_exception@@GLIBC_PRIVATE
    0000000000011b10 T _dl_deallocate_tls@@GLIBC_PRIVATE
    0000000000003440 T _dl_debug_state@@GLIBC_PRIVATE
    0000000000004660 T _dl_exception_create@@GLIBC_PRIVATE
    0000000000004730 T _dl_exception_create_format@@GLIBC_PRIVATE
    0000000000004bb0 T _dl_exception_free@@GLIBC_PRIVATE
    000000000000d6a0 T _dl_fatal_printf@@GLIBC_PRIVATE
    000000000000bc50 T _dl_find_dso_for_object@@GLIBC_PRIVATE
    00000000000117b0 T _dl_get_tls_static_info@@GLIBC_PRIVATE
    000000000001ad90 T _dl_mcount@@GLIBC_2.2.5
    00000000000090a0 T _dl_rtld_di_serinfo@@GLIBC_PRIVATE
    0000000000002120 T _dl_signal_error@@GLIBC_PRIVATE
    00000000000020c0 T _dl_signal_exception@@GLIBC_PRIVATE
    0000000000017650 T _dl_x86_get_cpu_features@@GLIBC_PRIVATE
    0000000000000000 A GLIBC_2.2.5
    0000000000000000 A GLIBC_2.3
    0000000000000000 A GLIBC_2.34
    0000000000000000 A GLIBC_2.35
    0000000000000000 A GLIBC_2.4
    0000000000000000 A GLIBC_PRIVATE
    0000000000035a28 D __libc_enable_secure@@GLIBC_PRIVATE
    0000000000035a20 D __libc_stack_end@@GLIBC_2.2.5
    0000000000036bd8 B __nptl_initial_report_events@@GLIBC_PRIVATE
    0000000000036b78 B _r_debug@@GLIBC_2.2.5
    000000000002f3a0 R __rseq_flags@@GLIBC_2.35
    00000000000359e0 D __rseq_offset@@GLIBC_2.35
    00000000000359d8 D __rseq_size@@GLIBC_2.35
    0000000000036000 D _rtld_global@@GLIBC_PRIVATE
    0000000000035a80 D _rtld_global_ro@@GLIBC_PRIVATE
    00000000000282d0 T __rtld_version_placeholder@GLIBC_2.34
    0000000000014a40 T __tls_get_addr@@GLIBC_2.3
    0000000000012ee0 T __tunable_get_val@@GLIBC_PRIVATE
    00000000000128a0 T __tunable_is_initialized@@GLIBC_PRIVATE

    If that’s not enough to make it a “library”, I don’t know what is ...

    could be, but nm follows the link, try file /lib64/ld*

    file /lib64/ld*
    /lib64/ld-linux-x86-64.so.2: symbolic link to ../lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From vallor@21:1/5 to All on Fri Apr 25 11:44:19 2025
    XPost: alt.os.linux

    On Fri, 25 Apr 2025 13:05:00 +0200, dillinger <dillinger@invalid.not>
    wrote in <sr6sdl-8gp02.ln1@spock.lan>:

    On 4/25/25 00:01, Lawrence D'Oliveiro wrote:
    On Thu, 24 Apr 2025 08:38:29 +0100, Richard Kettlewell wrote:

    Java Jive <java@evij.com.invalid> writes:

    /opt/lib/ld-linux-x86-64.so.2

    That’s the runtime linker, not a library.

    It’s in a library directory, it has the name extension of a shared
    library, and furthermore, “nm -D” reports it defines symbols like a
    library:

    ldo@theon:~> nm -D /lib64/ld-linux-x86-64.so.2 0000000000011ad0 T
    _dl_allocate_tls@@GLIBC_PRIVATE 00000000000118b0 T
    _dl_allocate_tls_init@@GLIBC_PRIVATE 0000000000035a58 D
    _dl_argv@@GLIBC_PRIVATE 0000000000017950 T
    _dl_audit_preinit@@GLIBC_PRIVATE 00000000000179d0 T
    _dl_audit_symbind_alt@@GLIBC_PRIVATE 0000000000002320 T
    _dl_catch_exception@@GLIBC_PRIVATE 0000000000011b10 T
    _dl_deallocate_tls@@GLIBC_PRIVATE 0000000000003440 T
    _dl_debug_state@@GLIBC_PRIVATE 0000000000004660 T
    _dl_exception_create@@GLIBC_PRIVATE 0000000000004730 T
    _dl_exception_create_format@@GLIBC_PRIVATE 0000000000004bb0 T
    _dl_exception_free@@GLIBC_PRIVATE 000000000000d6a0 T
    _dl_fatal_printf@@GLIBC_PRIVATE 000000000000bc50 T
    _dl_find_dso_for_object@@GLIBC_PRIVATE 00000000000117b0 T
    _dl_get_tls_static_info@@GLIBC_PRIVATE 000000000001ad90 T
    _dl_mcount@@GLIBC_2.2.5 00000000000090a0 T
    _dl_rtld_di_serinfo@@GLIBC_PRIVATE 0000000000002120 T
    _dl_signal_error@@GLIBC_PRIVATE 00000000000020c0 T
    _dl_signal_exception@@GLIBC_PRIVATE 0000000000017650 T
    _dl_x86_get_cpu_features@@GLIBC_PRIVATE 0000000000000000 A
    GLIBC_2.2.5 0000000000000000 A GLIBC_2.3 0000000000000000 A
    GLIBC_2.34 0000000000000000 A GLIBC_2.35 0000000000000000 A
    GLIBC_2.4 0000000000000000 A GLIBC_PRIVATE 0000000000035a28 D
    __libc_enable_secure@@GLIBC_PRIVATE 0000000000035a20 D
    __libc_stack_end@@GLIBC_2.2.5 0000000000036bd8 B
    __nptl_initial_report_events@@GLIBC_PRIVATE 0000000000036b78 B
    _r_debug@@GLIBC_2.2.5 000000000002f3a0 R __rseq_flags@@GLIBC_2.35
    00000000000359e0 D __rseq_offset@@GLIBC_2.35 00000000000359d8 D
    __rseq_size@@GLIBC_2.35 0000000000036000 D
    _rtld_global@@GLIBC_PRIVATE 0000000000035a80 D
    _rtld_global_ro@@GLIBC_PRIVATE 00000000000282d0 T
    __rtld_version_placeholder@GLIBC_2.34 0000000000014a40 T
    __tls_get_addr@@GLIBC_2.3 0000000000012ee0 T
    __tunable_get_val@@GLIBC_PRIVATE 00000000000128a0 T
    __tunable_is_initialized@@GLIBC_PRIVATE

    If that’s not enough to make it a “library”, I don’t know what is ...

    could be, but nm follows the link, try file /lib64/ld*

    file /lib64/ld*
    /lib64/ld-linux-x86-64.so.2: symbolic link to ../lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

    It's not _just_ a library, it's a very special kind -- a runtime linker:

    _[/tmp/try]_(vallor@lm)🐧_
    $ touch foo
    _[/tmp/try]_(vallor@lm)🐧_
    $ /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /bin/ls
    foo
    _[/tmp/try]_(vallor@lm)🐧_
    $ /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /bin/ls -l
    total 0
    -rw-rw-r-- 1 vallor vallor 0 Apr 25 04:40 foo

    ...know any other (mere) library that does that?

    --
    -v System76 Thelio Mega v1.1 x86_64 NVIDIA RTX 3090 Ti
    OS: Linux 6.14.3 Release: Mint 22.1 Mem: 258G
    "No, I'm from Iowa. I only work in Outer Space."

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Kettlewell@21:1/5 to vallor on Fri Apr 25 15:50:05 2025
    XPost: alt.os.linux

    vallor <vallor@cultnix.org> writes:
    dillinger <dillinger@invalid.not> wrote in <sr6sdl-8gp02.ln1@spock.lan>:
    could be, but nm follows the link, try file /lib64/ld*

    file /lib64/ld*
    /lib64/ld-linux-x86-64.so.2: symbolic link to
    ../lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

    It's not _just_ a library, it's a very special kind -- a runtime linker:

    _[/tmp/try]_(vallor@lm)🐧_
    $ touch foo
    _[/tmp/try]_(vallor@lm)🐧_
    $ /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /bin/ls
    foo
    _[/tmp/try]_(vallor@lm)🐧_
    $ /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /bin/ls -l
    total 0
    -rw-rw-r-- 1 vallor vallor 0 Apr 25 04:40 foo

    ...know any other (mere) library that does that?

    Indeed. The distinction between a runtime linker (or in ELF spec terms: interpreter) and a library is one of role/function, not of file format,
    symbol table, etc.

    In terms of this particular thread, the distinction mattered because a
    missing runtime linker produces different error behavior to a missing
    library. A missing library would have produced a diagnostic saying which library was missing (and the problem would have been solved a lot
    faster); a missing runtime linker just results in a bare “No such file
    or directory”.

    (Analogy: an ambulance has all the properties of a van - wheels, motor,
    rear doors, tendency to pushy driving styles, etc - but nobody goes
    round insisting that an ambulance “is a van”.)

    --
    https://www.greenend.org.uk/rjk/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to All on Sat Apr 26 04:57:09 2025
    XPost: alt.os.linux

    Not just linker, but compiler and interpreter as well:

    /usr/lib/x86_64-linux-gnu/libpython3.13.so.1.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Java Jive@21:1/5 to Java Jive on Sat Apr 26 12:40:14 2025
    XPost: alt.os.linux

    On 2025-04-24 07:36, Java Jive wrote:

    However, I've managed it now, Perl & CPan are working, except a problem
    with certificates, and all the modules necessary to run GetIPlayer have
    been installed, and it works.  The certificate issue manifests itself
    like this:

    Forgot to mention that, if any Perl modules you wish to install invoke
    gcc to build them, you may have to do the following:

    pushd /share/CACHEDEV1_DATA/.qpkg/Entware/bin/

    ln -s x86_64-openwrt-linux-gnu-gcc x86_64-QNAP_FW43-linux-gnu-gcc

    popd

    --

    Fake news kills!

    I may be contacted via the contact address given on my website:
    www.macfh.co.uk

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)