Page MenuHomeFreeBSD

Rename remaining linux32 symbols to linux32_*. Fix systrace for linux64.
ClosedPublic

Authored by jhb on Oct 20 2015, 9:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Oct 26, 5:03 AM
Unknown Object (File)
Fri, Oct 11, 12:58 PM
Unknown Object (File)
Fri, Oct 11, 12:57 PM
Unknown Object (File)
Fri, Oct 11, 12:57 PM
Unknown Object (File)
Fri, Oct 11, 12:57 PM
Unknown Object (File)
Fri, Oct 11, 12:45 PM
Unknown Object (File)
Oct 4 2024, 10:53 PM
Unknown Object (File)
Sep 30 2024, 4:37 AM
Subscribers

Details

Summary

Rename remaining linux32 symbols such as linux_sysent[] and
linux_syscallnames[] from linux_* to linux32_* to avoid conflicts with
linux64.ko. While here, add support for linux64 binaries to systrace.

  • Update NOPROTO entries in amd64/linux/syscalls.master to match the main table to fix systrace build.
  • Add a special case for union l_semun arguments to the systrace generation.
  • The systrace_linux32 module now only builds the systrace_linux32.ko. module on amd64.
  • Add a new systrace_linux module that builds on both i386 and amd64. For i386 it builds the existing systrace_linux.ko. For amd64 it builds a systrace_linux.ko for 64-bit binaries.
Test Plan
  • This compiles. I have not tested it. If anyone has a setup for 64-bit Linux binaries I can test I would verify that kdump/truss works on them after this using my libsysdecode changes (I pulled these changes out of that branch). I haven't tried using systrace before, but using systrace on Linux binaries would be the most obvious way to test this.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 847
Build 847: arc lint + arc unit

Event Timeline

jhb retitled this revision from to Rename remaining linux32 symbols to linux32_*. Fix systrace for linux64..
jhb updated this object.
jhb edited the test plan for this revision. (Show Details)
jhb added a reviewer: markj.
markj edited edge metadata.

Looks ok to me modulo the comment.

Have you verified that the systrace modules at least load?

sys/cddl/dev/systrace/systrace.c
388

"linux2"?

This revision is now accepted and ready to land.Oct 20 2015, 10:52 PM
jhb edited edge metadata.
  • Fix typo.
  • systrace_linux needs to depend on linux64 on amd64.
This revision now requires review to proceed.Oct 22 2015, 7:58 PM
jhb marked an inline comment as done.Oct 22 2015, 8:00 PM

I verified that kldload of systrace_linux and systrace_linux32 on amd64 pulled in the right dependencies (linux64.ko and linux.ko respectively) and that dtrace -l showed the correct syscall entries (linux32 for linux.ko and linux for linux64.ko)

markj edited edge metadata.
This revision is now accepted and ready to land.Oct 22 2015, 8:59 PM
This revision was automatically updated to reflect the committed changes.