From f4c22a3670d0640616844c3a0487aa308a8dd5f4 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 22 Jun 2014 23:46:50 +0000 Subject: added support for clang fixed for NetworkAdress and NetworkPrefix --- README | 3 +++ src/configure | 22 ++++++++++++++++++---- src/networkAddress.cpp | 2 +- src/networkPrefix.h | 1 - 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/README b/README index 66a8e12..746bd7e 100644 --- a/README +++ b/README @@ -25,6 +25,9 @@ common: libboost-system-dev libboost-regex-dev +if you want clang as compiler + clang + if you want to rebuild the manpage: asciidoc diff --git a/src/configure b/src/configure index a8fe6b1..4c84a9d 100755 --- a/src/configure +++ b/src/configure @@ -35,10 +35,10 @@ TARGET=`uname -s` EBUILD_COMPAT=0 -CXXFLAGS='-g -Wall -O2' -LDFLAGS='-g -Wall -O2' CROSS_PREFIX='' +USE_CLANG=0 + CRYPTO_LIB='gcrypt' PASSPHRASE=1 ROUTING=1 @@ -81,6 +81,7 @@ print_usage() { echo " --with-gcrypt= don't use systemwide gcrypt" echo " --with-nettle= don't use systemwide nettle" echo " --with-openssl= don't use systemwide openssl" + echo " --use-clang use clang/llvm as compiler/linker" } for arg @@ -89,6 +90,9 @@ do --target=*) TARGET=${arg#--target=} ;; + --use-clang) + USE_CLANG=1 + ;; --prefix=*) PREFIX=${arg#--prefix=} ;; @@ -174,6 +178,16 @@ if [ -n "$ERRORS" ] && [ $EBUILD_COMPAT -ne 1 ]; then exit 1 fi +if [ $USE_CLANG -eq 0 ]; then + CXXFLAGS='-g -Wall -O2' + LDFLAGS='-g -Wall -O2' + COMPILER='g++' +else + CXXFLAGS='-g -O2' + LDFLAGS='-g -O2' + COMPILER='clang++' +fi + rm -f include.mk rm -f version.h case $TARGET in @@ -299,9 +313,9 @@ cat > include.mk < result; uint64_t ether=ethernet_address_; for(int i = 0; i < 6; i++) { - result[i] = (unsigned char)(ether && 0xff); + result[i] = (unsigned char)(ether & 0xff); ether >>= 8; } return result; diff --git a/src/networkPrefix.h b/src/networkPrefix.h index 9b18708..a57ca04 100644 --- a/src/networkPrefix.h +++ b/src/networkPrefix.h @@ -51,7 +51,6 @@ public: bool operator<(const NetworkPrefix& s) const; private: - operator NetworkAddress(); void operator=(const NetworkPrefix& s); uint8_t length_; friend class boost::serialization::access; -- cgit v1.2.3