From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from heian.cn.fujitsu.com (unknown [59.151.112.132]) by dpdk.org (Postfix) with ESMTP id AB7375A54 for ; Tue, 9 Jun 2015 08:33:22 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.01,1,1399996800"; d="scan'208";a="96707099" Received: from unknown (HELO edo.cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 09 Jun 2015 14:37:32 +0800 Received: from G08CNEXCHPEKD01.g08.fujitsu.local (localhost.localdomain [127.0.0.1]) by edo.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id t596Vh9C009991 for ; Tue, 9 Jun 2015 14:31:43 +0800 Received: from fnst.localdomain (10.167.225.29) by G08CNEXCHPEKD01.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP Server id 14.3.181.6; Tue, 9 Jun 2015 14:33:22 +0800 Message-ID: <5576885B.9060506@cn.fujitsu.com> Date: Tue, 9 Jun 2015 14:31:55 +0800 From: Li Wei User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.167.225.29] Subject: [dpdk-dev] Build broken with COMBINE_LIBS=y X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2015 06:33:24 -0000 Hi list, After drivers separation, the following building error was encountered, it seems the build system build lib/ first and link it into libintel_dpdk.a and then drivers/ got compiled, so the symbols in drivers never got linked into libintel_dpdk.a. I guess we need add some dependence on drivers/ on libintel_dpdk.a target, but I'm not familiar with the build system :( Error messages as follow: [...] == Build app == Build app/test CC commands.o CC test.o CC test_pci.o CC test_prefetch.o CC test_byteorder.o CC test_per_lcore.o CC test_atomic.o CC test_malloc.o CC test_cycles.o CC test_spinlock.o CC test_memory.o CC test_memzone.o CC test_ring.o CC test_ring_perf.o CC test_pmd_perf.o CC test_table.o CC test_table_pipeline.o CC test_table_tables.o CC test_table_ports.o CC test_table_combined.o CC test_table_acl.o CC test_rwlock.o CC test_timer.o CC test_timer_perf.o CC test_mempool.o CC test_mempool_perf.o CC test_mbuf.o CC test_logs.o CC test_memcpy.o CC test_memcpy_perf.o CC test_hash.o CC test_hash_perf.o CC test_lpm.o CC test_lpm6.o CC test_debug.o CC test_errno.o CC test_tailq.o CC test_string_fns.o CC test_cpuflags.o CC test_mp_secondary.o CC test_eal_flags.o CC test_eal_fs.o CC test_alarm.o CC test_interrupts.o CC test_version.o CC test_func_reentrancy.o CC test_cmdline.o CC test_cmdline_num.o CC test_cmdline_etheraddr.o CC test_cmdline_portlist.o CC test_cmdline_ipaddr.o CC test_cmdline_cirbuf.o CC test_cmdline_string.o CC test_cmdline_lib.o CC test_red.o CC test_sched.o CC test_meter.o CC test_kni.o CC test_power.o CC test_power_acpi_cpufreq.o CC test_power_kvm_vm.o CC test_common.o CC test_distributor.o CC test_distributor_perf.o CC test_reorder.o CC test_devargs.o CC virtual_pmd.o CC packet_burst_generator.o CC test_acl.o CC test_link_bonding.o CC test_link_bonding_mode4.o CC test_pmd_ring.o CC test_kvargs.o LD test test_link_bonding.o: In function `test_add_slave_to_bonded_device': test_link_bonding.c:(.text+0x7ca): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0x7e2): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x807): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_remove_slave_from_bonded_device': test_link_bonding.c:(.text+0x8cf): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.c:(.text+0x8ed): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.o: In function `test_get_slaves_from_bonded_device': test_link_bonding.c:(.text+0xa1f): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xa3e): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xa59): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xa79): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xa90): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xaac): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_set_bonded_port_initialization_mac_assignment': test_link_bonding.c:(.text+0xbd0): undefined reference to `rte_eth_bond_create' test_link_bonding.c:(.text+0xc7e): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0xca0): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xcbf): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.c:(.text+0xddb): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0xed3): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.c:(.text+0xef5): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.o: In function `test_add_already_bonded_slave_to_bonded_device': test_link_bonding.c:(.text+0x11fa): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x1244): undefined reference to `rte_eth_bond_create' test_link_bonding.c:(.text+0x1269): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.o: In function `test_create_bonded_device_with_invalid_params': test_link_bonding.c:(.text+0x131d): undefined reference to `rte_eth_bond_create' test_link_bonding.c:(.text+0x1341): undefined reference to `rte_eth_bond_create' test_link_bonding.c:(.text+0x1362): undefined reference to `rte_eth_bond_create' test_link_bonding.o: In function `test_create_bonded_device': test_link_bonding.c:(.text+0x13e9): undefined reference to `rte_eth_bond_mode_set' test_link_bonding.c:(.text+0x1405): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x1421): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x144d): undefined reference to `rte_eth_bond_create' test_link_bonding.o: In function `test_stop_bonded_device': test_link_bonding.c:(.text+0x158d): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x15b0): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_start_bonded_device': test_link_bonding.c:(.text+0x1694): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x16b7): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x16d0): undefined reference to `rte_eth_bond_mode_get' test_link_bonding.c:(.text+0x16e9): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_add_slave_to_invalid_bonded_device': test_link_bonding.c:(.text+0x19e1): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0x19ff): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.o: In function `test_remove_slave_from_invalid_bonded_device': test_link_bonding.c:(.text+0x1a76): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.c:(.text+0x1a99): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.o: In function `initialize_bonded_device_with_slaves.part.1': test_link_bonding.c:(.text+0x24c8): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x24fe): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0x251a): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x2596): undefined reference to `rte_eth_bond_mode_set' test_link_bonding.o: In function `remove_slaves_and_stop_bonded_device': test_link_bonding.c:(.text+0x27e1): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.c:(.text+0x27ff): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x2880): undefined reference to `rte_eth_bond_mac_address_reset' test_link_bonding.o: In function `test_broadcast_verify_mac_assignment': test_link_bonding.c:(.text+0x29cf): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0x2b3d): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.o: In function `test_tlb_verify_slave_link_status_change_failover': test_link_bonding.c:(.text+0x3c41): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x3c6b): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x3c80): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.c:(.text+0x3cbf): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x3d1c): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x3d31): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_tlb_verify_promiscuous_enable_disable': test_link_bonding.c:(.text+0x4108): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_tlb_verify_mac_assignment': test_link_bonding.c:(.text+0x43bc): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0x44eb): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.o: In function `test_tlb_rx_burst': test_link_bonding.c:(.text+0x4838): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_balance_verify_mac_assignment': test_link_bonding.c:(.text+0x510c): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0x523b): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.o: In function `test_balance_xmit_policy_configuration': test_link_bonding.c:(.text+0x5898): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.c:(.text+0x58ae): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.c:(.text+0x58c4): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.c:(.text+0x58d8): undefined reference to `rte_eth_bond_xmit_policy_get' test_link_bonding.c:(.text+0x58f1): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.c:(.text+0x5905): undefined reference to `rte_eth_bond_xmit_policy_get' test_link_bonding.c:(.text+0x591b): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.c:(.text+0x592f): undefined reference to `rte_eth_bond_xmit_policy_get' test_link_bonding.c:(.text+0x593e): undefined reference to `rte_eth_bond_xmit_policy_get' test_link_bonding.o: In function `test_activebackup_verify_mac_assignment': test_link_bonding.c:(.text+0x5b6c): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0x5c9b): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.o: In function `test_activebackup_verify_promiscuous_enable_disable': test_link_bonding.c:(.text+0x5f98): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_activebackup_rx_burst': test_link_bonding.c:(.text+0x61c7): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_roundrobin_verify_mac_assignment': test_link_bonding.c:(.text+0x65af): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0x671d): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.o: In function `test_roundrobin_verfiy_polling_slave_link_status_change': test_link_bonding.c:(.text+0x73d7): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0x75fb): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.c:(.text+0x7616): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding.o: In function `test_status_interrupt': test_link_bonding.c:(.text+0x7880): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x794d): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_set_bonding_mode': test_link_bonding.c:(.text+0x7c3e): undefined reference to `rte_eth_bond_mode_set' test_link_bonding.c:(.text+0x7c54): undefined reference to `rte_eth_bond_mode_set' test_link_bonding.c:(.text+0x7c6a): undefined reference to `rte_eth_bond_mode_set' test_link_bonding.c:(.text+0x7c7e): undefined reference to `rte_eth_bond_mode_get' test_link_bonding.c:(.text+0x7c91): undefined reference to `rte_eth_bond_mode_get' test_link_bonding.c:(.text+0x7ca5): undefined reference to `rte_eth_bond_mode_get' test_link_bonding.o: In function `balance_l34_tx_burst.constprop.6': test_link_bonding.c:(.text+0x8152): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.o: In function `balance_l23_tx_burst': test_link_bonding.c:(.text+0x8642): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.o: In function `test_balance_l2_tx_burst': test_link_bonding.c:(.text+0x8b17): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.o: In function `test_adding_slave_after_bonded_device_started': test_link_bonding.c:(.text+0x8faf): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.o: In function `test_broadcast_verify_slave_link_status_change_behaviour': test_link_bonding.c:(.text+0x90b1): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x90ce): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x9114): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_add_remove_multiple_slaves_to_from_bonded_device': test_link_bonding.c:(.text+0x9553): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0x956f): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x9594): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_roundrobin_verify_slave_link_status_change_behaviour': test_link_bonding.c:(.text+0x9712): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0x972f): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0x9768): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_balance_tx_burst_slave_tx_fail': test_link_bonding.c:(.text+0xa085): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.o: In function `test_activebackup_tx_burst': test_link_bonding.c:(.text+0xa660): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_set_explicit_bonded_mac': test_link_bonding.c:(.text+0xa8ee): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.c:(.text+0xa905): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.c:(.text+0xa91b): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.c:(.text+0xa932): undefined reference to `rte_eth_bond_mac_address_set' test_link_bonding.c:(.text+0xa96a): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xa9a4): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0xa9c5): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xaa8f): undefined reference to `rte_eth_bond_mac_address_reset' test_link_bonding.c:(.text+0xaaa3): undefined reference to `rte_eth_bond_mac_address_reset' test_link_bonding.c:(.text+0xaac4): undefined reference to `rte_eth_bond_mac_address_reset' test_link_bonding.o: In function `test_set_primary_slave': test_link_bonding.c:(.text+0xb400): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xb43a): undefined reference to `rte_eth_bond_slave_add' test_link_bonding.c:(.text+0xb456): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xb4ba): undefined reference to `rte_eth_bond_mode_set' test_link_bonding.c:(.text+0xb4d6): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0xb4ec): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0xb50e): undefined reference to `rte_eth_bond_primary_set' test_link_bonding.c:(.text+0xb522): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.c:(.text+0xb5f3): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.c:(.text+0xb607): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.c:(.text+0xb628): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.o: In function `test_balance_verify_slave_link_status_change_behaviour': test_link_bonding.c:(.text+0xbeab): undefined reference to `rte_eth_bond_xmit_policy_set' test_link_bonding.c:(.text+0xbec7): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xbee4): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xbf2a): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xc0ac): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.o: In function `test_activebackup_verify_slave_link_status_change_failover': test_link_bonding.c:(.text+0xc535): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding.c:(.text+0xc552): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xc574): undefined reference to `rte_eth_bond_primary_get' test_link_bonding.c:(.text+0xc5b3): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xc600): undefined reference to `rte_eth_bond_active_slaves_get' test_link_bonding.c:(.text+0xc625): undefined reference to `rte_eth_bond_primary_get' test_link_bonding_mode4.o: In function `check_environment': test_link_bonding_mode4.c:(.text+0x54c): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding_mode4.c:(.text+0x587): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding_mode4.c:(.text+0x692): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding_mode4.o: In function `remove_slaves_and_stop_bonded_device': test_link_bonding_mode4.c:(.text+0x736): undefined reference to `rte_eth_bond_slaves_get' test_link_bonding_mode4.c:(.text+0x7c3): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding_mode4.c:(.text+0x82d): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding_mode4.c:(.text+0x897): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding_mode4.c:(.text+0x8fd): undefined reference to `rte_eth_bond_slave_remove' test_link_bonding_mode4.o: In function `initialize_bonded_device_with_slaves.constprop.6': test_link_bonding_mode4.c:(.text+0xbfa): undefined reference to `rte_eth_bond_slave_add' test_link_bonding_mode4.c:(.text+0xc98): undefined reference to `rte_eth_bond_8023ad_setup' test_link_bonding_mode4.o: In function `bond_handshake': test_link_bonding_mode4.c:(.text+0x1cb4): undefined reference to `rte_eth_bond_8023ad_conf_get' test_link_bonding_mode4.o: In function `test_mode4_expired': test_link_bonding_mode4.c:(.text+0x205f): undefined reference to `rte_eth_bond_8023ad_conf_get' test_link_bonding_mode4.c:(.text+0x20a9): undefined reference to `rte_eth_bond_8023ad_setup' test_link_bonding_mode4.o: In function `test_mode4_tx_burst': test_link_bonding_mode4.c:(.text+0x28af): undefined reference to `rte_eth_bond_8023ad_conf_get' test_link_bonding_mode4.o: In function `test_mode4_marker': test_link_bonding_mode4.c:(.text+0x2eef): undefined reference to `rte_eth_bond_8023ad_conf_get' test_link_bonding_mode4.o: In function `test_setup': test_link_bonding_mode4.c:(.text+0x378b): undefined reference to `rte_eth_bond_mode_get' test_link_bonding_mode4.c:(.text+0x37a1): undefined reference to `rte_eth_bond_mode_set' test_link_bonding_mode4.c:(.text+0x37f9): undefined reference to `rte_eth_from_rings' test_link_bonding_mode4.c:(.text+0x3827): undefined reference to `rte_eth_bond_create' test_link_bonding_mode4.o: In function `test_mode4_rx': test_link_bonding_mode4.c:(.text+0x441d): undefined reference to `rte_eth_bond_8023ad_conf_get' collect2: error: ld returned 1 exit status /home/liwei/src/dpdk/mk/rte.app.mk:195: recipe for target 'test' failed make[3]: *** [test] Error 1 /home/liwei/src/dpdk/mk/rte.subdir.mk:61: recipe for target 'test' failed make[2]: *** [test] Error 2 /home/liwei/src/dpdk/mk/rte.sdkbuild.mk:93: recipe for target 'app' failed make[1]: *** [app] Error 2 /home/liwei/src/dpdk/mk/rte.sdkroot.mk:124: recipe for target 'all' failed make: *** [all] Error 2