ov-client
ov-client copied to clipboard
build libov for all platforms
libov should contain the core interface library. It has minimal dependencies and should build on most platforms (network tools may require specific implementations).
libov
Hi guys :)
Compiling libov on osx needs to cut -fext-numeric-literals at least on my machine (mbp 2015 running High Sierra); not sure if that is a strict requirement to use this flag, as it appears to be C++14: if thats the case I need to find another way.
cutting cut -fext-numeric-literals Libov compiles with just a warning on osx:
/Volumes/M/U/a/Doc/DIG/OV/libov master !1 make ✔
mkdir -p build
touch build/.directory
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/ov_types.cc -o build/ov_types.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/errmsg.cc -o build/errmsg.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/common.cc -o build/common.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/udpsocket.cc -o build/udpsocket.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/callerlist.cc -o build/callerlist.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/ovboxclient.cc -o build/ovboxclient.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/MACAddressUtility.cc -o build/MACAddressUtility.o
src/MACAddressUtility.cc:102:9: warning: variable 'intfService' is uninitialized when used here [-Wuninitialized]
while(intfService == IOIteratorNext(intfIterator)) {
^~~~~~~~~~~
src/MACAddressUtility.cc:92:26: note: initialize the variable 'intfService' to silence this warning
io_object_t intfService;
^
= 0
1 warning generated.
ar rcs build/libov.a build/ov_types.o build/errmsg.o build/common.o build/udpsocket.o build/callerlist.o build/ovboxclient.o build/MACAddressUtility.o
/Volumes/M/U/a/Doc/DIG/OV/libov master !1 make ✔ 4s
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/MACAddressUtility.cc -o build/MACAddressUtility.o
ar rcs build/libov.a build/ov_types.o build/errmsg.o build/common.o build/udpsocket.o build/callerlist.o build/ovboxclient.o build/MACAddressUtility.o
make after adding initialization to intfService
Just adding initialization to
io_object_t intfService = 0;
let it compiles just fine:
/Volumes/M/U/a/Doc/DIG/OV/libov master !1 make clean ✔
rm -Rf build src/*~
/Volumes/M/U/a/Doc/DIG/OV/libov master !1 make ✔
mkdir -p build
touch build/.directory
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/ov_types.cc -o build/ov_types.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/errmsg.cc -o build/errmsg.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/common.cc -o build/common.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/udpsocket.cc -o build/udpsocket.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/callerlist.cc -o build/callerlist.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/ovboxclient.cc -o build/ovboxclient.o
g++ -Wall -Wno-deprecated-declarations -std=c++11 -pthread -ggdb -fno-finite-math-only -DOVBOXVERSION="\"0.3\"" -D OSX -D IA32 -c src/MACAddressUtility.cc -o build/MACAddressUtility.o
ar rcs build/libov.a build/ov_types.o build/errmsg.o build/common.o build/udpsocket.o build/callerlist.o build/ovboxclient.o build/MACAddressUtility.o
Not sure if this can affect anything else, if we shall flag the file as not to check uninitialized or I shall just push the initialized version.
Even using -D IA32 this outputs:
lipo -info build/libov.a Non-fat file: build/libov.a is architecture: x86_64
that is perfectly fine on this machine, but I am not sure what is the lower architecture for osx we want to support.