Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make download binaries work on a broader set of Linux distros #144

Open
tmds opened this issue Nov 2, 2023 · 2 comments
Open

Make download binaries work on a broader set of Linux distros #144

tmds opened this issue Nov 2, 2023 · 2 comments

Comments

@tmds
Copy link

tmds commented Nov 2, 2023

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.

@gbalykov
Copy link
Member

gbalykov commented Nov 6, 2023

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.

@tmds
Copy link
Author

tmds commented Nov 8, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants