Project

General

Profile

Actions

Bug #14255

closed

gcc10 removes symbols from genunix, impeding CTF uniquification

Added by Andy Fiddaman almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
kernel
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
Gerrit CR:
External Bug:

Description

As of gcc10, the default setting for the eliminate-unused-debug-symbols option is on.

This means that, when using gcc10 as the primary compiler, symbols are stripped from the genunix object, leaving less there for the subsequent CTF uniquification step. As a result, symbols which are used by several modules end up being duplicated in each module instead of held once within genunix.


Related issues

Related to illumos gate - Feature #14421: use GCC 10 as default primary compilerClosed

Actions
Actions #1

Updated by Andy Fiddaman almost 2 years ago

  • Subject changed from gcc10 removes unused symbols from genunix, impeding CTF uniquification. to gcc10 removes symbols from genunix, impeding CTF uniquification
Actions #2

Updated by Andy Fiddaman almost 2 years ago

See also https://gist.github.com/citrus-it/ebd654b35037e0b5411c5f5555b9d61f for some analysis of the CTF created from gcc10's DWARF output.

Actions #3

Updated by Electric Monk almost 2 years ago

  • Gerrit CR set to 1814
Actions #4

Updated by Andy Fiddaman almost 2 years ago

This change also affects a gcc7 build and results in more types being uniquified to genunix. As an example, looking at the struct ether_vlan_header type, these are the CTF differences from this change:

