Enable UndefinedBehaviorSanitizer 87/137787/3
authorDenis Khalikov <d.khalikov@partner.samsung.com>
Fri, 7 Jul 2017 13:41:19 +0000 (16:41 +0300)
committerJihoon Kim <jihoon48.kim@samsung.com>
Sun, 23 Jul 2017 23:21:41 +0000 (23:21 +0000)
The -fvisibility=hidden option disables a generation of the rtti information
for some classes with hidden visibility, this information is critically
needed for ubsan VPTR check. Since this library needed to ise-default package,
we should just disable visibility option with ubsan to avoid situation
with undefined reference to typeinfo.

Change-Id: I95ccb0b8bceea6efae1e327f95b885a5f40de609
Signed-off-by: Denis Khalikov <d.khalikov@partner.samsung.com>
packaging/libscl-ui.spec

index 460ac23..dfe88e4 100644 (file)
@@ -45,6 +45,16 @@ export CFLAGS+=" -fvisibility=hidden -DTIZEN_DEBUG_ENABLE -Werror"
 export CXXFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden -DTIZEN_DEBUG_ENABLE -Werror"
 export FFLAGS+=" -DTIZEN_DEBUG_ENABLE"
 
+# The -fvisibility=hidden option disables a generation of the rtti information for
+# some classes with hidden visibility, this information is critically needed for
+# ubsan VPTR check. Since this library needed to ise-default package, we should
+# just disable visibility option with ubsan to avoid situation with undefined
+# refernce to typeinfo.
+%{?ubsan:
+export CFLAGS=$(echo $CFLAGS | sed -e "s/-fvisibility=hidden//g")
+export CXXFLAGS=$(echo $CXXFLAGS | sed -e "s/-fvisibility=hidden//g" -e "s/-fvisibility-inlines-hidden//g")
+}
+
 rm -rf CMakeFiles
 rm -rf CMakeCache.txt