Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation failure of v0.15.0 on linux armhf #3116

Assignees
Labels
Milestone

Comments

@linuxerwang
Copy link

I got error message:

    [222/353] CC build/release/obj/rdb_protocol/configured_limits.o
src/rdb_protocol/datum.cc: In function 'ql::datum_t ql::stats_merge(const datum_string_t&, ql::datum_t, ql::datum_t, const ql::configured_limits_t&, std::set<std::basic_string<char> >*)':
src/rdb_protocol/datum.cc:1610:112: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t {aka unsigned int}' [-Werror=format=]
             conditions->insert(strprintf("Too many changes, array truncated to %ld.", limits.array_size_limit()));
                                                                                                                ^
cc1plus: all warnings being treated as errors
make[1]: *** [build/release/obj/rdb_protocol/datum.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [make] Error 2

configure output:

$ ./configure --allow-fetch --prefix=/usr --sysconfdir=/etc --localstatedir=/data/rethinkdb --ccache
* Detecting system configuration
Bash:                           4.3.11(1)-release
Use ccache:                     yes
C++ Compiler:                   GCC 4.8.2 (/usr/bin/c++)
Host System:                    arm-linux-gnueabihf
Build System:                   Linux 3.10.0 armv7l
Cross-compiling:                no
Host Operating System:          Linux
Without tcmalloc:               no
Build Architecture:             armv7l
C++11:                          ok
Precompiled web assets:         no
Protobuf compiler:              /usr/bin/protoc
python:                         python 2.7.6
Node.js package manager:        /usr/bin/npm
LESS css:                       external/less_1.6.2
CoffeeScript:                   external/coffee-script_1.7.1
Handlebars:                     external/handlebars_1.3.0
Browserify:                     external/browserify_3.24.13
bluebird:                       external/bluebird_1.2.1
wget:                           /usr/bin/wget
curl:                           /usr/bin/curl
Google Test:                    external/gtest_1.6.0
termcap:                        -ltermcap
boost_system:                   -lboost_system
ssl:                            -lssl
protobuf:                       -lprotobuf
v8:                             -lv8
RE2:                            external/re2_20140111
z:                              -lz
crypto:                         -lcrypto
curl:                           -lcurl
Use pre-3.19 v8 API:            yes
tcmalloc_minimal (static):      /usr/lib/libtcmalloc_minimal.a
Test protobuf:                  ok
Test boost:                     ok
Installation prefix:            /usr
Configuration prefix:           /etc
Runtime data prefix:            /data/rethinkdb
* Warning: ARM support is still experimental
* Wrote configuration to config.mk

configure.mk

# Automatically generated by ./configure
# Command line: --allow-fetch --prefix=/usr --sysconfdir=/etc --localstatedir=/data/rethinkdb --ccache
CONFIGURE_STATUS := started
CONFIGURE_ERROR := 
CONFIGURE_COMMAND_LINE :=  --allow-fetch --prefix=/usr --sysconfdir=/etc --localstatedir=/data/rethinkdb --ccache
CONFIGURE_MAGIC_NUMBER := 2
# Bash
FETCH_LIST := 
FETCH_VERSIONS := 
LIB_SEARCH_PATHS := 
# Use ccache
USE_CCACHE := 1
# C++ Compiler
COMPILER := GCC
CXX := /usr/bin/c++
# Host System
MACHINE := arm-linux-gnueabihf
# Build System
# Cross-compiling
CROSS_COMPILING := 0
# Host Operating System
OS := Linux
PTHREAD_LIBS := -pthread
RT_LIBS := -lrt
M_LIBS := -lm
# Without tcmalloc
NO_TCMALLOC := 0
# Build Architecture
GCC_ARCH := armv7l
GCC_ARCH_REDUCED := armv7l
# C++11
CXX11_LIBS += 
HAS_CXX11 := 1
# Precompiled web assets
USE_PRECOMPILED_WEB_ASSETS := 0
# Protobuf compiler
PROTOC := /usr/bin/protoc
PROTOC_BIN_DEP := 
# python
PYTHON := /usr/bin/python
PYTHON_BIN_DEP := 
# Node.js package manager
NPM := /usr/bin/npm
NPM_BIN_DEP := 
# LESS css
FETCH_LIST += less
less_VERSION := 1.6.2
less_DEPENDS := 
LESSC = $(abspath $(SUPPORT_BUILD_DIR)/less_1.6.2/bin/lessc)
LESSC_BIN_DEP = $(SUPPORT_BUILD_DIR)/less_1.6.2/bin/lessc
# CoffeeScript
FETCH_LIST += coffee-script
coffee-script_VERSION := 1.7.1
coffee-script_DEPENDS := 
COFFEE = $(abspath $(SUPPORT_BUILD_DIR)/coffee-script_1.7.1/bin/coffee)
COFFEE_BIN_DEP = $(SUPPORT_BUILD_DIR)/coffee-script_1.7.1/bin/coffee
# Handlebars
FETCH_LIST += handlebars
handlebars_VERSION := 1.3.0
handlebars_DEPENDS := 
HANDLEBARS = $(abspath $(SUPPORT_BUILD_DIR)/handlebars_1.3.0/bin/handlebars)
HANDLEBARS_BIN_DEP = $(SUPPORT_BUILD_DIR)/handlebars_1.3.0/bin/handlebars
# Browserify
FETCH_LIST += browserify
browserify_VERSION := 3.24.13
browserify_DEPENDS := 
BROWSERIFY = $(abspath $(SUPPORT_BUILD_DIR)/browserify_3.24.13/bin/browserify)
BROWSERIFY_BIN_DEP = $(SUPPORT_BUILD_DIR)/browserify_3.24.13/bin/browserify
# bluebird
FETCH_LIST += bluebird
bluebird_VERSION := 1.2.1
bluebird_DEPENDS := 
BLUEBIRD = $(abspath $(SUPPORT_BUILD_DIR)/bluebird_1.2.1/bin/bluebird)
BLUEBIRD_BIN_DEP = $(SUPPORT_BUILD_DIR)/bluebird_1.2.1/bin/bluebird
# wget
WGET := /usr/bin/wget
WGET_BIN_DEP := 
# curl
CURL := /usr/bin/curl
CURL_BIN_DEP := 
# Google Test
FETCH_LIST += gtest
gtest_VERSION := 1.6.0
gtest_DEPENDS := 
gtest_LIB_NAME += GTEST
HAS_GTEST := 1
GTEST_LIBS_DEP = $(SUPPORT_BUILD_DIR)/gtest_1.6.0/lib/libgtest.a
GTEST_INCLUDE = -isystem $(SUPPORT_BUILD_DIR)/gtest_1.6.0/include
GTEST_INCLUDE_DEP = $(SUPPORT_BUILD_DIR)/gtest_1.6.0/include
# termcap
TERMCAP_LIBS += -ltermcap
HAS_TERMCAP := 1
HAS_TERMCAP := 1
TERMCAP_INCLUDE := 
TERMCAP_INCLUDE_DEP := 
TERMCAP_LIBS_DEP := 
# boost_system
BOOST_SYSTEM_LIBS += -lboost_system
HAS_BOOST_SYSTEM := 1
HAS_BOOST_SYSTEM := 1
BOOST_SYSTEM_INCLUDE := 
BOOST_SYSTEM_INCLUDE_DEP := 
BOOST_SYSTEM_LIBS_DEP := 
# ssl
SSL_LIBS += -lssl
HAS_SSL := 1
HAS_SSL := 1
SSL_INCLUDE := 
SSL_INCLUDE_DEP := 
SSL_LIBS_DEP := 
# protobuf
PROTOBUF_LIBS += -lprotobuf
HAS_PROTOBUF := 1
HAS_PROTOBUF := 1
PROTOBUF_INCLUDE := 
PROTOBUF_INCLUDE_DEP := 
PROTOBUF_LIBS_DEP := 
# v8
V8_LIBS += -lv8
HAS_V8 := 1
HAS_V8 := 1
V8_INCLUDE := 
V8_INCLUDE_DEP := 
V8_LIBS_DEP := 
# RE2
FETCH_LIST += re2
re2_VERSION := 20140111
re2_DEPENDS := 
re2_LIB_NAME += RE2
HAS_RE2 := 1
RE2_LIBS_DEP = $(SUPPORT_BUILD_DIR)/re2_20140111/lib/libre2.a
RE2_INCLUDE = -isystem $(SUPPORT_BUILD_DIR)/re2_20140111/include
RE2_INCLUDE_DEP = $(SUPPORT_BUILD_DIR)/re2_20140111/include
# z
Z_LIBS += -lz
HAS_Z := 1
HAS_Z := 1
Z_INCLUDE := 
Z_INCLUDE_DEP := 
Z_LIBS_DEP := 
# crypto
CRYPTO_LIBS += -lcrypto
HAS_CRYPTO := 1
HAS_CRYPTO := 1
CRYPTO_INCLUDE := 
CRYPTO_INCLUDE_DEP := 
CRYPTO_LIBS_DEP := 
# curl
CURL_LIBS += -lcurl
HAS_CURL := 1
HAS_CURL := 1
CURL_INCLUDE := 
CURL_INCLUDE_DEP := 
CURL_LIBS_DEP := 
# Use pre-3.19 v8 API
V8_PRE_3_19 := 1
# tcmalloc_minimal (static)
TCMALLOC_MINIMAL_LIBS += /usr/lib/libtcmalloc_minimal.a
HAS_TCMALLOC_MINIMAL := 1
HAS_TCMALLOC_MINIMAL := 1
TCMALLOC_MINIMAL_INCLUDE := 
TCMALLOC_MINIMAL_INCLUDE_DEP := 
TCMALLOC_MINIMAL_LIBS_DEP := 
# Test protobuf
# Test boost
BOOST_LIBS += 
HAS_BOOST := 1
HAS_BOOST := 1
BOOST_INCLUDE := 
BOOST_INCLUDE_DEP := 
BOOST_LIBS_DEP := 
STATIC_V8 := 0
ALLOW_FETCH := 1
# Installation prefix
PREFIX := /usr
# Configuration prefix
SYSCONFDIR := /etc
# Runtime data prefix
LOCALSTATEDIR := /data/rethinkdb
CONFIGURE_STATUS := success
@srh srh self-assigned this Sep 30, 2014
@srh srh added this to the 1.15.x milestone Sep 30, 2014
@srh srh added the tp:bug label Sep 30, 2014
@srh
Copy link
Contributor

srh commented Sep 30, 2014

Thank you for the report. This is fixed in v1.15.x as of commit d5e5d29. It will be released in v1.15.1. You could checkout the branch v1.15.x and compile from there).

@srh srh closed this as completed Sep 30, 2014
@linuxerwang
Copy link
Author

Verified fixed. Thanks for the quick fix.

However, after "make install", the /usr/bin/rethinkdb is over 115 MBytes. When I built 1.12.5, the installed binary is only about 7.2 MBytes. What's changed in the built script (v1.15.x)?

Thanks!

@srh
Copy link
Contributor

srh commented Oct 1, 2014

The difference between executable size is that we now build with symbols by default in release mode, according to #2323. If you use make SYMBOLS=0, or maybe just use strip, you'll get a smaller executable.

@AtnNn AtnNn modified the milestones: 1.15, 1.15.x Oct 1, 2014
@linuxerwang
Copy link
Author

make SYMBOLS=0 doesn't seem to work. But strip worked great.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment