add RASPBIAN options to workaround threading issues when building for ARMV7 on Raspbian

raspbian is built for an armv6 target, so when building for armv7, there is a problem with the ABI compatibility
for threaded applications. /usr/include/c++/*/ext/concurrence.h - undefining __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 makes it use _S_mutex
as it would when ppsspp is built for an armv6 target

see https://github.com/raspberrypi/firmware/issues/491#issuecomment-151723041

fixes problems found by users on #7479
This commit is contained in:
Jools Wills committed 2015-10-28 05:20:59 +00:00
1 parent 6dc0c07c96
commit bca9a9011f
1 file changed
+4 -2
+4 -2
View File
@@ -42,8 +42,6 @@ if(EXISTS "/opt/vc/include/bcm_host.h")
set(RPI ON)
set(USING_GLES2 ON)
set(USING_FBDEV ON)
# disable armv7 on rpi2 as building for armv6 causes a crash - https://github.com/hrydgard/ppsspp/issues/7479
set(ARMV7 OFF)
endif()
if(BB)
@@ -94,6 +92,7 @@ option(BB "Set to ON if targeting a Beaglebone/Beaglebone Black device" ${BB})
option(USING_EGL "Set to ON if target environment uses EGL" ${USING_EGL})
option(USING_FBDEV "Set to ON if target environment uses fbdev (eg. Pandora)" ${USING_FBDEV})
option(USING_GLES2 "Set to ON if target device uses OpenGL ES 2.0" ${USING_GLES2})
option(RASPBIAN "Set to ON to workaround threading issues when building for ARMV7 on Raspbian" ${RASPBIAN})
# :: Frontends
option(USING_QT_UI "Set to ON if you wish to use the Qt frontend wrapper" ${USING_QT_UI})
option(MOBILE_DEVICE "Set to ON when targetting a mobile device" ${MOBILE_DEVICE})
@@ -194,6 +193,9 @@ endif()
if(MOBILE_DEVICE)
add_definitions(-DMOBILE_DEVICE)
endif()
if(ARMV7 AND RASPBIAN)
add_definitions(-U__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2)
endif()
if (NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type selected, default to Release")