Message ID | 20211104213045.1d702c3d@gmx.net |
---|---|
State | Superseded |
Headers | show |
Series | [uclibc-ng-devel] Re: [Buildroot] [PATCH v1] package/ntpsec: new package | expand |
Hi Peter, Peter Seiderer wrote, > Hello Waldemar, > > On Sun, 31 Oct 2021 00:56:56 +0200, Waldemar Brodkorb <wbx@openadk.org> wrote: > > > Hi Peter, > > Peter Seiderer wrote, > > > > > Hello Waldemar, *, > > > > > > On Mon, 25 Oct 2021 23:25:41 +0200, Peter Seiderer <ps.report@gmx.net> wrote: > > > > > > The resulting ntpd runs fine with the raspberrypi3_defconfig, but segfaults > > > when compiled/used with raspberrypi3_64_defconfig (uclibc, -Os): > > > > > > $ /usr/sbin/ntpd -n -d -g > > > 1970-01-01T00:04:18 ntpd[263]: INIT: ntpd ntpsec-1.2.0 2021-10-24T13:39:21Z: Starting > > > 1970-01-01T00:04:18 ntpd[263]: INIT: Command line: /usr/sbin/ntpd -n -d > > > 1970-01-01T00:04:18 ntpd[263]: INIT: precision = 7.291 usec (-17) > > > 1970-01-01T00:04:18 ntpd[263]: INIT: successfully locked into RAM > > > 1970-01-01T00:04:18 ntpd[263]: CONFIG: readconfig: parsing file: /etc/ntp.conf > > > 1970-01-01T00:04:18 ntpd[263]: CONFIG: restrict nopeer ignored > > > 1970-01-01T00:04:18 ntpd[263]: INIT: Using SO_TIMESTAMPNS > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen and drop on 0 v6wildcard [::]:123 > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen and drop on 1 v4wildcard 0.0.0.0:123 > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 2 lo 127.0.0.1:123 > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 3 eth0 172.16.0.30:123 > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 4 lo [::1]:123 > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 5 eth0 [fe80::ba27:ebff:fea6:340%2]:123 > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listening on routing socket on fd #22 for interface updates > > > 1970-01-01T00:04:19 ntpd[263]: SYNC: Found 10 servers, suggest minsane at least 3 > > > 1970-01-01T00:04:19 ntpd[263]: INIT: MRU 10922 entries, 13 hash bits, 65536 bytes > > > 1970-01-01T00:04:20 ntpd[263]: DNS: dns_probe: 0.pool.ntp.org, cast_flags:8, flags:101 > > > Segmentation fault (core dumped) > > > > Could you add a small C test program to uClibc-ng-test to trigger > > the bug? That would help to find any regression to targets without > > TLS support. > > Did take a first look at the uClibc-ng-test regarding the problem, > there is already one test/inet/tst-res test... > > > For the raspberrypi3_defconfig case (uclibc unpatched): > > $ sh uclibcng-testrunner.sh > [...] > FAIL tst-ethers-line got 1 expected 0 > Cannot open file /etc/ethers: No such file or directory > FAIL tst-ethers got 1 expected 0 > Either /etc/ethers is missing or it has incorrect contents > [...] > FAIL tst-cancel18 got 1 expected 0 > going to cancel in-time > Timed out: killed the child process > [...] > FAIL tst-cancelx18 got 1 expected 0 > going to cancel in-time > Timed out: killed the child process > [...] > Total skipped: 15 > Total failed: 4 > Total passed: 460 > > > > For the raspberrypi3_64_defconfig case (uclibc unpatched): > > $ sh uclibcng-testrunner.sh > [...] > FAIL tst-ethers-line got 1 expected 0 > Cannot open file /etc/ethers: No such file or directory > FAIL tst-ethers got 1 expected 0 > Either /etc/ethers is missing or it has incorrect contents > [...] > FAIL tst-res got 139 expected 0 > Segmentation fault (core dumped) > [...] > FAIL tst-seekdir got 1 expected 0 > . > .. > tst-seekdir.out > tst-utmpx > tst-inotify > tst-mkostemps.out > seek.out > tst-scandir > tst-seekdir > tst-statvfs.out > sem > stdarg.out > fdopen.out > tst-utmp > tst-preadvwritev.out > bug-glob2.out > popen > dirent64.out > tst-scandir.out > tst-hasmntopt.out > tst-statvfs > bug-glob2 > popen.out > Makefile > opendir-tst1 > sem.out > tst-inotify.out > tst-syscall0 > tst-statfs.out > bug-readdir1 > dirent.out > tst-statfs > tst-syscall1.out > tst-syscall0.out > stdarg > tst-preadvwritev > tst-syscall6.out > tst-mkostemps > Makefile.in > tst-utmp.out > tst-nftw > opendir-tst1.out > tst-syscall1 > bug-readdir1.out > tst-hasmntopt > tst-syscall6 > fdopen > seek > tst-nftw.out > dirent64 > tst-fnmatch.input > tst-utmpx.out > dirent > going back past 4-th entry... > seekdir (d, -1600443765); telldir (d) == -1 > [...] > FAIL tst-cancel18 got 1 expected 0 > going to cancel in-time > Timed out: killed the child process > [...] > FAIL tst-cancelx18 got 1 expected 0 > going to cancel in-time > Timed out: killed the child process > [...] > FAIL tst-tls3 got 1 expected 0 > > /usr/lib/uclibc-ng-test/test/tls/tst-tls3: symbol 'baz': can't handle reloc type 0x404 > FAIL tst-tls4 got 1 expected 0 > > /usr/lib/uclibc-ng-test/test/tls/tst-tls4: symbol 'foo': can't handle reloc type 0x404 > FAIL tst-tls5 got 1 expected 0 > > /usr/lib/uclibc-ng-test/test/tls/tst-tls5: symbol 'foo': can't handle reloc type 0x404 > FAIL tst-tls6 got 1 expected 0 > > /usr/lib/uclibc-ng-test/test/tls/tst-tls6: symbol 'foo': can't handle reloc type 0x404 > FAIL tst-tls7 got 1 expected 0 > > /usr/lib/uclibc-ng-test/test/tls/tst-tls7: symbol 'foo': can't handle reloc type 0x404 > FAIL tst-tls8 got 1 expected 0 > > /usr/lib/uclibc-ng-test/test/tls/tst-tls8: symbol 'foo': can't handle reloc type 0x404 > [...] > Total skipped: 15 > Total failed: 12 > Total passed: 454 > > > The tst-res Segmentation fault failure can be fixed by > this additional uclibc patch: > > --- a/include/resolv.h > +++ b/include/resolv.h > @@ -457,7 +457,7 @@ __END_DECLS > # ifndef NOT_IN_libc > # define __resp __libc_resp > # endif > -# define _res (*__resp) > +# define _res (*__res_state()) > extern __thread struct __res_state *__resp attribute_tls_model_ie; > # endif > # else > > > Will take a look at some glibc resolv tests and try to port > them (and, if I find enough time, at some of the other > failures)... Can you sent the two existing patches with your SoB Line added? best regards Waldemar
Hello Waldemar, On Thu, 11 Nov 2021 09:58:07 +0100, Waldemar Brodkorb <wbx@openadk.org> wrote: > Hi Peter, > Peter Seiderer wrote, > > > Hello Waldemar, > > > > On Sun, 31 Oct 2021 00:56:56 +0200, Waldemar Brodkorb <wbx@openadk.org> wrote: > > > > > Hi Peter, > > > Peter Seiderer wrote, > > > > > > > Hello Waldemar, *, > > > > > > > > On Mon, 25 Oct 2021 23:25:41 +0200, Peter Seiderer <ps.report@gmx.net> wrote: > > > > > > > > The resulting ntpd runs fine with the raspberrypi3_defconfig, but segfaults > > > > when compiled/used with raspberrypi3_64_defconfig (uclibc, -Os): > > > > > > > > $ /usr/sbin/ntpd -n -d -g > > > > 1970-01-01T00:04:18 ntpd[263]: INIT: ntpd ntpsec-1.2.0 2021-10-24T13:39:21Z: Starting > > > > 1970-01-01T00:04:18 ntpd[263]: INIT: Command line: /usr/sbin/ntpd -n -d > > > > 1970-01-01T00:04:18 ntpd[263]: INIT: precision = 7.291 usec (-17) > > > > 1970-01-01T00:04:18 ntpd[263]: INIT: successfully locked into RAM > > > > 1970-01-01T00:04:18 ntpd[263]: CONFIG: readconfig: parsing file: /etc/ntp.conf > > > > 1970-01-01T00:04:18 ntpd[263]: CONFIG: restrict nopeer ignored > > > > 1970-01-01T00:04:18 ntpd[263]: INIT: Using SO_TIMESTAMPNS > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen and drop on 0 v6wildcard [::]:123 > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen and drop on 1 v4wildcard 0.0.0.0:123 > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 2 lo 127.0.0.1:123 > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 3 eth0 172.16.0.30:123 > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 4 lo [::1]:123 > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listen normally on 5 eth0 [fe80::ba27:ebff:fea6:340%2]:123 > > > > 1970-01-01T00:04:18 ntpd[263]: IO: Listening on routing socket on fd #22 for interface updates > > > > 1970-01-01T00:04:19 ntpd[263]: SYNC: Found 10 servers, suggest minsane at least 3 > > > > 1970-01-01T00:04:19 ntpd[263]: INIT: MRU 10922 entries, 13 hash bits, 65536 bytes > > > > 1970-01-01T00:04:20 ntpd[263]: DNS: dns_probe: 0.pool.ntp.org, cast_flags:8, flags:101 > > > > Segmentation fault (core dumped) > > > > > > Could you add a small C test program to uClibc-ng-test to trigger > > > the bug? That would help to find any regression to targets without > > > TLS support. > > > > Did take a first look at the uClibc-ng-test regarding the problem, > > there is already one test/inet/tst-res test... > > > > > > For the raspberrypi3_defconfig case (uclibc unpatched): > > > > $ sh uclibcng-testrunner.sh > > [...] > > FAIL tst-ethers-line got 1 expected 0 > > Cannot open file /etc/ethers: No such file or directory > > FAIL tst-ethers got 1 expected 0 > > Either /etc/ethers is missing or it has incorrect contents > > [...] > > FAIL tst-cancel18 got 1 expected 0 > > going to cancel in-time > > Timed out: killed the child process > > [...] > > FAIL tst-cancelx18 got 1 expected 0 > > going to cancel in-time > > Timed out: killed the child process > > [...] > > Total skipped: 15 > > Total failed: 4 > > Total passed: 460 > > > > > > > > For the raspberrypi3_64_defconfig case (uclibc unpatched): > > > > $ sh uclibcng-testrunner.sh > > [...] > > FAIL tst-ethers-line got 1 expected 0 > > Cannot open file /etc/ethers: No such file or directory > > FAIL tst-ethers got 1 expected 0 > > Either /etc/ethers is missing or it has incorrect contents > > [...] > > FAIL tst-res got 139 expected 0 > > Segmentation fault (core dumped) > > [...] > > FAIL tst-seekdir got 1 expected 0 > > . > > .. > > tst-seekdir.out > > tst-utmpx > > tst-inotify > > tst-mkostemps.out > > seek.out > > tst-scandir > > tst-seekdir > > tst-statvfs.out > > sem > > stdarg.out > > fdopen.out > > tst-utmp > > tst-preadvwritev.out > > bug-glob2.out > > popen > > dirent64.out > > tst-scandir.out > > tst-hasmntopt.out > > tst-statvfs > > bug-glob2 > > popen.out > > Makefile > > opendir-tst1 > > sem.out > > tst-inotify.out > > tst-syscall0 > > tst-statfs.out > > bug-readdir1 > > dirent.out > > tst-statfs > > tst-syscall1.out > > tst-syscall0.out > > stdarg > > tst-preadvwritev > > tst-syscall6.out > > tst-mkostemps > > Makefile.in > > tst-utmp.out > > tst-nftw > > opendir-tst1.out > > tst-syscall1 > > bug-readdir1.out > > tst-hasmntopt > > tst-syscall6 > > fdopen > > seek > > tst-nftw.out > > dirent64 > > tst-fnmatch.input > > tst-utmpx.out > > dirent > > going back past 4-th entry... > > seekdir (d, -1600443765); telldir (d) == -1 > > [...] > > FAIL tst-cancel18 got 1 expected 0 > > going to cancel in-time > > Timed out: killed the child process > > [...] > > FAIL tst-cancelx18 got 1 expected 0 > > going to cancel in-time > > Timed out: killed the child process > > [...] > > FAIL tst-tls3 got 1 expected 0 > > > > /usr/lib/uclibc-ng-test/test/tls/tst-tls3: symbol 'baz': can't handle reloc type 0x404 > > FAIL tst-tls4 got 1 expected 0 > > > > /usr/lib/uclibc-ng-test/test/tls/tst-tls4: symbol 'foo': can't handle reloc type 0x404 > > FAIL tst-tls5 got 1 expected 0 > > > > /usr/lib/uclibc-ng-test/test/tls/tst-tls5: symbol 'foo': can't handle reloc type 0x404 > > FAIL tst-tls6 got 1 expected 0 > > > > /usr/lib/uclibc-ng-test/test/tls/tst-tls6: symbol 'foo': can't handle reloc type 0x404 > > FAIL tst-tls7 got 1 expected 0 > > > > /usr/lib/uclibc-ng-test/test/tls/tst-tls7: symbol 'foo': can't handle reloc type 0x404 > > FAIL tst-tls8 got 1 expected 0 > > > > /usr/lib/uclibc-ng-test/test/tls/tst-tls8: symbol 'foo': can't handle reloc type 0x404 > > [...] > > Total skipped: 15 > > Total failed: 12 > > Total passed: 454 > > > > > > The tst-res Segmentation fault failure can be fixed by > > this additional uclibc patch: > > > > --- a/include/resolv.h > > +++ b/include/resolv.h > > @@ -457,7 +457,7 @@ __END_DECLS > > # ifndef NOT_IN_libc > > # define __resp __libc_resp > > # endif > > -# define _res (*__resp) > > +# define _res (*__res_state()) > > extern __thread struct __res_state *__resp attribute_tls_model_ie; > > # endif > > # else > > > > > > Will take a look at some glibc resolv tests and try to port > > them (and, if I find enough time, at some of the other > > failures)... > > Can you sent the two existing patches with your SoB Line added? And finally done (sorry for the delay): https://patchwork.ozlabs.org/project/uclibc-ng/patch/20211125201825.22354-1-ps.report@gmx.net/ Regards, Peter > > best regards > Waldemar >
--- a/include/resolv.h +++ b/include/resolv.h @@ -457,7 +457,7 @@ __END_DECLS # ifndef NOT_IN_libc # define __resp __libc_resp # endif -# define _res (*__resp) +# define _res (*__res_state()) extern __thread struct __res_state *__resp attribute_tls_model_ie; # endif # else