From 38265c31d07d748de99b9941e742289f4221b87c Mon Sep 17 00:00:00 2001 From: Adeeb <8762862+adeebshihadeh@users.noreply.github.com> Date: Thu, 7 May 2020 22:32:56 -0700 Subject: [PATCH] Remove c capnp (#1475) --- external/capnp/build.sh | 15 - external/capnparm/build.sh | 15 - phonelibs/capnp-c/build.txt | 16 - phonelibs/capnp-c/include/capnp_c.h | 426 ------------------ phonelibs/capnp-c/mac/lib/libcapnp_c.a | Bin 93120 -> 0 bytes phonelibs/capnp-c/x64/lib/libcapnp_c.a | Bin 42484 -> 0 bytes phonelibs/capnp-c/x64/lib/libcapnp_c.la | 41 -- phonelibs/capnp-c/x64/lib/libcapnp_c.so | 1 - phonelibs/capnp-c/x64/lib/libcapnp_c.so.0 | 1 - phonelibs/capnp-c/x64/lib/libcapnp_c.so.0.0.0 | Bin 44320 -> 0 bytes phonelibs/install_capnp.sh | 15 - 11 files changed, 530 deletions(-) delete mode 100755 phonelibs/capnp-c/build.txt delete mode 100644 phonelibs/capnp-c/include/capnp_c.h delete mode 100644 phonelibs/capnp-c/mac/lib/libcapnp_c.a delete mode 100644 phonelibs/capnp-c/x64/lib/libcapnp_c.a delete mode 100755 phonelibs/capnp-c/x64/lib/libcapnp_c.la delete mode 120000 phonelibs/capnp-c/x64/lib/libcapnp_c.so delete mode 120000 phonelibs/capnp-c/x64/lib/libcapnp_c.so.0 delete mode 100755 phonelibs/capnp-c/x64/lib/libcapnp_c.so.0.0.0 diff --git a/external/capnp/build.sh b/external/capnp/build.sh index 03017fdadc..6fdf4f65e2 100755 --- a/external/capnp/build.sh +++ b/external/capnp/build.sh @@ -19,21 +19,6 @@ g++ -std=gnu++11 -I./src -I./src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -D make -j4 install -# -------- -echo "Installing c-capnp" - -git clone https://github.com/commaai/c-capnproto.git -cd c-capnproto -git submodule update --init --recursive -autoreconf -f -i -s -CFLAGS="-fPIC" ./configure --prefix=${ONE}/external/capnp -make -j4 - -# manually build binaries statically -gcc -fPIC -o .libs/capnpc-c compiler/capnpc-c.o compiler/schema.capnp.o compiler/str.o ./.libs/libcapnp_c.a -Wl,-rpath -Wl,${ONE}/external/capnp/lib - -make install - # -------- echo "Installing java-capnp" diff --git a/external/capnparm/build.sh b/external/capnparm/build.sh index 909a1c20c4..3fbdebbcc7 100755 --- a/external/capnparm/build.sh +++ b/external/capnparm/build.sh @@ -19,21 +19,6 @@ g++ -std=gnu++11 -I./src -I./src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -D make -j4 install -# -------- -echo "Installing c-capnp" - -git clone https://github.com/commaai/c-capnproto.git -cd c-capnproto -git submodule update --init --recursive -autoreconf -f -i -s -CFLAGS="-fPIC" ./configure --prefix=${ONE}/external/capnparm -make -j4 - -# manually build binaries statically -gcc -fPIC -o .libs/capnpc-c compiler/capnpc-c.o compiler/schema.capnp.o compiler/str.o ./.libs/libcapnp_c.a -Wl,-rpath -Wl,${ONE}/external/capnp/lib - -make install - # -------- echo "Installing java-capnp" diff --git a/phonelibs/capnp-c/build.txt b/phonelibs/capnp-c/build.txt deleted file mode 100755 index a2d55c7cba..0000000000 --- a/phonelibs/capnp-c/build.txt +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -e - -# on host - -HOSTARCH="$(uname -s | tr '[:upper:]' '[:lower:]')" - -AR="/opt/android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/$HOSTARCH-x86_64/bin/aarch64-linux-android-ar" -CC="/opt/android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/$HOSTARCH-x86_64/bin/aarch64-linux-android-gcc --sysroot=/opt/android-ndk/platforms/android-21/arch-arm64" - -git clone git@github.com:commaai/c-capnproto.git -cd c-capnproto - -$CC -c lib/capn-malloc.c -$CC -c lib/capn-stream.c -$CC -c lib/capn.c -$AR rcs libcapn.a capn-malloc.o capn-stream.o capn.o diff --git a/phonelibs/capnp-c/include/capnp_c.h b/phonelibs/capnp-c/include/capnp_c.h deleted file mode 100644 index 9fa2718f7f..0000000000 --- a/phonelibs/capnp-c/include/capnp_c.h +++ /dev/null @@ -1,426 +0,0 @@ -/* vim: set sw=8 ts=8 sts=8 noet: */ -/* capnp_c.h - * - * Copyright (C) 2013 James McKaskill - * Copyright (C) 2014 Steve Dee - * - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -#ifndef CAPNP_C_H -#define CAPNP_C_H - -#include -#include -#if defined(unix) && !defined(__APPLE__) -#include -#endif - -// ssize_t is not defined in stdint.h in MSVC. -#ifdef _MSC_VER -typedef intmax_t ssize_t; -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) -#define CAPN_INLINE static inline -#else -#define CAPN_INLINE static -#endif - -#define CAPN_VERSION 1 - -/* struct capn is a common structure shared between segments in the same - * session/context so that far pointers between segments will be created. - * - * lookup is used to lookup segments by id when derefencing a far pointer - * - * create is used to create or lookup an alternate segment that has at least - * sz available (ie returned seg->len + sz <= seg->cap) - * - * create_local is used to create a segment for the copy tree and should be - * allocated in the local memory space. - * - * Allocated segments must be zero initialized. - * - * create and lookup can be NULL if you don't need multiple segments and don't - * want to support copying - * - * seglist and copylist are linked lists which can be used to free up segments - * on cleanup, but should not be modified by the user. - * - * lookup, create, create_local, and user can be set by the user. Other values - * should be zero initialized. - */ -struct capn { - /* user settable */ - struct capn_segment *(*lookup)(void* /*user*/, uint32_t /*id */); - struct capn_segment *(*create)(void* /*user*/, uint32_t /*id */, int /*sz*/); - struct capn_segment *(*create_local)(void* /*user*/, int /*sz*/); - void *user; - /* zero initialized, user should not modify */ - uint32_t segnum; - struct capn_tree *copy; - struct capn_tree *segtree; - struct capn_segment *seglist, *lastseg; - struct capn_segment *copylist; -}; - -/* struct capn_tree is a rb tree header used internally for the segment id - * lookup and copy tree */ -struct capn_tree { - struct capn_tree *parent, *link[2]; - unsigned int red : 1; -}; - -struct capn_tree *capn_tree_insert(struct capn_tree *root, struct capn_tree *n); - -/* struct capn_segment contains the information about a single segment. - * - * capn points to a struct capn that is shared between segments in the - * same session - * - * id specifies the segment id, used for far pointers - * - * data specifies the segment data. This should not move after creation. - * - * len specifies the current segment length. This is 0 for a blank - * segment. - * - * cap specifies the segment capacity. - * - * When creating new structures len will be incremented until it reaces cap, - * at which point a new segment will be requested via capn->create. The - * create callback can either create a new segment or expand an existing - * one by incrementing cap and returning the expanded segment. - * - * data, len, and cap must all by 8 byte aligned - * - * data, len, cap, and user should all set by the user. Other values - * should be zero initialized. - */ -#ifdef _MSC_VER -__declspec(align(64)) -#endif -struct capn_segment { - struct capn_tree hdr; - struct capn_segment *next; - struct capn *capn; - uint32_t id; - /* user settable */ - char *data; - size_t len, cap; - void *user; -}; - -enum CAPN_TYPE { - CAPN_NULL = 0, - CAPN_STRUCT = 1, - CAPN_LIST = 2, - CAPN_PTR_LIST = 3, - CAPN_BIT_LIST = 4, - CAPN_FAR_POINTER = 5, -}; - -struct capn_ptr { - unsigned int type : 4; - unsigned int has_ptr_tag : 1; - unsigned int is_list_member : 1; - unsigned int is_composite_list : 1; - unsigned int datasz : 19; - unsigned int ptrs : 16; - int len; - char *data; - struct capn_segment *seg; -}; - -struct capn_text { - int len; - const char *str; - struct capn_segment *seg; -}; - -typedef struct capn_ptr capn_ptr; -typedef struct capn_text capn_text; -typedef struct {capn_ptr p;} capn_data; -typedef struct {capn_ptr p;} capn_list1; -typedef struct {capn_ptr p;} capn_list8; -typedef struct {capn_ptr p;} capn_list16; -typedef struct {capn_ptr p;} capn_list32; -typedef struct {capn_ptr p;} capn_list64; - -struct capn_msg { - struct capn_segment *seg; - uint64_t iface; - uint16_t method; - capn_ptr args; -}; - -/* capn_append_segment appends a segment to a session */ -void capn_append_segment(struct capn*, struct capn_segment*); - -capn_ptr capn_root(struct capn *c); -void capn_resolve(capn_ptr *p); - -#define capn_len(list) ((list).p.type == CAPN_FAR_POINTER ? (capn_resolve(&(list).p), (list).p.len) : (list).p.len) - -/* capn_getp|setp functions get/set ptrs in list/structs - * off is the list index or pointer index in a struct - * capn_setp will copy the data, create far pointers, etc if the target - * is in a different segment/context. - * Both of these will use/return inner pointers for composite lists. - */ -capn_ptr capn_getp(capn_ptr p, int off, int resolve); -int capn_setp(capn_ptr p, int off, capn_ptr tgt); - -capn_text capn_get_text(capn_ptr p, int off, capn_text def); -capn_data capn_get_data(capn_ptr p, int off); -int capn_set_text(capn_ptr p, int off, capn_text tgt); - -/* capn_get* functions get data from a list - * The length of the list is given by p->size - * off specifies how far into the list to start - * sz indicates the number of elements to get - * The function returns the number of elements read or -1 on an error. - * off must be byte aligned for capn_getv1 - */ -int capn_get1(capn_list1 p, int off); -uint8_t capn_get8(capn_list8 p, int off); -uint16_t capn_get16(capn_list16 p, int off); -uint32_t capn_get32(capn_list32 p, int off); -uint64_t capn_get64(capn_list64 p, int off); -int capn_getv1(capn_list1 p, int off, uint8_t *data, int sz); -int capn_getv8(capn_list8 p, int off, uint8_t *data, int sz); -int capn_getv16(capn_list16 p, int off, uint16_t *data, int sz); -int capn_getv32(capn_list32 p, int off, uint32_t *data, int sz); -int capn_getv64(capn_list64 p, int off, uint64_t *data, int sz); - -/* capn_set* functions set data in a list - * off specifies how far into the list to start - * sz indicates the number of elements to write - * The function returns the number of elemnts written or -1 on an error. - * off must be byte aligned for capn_setv1 - */ -int capn_set1(capn_list1 p, int off, int v); -int capn_set8(capn_list8 p, int off, uint8_t v); -int capn_set16(capn_list16 p, int off, uint16_t v); -int capn_set32(capn_list32 p, int off, uint32_t v); -int capn_set64(capn_list64 p, int off, uint64_t v); -int capn_setv1(capn_list1 p, int off, const uint8_t *data, int sz); -int capn_setv8(capn_list8 p, int off, const uint8_t *data, int sz); -int capn_setv16(capn_list16 p, int off, const uint16_t *data, int sz); -int capn_setv32(capn_list32 p, int off, const uint32_t *data, int sz); -int capn_setv64(capn_list64 p, int off, const uint64_t *data, int sz); - -/* capn_new_* functions create a new object - * datasz is in bytes, ptrs is # of pointers, sz is # of elements in the list - * On an error a CAPN_NULL pointer is returned - */ -capn_ptr capn_new_string(struct capn_segment *seg, const char *str, ssize_t sz); -capn_ptr capn_new_struct(struct capn_segment *seg, int datasz, int ptrs); -capn_ptr capn_new_interface(struct capn_segment *seg, int datasz, int ptrs); -capn_ptr capn_new_ptr_list(struct capn_segment *seg, int sz); -capn_ptr capn_new_list(struct capn_segment *seg, int sz, int datasz, int ptrs); -capn_list1 capn_new_list1(struct capn_segment *seg, int sz); -capn_list8 capn_new_list8(struct capn_segment *seg, int sz); -capn_list16 capn_new_list16(struct capn_segment *seg, int sz); -capn_list32 capn_new_list32(struct capn_segment *seg, int sz); -capn_list64 capn_new_list64(struct capn_segment *seg, int sz); - -/* capn_read|write* functions read/write struct values - * off is the offset into the structure in bytes - * Rarely should these be called directly, instead use the generated code. - * Data must be xored with the default value - * These are inlined - */ -CAPN_INLINE uint8_t capn_read8(capn_ptr p, int off); -CAPN_INLINE uint16_t capn_read16(capn_ptr p, int off); -CAPN_INLINE uint32_t capn_read32(capn_ptr p, int off); -CAPN_INLINE uint64_t capn_read64(capn_ptr p, int off); -CAPN_INLINE int capn_write1(capn_ptr p, int off, int val); -CAPN_INLINE int capn_write8(capn_ptr p, int off, uint8_t val); -CAPN_INLINE int capn_write16(capn_ptr p, int off, uint16_t val); -CAPN_INLINE int capn_write32(capn_ptr p, int off, uint32_t val); -CAPN_INLINE int capn_write64(capn_ptr p, int off, uint64_t val); - -/* capn_init_malloc inits the capn struct with a create function which - * allocates segments on the heap using malloc - * - * capn_init_(fp|mem) inits by reading segments in from the file/memory buffer - * in serialized form (optionally packed). It will then setup the create - * function ala capn_init_malloc so that further segments can be created. - * - * capn_free frees all the segment headers and data created by the create - * function setup by capn_init_* - */ -void capn_init_malloc(struct capn *c); -int capn_init_fp(struct capn *c, FILE *f, int packed); -int capn_init_mem(struct capn *c, const uint8_t *p, size_t sz, int packed); - -/* capn_write_(fp|mem) writes segments to the file/memory buffer in - * serialized form and returns the number of bytes written. - */ -/* TODO */ -/*int capn_write_fp(struct capn *c, FILE *f, int packed);*/ -int capn_write_fd(struct capn *c, ssize_t (*write_fd)(int fd, void *p, size_t count), int fd, int packed); -int capn_write_mem(struct capn *c, uint8_t *p, size_t sz, int packed); - -void capn_free(struct capn *c); -void capn_reset_copy(struct capn *c); - -/* Inline functions */ - - -CAPN_INLINE uint8_t capn_flip8(uint8_t v) { - return v; -} -CAPN_INLINE uint16_t capn_flip16(uint16_t v) { -#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) - return v; -#elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) && \ - defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 - return __builtin_bswap16(v); -#else - union { uint16_t u; uint8_t v[2]; } s; - s.v[0] = (uint8_t)v; - s.v[1] = (uint8_t)(v>>8); - return s.u; -#endif -} -CAPN_INLINE uint32_t capn_flip32(uint32_t v) { -#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) - return v; -#elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) && \ - defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 - return __builtin_bswap32(v); -#else - union { uint32_t u; uint8_t v[4]; } s; - s.v[0] = (uint8_t)v; - s.v[1] = (uint8_t)(v>>8); - s.v[2] = (uint8_t)(v>>16); - s.v[3] = (uint8_t)(v>>24); - return s.u; -#endif -} -CAPN_INLINE uint64_t capn_flip64(uint64_t v) { -#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) - return v; -#elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) && \ - defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 - return __builtin_bswap64(v); -#else - union { uint64_t u; uint8_t v[8]; } s; - s.v[0] = (uint8_t)v; - s.v[1] = (uint8_t)(v>>8); - s.v[2] = (uint8_t)(v>>16); - s.v[3] = (uint8_t)(v>>24); - s.v[4] = (uint8_t)(v>>32); - s.v[5] = (uint8_t)(v>>40); - s.v[6] = (uint8_t)(v>>48); - s.v[7] = (uint8_t)(v>>56); - return s.u; -#endif -} - -CAPN_INLINE int capn_write1(capn_ptr p, int off, int val) { - if (off >= p.datasz*8) { - return -1; - } else if (val) { - uint8_t tmp = (uint8_t)(1 << (off & 7)); - ((uint8_t*) p.data)[off >> 3] |= tmp; - return 0; - } else { - uint8_t tmp = (uint8_t)(~(1 << (off & 7))); - ((uint8_t*) p.data)[off >> 3] &= tmp; - return 0; - } -} - -CAPN_INLINE uint8_t capn_read8(capn_ptr p, int off) { - return off+1 <= p.datasz ? capn_flip8(*(uint8_t*) (p.data+off)) : 0; -} -CAPN_INLINE int capn_write8(capn_ptr p, int off, uint8_t val) { - if (off+1 <= p.datasz) { - *(uint8_t*) (p.data+off) = capn_flip8(val); - return 0; - } else { - return -1; - } -} - -CAPN_INLINE uint16_t capn_read16(capn_ptr p, int off) { - return off+2 <= p.datasz ? capn_flip16(*(uint16_t*) (p.data+off)) : 0; -} -CAPN_INLINE int capn_write16(capn_ptr p, int off, uint16_t val) { - if (off+2 <= p.datasz) { - *(uint16_t*) (p.data+off) = capn_flip16(val); - return 0; - } else { - return -1; - } -} - -CAPN_INLINE uint32_t capn_read32(capn_ptr p, int off) { - return off+4 <= p.datasz ? capn_flip32(*(uint32_t*) (p.data+off)) : 0; -} -CAPN_INLINE int capn_write32(capn_ptr p, int off, uint32_t val) { - if (off+4 <= p.datasz) { - *(uint32_t*) (p.data+off) = capn_flip32(val); - return 0; - } else { - return -1; - } -} - -CAPN_INLINE uint64_t capn_read64(capn_ptr p, int off) { - return off+8 <= p.datasz ? capn_flip64(*(uint64_t*) (p.data+off)) : 0; -} -CAPN_INLINE int capn_write64(capn_ptr p, int off, uint64_t val) { - if (off+8 <= p.datasz) { - *(uint64_t*) (p.data+off) = capn_flip64(val); - return 0; - } else { - return -1; - } -} - -union capn_conv_f32 { - uint32_t u; - float f; -}; - -union capn_conv_f64 { - uint64_t u; - double f; -}; - -CAPN_INLINE float capn_to_f32(uint32_t v) { - union capn_conv_f32 u; - u.u = v; - return u.f; -} -CAPN_INLINE double capn_to_f64(uint64_t v) { - union capn_conv_f64 u; - u.u = v; - return u.f; -} -CAPN_INLINE uint32_t capn_from_f32(float v) { - union capn_conv_f32 u; - u.f = v; - return u.u; -} -CAPN_INLINE uint64_t capn_from_f64(double v) { - union capn_conv_f64 u; - u.f = v; - return u.u; -} - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/phonelibs/capnp-c/mac/lib/libcapnp_c.a b/phonelibs/capnp-c/mac/lib/libcapnp_c.a deleted file mode 100644 index f0c4089a2acedc028cec26e7c9fa6a62b4601892..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93120 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

+A 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 diff --git a/phonelibs/install_capnp.sh b/phonelibs/install_capnp.sh index b1ea7602f1..6de661c8dd 100755 --- a/phonelibs/install_capnp.sh +++ b/phonelibs/install_capnp.sh @@ -25,18 +25,3 @@ cp .libs/capnpc-c++ /usr/local/bin/ cp .libs/capnpc-capnp /usr/local/bin/ cp .libs/*.a /usr/local/lib -cd /tmp -echo "Installing c-capnp" -git clone https://github.com/commaai/c-capnproto.git -cd c-capnproto -git submodule update --init --recursive -autoreconf -f -i -s -CXXFLAGS="-fPIC" ./configure -make -j4 -make install - -# manually build binaries statically -gcc -fPIC -o .libs/capnpc-c compiler/capnpc-c.o compiler/schema.capnp.o compiler/str.o ./.libs/libcapnp_c.a - -cp .libs/capnpc-c /usr/local/bin/ -cp .libs/*.a /usr/local/lib