Local build, configure fails with "ERROR: Cannot find llvm-objdump"

RESOLVED FIXED in Firefox 67

Status

defect
RESOLVED FIXED
5 months ago
4 months ago

People

(Reporter: robwu, Assigned: robwu)

Tracking

Trunk
mozilla67
Dependency tree / graph

Firefox Tracking Flags

(firefox67 fixed)

Details

Attachments

(1 attachment)

I cannot build any more on ArchLinux, because llvm-objdump cannot be found:

$ mach build
...
 0:00.79 Adding configure options from /path/to/.mozconfig-debug
 0:00.79   --enable-debug-symbols
 0:00.79   --enable-debug
...
 0:08.05 checking for llvm-objdump... not found
 0:08.05 DEBUG: llvm_objdump: Trying llvm-objdump
 0:08.05 ERROR: Cannot find llvm-objdump
 0:08.10 *** Fix above errors and then restart with\
 0:08.10                "./mach build"
 0:08.10 make: *** [client.mk:115: configure] Error 1

On ArchLinux, the global llvm-objdump binary is provided by the llvm package, which I have not installed. I did install clang, but that depends on llvm-libs for libraries (not the binaries).

When I use mach bootstrap, it pulls in clang, and the expected binary exists in .mozbuild/clang/bin/llvm-objdump:

$ mach bootstrap
...
 0:56.43 Downloaded artifact to /path/to/.mozbuild/toolchains/4983b3ce77569207-clang.tar.xz
 0:56.77 rm tree: /path/to/.mozbuild/clang
 0:56.87 untarring "/path/to/.mozbuild/clang.tar.xz"
...

The configure script needs to be updated, to use the llvm-objdir from the downloaded toolchain if not found in $PATH.

Appending the paths=toolchain_search_path argument to its check_prog call seems to fix the problem. I'll wait for the build to finish before concluding that the resulting build is successful.

