Port sysutils/arcconf stopped working after FreeBSD upgrade from 10.4 to 11.2
Running arcconf ends with:
Undefined symbol "__collate_load_error" referenced from COPY relocation in /usr/local/sbin/arcconf
The libc export symbol __collate_load_error in FreeBSD 10.4 (i386) and early/ but not export in FreeBSD 11.2 (i386).
Please restore export symbol.
See base r238182 and bug #213781
Same problem with old Arcserve backup agent (Arcserve Backup Client Agent for UNIX r16.5). Upgrading from 10.4 to 11.2 breaks the compatibility:
Undefined symbol "__collate_load_error" referenced from COPY relocation in /opt/CA/BABuagent/uagentd
Compats for 10 and down are installed:
pkg info compat\*
The library /lib/libc.so.7 was included in FreeBSD 7.0.
It was broken and fixing in FreeBSD 9.0 https://lists.freebsd.org/pipermail/freebsd-stable/2012-July/068761.html
It was broken in FreeBSD 11.x (i386) only, but I don't sure of only (i386). IMHO 32bit version of library was broken and wasn't broken 64bit version.
My workaround is to use the version of your software compiled for FreeBSD 6.x with compat6x. See bug #213781, comment #10
It looks like this private symbol was removed in r290494. If we wanted to work around problems with old binaries (which should not have been using it), it might be worth adding it back with a comment that it's unused and exists for binary compatibility.
I object on restoring the symbol in libc on principle. It is part of the private namespace, and starting maintaining ABI there gets us into the tar pit immediately.
If you want to run this binary, create a fake dso which exports the symbol in the same namespace, and preload it through LD_PRELOAD.
I understand your problems with maintaining ABI, but...
IMHO. Changing the ABI without compat or any notification (!) is a big mistake.