Skip to content

Commit

Permalink
Skeleton of libcxxabi's usage.
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolasnoble committed Jun 13, 2018
1 parent f423280 commit cbdf132
Show file tree
Hide file tree
Showing 8 changed files with 130 additions and 1 deletion.
8 changes: 8 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,11 @@
[submodule "third_party/abseil-cpp"]
path = third_party/abseil-cpp
url = https://github.com/abseil/abseil-cpp
[submodule "third_party/libcxxabi"]
path = third_party/libcxxabi
url = https://github.com/llvm-mirror/libcxxabi.git
branch = release_60
[submodule "third_party/libcxx"]
path = third_party/libcxx
url = https://github.com/llvm-mirror/libcxx.git
branch = release_60
50 changes: 49 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1372,7 +1372,7 @@ plugins: $(PROTOC_PLUGINS)

privatelibs: privatelibs_c privatelibs_cxx

privatelibs_c: $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libares.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
privatelibs_c: $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libcxxabi.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libares.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc

pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc
Expand Down Expand Up @@ -2847,6 +2847,11 @@ $(OBJDIR)/$(CONFIG)/%.o : %.cc
$(Q) mkdir -p `dirname $@`
$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<

$(OBJDIR)/$(CONFIG)/%.o : %.cpp
$(E) "[CXX] Compiling $<"
$(Q) mkdir -p `dirname $@`
$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<

install: install_c install_cxx install-plugins install-certs

install_c: install-headers_c install-static_c install-shared_c
Expand Down Expand Up @@ -3161,6 +3166,49 @@ endif
endif


LIBCXXABI_SRC = \
third_party/libcxxabi/src/abort_message.cpp \
third_party/libcxxabi/src/cxa_aux_runtime.cpp \
third_party/libcxxabi/src/cxa_default_handlers.cpp \
third_party/libcxxabi/src/cxa_demangle.cpp \
third_party/libcxxabi/src/cxa_exception_storage.cpp \
third_party/libcxxabi/src/cxa_guard.cpp \
third_party/libcxxabi/src/cxa_handlers.cpp \
third_party/libcxxabi/src/cxa_noexception.cpp \
third_party/libcxxabi/src/cxa_thread_atexit.cpp \
third_party/libcxxabi/src/cxa_unexpected.cpp \
third_party/libcxxabi/src/cxa_vector.cpp \
third_party/libcxxabi/src/cxa_virtual.cpp \
third_party/libcxxabi/src/fallback_malloc.cpp \
third_party/libcxxabi/src/private_typeinfo.cpp \
third_party/libcxxabi/src/stdlib_exception.cpp \
third_party/libcxxabi/src/stdlib_new_delete.cpp \
third_party/libcxxabi/src/stdlib_stdexcept.cpp \
third_party/libcxxabi/src/stdlib_typeinfo.cpp \

PUBLIC_HEADERS_C += \

LIBCXXABI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBCXXABI_SRC))))

$(LIBCXXABI_OBJS): CPPFLAGS += -D_LIBCPP_DISABLE_EXTERN_TEMPLATE -D_LIBCXXABI_BUILDING_LIBRARY -D_LIBCXXABI_NO_EXCEPTIONS -Ithird_party/libcxxabi/include -nostdinc++ -Ithird_party/libcxx/include -Wno-unused-but-set-variable -Wno-c++14-compat -fvisibility=hidden

