[no subject]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



$ readelf --wide --symbols vmlinux | \
  awk '$4=="FILE" { f=$NF } $4=="OBJECT" || $4=="FUNC" { print $4 " " f "::" $NF }' | \
  sort | uniq -c | sort -n | awk '$1 != 1'

      2 FUNC bus.c::new_id_store
      2 FUNC core.c::native_read_msr
      2 FUNC core.c::type_show
      2 FUNC diag.c::sk_diag_fill.constprop.0
      2 FUNC hid-core.c::hid_exit
      2 FUNC hid-core.c::hid_init
      2 FUNC inode.c::remove_one
      2 FUNC iommu.c::__list_del_entry
      2 FUNC msr.c::msr_init
      2 FUNC msr.c::msr_read
      2 FUNC proc.c::c_next
      2 FUNC proc.c::c_start
      2 FUNC proc.c::c_stop
      2 FUNC raw.c::copy_overflow
      2 FUNC raw.c::dst_output
      2 FUNC route.c::dst_discard
      2 FUNC sysfs.c::name_show
      2 FUNC udp.c::copy_overflow
      2 FUNC udp.c::udp_lib_close
      2 FUNC udp.c::udp_lib_hash
      2 FUNC udp.c::udplite_getfrag
      2 FUNC udplite.c::udp_lib_close
      2 FUNC udplite.c::udp_lib_hash
      2 FUNC udplite.c::udplite_sk_init
      2 OBJECT acpi.c::__func__.0
      2 OBJECT amd.c::__already_done.10
      2 OBJECT amd.c::__func__.4
      2 OBJECT amd.c::__func__.5
      2 OBJECT bus.c::driver_attr_new_id
      2 OBJECT bus.c::__func__.1
      2 OBJECT bus.c::__func__.2
      2 OBJECT bus.c::__func__.3
      2 OBJECT bus.c::__func__.4
      2 OBJECT bus.c::__func__.5
      2 OBJECT bus.c::__func__.6
      2 OBJECT bus.c::__func__.7
      2 OBJECT bus.c::__func__.8
      2 OBJECT bus.c::__func__.9
      2 OBJECT cgroup.c::__func__.0
      2 OBJECT class.c::__func__.0
      2 OBJECT class.c::__func__.1
      2 OBJECT class.c::__func__.3
      2 OBJECT class.c::__func__.5
      2 OBJECT class.c::__key.0
      2 OBJECT class.c::__key.1
      2 OBJECT class.c::__key.4
      2 OBJECT core.c::__already_done.18
      2 OBJECT core.c::__already_done.19
      2 OBJECT core.c::__already_done.3
      2 OBJECT core.c::dev_attr_size
      2 OBJECT core.c::dev_attr_start
      2 OBJECT core.c::dev_attr_type
      2 OBJECT core.c::empty_attrs
      2 OBJECT core.c::__func__.10
      2 OBJECT core.c::__func__.14
      2 OBJECT core.c::__func__.7
      2 OBJECT core.c::__func__.9
      2 OBJECT core.c::__key.0
      2 OBJECT core.c::__key.2
      2 OBJECT core.c::__key.3
      2 OBJECT dev.c::__func__.0
      2 OBJECT dir.c::__func__.3
      2 OBJECT driver.c::__func__.0
      2 OBJECT fib_rules.c::__msg.0
      2 OBJECT file.c::__func__.2
      2 OBJECT file.c::__key.1
      2 OBJECT file.c::__key.2
      2 OBJECT hpet.c::__func__.4
      2 OBJECT icmp.c::__func__.1
      2 OBJECT inode.c::__func__.1
      2 OBJECT inode.c::__func__.3
      2 OBJECT intel.c::__already_done.10
      2 OBJECT intel.c::__already_done.11
      2 OBJECT intel.c::__already_done.13
      2 OBJECT ioctl.c::__func__.0
      2 OBJECT iommu.c::__already_done.15
      2 OBJECT iommu.c::__func__.10
      2 OBJECT iommu.c::__func__.2
      2 OBJECT iommu.c::_rs.13
      2 OBJECT iommu.c::_rs.5
      2 OBJECT iommu.c::_rs.9
      2 OBJECT irq.c::__func__.0
      2 OBJECT irq.c::__func__.2
      2 OBJECT irqdomain.c::__func__.0
      2 OBJECT irqdomain.c::__func__.1
      2 OBJECT irqdomain.c::__func__.3
      2 OBJECT main.c::__func__.10
      2 OBJECT main.c::__func__.11
      2 OBJECT main.c::__func__.3
      2 OBJECT main.c::__func__.4
      2 OBJECT main.c::__func__.5
      2 OBJECT manage.c::__func__.1
      2 OBJECT mount.c::__func__.0
      2 OBJECT msr.c::__func__.0
      2 OBJECT ping.c::__func__.1
      2 OBJECT property.c::__func__.3
      2 OBJECT qos.c::__func__.0
      2 OBJECT qos.c::__func__.2
      2 OBJECT resource.c::__func__.1
      2 OBJECT route.c::__key.0
      2 OBJECT route.c::__msg.1
      2 OBJECT route.c::__msg.2
      2 OBJECT route.c::__msg.3
      2 OBJECT route.c::__msg.4
      2 OBJECT route.c::__msg.5
      2 OBJECT route.c::__msg.6
      2 OBJECT swap.c::__func__.0
      2 OBJECT syncookies.c::___done.1
      2 OBJECT syncookies.c::msstab
      2 OBJECT syncookies.c::___once_key.2
      2 OBJECT sysfs.c::dev_attr_name
      2 OBJECT sysfs.c::__key.1
      2 OBJECT sysfs.c::power_attrs
      2 OBJECT udp.c::descriptor.12
      2 OBJECT udp.c::descriptor.13
      2 OBJECT udp.c::__func__.2
      2 OBJECT udp.c::__func__.3
      2 OBJECT udp.c::__func__.4
      2 OBJECT utils.c::__func__.5
      3 FUNC core.c::cmask_show
      3 FUNC core.c::edge_show
      3 FUNC core.c::event_show
      3 FUNC core.c::inv_show
      3 FUNC core.c::umask_show
      3 FUNC inode.c::init_once
      3 OBJECT acpi.c::__func__.1
      3 OBJECT core.c::format_attr_cmask
      3 OBJECT core.c::format_attr_edge
      3 OBJECT core.c::format_attr_event
      3 OBJECT core.c::format_attr_inv
      3 OBJECT core.c::format_attr_umask
      3 OBJECT core.c::__func__.6
      3 OBJECT core.c::__func__.8
      3 OBJECT file.c::__key.3
      3 OBJECT generic.c::__func__.0
      3 OBJECT iommu.c::__func__.0
      3 OBJECT iommu.c::__func__.1
      3 OBJECT iommu.c::__func__.8
      3 OBJECT main.c::__func__.0
      3 OBJECT main.c::__func__.1
      3 OBJECT main.c::__func__.6
      3 OBJECT quirks.c::__func__.0
      3 OBJECT sysfs.c::__func__.0
      4 OBJECT core.c::__func__.4
      5 OBJECT inode.c::tokens
      6 OBJECT core.c::__func__.3
      6 OBJECT core.c::__func__.5
      7 OBJECT core.c::__func__.1
      8 OBJECT core.c::__func__.0
      8 OBJECT core.c::__func__.2

We could probably minimize the FUNC duplicates with unique names, but
I'm not as optimistic about the OBJECTs as most are created via macros
like __already_done.X.  Unless clever macro magic?

Next question: what are the odds that these entries, at least the ones
we can't easily rename, need disambiguity for livepatching?  or
kpatch-build for related purposes?

-- Joe




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux