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

RESOLVED FIXED in Firefox 67

Status

defect
RESOLVED FIXED
4 months ago
3 months ago

People

(Reporter: robwu, Assigned: robwu)

Tracking

Trunk
mozilla67
Dependency tree / graph

Firefox Tracking Flags

(firefox67 fixed)

Details

Attachments

(1 attachment)

Assignee

Description

4 months ago

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.

Assignee

Comment 1

4 months ago

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 ...?

Assignee

Comment 4

4 months ago

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
Assignee

Comment 5

3 months ago

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
Assignee

Comment 6

3 months ago

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)

Comment 8

3 months ago
Pushed by rob@robwu.nl:
https://hg.mozilla.org/integration/autoland/rev/ea2b6fafbb08
Look for llvm-objdump in toolchain path r=mshal

Comment 9

3 months ago
bugherder
Status: ASSIGNED → RESOLVED
Last Resolved: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
You need to log in before you can comment on or make changes to this bug.