OpenSL|ES in Android 2.3 can not be built with Linaro GCC 4.5

Bug #732564 reported by Jim Huang on 2011-03-10
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linaro Android
Fix Released
Medium
Luse Cheng

Bug Description

While trying the combination of Android 2.3.2 + linaro-gcc 4.5-2011.03-0, OpenSL|ES can not get built as following messages:

arget thumb C++: BufferQueue_test <=
system/media/opensles/tests/automated/BufferQueue_test.cpp
system/media/opensles/tests/automated/BufferQueue_test.cpp: In member
function 'void TestBufferQueue::InvalidBuffer()':
system/media/opensles/tests/automated/BufferQueue_test.cpp:179:13:
warning: passing NULL to non-pointer argument 3 of 'static
testing::AssertionResult
testing::internal::EqHelper<true>::Compare(const char*, const char*,
const T1&, T2*) [with T1 = int, T2 = const SLObjectItf_* const]'
system/media/opensles/tests/automated/BufferQueue_test.cpp:179:13:
warning: passing NULL to non-pointer argument 3 of 'static
testing::AssertionResult
testing::internal::EqHelper<true>::Compare(const char*, const char*,
const T1&, T2*) [with T1 = int, T2 = const SLObjectItf_* const]'
system/media/opensles/tests/automated/BufferQueue_test.cpp: In member
function 'virtual void TestBufferQueue_testMuteSolo_Test::TestBody()':
system/media/opensles/tests/automated/BufferQueue_test.cpp:324:5:
warning: passing NULL to non-pointer argument 3 of 'static
testing::AssertionResult
testing::internal::EqHelper<true>::Compare(const char*, const char*,
const T1&, T2*) [with T1 = int, T2 = const SLObjectItf_* const]'
system/media/opensles/tests/automated/BufferQueue_test.cpp:324:5:
warning: passing NULL to non-pointer argument 3 of 'static
testing::AssertionResult
testing::internal::EqHelper<true>::Compare(const char*, const char*,
const T1&, T2*) [with T1 = int, T2 = const SLObjectItf_* const]'
system/media/opensles/tests/automated/BufferQueue_test.cpp: In member
function 'virtual void TestBufferQueue_testSeek_Test::TestBody()':
system/media/opensles/tests/automated/BufferQueue_test.cpp:334:5:
warning: passing NULL to non-pointer argument 3 of 'static
testing::AssertionResult
testing::internal::EqHelper<true>::Compare(const char*, const char*,
const T1&, T2*) [with T1 = int, T2 = const SLObjectItf_* const]'
system/media/opensles/tests/automated/BufferQueue_test.cpp:334:5:
warning: passing NULL to non-pointer argument 3 of 'static
testing::AssertionResult
testing::internal::EqHelper<true>::Compare(const char*, const char*,
const T1&, T2*) [with T1 = int, T2 = const SLObjectItf_* const]'
target Executable: BufferQueue_test
(out/target/product/beagleboard/obj/EXECUTABLES/BufferQueue_test_intermediates/LINKED/BufferQueue_test)
out/target/product/beagleboard/obj/lib/libOpenSLES.so: undefined
reference to `typeinfo for android::SortedVectorImpl'
out/target/product/beagleboard/obj/lib/libOpenSLES.so: undefined
reference to `vtable for __cxxabiv1::__vmi_class_type_info'
collect2: ld returned 1 exit status
make: *** [out/target/product/beagleboard/obj/EXECUTABLES/BufferQueue_test_intermediates/LINKED/BufferQueue_test]

Jim Huang (jserv) on 2011-03-10
Changed in linaro-android:
assignee: nobody → Luse Cheng (luse)
Luse Cheng (luse) wrote :

In libopenSLES, IAndroidEffect.c use c++ releative features but with .c extension.
Compiler driver leak some c++ parts for this case druing linking.

It can simple fix it with renaming IAndroidEffect.c to IAndroidEffect.cpp and modifying Android.mk

Changed in linaro-android:
status: New → Opinion
Jim Huang (jserv) wrote :
Changed in linaro-android:
status: Opinion → Fix Committed
Alexander Sack (asac) wrote :

if linaro toolchain would be our default i this would be importance critical as it blocks everything. But since its something lower. I think getting all android tree building without changing -Werror is milestone 11.05 and since its not next milestone importance medium feels appropriate.

Changed in linaro-android:
importance: Undecided → Medium
milestone: none → linaro-11.05-final
Alexander Sack (asac) on 2011-05-28
Changed in linaro-android:
status: Fix Committed → Fix Released
Zach Pfeffer (pfefferz) wrote :

I saw this using the default toolchain that came with AOSP:

make TARGET_PRODUCT=pandaboard TARGET_TOOLS_PREFIX=prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-

Sounds like the tip isn't picking this up anymore.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers