cms-gem-daq-project / xhal

XHAL interface library
0 stars 10 forks source link

Add log4cplus version awareness, fix #116 #117

Closed lmoureaux closed 5 years ago

lmoureaux commented 5 years ago

Description

log4cplus defines version macros, use them to fix the build failure mentioned in issue #116.

Types of changes

Motivation and Context

Closes #116

How Has This Been Tested?

Tested with log4cplus < 2.0.0.

Checklist:

jsturdy commented 5 years ago
 #if LOG4CPLUS_VERSION < LOG4CPLUS_MAKE_VERSION(2, 0, 0)
                                               ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:14:35: error: no matching function for call to ‘log4cplus::Appender::setLayout(std::unique_ptr<log4cplus::Layout>&)’
   myAppender->setLayout( myLayout );
                                   ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:14:35: note: candidate is:
In file included from /data/sw/peta-stage/usr/include/log4cplus/spi/appenderattachable.h:33:0,
                 from /data/sw/peta-stage/usr/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from /home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:1:
/data/sw/peta-stage/usr/include/log4cplus/appender.h:199:22: note: virtual void log4cplus::Appender::setLayout(std::auto_ptr<log4cplus::Layout>)
         virtual void setLayout(std::auto_ptr<Layout> layout);
                      ^
/data/sw/peta-stage/usr/include/log4cplus/appender.h:199:22: note:   no known conversion for argument 1 from ‘std::unique_ptr<log4cplus::Layout>’ to ‘std::auto_ptr<log4cplus::Layout>’
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In member function ‘std::experimental::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:363:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^

@mexanick where does log4cplus get used on the CTP7? How is it currently solved that the CTP7 is using log4cplus 2, or did you version match to what is provided with xdaq?

lmoureaux commented 5 years ago

Under which version was this error obtained? I.e. is the version check wrong or is it the code for log4cplus 2?

#if LOG4CPLUS_VERSION < LOG4CPLUS_MAKE_VERSION(2, 0, 0)
                                              ^

What is the message before this snippet?

jsturdy commented 5 years ago

Under which version was this error obtained? I.e. is the version check wrong or is it the code for log4cplus 2?

#if LOG4CPLUS_VERSION < LOG4CPLUS_MAKE_VERSION(2, 0, 0)
                                              ^

What is the message before this snippet?

Indeed, I was curious myself, since the message from #116 had exactly the opposite message that is in this message. It turns out that the problem is in the make xhalarm call, as I had suspected from my initial comment regarding which log4cplus is actually being used on the CTP7.

Full message with fix:
arm-linux-gnueabihf-gcc -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -std=c++14 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mthumb-interwork -mtune=cortex-a9 -DEMBED -Dlinux -D__linux__ -Dunix -fPIC --sysroot=/data/sw/peta-stage -I/data/sw/peta-stage/usr/include -I/data/sw/peta-stage/include -std=gnu++14 -I/home/sturdy/src/sw/xhal/xhalcore/include -c -o src/linux/arm/utils/XHALXMLParser.o /home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:9:47: error: missing binary operator before token "("
 #if LOG4CPLUS_VERSION < LOG4CPLUS_MAKE_VERSION(2, 0, 0)
                                               ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:14:35: error: no matching function for call to ‘log4cplus::Appender::setLayout(std::unique_ptr<log4cplus::Layout>&)’
   myAppender->setLayout( myLayout );
                                   ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:14:35: note: candidate is:
In file included from /data/sw/peta-stage/usr/include/log4cplus/spi/appenderattachable.h:33:0,
                 from /data/sw/peta-stage/usr/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from /home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:1:
/data/sw/peta-stage/usr/include/log4cplus/appender.h:199:22: note: virtual void log4cplus::Appender::setLayout(std::auto_ptr<log4cplus::Layout>)
         virtual void setLayout(std::auto_ptr<Layout> layout);
                      ^
