shared library text segment is not shareable

佐手、 提交于 2019-12-08 23:42:20

问题


I am trying to add HW video acceleration to a cm10.2 port for my device. I get no errors but the one below, then make stops working, apparently without any error.

/home/vektor/CM102/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: warning: shared library text segment is not shareable
/home/vektor/CM102/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: error: treating warnings as errors
collect2: error: ld returned 1 exit status
make: *** [/home/vektor/CM102/out/target/product/s7300b/obj/SHARED_LIBRARIES/libamplayer_intermediates/LINKED/libamplayer.so] Error 1
make: *** Waiting for unfinished jobs....

What does it mean? Should I compile with less restrictive flags or is something worse causing it?


回答1:


Update:

from Android NDK r11 you can use

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel

You can also use

LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true

Previous answer:

This is a recent change in toolchain which treats this warning as an error.

One workaround is to add --no-warn-shared-textrel to LOCAL_LDFLAGS to disable treating warning as an error. You can do that in your Android.mk like

LOCAL_LDFLAGS := --no-warn-shared-textrel



回答2:


Workaround for Android NDK r11:

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel

LOCAL_LDLIBS is applied later in the option chain than LOCAL_LDFLAGS, and consequently overrides the default.




回答3:


For asop project(eg: aosp/external/myproject/)

add this line to your android.mk

LOCAL_CPPFLAGS += -w -frtti



来源:https://stackoverflow.com/questions/19986523/shared-library-text-segment-is-not-shareable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!