Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Getting BIND 9.21.x to build?
On Thu, 11 Sep 2025, Havard Eidnes wrote:
Do these just explain where the undefined symbols come from, or
where they are supposed to be defined?
Yes; as shown:
```
$ uname -a
NetBSD CoreBook.local 11.99.2 NetBSD 11.99.2 (COREBOOK_DIAG) #0: Fri Sep 12 08:03:39 UTC 2025 bld@CoreBook.local:/tmp/obj/usr/src/sys/arch/amd64/compile/COREBOOK_DIAG amd64
// Remove calls to jobs.c funcs. for test purposes.
//
$ fgrep -v job_cb bind-9.21.12/lib/isc/probes.d > probes.d
$ dtrace -h -s probes.d
dtrace: failed to compile script probes.d: "/usr/lib/dtrace/psinfo.d", line 46: syntax error near "u_int"
// Patch in PR #58630 not yet pulled-in.
// Try again, as root.
//
$ sudo dtrace -h -s probes.d
$ sudo chown rvp:rvp probes.h
// Note lack of any `$dtraceNNNN.*' symbols the first time around,
// and the initial size of `rwlock.o'.
//
$ cc -fPIC -I. -Ibind-9.21.12/lib/isc/include -c bind-9.21.12/lib/isc/rwlock.c
$ ls -l rwlock.o
-rw------- 1 rvp wheel 7168 Sep 12 09:22 rwlock.o
$ nm rwlock.o | fgrep '$dtrace'
// Create ELF obj.
//
$ sudo dtrace -G -s probes.d
probes: failed to link script probes: No probe sites found for declared provider
// Do it right; note size of `rwlock.o' now.
//
$ sudo dtrace -G -s probes.d rwlock.o
$ sudo chown rvp:rvp probes.o
$ ls -l rwlock.o
-rw------- 1 rvp wheel 7744 Sep 12 09:23 rwlock.o
// `dtrace -G' has created `$dtraceNNNN.*' symbols in a `.SUNW_dof' section.
//
$ nm rwlock.o | fgrep '$dtrace'
00000000000005f8 T $dtrace359234.isc_rwlock_destroy
0000000000000509 T $dtrace359234.isc_rwlock_downgrade
000000000000053f T $dtrace359234.isc_rwlock_init
0000000000000191 T $dtrace359234.isc_rwlock_rdlock
00000000000002ad T $dtrace359234.isc_rwlock_rdunlock
0000000000000246 T $dtrace359234.isc_rwlock_tryrdlock
00000000000002d7 T $dtrace359234.isc_rwlock_tryupgrade
0000000000000458 T $dtrace359234.isc_rwlock_trywrlock
00000000000003cb T $dtrace359234.isc_rwlock_wrlock
000000000000042e T $dtrace359234.isc_rwlock_wrunlock
$ nm -u probes.o | fgrep '$dtrace'
U $dtrace359234.isc_rwlock_destroy
U $dtrace359234.isc_rwlock_downgrade
U $dtrace359234.isc_rwlock_init
U $dtrace359234.isc_rwlock_rdlock
U $dtrace359234.isc_rwlock_rdunlock
U $dtrace359234.isc_rwlock_tryrdlock
U $dtrace359234.isc_rwlock_tryupgrade
U $dtrace359234.isc_rwlock_trywrlock
U $dtrace359234.isc_rwlock_wrlock
U $dtrace359234.isc_rwlock_wrunlock
// Create dummy shared lib.
//
$ cc -shared -o libfoo.so probes.o
ld: probes.o: warning: relocation against `$dtrace359234.isc_rwlock_tryrdlock' in read-only section `.SUNW_dof'
ld: warning: creating DT_TEXTREL in a shared object
// Do it right.
//
$ cc -shared -o libfoo.so probes.o rwlock.o
$ exit
```
So, in your case (from what you've shown me), it looks like the `rwlock.o'
prior to a `dtrace -G' run is being used. You should find out why. (While I
know _some_ dtrace, my Meson is practically nil.)
HTH,
-RVP
Home |
Main Index |
Thread Index |
Old Index