Commit 2eeec259 authored by Lancelot SIX's avatar Lancelot SIX
Browse files

rocmPackages.rocgdb: Build with amdgpu support

The currnt rocgdb package is built without amdgpu uspport (which
requires the rocdbgapi library).  Fix this, and do other improvements
over the default configuration.
parent 48833103
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -115,8 +115,7 @@ in rec {
  };

  rocgdb = callPackage ./rocgdb {
    inherit rocmUpdateScript;
    elfutils = elfutils.override { enableDebuginfod = true; };
    inherit rocmUpdateScript rocdbgapi;
    stdenv = llvm.rocmClangStdenv;
  };

+48 −2
Original line number Diff line number Diff line
@@ -6,11 +6,16 @@
, texinfo
, bison
, flex
, glibc
, zlib
, elfutils
, gmp
, mpfr
, ncurses
, expat
, rocdbgapi
, python3
, babeltrace
, sourceHighlight
}:

stdenv.mkDerivation (finalAttrs: {
@@ -33,12 +38,53 @@ stdenv.mkDerivation (finalAttrs: {

  buildInputs = [
    zlib
    elfutils
    gmp
    mpfr
    ncurses
    expat
    rocdbgapi
    python3
    babeltrace
    sourceHighlight
  ];

  configureFlags = [
    # Ensure we build the amdgpu traget
    "--enable-targets=${stdenv.targetPlatform.config},amdgcn-amd-amdhsa"
    "--with-amd-dbgapi=yes"

    "--with-iconv-path=${glibc.bin}"
    "--enable-tui"
    "--with-babeltrace"
    "--with-python=python3"
    "--with-system-zlib"
    "--enable-64-bit-bfd"
    "--with-gmp=${gmp.dev}"
    "--with-mpfr=${mpfr.dev}"
    "--with-expat"
    "--with-libexpat-prefix=${expat.dev}"

    # So the installed binary is called "rocgdb" instead on plain "gdb"
    "--program-prefix=roc"

    # Disable building many components not used or incompatible with the amdgcn target
    "--disable-sim"
    "--disable-gdbserver"
    "--disable-ld"
    "--disable-gas"
    "--disable-gdbserver"
    "--disable-sim"
    "--disable-gdbtk"
    "--disable-gprofng"
    "--disable-shared"
  ];

  # The source directory for ROCgdb (based on upstream GDB) contains multiple project
  # of GNU’s toolchain (binutils and onther), we only need to install the GDB part.
  installPhase = ''
    make install-gdb
  '';

  # `-Wno-format-nonliteral` doesn't work
  env.NIX_CFLAGS_COMPILE = "-Wno-error=format-security";