Added very simple parser for table replication listener for statement based replication.

This commit is contained in:
Jan Lindström 2013-07-02 14:11:26 +03:00
parent 9ca66dccf1
commit e64a141134
8 changed files with 871 additions and 66 deletions

View File

@ -5,7 +5,7 @@ cmake_minimum_required (VERSION 2.6)
# the library.
set(table_replication_consistency_sources
table_replication_consistency.cpp table_replication_listener.cpp )
table_replication_consistency.cpp table_replication_listener.cpp table_replication_parser.cpp)
# ---------- Find Boost Headers/Libraries -----------------------
SET(Boost_DEBUG FALSE)

View File

@ -36,11 +36,14 @@ Updated:
#include "listener_exception.h"
#include "table_replication_consistency.h"
#include "table_replication_listener.h"
#include "table_replication_parser.h"
using mysql::Binary_log;
using mysql::system::create_transport;
using namespace std;
using namespace mysql::system;
using namespace mysql;
using namespace system;
using namespace table_replication_parser;
namespace mysql {
@ -72,6 +75,60 @@ boost::mutex table_replication_mutex; /* This mutex is used protect
abve data structure from
multiple threads */
/***********************************************************************//**
Internal function to update table consistency information based
on log event header, table name and if GTID is known the gtid.*/
static void
tbrl_update_consistency(
/*====================*/
Log_event_header *lheader, /*!< in: Log event header */
string database_dot_table, /*!< in: db.table name */
bool gtid_known, /*!< in: is GTID known */
Gtid& gtid) /*!< in: gtid */
{
bool not_found = true;
table_listener_consistency_t *tc=NULL;
// Need to be protected by mutex to avoid concurrency problems
boost::mutex::scoped_lock lock(table_consistency_mutex);
if(table_consistency_map.find(database_dot_table) == table_consistency_map.end()) {
not_found = true;
} else {
// Loop through the consistency values
for(multimap<std::string, table_listener_consistency_t*>::iterator i = table_consistency_map.find(database_dot_table);
i != table_consistency_map.end(); ++i) {
tc = (*i).second;
if (tc->server_id == lheader->server_id) {
not_found = false;
break;
}
}
}
if(not_found) {
// Consistency for this table and server not found, insert a record
table_listener_consistency_t* tb_c = (table_listener_consistency_t*) malloc(sizeof(table_listener_consistency_t));
tb_c->database_dot_table = (char *)malloc(database_dot_table.size()+1);
strcpy(tb_c->database_dot_table, database_dot_table.c_str());
tb_c->server_id = lheader->server_id;
tb_c->binlog_pos = lheader->next_position;
tb_c->gtid_known = gtid_known;
tb_c->gtid = (char *)malloc(gtid.get_string().size()+1);
strcpy(tb_c->gtid, gtid.get_string().c_str());
table_consistency_map.insert(pair<std::string, table_listener_consistency_t*>(database_dot_table,tb_c));
} else {
// Consistency for this table and server found, update the
// consistency values
tc->binlog_pos = lheader->next_position;
free(tc->gtid);
tc->gtid = (char *)malloc(gtid.get_string().size()+1);
strcpy(tc->gtid, gtid.get_string().c_str());
tc->gtid_known = gtid_known;
}
}
/***********************************************************************//**
This is the function that is executed by replication listeners.
At startup it will try to connect the server and start listening
@ -126,9 +183,44 @@ void* tb_replication_listener_reader(
case QUERY_EVENT: {
Query_event *qevent = dynamic_cast<Query_event *>(event);
// TODO: Do real handling i.e.:
// statement based replication: parse the query and find out the db
// and table
int n_tables = 0;
// This is overkill but we really do not know how
// many names there are at this state
char **db_names = (char **) malloc(qevent->query.size()+1 * sizeof(char *));
char **table_names = (char **) malloc(qevent->query.size()+1 * sizeof(char *));
// Try to parse db.table names from the SQL-clause
if (tbr_parser_table_names(db_names, table_names, &n_tables, qevent->query.c_str())) {
// Success, set up the consistency
// information for every table
for(int k=0;k < n_tables; k++) {
// Update the consistency
// information
if(db_names[k][0]=='\0') {
database_dot_table = qevent->db_name;
} else {
database_dot_table = string(db_names[k]);
}
database_dot_table.append(".");
database_dot_table.append(string(table_names[k]));
tbrl_update_consistency(lheader, database_dot_table, gtid_known, gtid);
free(db_names[k]);
free(table_names[k]);
}
free(db_names);
free(table_names);
} else {
for(int k=0; k < n_tables; k++) {
free(db_names[k]);
free(table_names[k]);
}
free(db_names);
free(table_names);
}
std::cout << "Thread: " << id << " server_id " << lheader->server_id
<< " position " << lheader->next_position << " : Found event of type "
@ -187,9 +279,6 @@ void* tb_replication_listener_reader(
case DELETE_ROWS_EVENT:
{
Row_event *revent = dynamic_cast<Row_event*>(event);
bool not_found = false;
table_listener_consistency_t *tc=NULL;
tb_it= tid2tname.begin();
tb_it= tid2tname.find(revent->table_id);
if (tb_it != tid2tname.end())
@ -197,48 +286,8 @@ void* tb_replication_listener_reader(
database_dot_table= tb_it->second;
}
// Need to be protected by mutex to avoid concurrency problems
boost::mutex::scoped_lock lock(table_consistency_mutex);
not_found = true;
if(table_consistency_map.find(database_dot_table) == table_consistency_map.end()) {
not_found = true;
} else {
// Loop through the consistency values
for(multimap<std::string, table_listener_consistency_t*>::iterator i = table_consistency_map.find(database_dot_table);
i != table_consistency_map.end(); ++i) {
tc = (*i).second;
if (tc->server_id == lheader->server_id) {
not_found = false;
break;
}
}
}
if(not_found) {
// Consistency for this table and server not found, insert a record
table_listener_consistency_t* tb_c = (table_listener_consistency_t*) malloc(sizeof(table_listener_consistency_t));
tb_c->database_dot_table = (char *)malloc(database_dot_table.size()+1);
strcpy(tb_c->database_dot_table, database_dot_table.c_str());
tb_c->server_id = lheader->server_id;
tb_c->binlog_pos = lheader->next_position;
tb_c->gtid_known = gtid_known;
tb_c->gtid = (char *)malloc(gtid.get_string().size()+1);
strcpy(tb_c->gtid, gtid.get_string().c_str());
table_consistency_map.insert(pair<std::string, table_listener_consistency_t*>(database_dot_table,tb_c));
} else {
// Consistency for this table and server found, update the
// consistency values
tc->binlog_pos = lheader->next_position;
free(tc->gtid);
tc->gtid = (char *)malloc(gtid.get_string().size()+1);
strcpy(tc->gtid, gtid.get_string().c_str());
tc->gtid_known = gtid_known;
}
// Update the consistency information
tbrl_update_consistency(lheader, database_dot_table, gtid_known, gtid);
std::cout << "Thread: " << id << " server_id " << lheader->server_id
<< " position " << lheader->next_position << " : Found event of type "

View File

@ -0,0 +1,441 @@
/*
Copyright (C) 2013, SkySQL Ab
This file is distributed as part of the SkySQL Gateway. It is free
software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation,
version 2.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Author: Jan Lindström jan.lindstrom@skysql.com
Created: 20-06-2013
Updated:
*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include "table_replication_parser.h"
namespace mysql {
namespace table_replication_parser {
typedef struct {
char* m_start;
char* m_pos;
} tb_parser_t;
/***********************************************************************//**
This internal function initializes internal parser data structure based on
string to be parsed.*/
static void
tbr_parser_init(
/*============*/
tb_parser_t* m, /*!< inout: Parser structure to initialize */
const char* s) /*!< in: String to parse */
{
m->m_start = (char *)s;
m->m_pos = (char *)s;
}
/***********************************************************************//**
This internal function skips all space characters on front
@return position on string with next non space character*/
static char*
tbr_parser_skipwspc(
char* str) /*!< in string */
{
while (isspace(*str)) {
str++;
}
return(str);
}
/***********************************************************************//**
This internal function parses input string and tries to match it to the given keyword.
@return true if next keyword matches, false if not
*/
static bool
tbr_match_keyword(
/*==============*/
tb_parser_t* m, /*!< inout: Parser structure */
const char* const_str) /*!< in: Keyword to match */
{
size_t len;
m->m_pos = tbr_parser_skipwspc(m->m_pos);
if (const_str[0] == '\0') {
return(m->m_pos[0] == '\0');
}
len = strlen(const_str);
// Parsing is based on comparing two srings ignoring case
if (strncasecmp(m->m_pos, const_str, len) == 0) {
unsigned char c = (unsigned char)m->m_pos[len];
if (isascii(c)) {
if (isalnum(c)) {
return (true);
}
if (c == '_') {
return (false);
}
}
m->m_pos += len;
return(true);
}
return(false);
}
/***********************************************************************//**
Internal function to parse next quoted string
@return true if quoted string found, false if not
*/
static bool
tbr_get_quoted(
/*===========*/
tb_parser_t* m, /*!< inout: Parser structure */
char* buf, /*!< out: parsed string */
unsigned int size,/*!< in: buffer size */
bool keep_quotes) /*!< in: is quotes left on string */
{
char quote;
tb_parser_t saved_m;
m->m_pos = tbr_parser_skipwspc(m->m_pos);
saved_m = *m;
quote = *m->m_pos++;
if (keep_quotes) {
*buf++ = quote;
size--;
}
while (*m->m_pos != '\0') {
if (*m->m_pos == quote) {
if ((m->m_pos)[1] == quote) {
m->m_pos++;
if (keep_quotes) {
*buf++ = quote;
if (size-- <= 1) {
*m = saved_m;
return(false);
}
}
} else {
break;
}
}
*buf++ = *m->m_pos++;
if (size-- <= 1) {
*m = saved_m;
return(true);
}
}
if (*m->m_pos != quote) {
*m = saved_m;
return(false);
}
m->m_pos++;
if (keep_quotes) {
*buf++ = quote;
if (size-- <= 1) {
*m = saved_m;
return(true);
}
}
*buf = '\0';
return(true);
}
/***********************************************************************//**
This internal function parses identifiers e.g. table name
@return true if identifier is found, false if not
*/
static bool
tbr_get_id(
/*=======*/
tb_parser_t* m, /*!< intout: Parser structure */
char* id_buf, /*!< out: parsed identifier */
unsigned int id_size) /*!< in: identifier size */
{
char* org_id_buf = id_buf;
tb_parser_t saved_m;
m->m_pos = tbr_parser_skipwspc(m->m_pos);
saved_m = *m;
if (*m->m_pos == '"' || *m->m_pos == '`') {
if (!tbr_get_quoted(m, id_buf, id_size, false)) {
*m = saved_m;
return(false);
}
} else {
while (isalnum(*m->m_pos) || *m->m_pos == '_') {
*id_buf++ = *m->m_pos++;
if (id_size-- <= 1) {
*m = saved_m;
return(true);
}
}
*id_buf = '\0';
}
if (strlen(org_id_buf) > 0) {
return(true);
} else {
*m = saved_m;
return(false);
}
}
/***********************************************************************//**
This internal function parses constants e.g. "."
@return true if constant is found, false if not
*/
static bool
tbr_match_const(
/*============*/
tb_parser_t* m, /*!< inout: Parser structure */
const char* const_str) /*!< in: constant to be parsed */
{
size_t len;
m->m_pos = tbr_parser_skipwspc(m->m_pos);
if (const_str[0] == '\0') {
return(m->m_pos[0] == '\0');
}
len = strlen(const_str);
if (strncasecmp(m->m_pos, const_str, len) == 0) {
m->m_pos += len;
return(true);
} else {
return(false);
}
}
/***********************************************************************//**
This internal function skips to position where given keyword is found
@return true if keyword is found, false if not
*/
static bool
tbr_skipto_keyword(
/*===============*/
tb_parser_t* m, /*!< inout: Parser structure */
const char* const_str,/*!< in: keyword to find*/
const char* end_str) /*!< in: stop at this keyword */
{
size_t len;
bool more = true;
m->m_pos = tbr_parser_skipwspc(m->m_pos);
if (const_str[0] == '\0') {
return(m->m_pos[0] == '\0');
}
len = strlen(const_str);
while (more) {
if (strncasecmp(m->m_pos, const_str, len) == 0) {
m->m_pos += len;
return(true);
} else {
if(!(tbr_match_const(m, (char *)end_str))) {
m->m_pos++;
if (*(m->m_pos) == '\0'){
return (false);
}
} else {
m->m_pos-=strlen(end_str);
return (false);
}
}
}
return(true);
}
/***********************************************************************//**
This internal function parses table name consisting database + "." + table
@return true if table name is found, false if not
*/
static bool
tbr_get_tablename(
/*==============*/
tb_parser_t* m, /*!< inout: Parser structure */
char* dbname_buf, /*!< out: Database name or empty string */
size_t dbname_size, /*!< in: size of db buffer */
char* tabname_buf, /*!< out: Tablename or empty string */
size_t tabname_size) /*!< in: size of tablename buffer */
{
tb_parser_t saved_m;
saved_m = *m;
/* Try to parse database name */
if (!tbr_get_id(m, dbname_buf, dbname_size)) {
return(false);
}
/* If string does not contain constant "." there is no database name */
if (!tbr_match_const(m, (char *)".")) {
*m = saved_m;
dbname_buf[0] = '\0';
if (!tbr_get_id(m, tabname_buf, tabname_size)) {
return(false);
}
return(true);
}
/* Try to parser table name */
if (!tbr_get_id(m, tabname_buf, tabname_size)) {
return(false);
}
return(true);
}
/***********************************************************************//**
This function parses SQL-clauses and extracts table names
from the clause.
@return true if table names found, false if not
*/
bool
tbr_parser_table_names(
/*===================*/
char **db_name, /*!< inout: Array of db names */
char **table_name, /*!< inout: Array of table names */
int *n_tables, /*!< out: Number of db.table names found */
const char* sql_string) /*!< in: SQL-clause */
{
tb_parser_t m;
size_t name_count=0;
char *dbname=NULL;
char *tbname=NULL;
size_t len = strlen(sql_string);
tbr_parser_init(&m, sql_string);
*n_tables = 0;
// MySQL does not support multi-table insert or replace
if ((tbr_match_keyword(&m, "INSERT") || tbr_match_keyword(&m, "REPLACE")) &&
tbr_skipto_keyword(&m, "INTO", "")) {
dbname = (char *)malloc(len+1);
tbname = (char *)malloc(len+1);
if (tbr_get_tablename(&m, dbname, len, tbname, len)) {
db_name[name_count] = dbname;
table_name[name_count] = tbname;
name_count++;
} else {
free(dbname);
free(tbname);
return (false); // Parse error
}
}
// MySQL does support multi table delete/update
if ((tbr_match_keyword(&m, "DELETE") &&
tbr_skipto_keyword(&m, "FROM","")) ||
(tbr_match_keyword(&m, "UPDATE"))) {
dbname = (char *)malloc(len+1);
tbname = (char *)malloc(len+1);
// These will eat the optional keywords from update
tbr_match_keyword(&m, "LOW PRIORITY");
tbr_match_keyword(&m, "IGNORE");
// Parse the first db.table name
if (tbr_get_tablename(&m, dbname, len,tbname,len)) {
db_name[name_count] = dbname;
table_name[name_count] = tbname;
name_count++;
// Table names are delimited by ","
while(tbr_match_const(&m, ",")) {
dbname = (char *)malloc(len+1);
tbname = (char *)malloc(len+1);
// Parse the next db.table name
if (tbr_get_tablename(&m, dbname, len,tbname,len)) {
db_name[name_count] = dbname;
table_name[name_count] = tbname;
name_count++;
} else {
free(dbname);
free(tbname);
return (false);
}
}
}
}
// LOAD command
if (tbr_match_keyword(&m, "LOAD") &&
tbr_skipto_keyword(&m, "INTO", "")) {
// Eat TABLE keyword
tbr_match_keyword(&m, "TABLE");
dbname = (char *)malloc(len+1);
tbname = (char *)malloc(len+1);
if (tbr_get_tablename(&m, dbname, len, tbname, len)) {
db_name[name_count] = dbname;
table_name[name_count] = tbname;
name_count++;
} else {
free(dbname);
free(tbname);
return (false); // Parse error
}
}
// TODO: Is create table/drop table needed ?
*n_tables = name_count;
if (name_count == 0) {
return (false); // Parse error
}
return (true);
}
} // table_replication_parser
} // mysql