kernel/amd64/genunix
+struct ether_vlan_header { /* 0x12 bytes */
platform/i86xpv/kernel/misc/amd64/xnb
-struct ether_vlan_header { /* 0x12 bytes */
platform/i86xpv/kernel/drv/amd64/xnf
-struct ether_vlan_header { /* 0x12 bytes */
platform/i86hvm/kernel/drv/amd64/xnf
-struct ether_vlan_header { /* 0x12 bytes */
usr/kernel/socketmod/amd64/sockpfp
-struct ether_vlan_header { /* 0x12 bytes */
usr/kernel/drv/amd64/viona
-struct ether_vlan_header { /* 0x12 bytes */
usr/kernel/drv/amd64/ipf
-struct ether_vlan_header { /* 0x12 bytes */
kernel/socketmod/amd64/trill
-struct ether_vlan_header { /* 0x12 bytes */
kernel/misc/amd64/mac
-struct ether_vlan_header { /* 0x12 bytes */
kernel/misc/amd64/gld
-struct ether_vlan_header { /* 0x12 bytes */
kernel/misc/amd64/dls
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/vmxnet3s
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/t4nex
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/sfxge
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/rge
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/qlge
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/qede
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/oce
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/ntxn
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/nxge
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/hxge
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/eoib
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/e1000g
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/dld
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/bridge
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/bnxe
-struct ether_vlan_header { /* 0x12 bytes */
kernel/drv/amd64/bge
-struct ether_vlan_header { /* 0x12 bytes */

Here is the full list of types that have moved, with the count in the first column

  67 -struct xc_msg { /* 0x10 bytes */
  67 -struct xc_data { /* 0x20 bytes */
  67 -struct softint { /* 0x4 bytes */
  31 -struct scsi_extended_sense { /* 0x14 bytes */
  30 -struct scsi_pkt { /* 0xa0 bytes */
  30 -struct scsi_hba_tran { /* 0x1d0 bytes */
  30 -struct scsi_device { /* 0x60 bytes */
  30 -struct scsi_address { /* 0x10 bytes */
  26 -struct ether_vlan_header { /* 0x12 bytes */
  23 -struct scsi_status { /* 0x1 bytes */
  23 -struct scsi_arq_status { /* 0x20 bytes */
  23 -struct crypto_version { /* 0x2 bytes */
  23 -struct crypto_provider_ext_info { /* 0xc0 bytes */
  18 -struct modlcrypto { /* 0x10 bytes */
  18 -struct autovec { /* 0x50 bytes */
  16 -struct scsi_g5 { /* 0xa bytes */
  16 -struct scsi_g4 { /* 0xe bytes */
  16 -struct scsi_g1 { /* 0x8 bytes */
  16 -struct scsi_g0 { /* 0x4 bytes */
  16 -struct dtrace_probedesc { /* 0x144 bytes */
  16 -struct dtrace_pattr { /* 0xf bytes */
  16 -struct dtrace_attribute { /* 0x3 bytes */
  16 -struct dtrace_argdesc { /* 0x10c bytes */
  15 -struct dtrace_pops { /* 0x50 bytes */
  14 -struct av_head { /* 0x10 bytes */
  12 -struct tiuser { /* 0x28 bytes */
  12 -struct t_info { /* 0x1c bytes */
  11 -struct rpc_err { /* 0xc bytes */
  11 -struct clnt_ops { /* 0x38 bytes */
  11 -struct auth_ops { /* 0x38 bytes */
  11 -struct __client { /* 0x20 bytes */
  11 -struct __auth { /* 0x48 bytes */
   9 -struct smbios_info { /* 0x38 bytes */
   8 -struct uscsi_cmd { /* 0x40 bytes */
   8 -struct tcphdr { /* 0x14 bytes */
   8 -struct smbios_system { /* 0x20 bytes */
   8 -struct modlcpu { /* 0x18 bytes */
   8 -struct mac_stat_info_s { /* 0x20 bytes */
   8 -struct dk_callback { /* 0x18 bytes */
   7 -struct tg_attribute { /* 0xc bytes */
   7 -struct mode_page { /* 0x2 bytes */
   7 -struct mactype_register_s { /* 0x50 bytes */
   7 -struct mactype_ops_s { /* 0x50 bytes */
   7 -struct mac_ndd_mapping_s { /* 0x30 bytes */
   7 -struct mac_info_s { /* 0x20 bytes */
   7 -struct dld_ioc_info { /* 0x20 bytes */
   7 -struct cmlb_tg_ops { /* 0x18 bytes */
   6 -struct regspec64 { /* 0x18 bytes */
   6 -struct netbuf32 { /* 0xc bytes */
   6 -struct kstat_intr { /* 0x14 bytes */
   6 -struct ddi_dmae_req { /* 0x28 bytes */
   6 -struct cmlb_geom { /* 0x20 bytes */
   5 -struct vtoc { /* 0x308 bytes */
   5 -struct svcfh { /* 0x20 bytes */
   5 -struct smbios_version { /* 0x2 bytes */
   5 -struct smbios_30_entry { /* 0x18 bytes */
   5 -struct smbios_21_entry { /* 0x1f bytes */
   5 -struct partition { /* 0x18 bytes */
   5 -struct nfs_fh3_i { /* 0x40 bytes */
   5 -struct nfs_fh3 { /* 0x48 bytes */
   5 -struct ndi_ra_request { /* 0x30 bytes */
   5 -struct mode_header { /* 0x4 bytes */
   5 -struct mode_geometry { /* 0x18 bytes */
   5 -struct mode_format { /* 0x18 bytes */
   5 -struct dk_minfo_ext { /* 0x18 bytes */
   5 -struct dk_geom { /* 0x2a bytes */
   5 -struct cpuid_regs { /* 0x10 bytes */
   5 -struct caps_sc { /* 0x8 bytes */
   4 -struct vtoc32 { /* 0x1c8 bytes */
   4 -struct t_kunitdata { /* 0x38 bytes */
   4 -struct svcpool_args { /* 0x1c bytes */
   4 -struct ss_pn { /* 0x408 bytes */
   4 -struct smp_pkt { /* 0x30 bytes */
   4 -struct smp_hba_tran { /* 0x20 bytes */
   4 -struct smp_device { /* 0x28 bytes */
   4 -struct smp_address { /* 0x10 bytes */
   4 -struct smbios_struct { /* 0x18 bytes */
   4 -struct smbios_memdevice { /* 0x88 bytes */
   4 -struct smbios_bios { /* 0x50 bytes */
   4 -struct scsi_watch_result { /* 0x28 bytes */
   4 -struct scsi_descr_sense_hdr { /* 0x8 bytes */
   4 -struct scsi_capacity { /* 0x8 bytes */
   4 -struct rfs4_servinst { /* 0x48 bytes */
   4 -struct rfs4_oldstate { /* 0x38 bytes */
   4 -struct rfs4_dss_path { /* 0x28 bytes */
   4 -struct pci_acc_cfblk { /* 0x4 bytes */
   4 -struct partition32 { /* 0xc bytes */
   4 -struct nfs_globals { /* 0xe0 bytes */
   4 -struct nfs_client_id4 { /* 0x20 bytes */
   4 -struct nfs_args_extB { /* 0x10 bytes */
   4 -struct nfs_args_extA { /* 0x8 bytes */
   4 -struct nfs_args { /* 0x78 bytes */
   4 -struct nfs4_srv { /* 0x158 bytes */
   4 -struct nfs3_pathconf_info { /* 0x18 bytes */
   4 -struct mac_propval_uint32_range_s { /* 0x8 bytes */
   4 -struct mac_propval_str_range_s { /* 0x4 bytes */
   4 -struct mac_propval_range_s { /* 0x10 bytes */
   4 -struct knetbuf { /* 0x18 bytes */
   4 -struct ipc_slot { /* 0x40 bytes */
   4 -struct ipc_service { /* 0x98 bytes */
   4 -struct ipc_perm64 { /* 0x20 bytes */
   4 -struct ipc_perm32 { /* 0x2c bytes */
   4 -struct ipc_perm { /* 0x1c bytes */
   4 -struct dmu_objset_stats { /* 0x120 bytes */
   4 -struct dk_devid { /* 0x200 bytes */
   3 -struct wcc_data { /* 0x80 bytes */
   3 -struct wcc_attr { /* 0x18 bytes */
   3 -struct vis_devinit { /* 0x38 bytes */
   3 -struct vis_consclear { /* 0x4 bytes */
   3 -struct uscsi_cmd32 { /* 0x24 bytes */
   3 -struct t_call { /* 0x38 bytes */
   3 -struct t_bind { /* 0x18 bytes */
   3 -struct symlinkdata3 { /* 0x48 bytes */
   3 -struct symlink_cache { /* 0x10 bytes */
   3 -struct spin_mutex { /* 0x8 bytes */
   3 -struct specdata3 { /* 0x8 bytes */
   3 -struct smbios_ipmi { /* 0x20 bytes */
   3 -struct set_uid3 { /* 0x8 bytes */
   3 -struct set_size3 { /* 0x10 bytes */
   3 -struct set_mtime { /* 0xc bytes */
   3 -struct set_mode3 { /* 0x8 bytes */
   3 -struct set_irq_handler { /* 0x38 bytes */
   3 -struct set_gid3 { /* 0x8 bytes */
   3 -struct set_atime { /* 0xc bytes */
   3 -struct secinfo4 { /* 0x20 bytes */
   3 -struct scsi_key_strings { /* 0x10 bytes */
   3 -struct scsi_information_sense_descr { /* 0xc bytes */
   3 -struct sattrguard3 { /* 0xc bytes */
   3 -struct sattr3 { /* 0x40 bytes */
   3 -struct rpcsec_gss_info { /* 0x18 bytes */
   3 -struct rnode { /* 0x2a0 bytes */
   3 -struct rhashq { /* 0x18 bytes */
   3 -struct rdma_xprt_record { /* 0x18 bytes */
   3 -struct rdma_recv_data { /* 0x40 bytes */
   3 -struct ra_return { /* 0xc bytes */
   3 -struct psm_ops { /* 0xd0 bytes */
   3 -struct psm_ops { /* 0x130 bytes */
   3 -struct pre_op_attr { /* 0x20 bytes */
   3 -struct post_op_fh3 { /* 0x4c bytes */
   3 -struct post_op_attr { /* 0x60 bytes */
   3 -struct pcmcia_if { /* 0x90 bytes */
   3 -struct pcmcia_adapter_nexus_private { /* 0x30 bytes */
   3 -struct pcm_regs { /* 0xc bytes */
   3 -struct otw_nfswriteargs { /* 0x2c bytes */
   3 -struct open_write_delegation4 { /* 0x48 bytes */
   3 -struct open_to_lock_owner4 { /* 0x30 bytes */
   3 -struct open_read_delegation4 { /* 0x38 bytes */
   3 -struct open_owner4 { /* 0x18 bytes */
   3 -struct open_delegation4 { /* 0x50 bytes */
   3 -struct open_claim_delegate_cur4 { /* 0x20 bytes */
   3 -struct nfswriteargs { /* 0x58 bytes */
   3 -struct nfstime3 { /* 0x8 bytes */
   3 -struct nfsstatfsok { /* 0x14 bytes */
   3 -struct nfsstatfs { /* 0x18 bytes */
   3 -struct nfssrok { /* 0x10 bytes */
   3 -struct nfsslargs { /* 0x70 bytes */
   3 -struct nfssattr { /* 0x20 bytes */
   3 -struct nfssaargs { /* 0x40 bytes */
   3 -struct nfsrrok { /* 0x70 bytes */
   3 -struct nfsrnmargs { /* 0x70 bytes */
   3 -struct nfsreadargs { /* 0x48 bytes */
   3 -struct nfsrdresult { /* 0x78 bytes */
   3 -struct nfsrdok { /* 0x18 bytes */
   3 -struct nfsrdlnres { /* 0x18 bytes */
   3 -struct nfsrddirres { /* 0x20 bytes */
   3 -struct nfsrddirargs { /* 0x28 bytes */
   3 -struct nfslinkargs { /* 0x60 bytes */
   3 -struct nfsfattr { /* 0x44 bytes */
   3 -struct nfsdrok { /* 0x64 bytes */
   3 -struct nfsdiropres { /* 0x68 bytes */
   3 -struct nfsdiropargs { /* 0x38 bytes */
   3 -struct nfscreatargs { /* 0x60 bytes */
   3 -struct nfsattrstat { /* 0x48 bytes */
   3 -struct nfs_space_limit4 { /* 0x10 bytes */
   3 -struct nfs_rwlock { /* 0x20 bytes */
   3 -struct nfs_resop4 { /* 0x128 bytes */
   3 -struct nfs_modified_limit4 { /* 0x8 bytes */
   3 -struct nfs_fh4_fmt { /* 0x44 bytes */
   3 -struct nfs_cb_resop4 { /* 0x28 bytes */
   3 -struct nfs_cb_argop4 { /* 0x30 bytes */
   3 -struct nfs_args_extB32 { /* 0x8 bytes */
   3 -struct nfs_args_extA32 { /* 0x4 bytes */
   3 -struct nfs_args32 { /* 0x4c bytes */
   3 -struct nfs_argop4 { /* 0x78 bytes */
   3 -struct nfs4_pathconf_info { /* 0x10 bytes */
   3 -struct nfs4_ga_res { /* 0xf8 bytes */
   3 -struct nfs4_ga_ext_res { /* 0x190 bytes */
   3 -struct nfs2_timeval { /* 0x8 bytes */
   3 -struct mode_control_scsi3 { /* 0xc bytes */
   3 -struct mknoddata3 { /* 0x50 bytes */
   3 -struct mac_tx_intr_cpus_s { /* 0x800 bytes */
   3 -struct mac_resource_props_s { /* 0x3c3c bytes */
   3 -struct mac_cpus_props_s { /* 0x1418 bytes */
   3 -struct locker4 { /* 0x38 bytes */
   3 -struct lock_owner4 { /* 0x18 bytes */
   3 -struct lock_manager_pid_list { /* 0x20 bytes */
   3 -struct knetconfig32 { /* 0x30 bytes */
   3 -struct gss_clnt_data { /* 0xd8 bytes */
   3 -struct gss_buffer_desc_struct { /* 0x10 bytes */
   3 -struct fifonode { /* 0x90 bytes */
   3 -struct fifolock { /* 0x20 bytes */
   3 -struct fattr4 { /* 0x18 bytes */
   3 -struct fattr3 { /* 0x58 bytes */
   3 -struct exist_lock_owner4 { /* 0x14 bytes */
   3 -struct entryplus3_info { /* 0xb0 bytes */
   3 -struct entryplus3 { /* 0xd0 bytes */
   3 -struct entry3 { /* 0x20 bytes */
   3 -struct dtrace_mops { /* 0x18 bytes */
   3 -struct dtrace_helper_provdesc { /* 0x18 bytes */
   3 -struct dtrace_helper_probedesc { /* 0x58 bytes */
   3 -struct dmu_buf { /* 0x20 bytes */
   3 -struct diropargs3 { /* 0x60 bytes */
   3 -struct dirlistplus3 { /* 0x10 bytes */
   3 -struct dirlist3 { /* 0x10 bytes */
   3 -struct dirent { /* 0x18 bytes */
   3 -struct direct { /* 0x108 bytes */
   3 -struct devicedata3 { /* 0x48 bytes */
   3 -struct des_clnt_data { /* 0x28 bytes */
   3 -struct dcopy_query_channel_s { /* 0x28 bytes */
   3 -struct ctf_funcinfo { /* 0x10 bytes */
   3 -struct createhow3 { /* 0x48 bytes */
   3 -struct copen_claim_delegate_cur4 { /* 0x18 bytes */
   3 -struct commit { /* 0x18 bytes */
   3 -struct clientaddr4 { /* 0x10 bytes */
   3 -struct clear_irq_handler { /* 0x10 bytes */
   3 -struct change_info4 { /* 0x18 bytes */
   3 -struct cb_client4 { /* 0x18 bytes */
   3 -struct boottime { /* 0x10 bytes */
   3 -struct bootstat { /* 0x80 bytes */
   3 -struct arc_buf { /* 0x28 bytes */
   3 -struct adaptive_mutex { /* 0x8 bytes */
   3 -struct acache_hash { /* 0x18 bytes */
   3 -struct acache { /* 0x38 bytes */
   3 -struct WRITE4res { /* 0x18 bytes */
   3 -struct WRITE4args { /* 0x40 bytes */
   3 -struct WRITE3resok { /* 0x90 bytes */
   3 -struct WRITE3resfail { /* 0x80 bytes */
   3 -struct WRITE3res { /* 0x98 bytes */
   3 -struct WRITE3args { /* 0x80 bytes */
   3 -struct VERIFY4res { /* 0x4 bytes */
   3 -struct VERIFY4args { /* 0x18 bytes */
   3 -struct SYMLINK3resok { /* 0x130 bytes */
   3 -struct SYMLINK3resfail { /* 0x80 bytes */
   3 -struct SYMLINK3res { /* 0x138 bytes */
   3 -struct SYMLINK3args { /* 0xa8 bytes */
   3 -struct SETCLIENTID_CONFIRM4res { /* 0x4 bytes */
   3 -struct SETCLIENTID_CONFIRM4args { /* 0x10 bytes */
   3 -struct SETCLIENTID4resok { /* 0x10 bytes */
   3 -struct SETCLIENTID4res { /* 0x18 bytes */
   3 -struct SETCLIENTID4args { /* 0x40 bytes */
   3 -struct SETATTR4res { /* 0x10 bytes */
   3 -struct SETATTR4args { /* 0x28 bytes */
   3 -struct SETATTR3resok { /* 0x80 bytes */
   3 -struct SETATTR3resfail { /* 0x80 bytes */
   3 -struct SETATTR3res { /* 0x88 bytes */
   3 -struct SETATTR3args { /* 0x98 bytes */
   3 -struct SECINFO4res { /* 0x10 bytes */
   3 -struct SECINFO4cargs { /* 0x8 bytes */
   3 -struct SECINFO4args { /* 0x10 bytes */
   3 -struct SAVEFH4res { /* 0x4 bytes */
   3 -struct RMDIR3resok { /* 0x80 bytes */
   3 -struct RMDIR3resfail { /* 0x80 bytes */
   3 -struct RMDIR3res { /* 0x88 bytes */
   3 -struct RMDIR3args { /* 0x60 bytes */
   3 -struct RESTOREFH4res { /* 0x4 bytes */
   3 -struct RENEW4res { /* 0x4 bytes */
   3 -struct RENEW4args { /* 0x8 bytes */
   3 -struct RENAME4res { /* 0x38 bytes */
   3 -struct RENAME4cargs { /* 0x10 bytes */
   3 -struct RENAME4args { /* 0x20 bytes */
   3 -struct RENAME3resok { /* 0x100 bytes */
   3 -struct RENAME3resfail { /* 0x100 bytes */
   3 -struct RENAME3res { /* 0x108 bytes */
   3 -struct RENAME3args { /* 0xc0 bytes */
   3 -struct REMOVE4res { /* 0x20 bytes */
   3 -struct REMOVE4cargs { /* 0x8 bytes */
   3 -struct REMOVE4args { /* 0x10 bytes */
   3 -struct REMOVE3resok { /* 0x80 bytes */
   3 -struct REMOVE3resfail { /* 0x80 bytes */
   3 -struct REMOVE3res { /* 0x88 bytes */
   3 -struct REMOVE3args { /* 0x60 bytes */
   3 -struct RELEASE_LOCKOWNER4res { /* 0x4 bytes */
   3 -struct RELEASE_LOCKOWNER4args { /* 0x18 bytes */
   3 -struct READLINK4res { /* 0x18 bytes */
   3 -struct READLINK3resok { /* 0x68 bytes */
   3 -struct READLINK3resfail { /* 0x60 bytes */
   3 -struct READLINK3res { /* 0x70 bytes */
   3 -struct READLINK3args { /* 0x48 bytes */
   3 -struct READDIRPLUS3resok { /* 0x90 bytes */
   3 -struct READDIRPLUS3resfail { /* 0x60 bytes */
   3 -struct READDIRPLUS3res { /* 0x98 bytes */
   3 -struct READDIRPLUS3args { /* 0x60 bytes */
   3 -struct READDIR4res_clnt { /* 0x30 bytes */
   3 -struct READDIR4res { /* 0x20 bytes */
   3 -struct READDIR4args { /* 0x48 bytes */
   3 -struct READDIR3resok { /* 0x90 bytes */
   3 -struct READDIR3resfail { /* 0x60 bytes */
   3 -struct READDIR3res { /* 0x98 bytes */
   3 -struct READDIR3args { /* 0x60 bytes */
   3 -struct READ4res { /* 0x30 bytes */
   3 -struct READ4args { /* 0x50 bytes */
   3 -struct READ3resok { /* 0xa0 bytes */
   3 -struct READ3resfail { /* 0x60 bytes */
   3 -struct READ3res { /* 0xa8 bytes */
   3 -struct READ3args { /* 0x78 bytes */
   3 -struct PUTROOTFH4res { /* 0x4 bytes */
   3 -struct PUTPUBFH4res { /* 0x4 bytes */
   3 -struct PUTFH4res { /* 0x4 bytes */
   3 -struct PUTFH4cargs { /* 0x8 bytes */
   3 -struct PUTFH4args { /* 0x10 bytes */
   3 -struct PATHCONF3resok { /* 0x78 bytes */
   3 -struct PATHCONF3resfail { /* 0x60 bytes */
   3 -struct PATHCONF3res { /* 0x80 bytes */
   3 -struct PATHCONF3args { /* 0x48 bytes */
   3 -struct OPEN_DOWNGRADE4res { /* 0x14 bytes */
   3 -struct OPEN_DOWNGRADE4args { /* 0x1c bytes */
   3 -struct OPEN_CONFIRM4res { /* 0x14 bytes */
   3 -struct OPEN_CONFIRM4args { /* 0x14 bytes */
   3 -struct OPENATTR4res { /* 0x4 bytes */
   3 -struct OPENATTR4args { /* 0x4 bytes */
   3 -struct OPEN4res { /* 0x90 bytes */
   3 -struct OPEN4cargs { /* 0x68 bytes */
   3 -struct OPEN4args { /* 0x70 bytes */
   3 -struct NVERIFY4res { /* 0x4 bytes */
   3 -struct NVERIFY4args { /* 0x18 bytes */
   3 -struct MKNOD3resok { /* 0x130 bytes */
   3 -struct MKNOD3resfail { /* 0x80 bytes */
   3 -struct MKNOD3res { /* 0x138 bytes */
   3 -struct MKNOD3args { /* 0xb0 bytes */
   3 -struct MKDIR3resok { /* 0x130 bytes */
   3 -struct MKDIR3resfail { /* 0x80 bytes */
   3 -struct MKDIR3res { /* 0x138 bytes */
   3 -struct MKDIR3args { /* 0xa0 bytes */
   3 -struct LOOKUPP4res { /* 0x4 bytes */
   3 -struct LOOKUP4res { /* 0x4 bytes */
   3 -struct LOOKUP4cargs { /* 0x8 bytes */
   3 -struct LOOKUP4args { /* 0x10 bytes */
   3 -struct LOOKUP3resok { /* 0x108 bytes */
   3 -struct LOOKUP3resfail { /* 0x60 bytes */
   3 -struct LOOKUP3res { /* 0x110 bytes */
   3 -struct LOOKUP3args { /* 0x60 bytes */
   3 -struct LOCKU4res { /* 0x14 bytes */
   3 -struct LOCKU4args { /* 0x28 bytes */
   3 -struct LOCKT4res { /* 0x38 bytes */
   3 -struct LOCKT4args { /* 0x30 bytes */
   3 -struct LOCK4res { /* 0x38 bytes */
   3 -struct LOCK4denied { /* 0x30 bytes */
   3 -struct LOCK4args { /* 0x50 bytes */
   3 -struct LINK4res { /* 0x20 bytes */
   3 -struct LINK4cargs { /* 0x8 bytes */
   3 -struct LINK4args { /* 0x10 bytes */
   3 -struct LINK3resok { /* 0xe0 bytes */
   3 -struct LINK3resfail { /* 0xe0 bytes */
   3 -struct LINK3res { /* 0xe8 bytes */
   3 -struct LINK3args { /* 0xa8 bytes */
   3 -struct ILLEGAL4res { /* 0x4 bytes */
   3 -struct GETFH4res { /* 0x18 bytes */
   3 -struct GETATTR4res { /* 0x120 bytes */
   3 -struct GETATTR4args { /* 0x10 bytes */
   3 -struct GETATTR3resok { /* 0x58 bytes */
   3 -struct GETATTR3res { /* 0x60 bytes */
   3 -struct GETATTR3args { /* 0x48 bytes */
   3 -struct FSSTAT3resok { /* 0x98 bytes */
   3 -struct FSSTAT3resfail { /* 0x60 bytes */
   3 -struct FSSTAT3res { /* 0xa0 bytes */
   3 -struct FSSTAT3args { /* 0x48 bytes */
   3 -struct FSINFO3resok { /* 0x98 bytes */
   3 -struct FSINFO3resfail { /* 0x60 bytes */
   3 -struct FSINFO3res { /* 0xa0 bytes */
   3 -struct FSINFO3args { /* 0x48 bytes */
   3 -struct DELEGRETURN4res { /* 0x4 bytes */
   3 -struct DELEGRETURN4args { /* 0x10 bytes */
   3 -struct DELEGPURGE4res { /* 0x4 bytes */
   3 -struct DELEGPURGE4args { /* 0x8 bytes */
   3 -struct CREATE4res { /* 0x28 bytes */
   3 -struct CREATE4cargs { /* 0x30 bytes */
   3 -struct CREATE4args { /* 0x40 bytes */
   3 -struct CREATE3resok { /* 0x130 bytes */
   3 -struct CREATE3resfail { /* 0x80 bytes */
   3 -struct CREATE3res { /* 0x138 bytes */
   3 -struct CREATE3args { /* 0xa8 bytes */
   3 -struct COMPOUND4res { /* 0x28 bytes */
   3 -struct COMPOUND4args { /* 0x20 bytes */
   3 -struct COMMIT4res { /* 0x10 bytes */
   3 -struct COMMIT4args { /* 0x10 bytes */
   3 -struct COMMIT3resok { /* 0x88 bytes */
   3 -struct COMMIT3resfail { /* 0x80 bytes */
   3 -struct COMMIT3res { /* 0x90 bytes */
   3 -struct COMMIT3args { /* 0x58 bytes */
   3 -struct CLOSE4res { /* 0x14 bytes */
   3 -struct CLOSE4args { /* 0x14 bytes */
   3 -struct CK_AES_GMAC_PARAMS { /* 0x18 bytes */
   3 -struct CB_RECALL4res { /* 0x4 bytes */
   3 -struct CB_RECALL4args { /* 0x28 bytes */
   3 -struct CB_ILLEGAL4res { /* 0x4 bytes */
   3 -struct CB_GETATTR4res { /* 0x20 bytes */
   3 -struct CB_GETATTR4args { /* 0x18 bytes */
   3 -struct CB_COMPOUND4res { /* 0x28 bytes */
   3 -struct CB_COMPOUND4args { /* 0x28 bytes */
   3 -struct ACCESS4res { /* 0xc bytes */
   3 -struct ACCESS4args { /* 0x4 bytes */
   3 -struct ACCESS3resok { /* 0x68 bytes */
   3 -struct ACCESS3resfail { /* 0x60 bytes */
   3 -struct ACCESS3res { /* 0x70 bytes */
   3 -struct ACCESS3args { /* 0x4c bytes */
   3 +struct psm_ops { /* 0xd0 bytes */
   3 +struct psm_ops { /* 0x130 bytes */
   2 -struct zstream { /* 0x50 bytes */
   2 -struct zrlock { /* 0x10 bytes */
   2 -struct zpool_load_policy { /* 0x20 bytes */
   2 -struct zio_link { /* 0x30 bytes */
   2 -struct zio_cksum_salt { /* 0x20 bytes */
   2 -struct zgd { /* 0x28 bytes */
   2 -struct zfs_dbgmsg { /* 0x20 bytes */
   2 -struct zfs_btree_index { /* 0x18 bytes */
   2 -struct zfs_blkstat { /* 0x40 bytes */
   2 -struct zfs_all_blkstats { /* 0xc408 bytes */
   2 -struct zfetch { /* 0x38 bytes */
   2 -struct vuid_addr_probe { /* 0x4 bytes */
   2 -struct vis_identifier { /* 0x80 bytes */
   2 -struct vdev_stat_ex { /* 0x2670 bytes */
   2 -struct vdev_stat { /* 0x148 bytes */
   2 -struct v { /* 0x20 bytes */
   2 -struct uberblock { /* 0xd0 bytes */
   2 -struct txg_node { /* 0x28 bytes */
   2 -struct txg_list { /* 0x38 bytes */
   2 -struct txg_handle { /* 0x10 bytes */
   2 -struct tx_state { /* 0x78 bytes */
   2 -struct tx_cpu { /* 0xc0 bytes */
   2 -struct ttysize { /* 0x8 bytes */
   2 -struct t_optmgmt { /* 0x18 bytes */
   2 -struct space_map_phys { /* 0x140 bytes */
   2 -struct space_map_entry { /* 0x18 bytes */
   2 -struct space_map { /* 0x40 bytes */
   2 -struct sockaddr_un { /* 0x6e bytes */
   2 -struct smbios_vprobe { /* 0x20 bytes */
   2 -struct smbios_tprobe { /* 0x20 bytes */
   2 -struct smbios_strprop { /* 0x18 bytes */
   2 -struct smbios_slot_peer { /* 0x6 bytes */
   2 -struct smbios_slot { /* 0x20 bytes */
   2 -struct smbios_processor_info_riscv { /* 0x78 bytes */
   2 -struct smbios_processor_info { /* 0x8 bytes */
   2 -struct smbios_processor_ext { /* 0x10 bytes */
   2 -struct smbios_processor { /* 0x38 bytes */
   2 -struct smbios_powersup { /* 0x28 bytes */
   2 -struct smbios_port_ext { /* 0xa bytes */
   2 -struct smbios_port { /* 0x18 bytes */
   2 -struct smbios_pointdev { /* 0x6 bytes */
   2 -struct smbios_pciexrc { /* 0x4 bytes */
   2 -struct smbios_obdev_ext { /* 0x10 bytes */
   2 -struct smbios_obdev { /* 0x10 bytes */
   2 -struct smbios_memdevmap { /* 0x20 bytes */
   2 -struct smbios_memdevice_ext { /* 0x10 bytes */
   2 -struct smbios_memarrmap { /* 0x18 bytes */
   2 -struct smbios_memarray_ext { /* 0x6 bytes */
   2 -struct smbios_memarray { /* 0x18 bytes */
   2 -struct smbios_lang { /* 0x10 bytes */
   2 -struct smbios_iprobe { /* 0x20 bytes */
   2 -struct smbios_hwsec { /* 0x4 bytes */
   2 -struct smbios_fwinfo_comp { /* 0x4 bytes */
   2 -struct smbios_fwinfo { /* 0x30 bytes */
   2 -struct smbios_evtype { /* 0x2 bytes */
   2 -struct smbios_evlog { /* 0x30 bytes */
   2 -struct smbios_cooldev { /* 0x18 bytes */
   2 -struct smbios_chassis_entry { /* 0x4 bytes */
   2 -struct smbios_chassis { /* 0x18 bytes */
   2 -struct smbios_cache { /* 0x28 bytes */
   2 -struct smbios_boot { /* 0x18 bytes */
   2 -struct smbios_bboard { /* 0x8 bytes */
   2 -struct smbios_battery { /* 0x40 bytes */
   2 -struct set_window { /* 0x30 bytes */
   2 -struct set_socket { /* 0x28 bytes */
   2 -struct set_page { /* 0x18 bytes */
   2 -struct sem { /* 0x10 bytes */
   2 -struct segkmem_lpcb { /* 0x48 bytes */
   2 -struct sdev_plugin_ops { /* 0x20 bytes */
   2 -struct scsi_capacity_16 { /* 0x20 bytes */
   2 -struct scsi_asq_key_strings { /* 0x10 bytes */
   2 -struct sas_phy_stats { /* 0x1b0 bytes */
   2 -struct s3_args { /* 0x18 bytes */
   2 -struct rrwlock { /* 0x30 bytes */
   2 -struct rrmlock { /* 0x330 bytes */
   2 -struct rpcstat { /* 0x20 bytes */
   2 -struct range_seg_gap { /* 0x18 bytes */
   2 -struct range_seg64 { /* 0x10 bytes */
   2 -struct range_seg32 { /* 0x8 bytes */
   2 -struct pstatus32 { /* 0x470 bytes */
   2 -struct pstatus { /* 0x690 bytes */
   2 -struct psinfo32 { /* 0x150 bytes */
   2 -struct prsecflags { /* 0x28 bytes */
   2 -struct proginfo { /* 0x8 bytes */
   2 -struct power_entry { /* 0x8 bytes */
   2 -struct post_op_vattr { /* 0x20 bytes */
   2 -struct pool_scan_stat { /* 0x78 bytes */
   2 -struct pool_removal_stat { /* 0x38 bytes */
   2 -struct pool_checkpoint_stat { /* 0x18 bytes */
   2 -struct polled_device { /* 0x18 bytes */
   2 -struct pathcnf32 { /* 0x24 bytes */
   2 -struct nfs_version_stats { /* 0x10 bytes */
   2 -struct nfs_stats { /* 0x30 bytes */
   2 -struct nfs_owner { /* 0x1c bytes */
   2 -struct nfs_fsl_info { /* 0x28 bytes */
   2 -struct nfs_fid { /* 0x24 bytes */
   2 -struct nfs_delmapcall { /* 0x20 bytes */
   2 -struct nfs_delmap_args { /* 0x40 bytes */
   2 -struct nfs_clnt { /* 0xe8 bytes */
   2 -struct nfs4_fhandle { /* 0x84 bytes */
   2 -struct multilist_sublist { /* 0x40 bytes */
   2 -struct multilist { /* 0x20 bytes */
   2 -struct msghdr32 { /* 0x1c bytes */
   2 -struct mode_caching { /* 0xc bytes */
   2 -struct mntinfo_kstat { /* 0x1ec bytes */
   2 -struct mmp_thread { /* 0x138 bytes */
   2 -struct memwin_char { /* 0x38 bytes */
   2 -struct mboot { /* 0x200 bytes */
   2 -struct mac_capab_vnic_s { /* 0x18 bytes */
   2 -struct mac_capab_aggr_s { /* 0x20 bytes */
   2 -struct lwpstatus32 { /* 0x320 bytes */
   2 -struct lwpstatus { /* 0x510 bytes */
   2 -struct lwpsinfo32 { /* 0x68 bytes */
   2 -struct lookup4_param { /* 0x38 bytes */
   2 -struct lgrp_stats { /* 0x400 bytes */
   2 -struct lgrp_shm_policy_seg { /* 0x30 bytes */
   2 -struct lgrp_shm_locality { /* 0x18 bytes */
   2 -struct lgrp_config_mem_rename { /* 0x10 bytes */
   2 -struct kstat_timer { /* 0x50 bytes */
   2 -struct ksemid { /* 0xb8 bytes */
   2 -struct kdi_plat { /* 0x20 bytes */
   2 -struct kdi_memrange { /* 0x10 bytes */
   2 -struct kdi_mach { /* 0x58 bytes */
   2 -struct kdi_drreg { /* 0x30 bytes */
   2 -struct kdi_crumb { /* 0x28 bytes */
   2 -struct kdi_cpusave { /* 0x138 bytes */
   2 -struct ipart { /* 0x10 bytes */
   2 -struct iowin_char { /* 0x30 bytes */
   2 -struct iommulib_ops { /* 0x60 bytes */
   2 -struct intr_entry { /* 0x8 bytes */
   2 -struct inthandler { /* 0x60 bytes */
   2 -struct inquire_window { /* 0x78 bytes */
   2 -struct inquire_socket { /* 0x1c bytes */
   2 -struct inquire_adapter { /* 0x40 bytes */
   2 -struct gss_channel_bindings_struct { /* 0x40 bytes */
   2 -struct gss_OID_set_desc_struct { /* 0x10 bytes */
   2 -struct gss_OID_desc_struct32 { /* 0x8 bytes */
   2 -struct gfx_entry { /* 0x20 bytes */
   2 -struct get_window { /* 0x20 bytes */
   2 -struct get_ss_status { /* 0x18 bytes */
   2 -struct get_socket { /* 0x24 bytes */
   2 -struct get_page { /* 0x18 bytes */
   2 -struct get_adapter { /* 0x8 bytes */
   2 -struct font_info { /* 0x20 bytes */
   2 -struct flow_desc_s { /* 0x88 bytes */
   2 -struct fil_info { /* 0x28 bytes */
   2 -struct fattr3_res { /* 0x18 bytes */
   2 -struct failinfo { /* 0x28 bytes */
   2 -struct dsl_sync_task { /* 0x60 bytes */
   2 -struct dsl_props_set_arg { /* 0x18 bytes */
   2 -struct dsl_prop_record { /* 0x38 bytes */
   2 -struct dsl_prop_cb_record { /* 0x40 bytes */
   2 -struct dsl_pool { /* 0x3b0 bytes */
   2 -struct dnode_phys { /* 0x200 bytes */
   2 -struct dnode_handle { /* 0x18 bytes */
   2 -struct dnode_children { /* 0x50 bytes */
   2 -struct dnode { /* 0x2b0 bytes */
   2 -struct dmu_object_info { /* 0x40 bytes */
   2 -struct dmu_buf_user { /* 0x48 bytes */
   2 -struct dmae_chnl { /* 0x28 bytes */
   2 -struct ddt_stat { /* 0x40 bytes */
   2 -struct ddt_object { /* 0x18 bytes */
   2 -struct ddt_histogram { /* 0x1000 bytes */
   2 -struct ddt_bookmark { /* 0x20 bytes */
   2 -struct ddt { /* 0x60f0 bytes */
   2 -struct dcopy_query_s { /* 0x8 bytes */
   2 -struct crypto_provider_entry { /* 0x8 bytes */
   2 -struct crypto_mechanism32 { /* 0x10 bytes */
   2 -struct crypto_dev_list_entry { /* 0x108 bytes */
   2 -struct cpupart_kstat { /* 0x150 bytes */
   2 -struct cpu_vminfo { /* 0x7c bytes */
   2 -struct cpu_syswait { /* 0xc bytes */
   2 -struct cpu_sysinfo { /* 0xec bytes */
   2 -struct cpu_stat { /* 0x17c bytes */
   2 -struct compinfo { /* 0x18 bytes */
   2 -struct cmt_lgrp { /* 0x28 bytes */
   2 -struct clstat { /* 0xc0 bytes */
   2 -struct clinfo { /* 0x14 bytes */
   2 -struct cku_private { /* 0xf0 bytes */
   2 -struct chtab { /* 0x20 bytes */
   2 -struct chhead { /* 0x30 bytes */
   2 -struct calllist_s { /* 0x60 bytes */
   2 -struct brand_proc_reg { /* 0x10 bytes */
   2 -struct brand_proc_data { /* 0x40 bytes */
   2 -struct brand_elf_data32 { /* 0x1c bytes */
   2 -struct brand_elf_data { /* 0x38 bytes */
   2 -struct brand_common_reg32 { /* 0x8 bytes */
   2 -struct bptree_phys { /* 0x28 bytes */
   2 -struct bptree_entry_phys { /* 0xa8 bytes */
   2 -struct bpobj_phys { /* 0x30 bytes */
   2 -struct bpobj { /* 0x38 bytes */
   2 -struct block_descriptor { /* 0x8 bytes */
   2 -struct beep_state { /* 0x50 bytes */
   2 -struct beep_params { /* 0xc bytes */
   2 -struct beep_entry { /* 0x4 bytes */
   2 -struct authsys_parms { /* 0x28 bytes */
   2 -struct authdes_fullname { /* 0x18 bytes */
   2 -struct authdes_cred { /* 0x28 bytes */
   2 -struct ace_object { /* 0x2c bytes */
   2 -struct ace4vals { /* 0x30 bytes */
   2 -struct ace4_list { /* 0x108 bytes */
   2 -struct _ctag { /* 0x20 bytes */
   2 -struct __cpc_args32 { /* 0xc bytes */
   2 -struct __cpc_args { /* 0x18 bytes */
   2 -struct READDIRPLUS3vres { /* 0x60 bytes */
   2 -struct READDIR3vres { /* 0x50 bytes */
   2 -struct READ3vres { /* 0x50 bytes */
   2 -struct READ3uiores { /* 0x28 bytes */
   2 -struct LOOKUP3vres { /* 0x90 bytes */
   2 -struct GETATTR3vres { /* 0x20 bytes */
   2 -struct COMPOUND4res_clnt { /* 0x20 bytes */
   2 -struct COMPOUND4args_clnt { /* 0x10 bytes */
   2 -struct CK_ECDH1_DERIVE_PARAMS { /* 0x28 bytes */
   2 -struct CK_AES_CTR_PARAMS { /* 0x18 bytes */
   2 +struct v { /* 0x20 bytes */
   2 +struct cku_private { /* 0xf0 bytes */
   1 -struct vt_stat { /* 0x6 bytes */
   1 -struct vt_mode { /* 0x8 bytes */
   1 -struct vt_dispinfo { /* 0xc bytes */
   1 -struct vis_cmap { /* 0x20 bytes */
   1 -struct vc_waitactive_msg { /* 0x20 bytes */
   1 -struct vc_state { /* 0xa8 bytes */
   1 -struct usmp_cmd32 { /* 0x14 bytes */
   1 -struct usmp_cmd { /* 0x28 bytes */
   1 -struct unsubscribe_args { /* 0xc bytes */
   1 -struct ufs_slot { /* 0x30 bytes */
   1 -struct ufs_fsd { /* 0xc bytes */
   1 -struct ufs_acl { /* 0xc bytes */
   1 -struct ufm_ioc_report32 { /* 0x40c bytes */
   1 -struct ufm_ioc_report { /* 0x418 bytes */
   1 -struct ufm_ioc_readimg32 { /* 0x428 bytes */
   1 -struct ufm_ioc_readimg { /* 0x430 bytes */
   1 -struct ufm_ioc_getcaps { /* 0x408 bytes */
   1 -struct ufm_ioc_bufsz32 { /* 0x408 bytes */
   1 -struct ufm_ioc_bufsz { /* 0x410 bytes */
   1 -struct ufid { /* 0xc bytes */
   1 -struct tnf_file_header { /* 0x24 bytes */
   1 -struct threadtrans { /* 0x10 bytes */
   1 -struct tchars { /* 0x6 bytes */
   1 -struct t_uderr { /* 0x28 bytes */
   1 -struct t_discon { /* 0x18 bytes */
   1 -struct swrand_stats { /* 0x28 bytes */
   1 -struct subscribe_args { /* 0x20 bytes */
   1 -struct stat64 { /* 0x80 bytes */
   1 -struct start_stop_cycle_counter_log { /* 0x28 bytes */
   1 -struct ss_make_device_node { /* 0x38 bytes */
   1 -struct srn_event_info { /* 0x4 bytes */
   1 -struct sp_filter { /* 0x18 bytes */
   1 -struct sof_socktuple32 { /* 0xc bytes */
   1 -struct sof_socktuple { /* 0xc bytes */
   1 -struct sockinfo { /* 0x870 bytes */
   1 -struct sockconfig_socktable_entry { /* 0x434 bytes */
   1 -struct sockconfig_socktable32 { /* 0x8 bytes */
   1 -struct sockconfig_socktable { /* 0x10 bytes */
   1 -struct sockconfig_filter_props32 { /* 0x18 bytes */
   1 -struct sockconfig_filter_props { /* 0x28 bytes */
   1 -struct sockaddr_ux { /* 0x18 bytes */
   1 -struct sockaddr_ll { /* 0x14 bytes */
   1 -struct so_snd_bufinfo { /* 0x20 bytes */
   1 -struct smp_snw3_phy_cap { /* 0x4 bytes */
   1 -struct smp_request_frame { /* 0x5 bytes */
   1 -struct smp_report_general_resp { /* 0x44 bytes */
   1 -struct smp_discover_resp { /* 0x68 bytes */
   1 -struct signalfd_siginfo { /* 0x80 bytes */
   1 -struct shmid_ds64 { /* 0x60 bytes */
   1 -struct shmid_ds32 { /* 0x70 bytes */
   1 -struct shmid_ds { /* 0x88 bytes */
   1 -struct sgttyb { /* 0x8 bytes */
   1 -struct sendfile_stats { /* 0x14 bytes */
   1 -struct semid_ds64 { /* 0x38 bytes */
   1 -struct semid_ds32 { /* 0x54 bytes */
   1 -struct semid_ds { /* 0x60 bytes */
   1 -struct sembuf { /* 0x6 bytes */
   1 -struct sem_undo { /* 0x40 bytes */
   1 -struct segacct { /* 0x38 bytes */
   1 -struct sect_trailer { /* 0x8 bytes */
   1 -struct sec_data32 { /* 0x14 bytes */
   1 -struct sdev_nc_node { /* 0x20 bytes */
   1 -struct sdev_fid { /* 0xc bytes */
   1 -struct sdev_door_res { /* 0x4 bytes */
   1 -struct sdev_door_arg { /* 0x1 bytes */
   1 -struct scsi_stream_cmd_sense_descr { /* 0x4 bytes */
   1 -struct scsi_stream_cmd_data { /* 0x1 bytes */
   1 -struct scsi_sk_specific_sense_descr { /* 0x8 bytes */
   1 -struct scsi_pkt_cache_wrapper { /* 0xe0 bytes */
   1 -struct scsi_fru_sense_descr { /* 0x4 bytes */
   1 -struct scsi_descr_template { /* 0x2 bytes */
   1 -struct scsi_cmd_specific_sense_descr { /* 0xc bytes */
   1 -struct scsi_block_cmd_sense_descr { /* 0x4 bytes */
   1 -struct scsi_ata_status_ret_sense_descr { /* 0xe bytes */
   1 -struct sclient_reg_t { /* 0x18 bytes */
   1 -struct sclient_list_t { /* 0x8 bytes */
   1 -struct rollbuf { /* 0x118 bytes */
   1 -struct rnd_stats { /* 0x18 bytes */
   1 -struct rfs4_state_wait { /* 0x18 bytes */
   1 -struct rfs4_state { /* 0x70 bytes */
   1 -struct rfs4_openowner { /* 0x1b8 bytes */
   1 -struct rfs4_lockowner { /* 0x30 bytes */
   1 -struct rfs4_lo_state { /* 0x180 bytes */
   1 -struct rfs4_file { /* 0xc0 bytes */
   1 -struct rfs4_dinfo { /* 0x60 bytes */
   1 -struct rfs4_deleg_state { /* 0x58 bytes */
   1 -struct rfs4_clntip { /* 0x110 bytes */
   1 -struct rfs4_client { /* 0x260 bytes */
   1 -struct quotctl32 { /* 0xc bytes */
   1 -struct quotctl { /* 0x10 bytes */
   1 -struct publish_args { /* 0x10 bytes */
   1 -struct pt_own { /* 0x8 bytes */
   1 -struct prxmap32 { /* 0x98 bytes */
   1 -struct prxmap { /* 0xd8 bytes */
   1 -struct prwatch32 { /* 0x10 bytes */
   1 -struct prwatch { /* 0x18 bytes */
   1 -struct prusage32 { /* 0x100 bytes */
   1 -struct prusage { /* 0x1f8 bytes */
   1 -struct prupanic { /* 0x408 bytes */
   1 -struct prsockopts_bool_opts { /* 0x4 bytes */
   1 -struct prpageheader32 { /* 0x10 bytes */
   1 -struct prpageheader { /* 0x20 bytes */
   1 -struct propnvl_args { /* 0x14 bytes */
   1 -struct prmap32 { /* 0x60 bytes */
   1 -struct prmap { /* 0x68 bytes */
   1 -struct prlwpname { /* 0x28 bytes */
   1 -struct prkillinfo { /* 0x108 bytes */
   1 -struct priovec32 { /* 0xc bytes */
   1 -struct priovec { /* 0x18 bytes */
   1 -struct prheader32 { /* 0x8 bytes */
   1 -struct prheader { /* 0x10 bytes */
   1 -struct prfdinfo_core { /* 0x440 bytes */
   1 -struct prfdinfo { /* 0xc8 bytes */
   1 -struct prcred32 { /* 0x20 bytes */
   1 -struct prasmap32 { /* 0x60 bytes */
   1 -struct prasmap { /* 0x68 bytes */
   1 -struct pr_misc_header { /* 0x8 bytes */
   1 -struct ppsclockev32 { /* 0xc bytes */
   1 -struct ppsclockev { /* 0x18 bytes */
   1 -struct portfop_vfs_hash { /* 0x10 bytes */
   1 -struct port_kstat { /* 0x30 bytes */
   1 -struct port_ksource { /* 0x20 bytes */
   1 -struct port_gettimer { /* 0x28 bytes */
   1 -struct port_event32 { /* 0x10 bytes */
   1 -struct port_event { /* 0x18 bytes */
   1 -struct pool_xtransfer32 { /* 0x14 bytes */
   1 -struct pool_xtransfer { /* 0x18 bytes */
   1 -struct pool_transfer { /* 0x14 bytes */
   1 -struct pool_status { /* 0x4 bytes */
   1 -struct pool_query32 { /* 0x8 bytes */
   1 -struct pool_query { /* 0x10 bytes */
   1 -struct pool_proprm32 { /* 0x14 bytes */
   1 -struct pool_proprm { /* 0x20 bytes */
   1 -struct pool_propput32 { /* 0x14 bytes */
   1 -struct pool_propput { /* 0x20 bytes */
   1 -struct pool_propget32 { /* 0x1c bytes */
   1 -struct pool_propget { /* 0x28 bytes */
   1 -struct pool_dissoc { /* 0x8 bytes */
   1 -struct pool_destroy { /* 0xc bytes */
   1 -struct pool_create { /* 0xc bytes */
   1 -struct pool_bindq { /* 0xc bytes */
   1 -struct pool_bind { /* 0xc bytes */
   1 -struct pool_assoc { /* 0xc bytes */
   1 -struct pm_state_change32 { /* 0x1c bytes */
   1 -struct pm_searchargs32_t { /* 0xc bytes */
   1 -struct pm_req32 { /* 0x14 bytes */
   1 -struct pm_req { /* 0x20 bytes */
   1 -struct pcmcia_parent_private { /* 0x58 bytes */
   1 -struct pcmcia_mif { /* 0x18 bytes */
   1 -struct pcmcia_logical_window { /* 0x30 bytes */
   1 -struct pcmcia_adapter { /* 0xe0 bytes */
   1 -struct pcm_make_dev { /* 0x440 bytes */
   1 -struct pcm_device_node { /* 0x38 bytes */
   1 -struct pcm_device_info { /* 0xd8 bytes */
   1 -struct pcix_attr { /* 0x4 bytes */
   1 -struct pcie_tlp_hdr { /* 0x4 bytes */
   1 -struct pcie_cpl { /* 0x8 bytes */
   1 -struct pattr_addr_s { /* 0x3 bytes */
   1 -struct part_info32 { /* 0x8 bytes */
   1 -struct part_info { /* 0x10 bytes */
   1 -struct parameter_control { /* 0x1 bytes */
   1 -struct ocg { /* 0x3dc bytes */
   1 -struct objfs_info { /* 0x4 bytes */
   1 -struct nvp_devname { /* 0x28 bytes */
   1 -struct nfs_xuio { /* 0x298 bytes */
   1 -struct neti_stack_head_s { /* 0x8 bytes */
   1 -struct nd_router_advert { /* 0x10 bytes */
   1 -struct nd_opt_prefix_info { /* 0x20 bytes */
   1 -struct nd_opt_lla { /* 0x42 bytes */
   1 -struct msqid_ds64 { /* 0x58 bytes */
   1 -struct msqid_ds { /* 0x88 bytes */
   1 -struct msgsnap_mhead { /* 0x10 bytes */
   1 -struct msgsnap_head { /* 0x10 bytes */
   1 -struct modeheader_seq { /* 0xc bytes */
   1 -struct mode_speed { /* 0x4 bytes */
   1 -struct mode_info_power_cond { /* 0xa bytes */
   1 -struct mode_info_excpt_page { /* 0xc bytes */
   1 -struct mode_header_g1 { /* 0x8 bytes */
   1 -struct mode_err_recov { /* 0xc bytes */
   1 -struct mode_disco_reco { /* 0x10 bytes */
   1 -struct mode_cache_scsi3 { /* 0x14 bytes */
   1 -struct mode_cache { /* 0xc bytes */
   1 -struct mm_logentry { /* 0x80 bytes */
   1 -struct mem_vtop32 { /* 0xc bytes */
   1 -struct mac_secondary_addr_s { /* 0x284 bytes */
   1 -struct lufs_save { /* 0x18 bytes */
   1 -struct lufs_buf { /* 0x100 bytes */
   1 -struct ltchars { /* 0x6 bytes */
   1 -struct loinfo { /* 0x58 bytes */
   1 -struct lofi_state { /* 0x510 bytes */
   1 -struct lofi_compress_info { /* 0x20 bytes */
   1 -struct lofi_comp_cache { /* 0x20 bytes */
   1 -struct lockfs32 { /* 0x14 bytes */
   1 -struct lobucket { /* 0x40 bytes */
   1 -struct lo_retired_ht { /* 0x18 bytes */
   1 -struct lnode { /* 0x20 bytes */
   1 -struct lfsnode { /* 0xe8 bytes */
   1 -struct kstat32 { /* 0x98 bytes */
   1 -struct kiockeymap { /* 0x18 bytes */
   1 -struct kiockey { /* 0x10 bytes */
   1 -struct jwinsize { /* 0x6 bytes */
   1 -struct irq_alloc_t { /* 0x28 bytes */
   1 -struct ipcmsgbuf { /* 0x10 bytes */
   1 -struct ip6_opt { /* 0x2 bytes */
   1 -struct iommulib_nexops { /* 0x80 bytes */
   1 -struct io_alloc_t { /* 0x48 bytes */
   1 -struct instats { /* 0x330 bytes */
   1 -struct ifqueue { /* 0x20 bytes */
   1 -struct ifnet { /* 0xb8 bytes */
   1 -struct ifaddr { /* 0x30 bytes */
   1 -struct hook_stack_head { /* 0x8 bytes */
   1 -struct gss_clnt_data32 { /* 0xd0 bytes */
   1 -struct get_cookies_and_dip_t { /* 0x58 bytes */
   1 -struct gcmd_padded_wrapper { /* 0xc8 bytes */
   1 -struct fsszone { /* 0x28 bytes */
   1 -struct fsspset { /* 0x40 bytes */
   1 -struct fssproj { /* 0x50 bytes */
   1 -struct fssproc { /* 0x50 bytes */
   1 -struct fssbuf { /* 0x10 bytes */
   1 -struct freq_request { /* 0x8 bytes */
   1 -struct frame32 { /* 0x8 bytes */
   1 -struct fiotune { /* 0x14 bytes */
   1 -struct fiolog { /* 0xc bytes */
   1 -struct fioio32 { /* 0xc bytes */
   1 -struct fioio { /* 0x10 bytes */
   1 -struct fio_lufs_stats { /* 0x608 bytes */
   1 -struct file_obj32 { /* 0x28 bytes */
   1 -struct file_obj { /* 0x50 bytes */
   1 -struct fifodata { /* 0x140 bytes */
   1 -struct extvtoc { /* 0x308 bytes */
   1 -struct extpartition { /* 0x18 bytes */
   1 -struct extpart_info { /* 0x10 bytes */
   1 -struct extent_block { /* 0x20 bytes */
   1 -struct extent { /* 0xc bytes */
   1 -struct ether_vlan_extinfo { /* 0x4 bytes */
   1 -struct dv_fid { /* 0xc bytes */
   1 -struct dtrace_status { /* 0x58 bytes */
   1 -struct dtrace_repldesc { /* 0x288 bytes */
   1 -struct dtrace_rechdr { /* 0xc bytes */
   1 -struct dtrace_recdesc { /* 0x20 bytes */
   1 -struct dtrace_providerdesc { /* 0x5c bytes */
   1 -struct dtrace_preddesc { /* 0x10 bytes */
   1 -struct dtrace_ppriv { /* 0xc bytes */
   1 -struct dtrace_fmtdesc { /* 0x10 bytes */
   1 -struct dtrace_eprobedesc { /* 0x38 bytes */
   1 -struct dtrace_ecbdesc { /* 0x170 bytes */
   1 -struct dtrace_difv { /* 0x14 bytes */
   1 -struct dtrace_diftype { /* 0x8 bytes */
   1 -struct dtrace_difo { /* 0x40 bytes */
   1 -struct dtrace_conf { /* 0x30 bytes */
   1 -struct dtrace_bufdesc { /* 0x30 bytes */
   1 -struct dtrace_aggdesc { /* 0x48 bytes */
   1 -struct dtrace_actdesc { /* 0x30 bytes */
   1 -struct door_return_desc32 { /* 0x8 bytes */
   1 -struct door_return_desc { /* 0x10 bytes */
   1 -struct door_results32 { /* 0x20 bytes */
   1 -struct door_results { /* 0x40 bytes */
   1 -struct door_arg32 { /* 0x18 bytes */
   1 -struct dof_sec { /* 0x20 bytes */
   1 -struct dof_relohdr { /* 0xc bytes */
   1 -struct dof_relodesc { /* 0x18 bytes */
   1 -struct dof_provider { /* 0x2c bytes */
   1 -struct dof_probedesc { /* 0x18 bytes */
   1 -struct dof_probe { /* 0x30 bytes */
   1 -struct dof_optdesc { /* 0x10 bytes */
   1 -struct dof_helper { /* 0x50 bytes */
   1 -struct dof_hdr { /* 0x40 bytes */
   1 -struct dof_ecbdesc { /* 0x18 bytes */
   1 -struct dof_difohdr { /* 0xc bytes */
   1 -struct dof_actdesc { /* 0x20 bytes */
   1 -struct dld_secobj { /* 0x128 bytes */
   1 -struct dld_macaddrinfo { /* 0x124 bytes */
   1 -struct dld_ioc_zid { /* 0x8 bytes */
   1 -struct dld_ioc_walkflow { /* 0x8c bytes */
   1 -struct dld_ioc_usagelog { /* 0xc bytes */
   1 -struct dld_ioc_tranio { /* 0x1c bytes */
   1 -struct dld_ioc_secobj_unset { /* 0x20 bytes */
   1 -struct dld_ioc_secobj_set { /* 0x12c bytes */
   1 -struct dld_ioc_secobj_get { /* 0x130 bytes */
   1 -struct dld_ioc_rename { /* 0x28 bytes */
   1 -struct dld_ioc_removeflow { /* 0x80 bytes */
   1 -struct dld_ioc_phys_attr { /* 0x28 bytes */
   1 -struct dld_ioc_modifyflow { /* 0x3cbc bytes */
   1 -struct dld_ioc_macprop_s { /* 0x118 bytes */
   1 -struct dld_ioc_macaddrget { /* 0xc bytes */
   1 -struct dld_ioc_led { /* 0x10 bytes */
   1 -struct dld_ioc_hwgrpget { /* 0xc bytes */
   1 -struct dld_ioc_gettran { /* 0x10 bytes */
   1 -struct dld_ioc_door { /* 0x4 bytes */
   1 -struct dld_ioc_attr { /* 0x8 bytes */
   1 -struct dld_ioc_addflow { /* 0x3d48 bytes */
   1 -struct dld_hwgrpinfo { /* 0x630 bytes */
   1 -struct dld_flowinfo { /* 0x3d4c bytes */
   1 -struct dl_ipnetinfo { /* 0x18 bytes */
   1 -struct dkl_partition { /* 0xc bytes */
   1 -struct dk_vtoc { /* 0x1c8 bytes */
   1 -struct dk_updatefw_32 { /* 0xc bytes */
   1 -struct dk_updatefw { /* 0x10 bytes */
   1 -struct dk_temperature { /* 0x8 bytes */
   1 -struct dk_map32 { /* 0x8 bytes */
   1 -struct dk_map { /* 0x10 bytes */
   1 -struct dk_label { /* 0x200 bytes */
   1 -struct dk_disk_id { /* 0x48 bytes */
   1 -struct dk_allmap32 { /* 0x80 bytes */
   1 -struct dk_allmap { /* 0x100 bytes */
   1 -struct dirtemplate { /* 0x18 bytes */
   1 -struct dimm_slot { /* 0x10 bytes */
   1 -struct devfs_data { /* 0x10 bytes */
   1 -struct des_clnt_data32 { /* 0x18 bytes */
   1 -struct deflate_state { /* 0xa8 bytes */
   1 -struct defect_header32 { /* 0x8 bytes */
   1 -struct defect_header { /* 0x10 bytes */
   1 -struct ddi_hp_property32 { /* 0x8 bytes */
   1 -struct ddi_hp_property { /* 0x10 bytes */
   1 -struct dc_led_ctl { /* 0x4 bytes */
   1 -struct ctf_type { /* 0x10 bytes */
   1 -struct ctf_sect { /* 0x38 bytes */
   1 -struct ctf_preamble { /* 0x4 bytes */
   1 -struct ctf_membinfo { /* 0x10 bytes */
   1 -struct ctf_member { /* 0x8 bytes */
   1 -struct ctf_lmember { /* 0x10 bytes */
   1 -struct ctf_lblinfo { /* 0x8 bytes */
   1 -struct ctf_lblent { /* 0x8 bytes */
   1 -struct ctf_header { /* 0x24 bytes */
   1 -struct ctf_enum { /* 0x8 bytes */
   1 -struct ctf_encoding { /* 0xc bytes */
   1 -struct ctf_array { /* 0x8 bytes */
   1 -struct ctf_arinfo { /* 0x18 bytes */
   1 -struct csss_adapter_info_t { /* 0x34 bytes */
   1 -struct csregister { /* 0x18 bytes */
   1 -struct cs_window_t { /* 0x20 bytes */
   1 -struct cs_ss_event_text_t { /* 0x10 bytes */
   1 -struct cs_socket_t { /* 0x200 bytes */
   1 -struct cs_globals_t { /* 0x50 bytes */
   1 -struct cs_csfunc2text_strings_t { /* 0x10 bytes */
   1 -struct cs_adapter_t { /* 0x3c bytes */
   1 -struct crypto_unload_soft_module { /* 0x104 bytes */
   1 -struct crypto_object_attribute32 { /* 0x10 bytes */
   1 -struct crypto_meta { /* 0x200 bytes */
   1 -struct crypto_mechanism_info32 { /* 0x10 bytes */
   1 -struct crypto_load_soft_disabled { /* 0x128 bytes */
   1 -struct crypto_load_soft_config { /* 0x128 bytes */
   1 -struct crypto_load_dev_disabled { /* 0x12c bytes */
   1 -struct crypto_key32 { /* 0xc bytes */
   1 -struct crypto_get_soft_list32 { /* 0x10 bytes */
   1 -struct crypto_get_soft_list { /* 0x18 bytes */
   1 -struct crypto_get_soft_info { /* 0x128 bytes */
   1 -struct crypto_get_dev_list { /* 0x110 bytes */
   1 -struct crypto_get_dev_info { /* 0x12c bytes */
   1 -struct cpuid_get_hwcap32 { /* 0xc bytes */
   1 -struct control_args { /* 0x8 bytes */
   1 -struct cons_getterm32 { /* 0x8 bytes */
   1 -struct cons_getterm { /* 0x10 bytes */
   1 -struct config_regs_t { /* 0x50 bytes */
   1 -struct compbuf { /* 0x10 bytes */
   1 -struct client_types_t { /* 0x10 bytes */
   1 -struct client_t { /* 0x220 bytes */
   1 -struct cistpl_pd_struct_t { /* 0x10 bytes */
   1 -struct cistpl_ignore_list_t { /* 0x1 bytes */
   1 -struct cistpl_devspeed_struct_t { /* 0x20 bytes */
   1 -struct cistpl_callout_t { /* 0x18 bytes */
   1 -struct cisregister_t { /* 0x18 bytes */
   1 -struct cisptr_t { /* 0x18 bytes */
   1 -struct cis_info_t { /* 0x18 bytes */
   1 -struct chandata { /* 0x18 bytes */
   1 -struct box { /* 0xc bytes */
   1 -struct bind_args { /* 0x10 bytes */
   1 -struct authdes_verf { /* 0x18 bytes */
   1 -struct arphdr { /* 0x8 bytes */
   1 -struct aiocb64_32 { /* 0x44 bytes */
   1 -struct aiocb32 { /* 0x40 bytes */
   1 -struct adr_s { /* 0x10 bytes */
   1 -struct acct { /* 0x28 bytes */
   1 -struct ac_res { /* 0x8 bytes */
   1 -struct _cmac_instance { /* 0xc bytes */
   1 -struct _cmac_instance { /* 0x4 bytes */
   1 -struct CK_ECDH1_DERIVE_PARAMS32 { /* 0x14 bytes */
   1 -struct CK_AES_GMAC_PARAMS32 { /* 0xc bytes */
   1 -struct CK_AES_GCM_PARAMS32 { /* 0x18 bytes */
   1 -struct CK_AES_CTR_PARAMS32 { /* 0x14 bytes */
   1 -struct CK_AES_CCM_PARAMS32 { /* 0x18 bytes */

Other than CTF differences, a wsdiff is clean.

genunix has grown in size by around 100KiB

-rwxr-xr-x   1 af       other    4482776 Nov 29 23:18 proto.old/root_i386-nd/kernel/amd64/genunix
-rwxr-xr-x   1 af       other    4586792 Nov 30 10:14 proto/root_i386-nd/kernel/amd64/genunix

but the overall size of proto has decreased by ~118K

% du -Aks proto*
274686074       proto
274807314       proto.old
Actions #5

Updated by Andy Fiddaman almost 2 years ago

This has been running in OmniOS bloody for a couple of weeks and I've been using mdb and dtrace there continually, and experienced no problems. ::ctfinfo shows sizes against modules and ::nm -f ctype is able to show function definitions.

Actions #6

Updated by Electric Monk almost 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit 3cac7b0d73edf3f2674ad0f64d1fff3d2e59ae8c

commit  3cac7b0d73edf3f2674ad0f64d1fff3d2e59ae8c
Author: Andy Fiddaman <omnios@citrus-it.co.uk>
Date:   2021-12-09T15:37:51.000Z

    14255 gcc10 removes symbols from genunix, impeding CTF uniquification
    Reviewed by: Jason King <jason.brian.king+illumos@gmail.com>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions #7

Updated by Andy Fiddaman over 1 year ago

  • Related to Feature #14421: use GCC 10 as default primary compiler added
Actions

Also available in: Atom PDF