Upgrade folly to v2018.10.22.00 for Android (#21977)

Summary:
Fixes #20302 (For Android)

Note:
------
1. New folly will have build break for a gcc-4.9 and gcc-4.9 seems to be deprecated for latest folly.
    As we only use partial folly implementations, I just fixed the build break part.
    To support building RN on Windows, the patches are written by gradle ReplaceTokens.

2. The change for glog copying header into exported/ is to prevent build break for folly.
    `folly/detail/Demangle.h` will try to use libstdc++'s demangle.h. Unfortunately, glog also has a demangle.h in source code. So I copy exported headers and only search headers in exported/ folder during build.
Pull Request resolved: https://github.com/facebook/react-native/pull/21977

Reviewed By: hramos

Differential Revision: D12818133

Pulled By: fkgozali

fbshipit-source-id: 2c1f6f012663204581a86141d0c9ed0eb9d8c698
This commit is contained in:
Kudo Chien
2018-10-29 12:04:30 -07:00
committed by Facebook Github Bot
parent 1eedf05651
commit a316dc6ec3
4 changed files with 46 additions and 12 deletions

View File

@@ -2,20 +2,35 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
folly/json.cpp \
folly/Unicode.cpp \
folly/Conv.cpp \
folly/Demangle.cpp \
folly/detail/MallocImpl.cpp \
folly/StringBase.cpp \
folly/dynamic.cpp \
folly/json.cpp \
folly/Unicode.cpp \
folly/Conv.cpp \
folly/Demangle.cpp \
folly/memory/detail/MallocImpl.cpp \
folly/String.cpp \
folly/dynamic.cpp \
folly/Format.cpp \
folly/json_pointer.cpp \
folly/lang/ColdClass.cpp \
folly/detail/Demangle.cpp \
folly/hash/SpookyHashV2.cpp \
folly/container/detail/F14Table.cpp \
folly/ScopeGuard.cpp \
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_CFLAGS += -fexceptions -fno-omit-frame-pointer -frtti
LOCAL_CFLAGS += -fexceptions -fno-omit-frame-pointer -frtti -Wno-sign-compare
FOLLY_FLAGS := \
-DFOLLY_NO_CONFIG=1 \
-DFOLLY_HAVE_CLOCK_GETTIME=1 \
-DFOLLY_HAVE_MEMRCHR=1 \
# If APP_PLATFORM in Application.mk targets android-23 above, please comment this line.
# NDK uses GNU style stderror_r() after API 23.
FOLLY_FLAGS += -DFOLLY_HAVE_XSI_STRERROR_R=1
FOLLY_FLAGS := -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1
LOCAL_CFLAGS += $(FOLLY_FLAGS)
LOCAL_EXPORT_CPPFLAGS := $(FOLLY_FLAGS)

View File

@@ -13,7 +13,7 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/.. $(LOCAL_PATH)/glog-0.3.5/src/
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/.. $(LOCAL_PATH)/glog-0.3.5/src/
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/exported
LOCAL_CFLAGS += \
-Wwrite-strings \
@@ -28,4 +28,4 @@ LOCAL_CFLAGS += \
LOCAL_MODULE := glog
include $(BUILD_SHARED_LIBRARY)
include $(BUILD_SHARED_LIBRARY)