(In reply to Rob Wu [:robwu] from comment #0)

I cannot build any more on ArchLinux, because llvm-objdump cannot be found:

 0:00.79   --enable-debug-symbols
 0:00.79   --enable-debug
...
 0:08.05 checking for llvm-objdump... not found
 0:08.05 DEBUG: llvm_objdump: Trying llvm-objdump
 0:08.05 ERROR: Cannot find llvm-objdump
 0:08.10 *** Fix above errors and then restart with\

Can you paste what appears where you put ...?

I'll wait for the build to finish before concluding that the resulting build is successful.

The build finishes without problems; I've attached the patch at https://phabricator.services.mozilla.com/D19140

(In reply to Mike Hommey [:glandium] from comment #2)

Can you paste what appears where you put ...?

Sure. Here it is:

 0:08.09   --enable-debug-symbols
 0:08.09   --enable-debug
 0:08.09 checking for vcs source checkout... git
 0:08.25 checking for a shell... /usr/bin/sh
 0:08.30 checking for host system type... x86_64-pc-linux-gnu
 0:08.30 checking for target system type... x86_64-pc-linux-gnu
 0:08.64 checking whether cross compiling... no
 0:08.71 checking for the target C compiler... /usr/bin/clang
 0:10.65 checking whether the target C compiler can be used... yes
 0:10.67 checking for Python 3... /usr/bin/python3 (3.7.1)
 0:10.67 checking for git... /usr/bin/git
 0:10.68 checking for Git version... 2.20.1
 0:10.68 checking for sparse checkout... no
 0:10.69 checking for yasm... /usr/bin/yasm
 0:10.74 checking yasm version... 1.3.0
 0:10.74 checking for nasm... /usr/bin/nasm
 0:10.80 checking nasm version... 2.14
 0:10.80 checking the target C compiler version... 7.0.1
 0:11.20 checking the target C compiler works... yes
 0:11.20 checking for the target C++ compiler... /usr/bin/clang++
 0:11.27 checking whether the target C++ compiler can be used... yes
 0:11.27 checking the target C++ compiler version... 7.0.1
 0:11.37 checking the target C++ compiler works... yes
 0:11.37 checking for the host C compiler... /usr/bin/clang
 0:11.49 checking whether the host C compiler can be used... yes
 0:11.49 checking the host C compiler version... 7.0.1
 0:11.57 checking the host C compiler works... yes
 0:11.57 checking for the host C++ compiler... /usr/bin/clang++
 0:11.65 checking whether the host C++ compiler can be used... yes
 0:11.65 checking the host C++ compiler version... 7.0.1
 0:11.72 checking the host C++ compiler works... yes
 0:11.86 checking for 64-bit OS... yes
 0:11.88 checking for llvm_profdata... /path/to/.mozbuild/clang/bin/llvm-profdata
 0:12.04 checking for linker... gold
 0:12.04 checking for the assembler... /usr/bin/clang
 0:12.13 checking whether the C compiler supports -fsanitize=fuzzer-no-link... yes
 0:12.13 checking for ar... /usr/bin/ar
 0:12.13 checking for pkg_config... /usr/bin/pkg-config
 0:12.17 checking for pkg-config version... 1.5.4
 0:12.26 checking for stdint.h... yes
 0:12.35 checking for inttypes.h... yes
 0:12.45 checking for malloc.h... yes
 0:12.53 checking for alloca.h... yes
 0:12.61 checking for sys/byteorder.h... no
 0:12.68 checking for getopt.h... yes
 0:12.75 checking for unistd.h... yes
 0:12.82 checking for nl_types.h... yes
 0:12.90 checking for cpuid.h... yes
 0:12.98 checking for sys/statvfs.h... yes
 0:13.05 checking for sys/statfs.h... yes
 0:13.13 checking for sys/vfs.h... yes
 0:13.21 checking for sys/mount.h... yes
 0:13.28 checking for sys/quota.h... yes
 0:13.34 checking for linux/quota.h... yes
 0:13.44 checking for linux/if_addr.h... yes
 0:13.52 checking for linux/rtnetlink.h... yes
 0:13.60 checking for sys/queue.h... yes
 0:13.66 checking for sys/types.h... yes
 0:13.74 checking for netinet/in.h... yes
 0:13.81 checking for byteswap.h... yes
 0:13.90 checking for linux/perf_event.h... yes
 0:13.97 checking for perf_event_open system call... yes
 0:14.03 checking whether the C compiler supports -Wbitfield-enum-conversion... yes
 0:14.11 checking whether the C++ compiler supports -Wbitfield-enum-conversion... yes
 0:14.19 checking whether the C compiler supports -Wshadow-field-in-constructor-modified... yes
 0:14.25 checking whether the C++ compiler supports -Wshadow-field-in-constructor-modified... yes
 0:14.37 checking whether the C compiler supports -Wunreachable-code-return... yes
 0:14.43 checking whether the C++ compiler supports -Wunreachable-code-return... yes
 0:14.50 checking whether the C compiler supports -Wclass-varargs... yes
 0:14.58 checking whether the C++ compiler supports -Wclass-varargs... yes
 0:14.65 checking whether the C compiler supports -Wfloat-overflow-conversion... yes
 0:14.71 checking whether the C++ compiler supports -Wfloat-overflow-conversion... yes
 0:14.78 checking whether the C compiler supports -Wfloat-zero-conversion... yes
 0:14.86 checking whether the C++ compiler supports -Wfloat-zero-conversion... yes
 0:14.94 checking whether the C compiler supports -Wloop-analysis... yes
 0:15.00 checking whether the C++ compiler supports -Wloop-analysis... yes
 0:15.06 checking whether the C++ compiler supports -Wc++1z-compat... yes
 0:15.14 checking whether the C++ compiler supports -Wc++2a-compat... yes
 0:15.20 checking whether the C++ compiler supports -Wcomma... yes
 0:15.26 checking whether the C compiler supports -Wduplicated-cond... no
 0:15.33 checking whether the C++ compiler supports -Wduplicated-cond... no
 0:15.40 checking whether the C++ compiler supports -Wimplicit-fallthrough... yes
 0:15.47 checking whether the C compiler supports -Wstring-conversion... yes
 0:15.55 checking whether the C++ compiler supports -Wstring-conversion... yes
 0:15.61 checking whether the C compiler supports -Wtautological-overlap-compare... yes
 0:15.69 checking whether the C++ compiler supports -Wtautological-overlap-compare... yes
 0:15.77 checking whether the C compiler supports -Wtautological-unsigned-enum-zero-compare... yes
 0:15.83 checking whether the C++ compiler supports -Wtautological-unsigned-enum-zero-compare... yes
 0:15.90 checking whether the C compiler supports -Wtautological-unsigned-zero-compare... yes
 0:15.98 checking whether the C++ compiler supports -Wtautological-unsigned-zero-compare... yes
 0:16.04 checking whether the C++ compiler supports -Wno-inline-new-delete... yes
 0:16.11 checking whether the C compiler supports -Wno-error=maybe-uninitialized... no
 0:16.18 checking whether the C++ compiler supports -Wno-error=maybe-uninitialized... no
 0:16.25 checking whether the C compiler supports -Wno-error=deprecated-declarations... yes
 0:16.31 checking whether the C++ compiler supports -Wno-error=deprecated-declarations... yes
 0:16.38 checking whether the C compiler supports -Wno-error=array-bounds... yes
 0:16.44 checking whether the C++ compiler supports -Wno-error=array-bounds... yes
 0:16.53 checking whether the C compiler supports -Wno-error=free-nonheap-object... no
 0:16.60 checking whether the C++ compiler supports -Wno-error=free-nonheap-object... no
 0:16.66 checking whether the C compiler supports -Wno-error=multistatement-macros... no
 0:16.73 checking whether the C++ compiler supports -Wno-error=multistatement-macros... no
 0:16.81 checking whether the C compiler supports -Wno-error=return-std-move... yes
 0:16.87 checking whether the C++ compiler supports -Wno-error=return-std-move... yes
 0:16.94 checking whether the C compiler supports -Wno-error=class-memaccess... no
 0:17.00 checking whether the C++ compiler supports -Wno-error=class-memaccess... no
 0:17.07 checking whether the C compiler supports -Wno-error=atomic-alignment... yes
 0:17.14 checking whether the C++ compiler supports -Wno-error=atomic-alignment... yes
 0:17.20 checking whether the C compiler supports -Wno-error=deprecated-copy... no
 0:17.26 checking whether the C++ compiler supports -Wno-error=deprecated-copy... no
 0:17.33 checking whether the C compiler supports -Wformat... yes
 0:17.41 checking whether the C++ compiler supports -Wformat... yes
 0:17.47 checking whether the C compiler supports -Wformat-security... yes
 0:17.55 checking whether the C++ compiler supports -Wformat-security... yes
 0:17.62 checking whether the C compiler supports -Wformat-overflow=2... no
 0:17.69 checking whether the C++ compiler supports -Wformat-overflow=2... no
 0:17.75 checking whether the C compiler supports -Wno-gnu-zero-variadic-macro-arguments... yes
 0:17.82 checking whether the C++ compiler supports -Wno-gnu-zero-variadic-macro-arguments... yes
 0:17.90 checking whether the C++ compiler supports -fno-sized-deallocation... yes
 0:17.91 checking for libpulse... yes
 0:17.91 checking MOZ_PULSEAUDIO_CFLAGS... -D_REENTRANT
 0:17.92 checking MOZ_PULSEAUDIO_LIBS... -lpulse
 0:17.92 checking for cbindgen... /path/to/.cargo/bin/cbindgen
 0:17.94 checking cbindgen version... 0.6.8
 0:17.94 checking for rustfmt... /path/to/.cargo/bin/rustfmt
 0:17.95 checking for llvm-config... /path/to/.mozbuild/clang/bin/llvm-config
 0:17.97 checking bindgen cflags... -x c++ -fno-sized-deallocation -DTRACING=1 -DIMPL_LIBXUL -DMOZILLA_INTERNAL_API -DRUST_BINDGEN -DOS_POSIX=1 -DOS_LINUX=1
 0:17.97 checking for rustc... /path/to/.cargo/bin/rustc
 0:17.97 checking for cargo... /path/to/.cargo/bin/cargo
 0:18.25 checking rustc version... 1.31.0
 0:18.35 checking cargo version... 1.31.0
 0:18.83 checking for rustdoc... /path/to/.cargo/bin/rustdoc
 0:18.85 checking for nodejs... /path/to/.mozbuild/node/bin/node (8.11.3)
 0:18.86 checking for gtk+-wayland-3.0 >= 3.10 xkbcommon >= 0.4.1... yes
 0:18.90 checking MOZ_WAYLAND_CFLAGS... -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -I/usr/include/libdrm -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -pthread
 0:18.92 checking MOZ_WAYLAND_LIBS... -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lxkbcommon
 0:18.92 checking for pango >= 1.22.0 pangoft2 >= 1.22.0 pangocairo >= 1.22.0... yes
 0:18.94 checking MOZ_PANGO_CFLAGS... -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -I/usr/include/cairo -I/usr/include/pixman-1
 0:18.96 checking MOZ_PANGO_LIBS... -lpangoft2-1.0 -lfontconfig -lfreetype -lpangocairo-1.0 -lpango-1.0 -lcairo
 0:18.96 checking for fontconfig >= 2.7.0... yes
 0:18.98 checking _FONTCONFIG_CFLAGS... -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/uuid
 0:18.99 checking _FONTCONFIG_LIBS... -lfontconfig -lfreetype
 0:18.99 checking for freetype2 >= 6.1.0... yes
 0:19.00 checking _FT2_CFLAGS... -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
 0:19.01 checking _FT2_LIBS... -lfreetype
 0:19.01 checking for tar... /usr/bin/tar
 0:19.01 checking for unzip... /usr/bin/unzip
 0:19.01 checking for zip... /usr/bin/zip
 0:19.01 checking for gn... not found
 0:19.01 checking for the Mozilla API key... no
 0:19.01 checking for the Google API key... no
 0:19.01 checking for the Bing API key... no
 0:19.01 checking for the Adjust SDK key... no
 0:19.01 checking for the Leanplum SDK key... no
 0:19.01 checking for the Pocket API key... no
 0:19.02 checking for awk... /usr/bin/gawk
 0:19.02 checking for perl... /usr/bin/perl
 0:19.02 checking for minimum required perl version >= 5.006... 5.028001
 0:19.04 checking for full perl installation... yes
 0:19.04 checking for gmake... /usr/bin/make
 0:19.04 checking for watchman... not found
 0:19.04 checking for xargs... /usr/bin/xargs
 0:19.04 checking for rpmbuild... not found
 0:19.07 checking for llvm-objdump... not found
 0:19.07 DEBUG: llvm_objdump: Trying llvm-objdump
 0:19.08 ERROR: Cannot find llvm-objdump
 0:19.12 *** Fix above errors and then restart with\
 0:19.12                "./mach build"
 0:19.12 make: *** [client.mk:115: configure] Error 1

It's a bit annoying to keep applying my patch whenever I create a new branch. Can the patch be reviewed and merged?

Assignee: nobody → rob
Status: NEW → ASSIGNED

Ping, please respond or resign from review.

Flags: needinfo?(mshal)

Sorry, I didn't see this in my dashboard for some reason.

Flags: needinfo?(mshal)
Pushed by rob@robwu.nl:
https://hg.mozilla.org/integration/autoland/rev/ea2b6fafbb08
Look for llvm-objdump in toolchain path r=mshal
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
You need to log in before you can comment on or make changes to this bug.