我正在为Android使用libjpeg-turbo端口。在源代码方面,它与基本的jpeg-turbo没有太大的不同:http://git.linaro.org/gitweb?p=people/tomgall/libjpeg-turbo/libjpeg-turbo.git;a=shortlog;h=refs/heads/android。
有一个模块(静态库),由两个与cpu特性相关的文件组成: jsimd_arm_neon.S和jsimd_arm.c。我想要编译有霓虹灯支持的jpeg-turbo,我必须定义__ARM_HAVE_NEON并用-march=armv7-a -mfpu=neon编译这个模块。我希望库运行在不支持Neon的旧硬件上(比如Tegra 2),我应该删除neon编译器标志和undef __ARM_HAVE_NEON。
我的问题是:如何编译它,以便可以在运行时选择霓虹灯或非霓虹灯路径,而不需要在非霓虹灯硬件上使用SIGILL?我知道如何在运行时检查NEON,但我不知道如何修改libjpeg-turbo并组织库。
发布于 2014-04-21 02:09:59
这是个老问题,但我还是要补充一下,以防万一。有人说得很详细,其中一个问题就是动态选择霓虹灯。在这里解释:https://stackoverflow.com/a/20697814/712413。
相关部分是项4,用于修改init_simd()方法中的一些行。
https://stackoverflow.com/questions/20545778
复制相似问题