$(LIBDIR)/$(CONFIG)/libcxxabi.a: $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(LIBCXXABI_OBJS)
$(E) "[AR] Creating $@"
$(Q) mkdir -p `dirname $@`
$(Q) rm -f $(LIBDIR)/$(CONFIG)/libcxxabi.a
$(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libcxxabi.a $(LIBCXXABI_OBJS)
ifeq ($(SYSTEM),Darwin)
$(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libcxxabi.a
endif




ifneq ($(NO_DEPS),true)
-include $(LIBCXXABI_OBJS:.o=.dep)
endif


LIBGPR_SRC = \
src/core/lib/gpr/alloc.cc \
src/core/lib/gpr/arena.cc \
Expand Down
30 changes: 30 additions & 0 deletions build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1359,6 +1359,32 @@ libs:
deps:
- grpc
secure: true
- name: cxxabi
build: private
language: c
src:
- third_party/libcxxabi/src/abort_message.cpp
- third_party/libcxxabi/src/cxa_aux_runtime.cpp
- third_party/libcxxabi/src/cxa_default_handlers.cpp
- third_party/libcxxabi/src/cxa_demangle.cpp
- third_party/libcxxabi/src/cxa_exception_storage.cpp
- third_party/libcxxabi/src/cxa_guard.cpp
- third_party/libcxxabi/src/cxa_handlers.cpp
- third_party/libcxxabi/src/cxa_noexception.cpp
- third_party/libcxxabi/src/cxa_thread_atexit.cpp
- third_party/libcxxabi/src/cxa_unexpected.cpp
- third_party/libcxxabi/src/cxa_vector.cpp
- third_party/libcxxabi/src/cxa_virtual.cpp
- third_party/libcxxabi/src/fallback_malloc.cpp
- third_party/libcxxabi/src/private_typeinfo.cpp
- third_party/libcxxabi/src/stdlib_exception.cpp
- third_party/libcxxabi/src/stdlib_new_delete.cpp
- third_party/libcxxabi/src/stdlib_stdexcept.cpp
- third_party/libcxxabi/src/stdlib_typeinfo.cpp
build_system:
- Makefile
defaults: cxxabi
secure: false
- name: gpr
build: all
language: c
Expand Down Expand Up @@ -5608,6 +5634,10 @@ defaults:
CPPFLAGS: -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM
-D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
CXXFLAGS: -fno-rtti -fno-exceptions
cxxabi:
CPPFLAGS: -D_LIBCPP_DISABLE_EXTERN_TEMPLATE -D_LIBCXXABI_BUILDING_LIBRARY -D_LIBCXXABI_NO_EXCEPTIONS
-Ithird_party/libcxxabi/include -nostdinc++ -Ithird_party/libcxx/include -Wno-unused-but-set-variable
-Wno-c++14-compat -fvisibility=hidden
global:
COREFLAGS: -fno-rtti -fno-exceptions
CPPFLAGS: -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter -DOSATOMIC_USE_INLINED=1
Expand Down
26 changes: 26 additions & 0 deletions grpc.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,32 @@
'test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc',
],
},
{
'target_name': 'cxxabi',
'type': 'static_library',
'dependencies': [
],
'sources': [
'third_party/libcxxabi/src/abort_message.cpp',
'third_party/libcxxabi/src/cxa_aux_runtime.cpp',
'third_party/libcxxabi/src/cxa_default_handlers.cpp',
'third_party/libcxxabi/src/cxa_demangle.cpp',
'third_party/libcxxabi/src/cxa_exception_storage.cpp',
'third_party/libcxxabi/src/cxa_guard.cpp',
'third_party/libcxxabi/src/cxa_handlers.cpp',
'third_party/libcxxabi/src/cxa_noexception.cpp',
'third_party/libcxxabi/src/cxa_thread_atexit.cpp',
'third_party/libcxxabi/src/cxa_unexpected.cpp',
'third_party/libcxxabi/src/cxa_vector.cpp',
'third_party/libcxxabi/src/cxa_virtual.cpp',
'third_party/libcxxabi/src/fallback_malloc.cpp',
'third_party/libcxxabi/src/private_typeinfo.cpp',
'third_party/libcxxabi/src/stdlib_exception.cpp',
'third_party/libcxxabi/src/stdlib_new_delete.cpp',
'third_party/libcxxabi/src/stdlib_stdexcept.cpp',
'third_party/libcxxabi/src/stdlib_typeinfo.cpp',
],
},
{
'target_name': 'gpr',
'type': 'static_library',
Expand Down
5 changes: 5 additions & 0 deletions templates/Makefile.template
Original file line number Diff line number Diff line change
Expand Up @@ -1273,6 +1273,11 @@
$(Q) mkdir -p `dirname $@`
$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<

$(OBJDIR)/$(CONFIG)/%.o : %.cpp
$(E) "[CXX] Compiling $<"
$(Q) mkdir -p `dirname $@`
$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<

install: install_c install_cxx install-plugins install-certs

install_c: install-headers_c install-static_c install-shared_c
Expand Down
1 change: 1 addition & 0 deletions third_party/libcxx
Submodule libcxx added at 6599ca
1 change: 1 addition & 0 deletions third_party/libcxxabi
Submodule libcxxabi added at 9245d4
10 changes: 10 additions & 0 deletions tools/run_tests/generated/sources_and_headers.json
Original file line number Diff line number Diff line change
Expand Up @@ -6826,6 +6826,16 @@
"third_party": false,
"type": "lib"
},
{
"deps": [],
"headers": [],
"is_filegroup": false,
"language": "c",
"name": "cxxabi",
"src": [],
"third_party": false,
"type": "lib"
},
{
"deps": [
"gpr_base"
Expand Down

0 comments on commit cbdf132

Please sign in to comment.