Open tmds opened 8 months ago
The build failed with a c++ error on Ubuntu 16.04
Can you share build error and build command?
It would be nice if netcoredbg release binaries work on a large set of the Microsoft supported distros.
Thanks for feedback, we'll consider switch to older ubuntu. For now you can use build from source on ubuntu 18.04.
Can you share build error and build command?
In the ubuntu:16.04
container image I ran these commands:
apt-get update
apt-get install git curl cmake clang
cd
git clone https://github.com/Samsung/netcoredbg
cd netcoredbg/
mkdir build
cd build
CC=clang CXX=clang++ cmake ..
make
The compilation fails with:
[ 35%] Building CXX object src/CMakeFiles/netcoredbg.dir/debugger/callbacksqueue.cpp.o
In file included from /root/netcoredbg/src/debugger/callbacksqueue.cpp:9:
In file included from /root/netcoredbg/src/debugger/callbacksqueue.h:7:
In file included from /root/netcoredbg/src/debugger/manageddebugger.h:17:
/root/netcoredbg/src/utils/ioredirect.h:80:29: error: no matching constructor for initialization of 'IOSystem::StdIOSwap'
IOSystem::StdIOSwap file_descriptors({
^ ~
/root/netcoredbg/src/utils/iosystem.h:213:9: note: candidate constructor not viable: cannot convert initializer list argument to 'const StdFiles' (aka 'const
tuple<const netcoredbg::IOSystemImpl<netcoredbg::IOSystemTraits<netcoredbg::UnixPlatformTag> >::FileHandle &, const
netcoredbg::IOSystemImpl<netcoredbg::IOSystemTraits<netcoredbg::UnixPlatformTag> >::FileHandle &, const
netcoredbg::IOSystemImpl<netcoredbg::IOSystemTraits<netcoredbg::UnixPlatformTag> >::FileHandle &>')
StdIOSwap(const StdFiles &files) : ioswap(files) {}
^
/root/netcoredbg/src/utils/iosystem.h:215:9: note: candidate constructor not viable: cannot convert initializer list argument to 'const
netcoredbg::IOSystemImpl<netcoredbg::IOSystemTraits<netcoredbg::UnixPlatformTag> >::StdIOSwap'
StdIOSwap(const StdIOSwap&) = delete;
^
1 error generated.
src/CMakeFiles/netcoredbg.dir/build.make:270: recipe for target 'src/CMakeFiles/netcoredbg.dir/debugger/callbacksqueue.cpp.o' failed
make[2]: *** [src/CMakeFiles/netcoredbg.dir/debugger/callbacksqueue.cpp.o] Error 1
CMakeFiles/Makefile2:186: recipe for target 'src/CMakeFiles/netcoredbg.dir/all' failed
make[1]: *** [src/CMakeFiles/netcoredbg.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
The distro that is used to build the release binaries limits on what distros these binaries can be used. Using an older distro enables the binaries to work across a broader set of distros.
To make their .NET
linux-x64
binaries work across a large of distros, Microsoft pick an 'old' distro for each release. Up until .NET 6, CentOS 7 was used, .NET 8 uses Ubuntu 16.04, and .NET 9 will use Ubuntu 18.04.It would be nice if
netcoredbg
release binaries work on a large set of the Microsoft supported distros.To try some old distro builds, I compiled
netcoredbg
with the Ubuntu versions Microsoft is using. The build failed with a c++ error on Ubuntu 16.04. On Ubuntu 18.04, it passed without errors. The Ubuntu 18.04 works across more distros than the currently provided release downloads, including Ubuntu 18.04, RHEL 8, and Debian Buster.