eteran / edb-debugger

edb is a cross-platform AArch32/x86/x86-64 debugger.
GNU General Public License v2.0
2.68k stars 322 forks source link

Ubuntu 20.04 support #765

Closed netsecdosdos closed 4 years ago

netsecdosdos commented 4 years ago

cmake is not compiling....

It fails with the following output:

Change Dir: /opt/edb-debugger/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_37c91/fast && /usr/bin/make -f CMakeFiles/cmTC_37c91.dir/build.make CMakeFiles/cmTC_37c91.dir/build
make[1]: Entering directory '/opt/edb-debugger/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_37c91.dir/testCXXCompiler.cxx.o
/usr/bin/make     -o CMakeFiles/cmTC_37c91.dir/testCXXCompiler.cxx.o -c /opt/edb-debugger/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
/usr/bin/make: invalid option -- 'c'

make[1]: [CMakeFiles/cmTC_37c91.dir/build.make:66: CMakeFiles/cmTC_37c91.dir/testCXXCompiler.cxx.o] Error 2 make[1]: Leaving directory '/opt/edb-debugger/CMakeFiles/CMakeTmp' make: [Makefile:121: cmTC_37c91/fast] Error 2

10110111 commented 4 years ago

Could you post the whole output of the cmake and make run, as well as CMake and Make version?

10110111 commented 4 years ago

It looks as if your CMAKE_CXX_COMPILER is set to /usr/bin/make, which shouldn't be so. Try removing your build directory and re-running cmake from scratch. If it still fails, please post the cmake command line you run.

netsecdosdos commented 4 years ago

Deleted build directory and reran....

-- The CXX compiler identification is unknown -- Check for working CXX compiler: /usr/bin/make -- Check for working CXX compiler: /usr/bin/make -- broken CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake:53 (message): The C++ compiler

"/usr/bin/make"

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /opt/edb-debugger/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_19d4b/fast && /usr/bin/make -f CMakeFiles/cmTC_19d4b.dir/build.make CMakeFiles/cmTC_19d4b.dir/build
make[1]: Entering directory '/opt/edb-debugger/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_19d4b.dir/testCXXCompiler.cxx.o
/usr/bin/make     -o CMakeFiles/cmTC_19d4b.dir/testCXXCompiler.cxx.o -c /opt/edb-debugger/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
/usr/bin/make: invalid option -- 'c'
Usage: make [options] [target] ...
Options:
  -b, -m                      Ignored for compatibility.
  -B, --always-make           Unconditionally make all targets.
  -C DIRECTORY, --directory=DIRECTORY
                              Change to DIRECTORY before doing anything.
  -d                          Print lots of debugging information.
  --debug[=FLAGS]             Print various types of debugging information.
  -e, --environment-overrides
                              Environment variables override makefiles.
  --eval=STRING               Evaluate STRING as a makefile statement.
  -f FILE, --file=FILE, --makefile=FILE
                              Read FILE as a makefile.
  -h, --help                  Print this message and exit.
  -i, --ignore-errors         Ignore errors from recipes.
  -I DIRECTORY, --include-dir=DIRECTORY
                              Search DIRECTORY for included makefiles.
  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no arg.
  -k, --keep-going            Keep going when some targets can't be made.
  -l [N], --load-average[=N], --max-load[=N]
                              Don't start multiple jobs unless load is below N.
  -L, --check-symlink-times   Use the latest mtime between symlinks and target.
  -n, --just-print, --dry-run, --recon
                              Don't actually run any recipe; just print them.
  -o FILE, --old-file=FILE, --assume-old=FILE
                              Consider FILE to be very old and don't remake it.
  -O[TYPE], --output-sync[=TYPE]
                              Synchronize output of parallel jobs by TYPE.
  -p, --print-data-base       Print make's internal database.
  -q, --question              Run no recipe; exit status says if up to date.
  -r, --no-builtin-rules      Disable the built-in implicit rules.
  -R, --no-builtin-variables  Disable the built-in variable settings.
  -s, --silent, --quiet       Don't echo recipes.
  -S, --no-keep-going, --stop
                              Turns off -k.
  -t, --touch                 Touch targets instead of remaking them.
  --trace                     Print tracing information.
  -v, --version               Print the version number of make and exit.
  -w, --print-directory       Print the current directory.
  --no-print-directory        Turn off -w, even if it was turned on implicitly.
  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
                              Consider FILE to be infinitely new.
  --warn-undefined-variables  Warn when an undefined variable is referenced.

This program built for x86_64-pc-linux-gnu
Report bugs to <bug-make@gnu.org>
make[1]: *** [CMakeFiles/cmTC_19d4b.dir/build.make:66: CMakeFiles/cmTC_19d4b.dir/testCXXCompiler.cxx.o] Error 2
make[1]: Leaving directory '/opt/edb-debugger/CMakeFiles/CMakeTmp'
make: *** [Makefile:121: cmTC_19d4b/fast] Error 2

CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:2 (project)

-- Configuring incomplete, errors occurred! See also "/opt/edb-debugger/CMakeFiles/CMakeOutput.log". See also "/opt/edb-debugger/CMakeFiles/CMakeError.log".

10110111 commented 4 years ago

-- Check for working CXX compiler: /usr/bin/make

This confirms my guess. Please show the cmake command line.

netsecdosdos commented 4 years ago

I've tried them all.... cmake .. cmake ../ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ ..

10110111 commented 4 years ago

BTW, why do you have to build EDB from source? Ubuntu already has edb-debugger package to install.

Anyway, assuming you really need to build, I've just checked the following sequence of actions with Xubuntu 20.04:

  1. Started the Live image downloaded from here
  2. In software-properties-gtk program enabled Source code, clicked Close and Reload
  3. Issued sudo apt build-dep edb-debugger to install all the necessary dependencies
  4. Installed git
  5. Cloned EDB
  6. In the EDB source tree issued mkdir build && cd build && cmake ..

And this configured the build system without any problems.

So your problem is somewhere in the system configuration. For some reason CMake selects /usr/bin/make as the compiler, although it's not a compiler.

How did you install CMake? Did you apply any special tweaks to it?

netsecdosdos commented 4 years ago

Awesome. Thanks. I just ran the package from apt-get and was successful. Before I was just trying to compile it from source. I can go back to that if it is applicable.

ped7g commented 4 years ago

do you have some compiler installed? some package like build-essential? some gcc or clang?

netsecdosdos commented 4 years ago

Yes, I was just able to use apt-get. Will look to follow previous guidance with src compilation.

Sent with iPhone R4

On May 28, 2020, at 4:02 PM, Peter Ped Helcmanovsky notifications@github.com wrote:

 do you have some compiler installed? some package like build-essential? some gcc or clang?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

eteran commented 4 years ago

Looks like this was not an edb bug but instead a misconfiguration of the build environment.

Closing.