View File

@ -0,0 +1,51 @@
/*
Copyright (C) 2013, SkySQL Ab
This file is distributed as part of the SkySQL Gateway. It is free
software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation,
version 2.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Author: Jan Lindström jan.lindstrom@skysql.com
Created: 20-06-2013
Updated:
*/
#ifndef TABLE_REPLICATION_PARSER_H
#define TABLE_REPLICATION_PARSER_H
namespace mysql {
namespace table_replication_parser {
/***********************************************************************//**
This function parses SQL-clauses and extracts table names
from the clause.
@return true if table names found, false if not
*/
bool
tbr_parser_table_names(
/*===================*/
char **db_name, /*!< inout: Array of db names */
char **table_name, /*!< inout: Array of table names */
int *n_tables, /*!< out: Number of db.table names found */
const char* sql_string); /*!< in: SQL-clause */
} // table_replication_parser
} // mysql
#endif

View File

@ -17,10 +17,6 @@
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//For backwards compatibility, what version of CMake commands and
// syntax should this version of CMake try to support.
CMAKE_BACKWARDS_COMPATIBILITY:STRING=2.4
//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
CMAKE_BUILD_TYPE:STRING=Debug
@ -159,12 +155,6 @@ CMAKE_USE_RELATIVE_PATHS:BOOL=OFF
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Single output directory for building all executables.
EXECUTABLE_OUTPUT_PATH:PATH=
//Single output directory for building all libraries.
LIBRARY_OUTPUT_PATH:PATH=
//Path to a library.
LIB_CRYPTO:FILEPATH=/usr/lib/x86_64-linux-gnu/libcrypto.so
@ -174,12 +164,6 @@ MySQL_INCLUDE_DIR:PATH=/usr/local/include
//Path to a library.
MySQL_LIBRARY:FILEPATH=/usr/lib/libmysqlclient_r.so
//Value Computed by CMake
Project_BINARY_DIR:STATIC=/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test
//Value Computed by CMake
Project_SOURCE_DIR:STATIC=/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test
//Path to a file.
SkySQL_INCLUDE_DIR:PATH=/home/jan/skysql/skygateway/skygateway/utils

View File

@ -261,3 +261,266 @@ Parsed CXX implicit link information from above output:
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
The system is: Linux - 3.5.0-28-generic - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/gcc
Build flags:
Id flags:
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
The C compiler identification is GNU, found in "/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CompilerIdC/a.out"
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++
Build flags:
Id flags:
The output was:
0
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
The CXX compiler identification is GNU, found in "/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CompilerIdCXX/a.out"
Determining if the C compiler works passed with the following output:
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec4066791333/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec4066791333.dir/build.make CMakeFiles/cmTryCompileExec4066791333.dir/build
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec4066791333.dir/testCCompiler.c.o
/usr/bin/gcc -o CMakeFiles/cmTryCompileExec4066791333.dir/testCCompiler.c.o -c /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTryCompileExec4066791333
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4066791333.dir/link.txt --verbose=1
/usr/bin/gcc CMakeFiles/cmTryCompileExec4066791333.dir/testCCompiler.c.o -o cmTryCompileExec4066791333 -rdynamic
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec4094219882/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec4094219882.dir/build.make CMakeFiles/cmTryCompileExec4094219882.dir/build
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o
/usr/bin/gcc -o CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c
Linking C executable cmTryCompileExec4094219882
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4094219882.dir/link.txt --verbose=1
/usr/bin/gcc -v CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec4094219882 -rdynamic
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec4094219882' '-rdynamic' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec4094219882 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
Parsed C implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec4094219882/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec4094219882.dir/build.make CMakeFiles/cmTryCompileExec4094219882.dir/build]
ignore line: [make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp']
ignore line: [/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1]
ignore line: [Building C object CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/gcc -o CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c]
ignore line: [Linking C executable cmTryCompileExec4094219882]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4094219882.dir/link.txt --verbose=1]
ignore line: [/usr/bin/gcc -v CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec4094219882 -rdynamic ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/gcc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec4094219882' '-rdynamic' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec4094219882 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2] ==> ignore
arg [--sysroot=/] ==> ignore
arg [--build-id] ==> ignore
arg [--no-add-needed] ==> ignore
arg [--as-needed] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [-export-dynamic] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTryCompileExec4094219882] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..]
arg [CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--no-as-needed] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--no-as-needed] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
remove lib [gcc]
remove lib [gcc_s]
remove lib [gcc]
remove lib [gcc_s]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.7]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> [/usr/lib]
collapse dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse dir [/lib/../lib] ==> [/lib]
collapse dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse dir [/usr/lib/../lib] ==> [/usr/lib]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> [/usr/lib]
implicit libs: [c]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
Determining if the CXX compiler works passed with the following output:
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec3884602878/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3884602878.dir/build.make CMakeFiles/cmTryCompileExec3884602878.dir/build
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec3884602878.dir/testCXXCompiler.cxx.o
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec3884602878.dir/testCXXCompiler.cxx.o -c /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTryCompileExec3884602878
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3884602878.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/cmTryCompileExec3884602878.dir/testCXXCompiler.cxx.o -o cmTryCompileExec3884602878 -rdynamic
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec3591115516/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3591115516.dir/build.make CMakeFiles/cmTryCompileExec3591115516.dir/build
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp
Linking CXX executable cmTryCompileExec3591115516
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3591115516.dir/link.txt --verbose=1
/usr/bin/c++ -v CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec3591115516 -rdynamic
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3591115516' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec3591115516 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
Parsed CXX implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec3591115516/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec3591115516.dir/build.make CMakeFiles/cmTryCompileExec3591115516.dir/build]
ignore line: [make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp']
ignore line: [/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1]
ignore line: [Building CXX object CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -o CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Linking CXX executable cmTryCompileExec3591115516]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3591115516.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec3591115516 -rdynamic ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3591115516' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec3591115516 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2] ==> ignore
arg [--sysroot=/] ==> ignore
arg [--build-id] ==> ignore
arg [--no-add-needed] ==> ignore
arg [--as-needed] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [-export-dynamic] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTryCompileExec3591115516] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..]
arg [CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [-lc] ==> lib [c]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
remove lib [gcc_s]
remove lib [gcc]
remove lib [gcc_s]
remove lib [gcc]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.7]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> [/usr/lib]
collapse dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse dir [/lib/../lib] ==> [/lib]
collapse dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse dir [/usr/lib/../lib] ==> [/usr/lib]
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> [/usr/lib]
implicit libs: [stdc++;m;c]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]

View File

@ -11,11 +11,28 @@ SET(CMAKE_MAKEFILE_DEPENDS
"CMakeFiles/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeSystem.cmake"
"CMakeLists.txt"
"/usr/share/cmake-2.8/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake-2.8/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-2.8/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp"
"/usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-2.8/Modules/CMakeClDeps.cmake"
"/usr/share/cmake-2.8/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-2.8/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-2.8/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-2.8/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-2.8/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-2.8/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake-2.8/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-2.8/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-2.8/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-2.8/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake-2.8/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-2.8/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake-2.8/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake-2.8/Modules/Compiler/GNU.cmake"