/data/sw/peta-stage/usr/include/log4cplus/appender.h:199:22: note:   no known conversion for argument 1 from ‘std::unique_ptr<log4cplus::Layout>’ to ‘std::auto_ptr<log4cplus::Layout>’
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In member function ‘std::experimental::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:363:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
Full message without fix:

(note it succeeds, with appropriate warnings, the arm compilation and fails, as expected, on the core compilation)

arm-linux-gnueabihf-gcc -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -std=c++14 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mthumb-interwork -mtune=cortex-a9 -DEMBED -Dlinux -D__linux__ -Dunix -fPIC --sysroot=/data/sw/peta-stage -I/data/sw/peta-stage/usr/include -I/data/sw/peta-stage/include -std=gnu++14 -I/home/sturdy/src/sw/xhal/xhalcore/include -c -o src/linux/arm/utils/XHALXMLParser.o /home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:10:36: warning: ‘auto_ptr’ is deprecated (declared at /data/bigdisk/sw/Xilinx/SDK/2016.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
                                    ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:10:107: warning: ‘auto_ptr’ is deprecated (declared at /data/bigdisk/sw/Xilinx/SDK/2016.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
                                                                                                           ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In member function ‘std::experimental::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:363:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
arm-linux-gnueabihf-gcc -std=gnu++14 -L/data/sw/peta-stage/lib -L/data/sw/peta-stage/usr/lib -L/data/sw/peta-stage/ncurses -shared  -o /home/sturdy/src/sw/xhal/xhalarm/lib/libxhal.so src/linux/arm/utils/XHALXMLParser.o -llog4cplus -lxerces-c -lstdc++
Running default target
mkdir -p pkg/xhal
make[1]: Leaving directory '/home/sturdy/src/sw/xhal/xhalarm'
make -C xhalcore
make[1]: Entering directory '/home/sturdy/src/sw/xhal/xhalcore'
Using BUILD_HOME=/home/sturdy/src/sw
OS Detected: centos7
BUILD_VERSION 1.0.105.dev
PREREL_VERSION -final.dev105
mkdir -p src/linux/x86_64/utils
gcc -O0 -g3 -fno-inline -Wall -pthread -fPIC -std=c++11 -m64 -I/usr/include/python2.7 -I/opt/xdaq/include -I/home/sturdy/src/sw/xhal/xhalcore/include -c src/common/utils/XHALXMLParser.cpp -o src/linux/x86_64/utils/XHALXMLParser.o
src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
src/common/utils/XHALXMLParser.cpp:10:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
        ^~~~~~~~
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
                 from /opt/xdaq/include/log4cplus/layout.h:39,
                 from /opt/xdaq/include/log4cplus/appender.h:33,
                 from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from src/common/utils/XHALXMLParser.cpp:1:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
src/common/utils/XHALXMLParser.cpp:10:52: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
                                                    ^~~~~~~~
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
                 from /opt/xdaq/include/log4cplus/layout.h:39,
                 from /opt/xdaq/include/log4cplus/appender.h:33,
                 from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from src/common/utils/XHALXMLParser.cpp:1:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
src/common/utils/XHALXMLParser.cpp:14:35: error: no matching function for call to ‘log4cplus::Appender::setLayout(std::auto_ptr<log4cplus::Layout>&)’
   myAppender->setLayout( myLayout );
                                   ^
In file included from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from src/common/utils/XHALXMLParser.cpp:1:
/opt/xdaq/include/log4cplus/appender.h:216:22: note: candidate: ‘virtual void log4cplus::Appender::setLayout(std::unique_ptr<log4cplus::Layout>)’
         virtual void setLayout(std::unique_ptr<Layout> layout);
                      ^~~~~~~~~
/opt/xdaq/include/log4cplus/appender.h:216:22: note:   no known conversion for argument 1 from ‘std::auto_ptr<log4cplus::Layout>’ to ‘std::unique_ptr<log4cplus::Layout>’
src/common/utils/XHALXMLParser.cpp: In member function ‘boost::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
src/common/utils/XHALXMLParser.cpp:363:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^

The PC installed version is:

cmsos-core-log4cplus.x86_64        2.0.0-1550763994.master.centos7.gcc8
cmsos-core-log4cplus-devel.x86_64  2.0.0-1550763994.master.centos7.gcc8
lmoureaux commented 5 years ago

Added missing include.

mexanick commented 5 years ago

In terms of log4cplus version we are tied to whatever version is provided by xdaq (or, was provided in its distribution before xdaq 15). Considering the compilation for ctp7, one need to cross-compile the appropriate version of the log4cplus library and place it on the card as well as in our peta-stage area.

lmoureaux commented 5 years ago

This PR is about supporting both log4cplus 1.x (xDAQ 14) and log4cplus 2.x (xDAQ 15) from the same code base. I would envision the migration plan as follows:

jsturdy commented 5 years ago

Still not working...

make xhalcore
make -C xhalarm
make[1]: Entering directory '/home/sturdy/src/sw/xhal/xhalarm'
Using BUILD_HOME=/home/sturdy/src/sw
OS Detected: centos7
BUILD_VERSION 1.0.105.dev
PREREL_VERSION -final.dev105
rm -rf src/linux/arm/utils/XHALXMLParser.o
rm -rf /home/sturdy/src/sw/xhal/xhalarm/lib/libxhal.so
rm -rf /home/sturdy/src/sw/xhal/xhalarm/lib
rm -rf pkg/xhal
mkdir -p -p src/linux/arm/utils
arm-linux-gnueabihf-gcc -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -std=c++14 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mthumb-interwork -mtune=cortex-a9 -DEMBED -Dlinux -D__linux__ -Dunix -fPIC --sysroot=/data/sw/peta-stage -I/data/sw/peta-stage/usr/include -I/data/sw/peta-stage/include -std=gnu++14 -I/home/sturdy/src/sw/xhal/xhalcore/include -c -o src/linux/arm/utils/XHALXMLParser.o /home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:12:36: warning: ‘auto_ptr’ is deprecated (declared at /data/bigdisk/sw/Xilinx/SDK/2016.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
                                    ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:12:107: warning: ‘auto_ptr’ is deprecated (declared at /data/bigdisk/sw/Xilinx/SDK/2016.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
                                                                                                           ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In member function ‘std::experimental::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:365:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
arm-linux-gnueabihf-gcc -std=gnu++14 -L/data/sw/peta-stage/lib -L/data/sw/peta-stage/usr/lib -L/data/sw/peta-stage/ncurses -shared  -o /home/sturdy/src/sw/xhal/xhalarm/lib/libxhal.so src/linux/arm/utils/XHALXMLParser.o -llog4cplus -lxerces-c -lstdc++
Running default target
mkdir -p pkg/xhal
make[1]: Leaving directory '/home/sturdy/src/sw/xhal/xhalarm'
make -C xhalcore
make[1]: Entering directory '/home/sturdy/src/sw/xhal/xhalcore'
Using BUILD_HOME=/home/sturdy/src/sw
OS Detected: centos7
BUILD_VERSION 1.0.105.dev
PREREL_VERSION -final.dev105
mkdir -p src/linux/x86_64/utils
gcc -O0 -g3 -fno-inline -Wall -pthread -fPIC -std=c++11 -m64 -I/usr/include/python2.7 -I/opt/xdaq/include -I/home/sturdy/src/sw/xhal/xhalcore/include -c src/common/utils/XHALXMLParser.cpp -o src/linux/x86_64/utils/XHALXMLParser.o
src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
src/common/utils/XHALXMLParser.cpp:16:35: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = log4cplus::Layout; _Dp = std::default_delete<log4cplus::Layout>]’
   myAppender->setLayout( myLayout );
                                   ^
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
                 from /opt/xdaq/include/log4cplus/layout.h:39,
                 from /opt/xdaq/include/log4cplus/appender.h:33,
                 from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from src/common/utils/XHALXMLParser.cpp:1:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:394:7: note: declared here
       unique_ptr(const unique_ptr&) = delete;
       ^~~~~~~~~~
In file included from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/utils/XHALXMLParser.h:39,
                 from src/common/utils/XHALXMLParser.cpp:1:
/opt/xdaq/include/log4cplus/appender.h:216:22: note:   initializing argument 1 of ‘virtual void log4cplus::Appender::setLayout(std::unique_ptr<log4cplus::Layout>)’
         virtual void setLayout(std::unique_ptr<Layout> layout);
                      ^~~~~~~~~
src/common/utils/XHALXMLParser.cpp: In member function ‘boost::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
src/common/utils/XHALXMLParser.cpp:365:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
make[1]: *** [Makefile:84: src/linux/x86_64/utils/XHALXMLParser.o] Error 1
make[1]: Leaving directory '/home/sturdy/src/sw/xhal/xhalcore'
make: *** [Makefile:32: xhalcore] Error 2

@lmoureaux, I've added you to a VM that has xdaq15 installed (gemdaq-build-xdaq15)

You should be set up if you do:

export PETA_STAGE=/data/sw/peta-stage
source /data/sw/Xilinx/SDK/2016.2/settings64.sh
. /opt/rh/devtoolset-8/enable
lmoureaux commented 5 years ago

Thank you for the VM, I could test it now. I find it weird that the new interface doesn't take a const reference to the pointer.

You should be set up if you do:

export PETA_STAGE=/data/sw/peta-stage
source /data/sw/Xilinx/SDK/2016.2/settings64.sh
. /opt/rh/devtoolset-8/enable

Cannot find -lwiscrpcsvc (will look for a solution if I ever need to link anything)

jsturdy commented 5 years ago

Cannot find -lwiscrpcsvc (will look for a solution if I ever need to link anything)

You would need to add /opt/wiscrpcsvc/lib to LD_LIBRARY_PATH (and probably /opt/xdaq/lib too)

mexanick commented 5 years ago

is it still in progress, or ready to review?

jsturdy commented 5 years ago

is it still in progress, or ready to review?

I'll test again, but I believe it's still WIP... It was part of longer term work anyway, but can probably get folded in to cms-gem-daq-project/ctp7_modules#148

lmoureaux commented 5 years ago

As far as I'm concerned it's ok. IIRC I was able to link by changing some env variables. In any case I don't expect linking to be a problem.

jsturdy commented 5 years ago

As far as I'm concerned it's ok. IIRC I was able to link by changing some env variables. In any case I don't expect linking to be a problem.

This branch still doesn't compile (xhalcore) due to previously discussed issues

bash-4.2$ which gcc
/opt/rh/devtoolset-8/root/usr/bin/gcc
bash-4.2$ make xhalcore
make -C xhalarm
make[1]: Entering directory '/home/sturdy/src/sw/xhal/xhalarm'
Using BUILD_HOME=/home/sturdy/src/sw
OS Detected: centos7
BUILD_VERSION 1.0.106.dev
PREREL_VERSION -final.dev106
rm -rf src/linux/arm/utils/XHALXMLParser.o
rm -rf /home/sturdy/src/sw/xhal/xhalarm/lib/libxhal.so
rm -rf /home/sturdy/src/sw/xhal/xhalarm/lib
rm -rf pkg/xhal
mkdir -p -p src/linux/arm/utils
arm-linux-gnueabihf-gcc -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -std=c++14 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mthumb-interwork -mtune=cortex-a9 -DEMBED -Dlinux -D__linux__ -Dunix -fPIC --sysroot=/data/sw/peta-stage -I/data/sw/peta-stage/usr/include -I/data/sw/peta-stage/include -std=gnu++14 -I/home/sturdy/src/sw/xhal/xhalcore/include -c -o src/linux/arm/utils/XHALXMLParser.o /home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In constructor ‘xhal::utils::XHALXMLParser::XHALXMLParser(const string&)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:12:85: warning: ‘auto_ptr’ is deprecated (declared at /data/bigdisk/sw/Xilinx/SDK/2016.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
   myAppender->setLayout(std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout()));
                                                                                     ^
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp: In member function ‘std::experimental::optional<xhal::utils::Node> xhal::utils::XHALXMLParser::getNodeFromAddress(uint32_t)’:
/home/sturdy/src/sw/xhal/xhalcore/src/common/utils/XHALXMLParser.cpp:364:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
arm-linux-gnueabihf-gcc -std=gnu++14 -L/data/sw/peta-stage/lib -L/data/sw/peta-stage/usr/lib -L/data/sw/peta-stage/ncurses -shared  -o /home/sturdy/src/sw/xhal/xhalarm/lib/libxhal.so src/linux/arm/utils/XHALXMLParser.o -llog4cplus -lxerces-c -lstdc++
Running default target
mkdir -p pkg/xhal
make[1]: Leaving directory '/home/sturdy/src/sw/xhal/xhalarm'
make -C xhalcore
make[1]: Entering directory '/home/sturdy/src/sw/xhal/xhalcore'
Using BUILD_HOME=/home/sturdy/src/sw
OS Detected: centos7
BUILD_VERSION 1.0.106.dev
PREREL_VERSION -final.dev106
mkdir -p src/linux/x86_64
gcc -O0 -g3 -fno-inline -Wall -pthread -fPIC -std=c++11 -m64 -I/usr/include/python2.7 -I/opt/xdaq/include -I/home/sturdy/src/sw/xhal/xhalcore/include -c -o src/linux/x86_64/XHALInterface.o src/common/XHALInterface.cpp
src/common/XHALInterface.cpp: In constructor ‘xhal::XHALInterface::XHALInterface(const string&)’:
src/common/XHALInterface.cpp:10:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
        ^~~~~~~~
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
                 from /opt/xdaq/include/log4cplus/layout.h:39,
                 from /opt/xdaq/include/log4cplus/appender.h:33,
                 from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/XHALInterface.h:17,
                 from src/common/XHALInterface.cpp:1:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
src/common/XHALInterface.cpp:10:52: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<log4cplus::Layout> myLayout = std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout());
                                                    ^~~~~~~~
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
                 from /opt/xdaq/include/log4cplus/layout.h:39,
                 from /opt/xdaq/include/log4cplus/appender.h:33,
                 from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/XHALInterface.h:17,
                 from src/common/XHALInterface.cpp:1:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
src/common/XHALInterface.cpp:11:35: error: no matching function for call to ‘log4cplus::Appender::setLayout(std::auto_ptr<log4cplus::Layout>&)’
   myAppender->setLayout( myLayout );
                                   ^
In file included from /opt/xdaq/include/log4cplus/spi/appenderattachable.h:33,
                 from /opt/xdaq/include/log4cplus/logger.h:36,
                 from /home/sturdy/src/sw/xhal/xhalcore/include/xhal/XHALInterface.h:17,
                 from src/common/XHALInterface.cpp:1:
/opt/xdaq/include/log4cplus/appender.h:221:22: note: candidate: ‘virtual void log4cplus::Appender::setLayout(std::unique_ptr<log4cplus::Layout>)’
         virtual void setLayout(std::unique_ptr<Layout> layout);
                      ^~~~~~~~~
/opt/xdaq/include/log4cplus/appender.h:221:22: note:   no known conversion for argument 1 from ‘std::auto_ptr<log4cplus::Layout>’ to ‘std::unique_ptr<log4cplus::Layout>’
make[1]: *** [Makefile:88: src/linux/x86_64/XHALInterface.o] Error 1
make[1]: Leaving directory '/home/sturdy/src/sw/xhal/xhalcore'
make: *** [Makefile:32: xhalcore] Error 2
lmoureaux commented 5 years ago

I don't understand how I could compile it in the first place but here is the fix, tested on gem904daq01 and gemdaq-build-xdaq15. There are two loggers...