Project

General

Profile

Actions

Bug #344

closed

warnings from object tools 'function falls through to next function x'

Added by Ruben Kelevra over 6 years ago. Updated about 6 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
Target version:
-
Start date:
08/12/2017
Due date:
% Done:

0%

Estimated time:

Description

I've discovered a strange behavior of objtool on one of my machines, which runs arch and shouldn't be different than any other arch machines I use - software wise.

Any idea what's going on here?

  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_algo.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_ogm_neigh_is_sob() falls through to next function batadv_iv_ogm_neigh_cmp()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_ogm_neigh_cmp() falls through to next function batadv_iv_gw_print()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_ogm_iface_enable() falls through to next function batadv_iv_gw_is_eligible()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_gw_dump() falls through to next function batadv_iv_ogm_queue_add()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_ogm_orig_dump() falls through to next function batadv_iv_ogm_neigh_dump_hardif.isra.9()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_ogm_neigh_dump_hardif.isra.9() falls through to next function batadv_iv_ogm_neigh_dump()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bat_iv_ogm.o: warning: objtool: batadv_iv_ogm_neigh_dump() falls through to next function batadv_iv_ogm_orig_add_if()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bitarray.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_bla_loopdetect_report() falls through to next function batadv_bla_send_claim()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_bla_send_claim() falls through to next function batadv_bla_send_announce()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_bla_send_announce() falls through to next function batadv_claim_hash_find.isra.10()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_handle_unclaim() falls through to next function batadv_bla_purge_claims()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_handle_claim() falls through to next function batadv_bla_update_orig_address()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_bla_init() falls through to next function batadv_bla_check_bcast_duplist()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: batadv_bla_rx() falls through to next function batadv_bla_tx()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/bridge_loop_avoidance.o: warning: objtool: .text: unexpected end of section
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/debugfs.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/distributed-arp-table.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/distributed-arp-table.o: warning: objtool: batadv_dat_entry_hash_find() falls through to next function batadv_dat_tvlv_ogm_handler_v1()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/distributed-arp-table.o: warning: objtool: batadv_dat_send_data() falls through to next function batadv_arp_get_type.isra.12()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/fragmentation.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/fragmentation.o: warning: objtool: batadv_frag_skb_buffer() falls through to next function batadv_frag_skb_fwd()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/fragmentation.o: warning: objtool: .text: unexpected end of section
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_client.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_client.o: warning: objtool: batadv_gw_node_delete() falls through to next function batadv_gw_node_free()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_common.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_common.o: warning: objtool: batadv_gw_tvlv_ogm_handler_v1() falls through to next function batadv_parse_throughput()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_common.o: warning: objtool: batadv_parse_throughput() falls through to next function batadv_gw_tvlv_container_update()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_common.o: warning: objtool: batadv_gw_tvlv_container_update() falls through to next function batadv_gw_bandwidth_set()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/gateway_common.o: warning: objtool: batadv_gw_bandwidth_set() falls through to next function batadv_gw_init()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/hard-interface.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/hash.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/icmp_socket.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/icmp_socket.o: warning: objtool: batadv_socket_read() falls through to next function batadv_socket_init()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/main.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/main.o: warning: objtool: batadv_skb_set_priority() falls through to next function batadv_batman_skb_recv()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/main.o: warning: objtool: batadv_skb_crc32() falls through to next function batadv_get_vid()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/netlink.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/netlink.o: warning: objtool: batadv_netlink_tp_meter_start() falls through to next function batadv_netlink_dump_hardifs()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/netlink.o: warning: objtool: batadv_netlink_dump_hardifs() falls through to next function batadv_netlink_get_mesh_info()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/netlink.o: warning: objtool: batadv_netlink_get_mesh_info() falls through to next function batadv_netlink_get_ifindex()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/originator.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/routing.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/send.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/send.o: warning: objtool: .text: unexpected end of section
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/soft-interface.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/soft-interface.o: warning: objtool: batadv_interface_set_mac_addr() falls through to next function batadv_interface_change_mtu()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/soft-interface.o: warning: objtool: batadv_softif_init_late() falls through to next function batadv_get_strings()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/soft-interface.o: warning: objtool: batadv_interface_tx() falls through to next function batadv_interface_rx()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_isolation_mark() falls through to next function batadv_show_isolation_mark()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_bonding() falls through to next function batadv_store_aggregated_ogms()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_aggregated_ogms() falls through to next function batadv_store_gw_mode()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_fragmentation() falls through to next function batadv_store_distributed_arp_table()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_distributed_arp_table() falls through to next function batadv_store_bridge_loop_avoidance()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_bridge_loop_avoidance() falls through to next function batadv_kobj_to_vlan()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_store_vlan_ap_isolation() falls through to next function batadv_show_vlan_ap_isolation()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: batadv_sysfs_add_vlan() falls through to next function batadv_sysfs_del_vlan()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/sysfs.o: warning: objtool: .text: unexpected end of section
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/tp_meter.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/tp_meter.o: warning: objtool: batadv_tp_start() falls through to next function batadv_tp_stop()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/translation-table.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/translation-table.o: warning: objtool: batadv_tt_global_update_crc() falls through to next function batadv_tt_global_del_orig_node.isra.10()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/translation-table.o: warning: objtool: batadv_tt_tvlv_container_update() falls through to next function batadv_tt_local_commit_changes_nolock()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/translation-table.o: warning: objtool: batadv_tt_local_commit_changes_nolock() falls through to next function batadv_tt_global_hash_count()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/translation-table.o: warning: objtool: batadv_tt_local_dump() falls through to next function batadv_tt_local_remove()
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/translation-table.o: warning: objtool: batadv_tt_global_dump() falls through to next function batadv_tt_global_del_orig()
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/tvlv.o
  LD [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/batman-adv.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/batman-adv.mod.o
  LD [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.2/build/net/batman-adv/batman-adv.ko
Actions #1

Updated by Sven Eckelmann over 6 years ago

  • Status changed from New to Feedback
  • Assignee changed from batman-adv developers to Ruben Kelevra

This could be related to some new changes from Ingo Molnar. You can try to contact the author via Ingo Molnar <> (please Cc the mailing list) to get some more info about that.

Actions #2

Updated by Sven Eckelmann over 6 years ago

Just checked the MAINTAINERS file and it seems Josh Poimboeuf <> is the current maintainer of objtool. So he might also be a good person to ask for information about objtool.

And btw. could it be that you only had libelf-dev/libelf-devel/elfutils-libelf-devel (sorry, I don't know how the package is called on Arch) on this machine but not on the other ones? Or did you enable CONFIG_STACK_VALIDATION only on this system?

I've just tried linux-next 20170811 here with the config from SubmittingLinux and could not reproduce it.

Actions #3

Updated by Ruben Kelevra over 6 years ago

@Sven Eckelmann,

core/elfutils wasn't indeed installed on the one machine, but installing doesn't fix anything. :/

Arch doesn't have any -dev packages, they usually include everything in one package. I have no idea what CONFIG_STACK_VALIDATION is, so I guess the answer is no.

I've just tried linux-next 20170811 here with the config from SubmittingLinux and could not reproduce it.

Both systems are the latest updates for arch available, and I just diffed the packages on both systems, there seems nothing to be missing. I also just reinstalled all installed packages, to rule out any filesystem-issues. :)

Actions #4

Updated by Ruben Kelevra over 6 years ago

This could be related to some new changes from Ingo Molnar. You can try to contact the author via Ingo Molnar <> (please Cc the mailing list) to get some more info about that.

I think this is no recent-changes thing, batman-adv 2017.1 shows the same error messages ... this is somewhat out of my scope what could cause this.

Actually, this is our database server, so no big stuff configured there, just some user-space programs and it showed no issues like this before.

Actions #5

Updated by Sven Eckelmann over 6 years ago

This is not a batman-adv things. The objtool and surrounding checkers are part of your kernel and only gets enabled when the correct option are set and all dependencies are installed. So it depends on on what your compiler does, what packages are installed and how your kernel is configured. You never told us how your kernel is configured or which version of Linux it is [1]. This is why I mentioned CONFIG_STACK_VALIDATION here to point you to one of the relevant options.

We have no assembler parts in batman-adv and so only the compiler can be the reason for the missing returns in functions - or the objtool is just buggy. The latter is the reason why I've mentioned the recent changes in Linux.

[1] But I would guess that your result depends on Arch specific tweaks/patches anyway

Actions #6

Updated by Ruben Kelevra over 6 years ago

Hey Sven,

I've compared all installed packages on both systems, this are the missing packages on the system which have troubles to compile batman-adv:

https://pastebin.com/6qhzjCd2

Anything which should I have installed to compile batman-adv?

both systems running the same versions:

standard-arch kernel, 4.12.5.
gcc 7.1.1-4
glibc 2.25-7.
linux-firmware 20170622.7d2c913-1
elfutils 0.169-2
libelf 0.169-2.

I haven't changed any compiling options, how do I check the CONFIG_STACK_VALIDATION for malicious changes?

The whole question is: is the one system broken and need to be reinstalled or is this just a rare occurrence bug, which needs to be addressed or is a dependency missing - because I'm the package co-maintainer for Arch Linux.

Actions #7

Updated by Sven Eckelmann over 6 years ago

Again, this is not a batman-adv thing but a compiler/kernel "problem". Please contact the relevant maintainers.

There are no special batman-adv dependencies which you have to install here.

Actions #8

Updated by Sven Eckelmann about 6 years ago

  • Status changed from Feedback to Rejected

Closing this because non-batman-adv bugs are out-of-scope for this issue tracker

Actions

Also available in: Atom PDF