🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: uk.comp.os.linux
23 messages
23 total messages Started by Java Jive Sun, 20 Apr 2025 01:30
Trouble running Entware gcc & make on QNAP NAS
#556
Author: Java Jive
Date: Sun, 20 Apr 2025 01:30
72 lines
3591 bytes
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
Re: Trouble running Entware gcc & make on QNAP NAS
#557
Author: Richard Kettlewe
Date: Sun, 20 Apr 2025 07:46
77 lines
3956 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS
#559
Author: Chris Green
Date: Sun, 20 Apr 2025 08:54
74 lines
3855 bytes
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
¡
Re: Trouble running Entware gcc & make on QNAP NAS
#558
Author: Chris Green
Date: Sun, 20 Apr 2025 08:58
8 lines
185 bytes
... 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
¡
Re: Trouble running Entware gcc & make on QNAP NAS
#560
Author: Theo
Date: Sun, 20 Apr 2025 10:08
49 lines
2498 bytes
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
Re: Trouble running Entware gcc & make on QNAP NAS
#562
Author: Lawrence D'Olive
Date: Mon, 21 Apr 2025 00:32
6 lines
292 bytes
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.
Re: Trouble running Entware gcc & make on QNAP NAS
#561
Author: Java Jive
Date: Mon, 21 Apr 2025 00:49
59 lines
2304 bytes
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
Re: Trouble running Entware gcc & make on QNAP NAS
#563
Author: Richard Kettlewe
Date: Mon, 21 Apr 2025 09:14
59 lines
2363 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS
#564
Author: Andy Burns
Date: Mon, 21 Apr 2025 09:36
9 lines
374 bytes
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?
Re: Trouble running Entware gcc & make on QNAP NAS
#565
Author: Java Jive
Date: Mon, 21 Apr 2025 12:38
59 lines
2562 bytes
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
Re: Trouble running Entware gcc & make on QNAP NAS
#566
Author: Richard Kettlewe
Date: Mon, 21 Apr 2025 15:46
28 lines
1204 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS
#567
Author: Richard Kettlewe
Date: Mon, 21 Apr 2025 15:47
13 lines
519 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS
#568
Author: Andy Burns
Date: Mon, 21 Apr 2025 15:53
8 lines
235 bytes
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.
Re: Trouble running Entware gcc & make on QNAP NAS
#569
Author: Richard Kettlewe
Date: Mon, 21 Apr 2025 18:02
13 lines
531 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#570
Author: Java Jive
Date: Thu, 24 Apr 2025 07:36
330 lines
10695 bytes
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
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#571
Author: Richard Kettlewe
Date: Thu, 24 Apr 2025 08:38
50 lines
1885 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#572
Author: Java Jive
Date: Thu, 24 Apr 2025 20:36
70 lines
2378 bytes
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
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#573
Author: Lawrence D'Olive
Date: Thu, 24 Apr 2025 22:01
52 lines
2474 bytes
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 ...
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#575
Author: vallor
Date: Fri, 25 Apr 2025 11:44
77 lines
3483 bytes
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."
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#574
Author: dillinger
Date: Fri, 25 Apr 2025 13:05
65 lines
2854 bytes
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


Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#576
Author: Richard Kettlewe
Date: Fri, 25 Apr 2025 15:50
38 lines
1470 bytes
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/
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#577
Author: Lawrence D'Olive
Date: Sat, 26 Apr 2025 04:57
2 lines
102 bytes
Not just linker, but compiler and interpreter as well:

/usr/lib/x86_64-linux-gnu/libpython3.13.so.1.0
Re: Trouble running Entware gcc & make on QNAP NAS - SOLVED
#578
Author: Java Jive
Date: Sat, 26 Apr 2025 12:40
22 lines
629 bytes
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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads