Page MenuHomeFreeBSD

Remove entries for old FreeBSD 6 AIO system calls.
ClosedPublic

Authored by jhb on Mar 12 2016, 1:18 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 22, 2:38 PM
Unknown Object (File)
Thu, Nov 21, 7:08 AM
Unknown Object (File)
Oct 9 2024, 4:33 AM
Unknown Object (File)
Oct 9 2024, 4:13 AM
Unknown Object (File)
Sep 25 2024, 9:33 PM
Unknown Object (File)
Sep 20 2024, 5:34 PM
Unknown Object (File)
Sep 17 2024, 6:29 PM
Unknown Object (File)
Sep 8 2024, 7:19 PM
Subscribers

Details

Summary

Remove Symbol.map entries for old AIO system calls for FreeBSD 6 compat.

These entries should have never been present since they only exist for
compat with FreeBSD 6.x (and older) binaries. This was missed in r296572.

Oddly, our build doesn't complain if a symbol listed in Symbol.map isn't
defined.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb retitled this revision from to Remove entries for old FreeBSD 6 AIO system calls..
jhb updated this object.
jhb edited the test plan for this revision. (Show Details)
jhb added a reviewer: kib.

The silent ignore of symbols listed in symbol version file is the ld(1) feature, which already so to say amused me several times. I am not aware of any way to turn on a warning or error for GNU ld to report this situation.

lib/libc/sys/Symbol.map
205 ↗(On Diff #14260)

This chunk removes symbols from the stable symver namespace. This is rather unfortunate.

Functionally it is fine, but formally it breaks our ABI compat.

I suppose we could write our own script to parse Symbol.map and then run readelf -s on the generated library to check for mismatches? Might be useful to have even if it only lives in tools/tools and isn't run as part of the regular build. The Jenkins machine could run that script periodically just as an extra check.

lib/libc/sys/Symbol.map
205 ↗(On Diff #14260)

Agreed. I believe there should be no impact as we didn't define a valid prototype for functions by this name in any of our headers exported to userland, so nothing should be linked against it. In reality these symbols never should have been exported in the first place. The use of COMPAT_FREEBSD<x> was already established when these symbols were renamed and it was a bug that that wasn't used instead of manually adding the 'o' prefix.

kib edited edge metadata.

Such verification script is somewhat complicated, I should note.

This revision is now accepted and ready to land.Mar 12 2016, 4:32 AM
This revision was automatically updated to reflect the committed changes.