boostorg / container

STL-like containers from Boost
http://www.boost.org/libs/container/
Boost Software License 1.0
101 stars 113 forks source link

compile problems on Android ndk r16 beta 1 #61

Closed berkus closed 6 years ago

berkus commented 6 years ago

Hello, in attempt to build boost for android with more or less reasonable strict settings (-Werror) I uncovered some bugs.

clang-darwin.compile.c android-build/boost/bin.v2/ 
libs/container/build/clang-darwin-5.0~x86/debug/address- 
model-32/link-static/target-os-android/threading-multi/alloc_lib.o 
In file included from libs/container/src/alloc_lib.c:19: 
libs/container/src/dlmalloc_ext_2_8_6.c:1097:8: error: variable 'ret' is 
used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes- 
uninitialized] 
   if (!PREACTION(m)) { 
       ^~~~~~~~~~~~~ 
libs/container/src/dlmalloc_ext_2_8_6.c:1125:11: note: uninitialized use 
occurs here 
   return ret; 
          ^~~ 
libs/container/src/dlmalloc_ext_2_8_6.c:1097:4: note: remove the 'if' if 
its condition is always true 
   if (!PREACTION(m)) { 
   ^~~~~~~~~~~~~~~~~~~ 
libs/container/src/dlmalloc_ext_2_8_6.c:1095:4: note: variable 'ret' is 
declared here 
   boost_cont_malloc_stats_t ret; 
   ^ 
1 error generated. 
    "/usr/local/opt/android-ndk/android-ndk-r16-beta1// 
toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++" 
"-DBOOST_AC_USE_PTHREADS" "-DBOOST_SP_USE_PTHREADS" "-fvisibility=hidden" 
"-fvisibility-inlines-hidden" "-Wno-unused-local-typedef" -x c -O0 -g -O0 
-fno-inline -Wall -g --target=i686-none-linux-android 
--gcc-toolchain=/usr/local/opt/android-ndk/android-ndk- 
r16-beta1//toolchains/x86-4.9/prebuilt/darwin-x86_64 
--sysroot=/usr/local/opt/android-ndk/android-ndk-r16-beta1//sysroot 
-isystem /usr/local/opt/android-ndk/android-ndk-r16-beta1// 
sources/cxx-stl/llvm-libc++/include -isystem /usr/local/opt/android-ndk/ 
android-ndk-r16-beta1//sources/cxx-stl/llvm-libc++abi/include -isystem 
/usr/local/opt/android-ndk/android-ndk-r16-beta1//sources/android/support/include 
-isystem /usr/local/opt/android-ndk/android-ndk-r16-beta1//sysroot/usr/include 
-isystem /usr/local/opt/android-ndk/android-ndk-r16-beta1// 
sysroot/usr/include/i686-linux-android -DANDROID -D__ANDROID_API__=21 
-ffunction-sections -funwind-tables -fstack-protector-strong 
-fno-limit-debug-info -fPIC -no-canonical-prefixes -mstackrealign 
-Wa,--noexecstack -Wformat -Werror=format-security -Wall -Werror -Wshadow 
-march=i686 -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTAINER_STATIC_LINK=1 
-D_LITTLE_ENDIAN -I"." -c -o "android-build/boost/bin.v2/ 
libs/container/build/clang-darwin-5.0~x86/debug/address- 
model-32/link-static/target-os-android/threading-multi/alloc_lib.o" 
"libs/container/src/alloc_lib.c"

This is using clang toolchain on Android NDK r16 beta1.

​Reference to user-config.jam for the build

berkus commented 6 years ago

Xref https://svn.boost.org/trac10/ticket/13271

igaztanaga commented 6 years ago

Thanks for the report. Referenced commit should fix the uninitialized variable issue.