iproute2: missing dynamic symbols in Android (ICS)

From: Yegor Yefremov <hidden>
Date: 2012-02-23 10:04:20

I'm working with Android and would like to use ip utility. Support for
this utility was added some time ago and Android provides  2.6.35
version of iproute2.

The problem I have is that symbols from ip/iplink_can.c,
ip/iplink_vlan.c etc. are missing in the final binary. I also get
following compiler warnings:

target thumb C: ip <= external/iproute2/ip/iplink_can.c
prebuilt/linux-x86/ccache/ccache
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc
-I bionic/libc/kernel/common -I bionic/libc/kernel/arch-arm -I
external/iproute2/include -I external/iproute2/ip -I
out/target/product/beagleboard/obj/EXECUTABLES/ip_intermediates -I
dalvik/libnativehelper/include/nativehelper -isystem
system/core/include -isystem hardware/libhardware/include -isystem
hardware/libhardware_legacy/include -isystem hardware/ril/include
-isystem dalvik/libnativehelper/include -isystem
frameworks/base/include -isystem frameworks/base/opengl/include
-isystem frameworks/base/native/include -isystem external/skia/include
-isystem out/target/product/beagleboard/obj/include -isystem
bionic/libc/arch-arm/include -isystem bionic/libc/include -isystem
bionic/libstdc++/include -isystem bionic/libm/include -isystem
bionic/libm/include/arm -isystem bionic/libthread_db/include -c
-fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections
-fdata-sections -funwind-tables -fstack-protector -Wa,--noexecstack
-Werror=format-security -fno-short-enums -march=armv7-a
-mfloat-abi=softfp -mfpu=neon -include
system/core/include/arch/linux-arm/AndroidConfig.h -I
system/core/include/arch/linux-arm/ -Wno-psabi -mthumb-interwork
-DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self
-Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor
-Werror=address -Werror=sequence-point -DNDEBUG -g -Wstrict-aliasing=2
-fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG
-UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing  -O2 -g
-W -Wall      -MD -o
out/target/product/beagleboard/obj/EXECUTABLES/ip_intermediates/iplink_can.o
external/iproute2/ip/iplink_can.c
external/iproute2/ip/iplink_can.c: In function 'can_parse_opt':
external/iproute2/ip/iplink_can.c:97: warning: unused parameter 'lu'
external/iproute2/ip/iplink_can.c: In function 'can_print_opt':
external/iproute2/ip/iplink_can.c:196: warning: unused parameter 'lu'
external/iproute2/ip/iplink_can.c: In function 'can_print_xstats':
external/iproute2/ip/iplink_can.c:260: warning: unused parameter 'lu'

This is how ip-/Android.mk looks like:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := ip.c ipaddress.c ipaddrlabel.c iproute.c iprule.c   \
        rtm_map.c iptunnel.c ip6tunnel.c tunnel.c ipneigh.c ipntable.c \
        iplink.c ipmaddr.c ipmonitor.c ipmroute.c ipprefix.c ipxfrm.c  \
        xfrm_state.c xfrm_policy.c xfrm_monitor.c iplink_vlan.c        \
        link_veth.c link_gre.c iplink_can.c iptuntap.c

LOCAL_MODULE := ip

LOCAL_MODULE_TAGS := optional

LOCAL_SHARED_LIBRARIES := libc libm libdl

LOCAL_SHARED_LIBRARIES += libiprouteutil libnetlink

LOCAL_C_INCLUDES := $(KERNEL_HEADERS) external/iproute2/include

LOCAL_CFLAGS := -O2 -g -W -Wall

include $(BUILD_EXECUTABLE)

I tried to get help from Android Community but none answered:
https://groups.google.com/d/topic/android-building/yjV4iYnT1Zc/discussion

Any idea how can I solve this problem?

Best regards,
Yegor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help