Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 May 2020 21:05:36 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-ports@freebsd.org, freebsd-arm@freebsd.org
Subject:   Re: 'asm/hwcap.h' file not found building chromium on Pi3
Message-ID:  <F7504ADF-C2B3-4C59-BB59-17A72CEE4722@yahoo.com>
In-Reply-To: <20200601022208.GA15761@www.zefox.net>
References:  <20200601022208.GA15761@www.zefox.net>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2020-May-31, at 19:22, bob prohaska <fbsd@www.zefox.net> wrote:

> Made another attempt to compile www/chromium on a Pi3B, this time =
using
> a mechanical hard disk for all storage (and boot). It stopped with
>=20
> ../../third_party/zlib/cpu_features.c:32:10: fatal error: =
'asm/hwcap.h' file not found
> #include <asm/hwcap.h>
>         ^~~~~~~~~~~~~
> 1 error generated.
>=20
> Ports are at Revision: 537041, uname -a reports 12.1-STABLE r361429=20
> GENERIC  arm64. All make commands used -DBATCH.

Warning: I did not version match to -r537041
so this is only suggestive unless confirmed.
But I do not keep referencing that status
below.

Not that it solves the problem, but
some context indicates that it is
likely a problem with the port (since
chromium of itself does not support
FreeBSD) . . .

=46rom the cpu_features.c source:

#if defined(ARMV8_OS_ANDROID)
#include <cpu-features.h>
#elif defined(ARMV8_OS_LINUX)
#include <asm/hwcap.h>
#include <sys/auxv.h>
#elif defined(ARMV8_OS_FUCHSIA)
#include <zircon/features.h>
#include <zircon/syscalls.h>
#include <zircon/types.h>
#elif defined(ARMV8_OS_WINDOWS) || defined(X86_WINDOWS)
#include <windows.h>
#elif !defined(_MSC_VER)
#include <pthread.h>
#else
#error cpu_features.c CPU feature detection in not defined for your =
platform
#endif

So your build has ARMV8_OS_LINUX defined and also
tried to build based in part on:

third_party/zlib/cpu_features.c

A grep -r shows all the references to ARMV8_OS_LINUX
are under third_party/zlib/ . ARMV8_OS_LINUX is from
the third_party/zlib/BUILD.gn code:

. . .
if (use_arm_neon_optimizations) {
  config("zlib_arm_crc32_config") {
    # Disabled for iPhone, as described in DDI0487C_a_armv8_arm:
    #  "All implementations of the ARMv8.1 architecture are required to
    #   implement the CRC32* instructions. These are optional in =
ARMv8.0."
    if (!is_ios) {
      defines =3D [ "CRC32_ARMV8_CRC32" ]
      if (is_android) {
        defines +=3D [ "ARMV8_OS_ANDROID" ]
      } else if (is_linux || is_chromeos) {
        defines +=3D [ "ARMV8_OS_LINUX" ]
      } else if (is_fuchsia) {
. . .

is_linux seems to in turn be from:

chromium-*/build/config/BUILDCONFIG.gn

and its:

is_linux =3D current_os =3D=3D "chromeos" || current_os =3D=3D "linux" =
|| current_os =3D=3D "freebsd"

The freebsd reference here (and elsewhere in that file)
are from the port's patching activity.

chromium does not seem to support FreeBSD of itself
so it seems the problem would be considered to be
in the port instead.

I've no clue what a proper alternative would be for
third_party/zlib/cpu_features.c to use in a FreeBSD
context.


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F7504ADF-C2B3-4C59-BB59-17A72CEE4722>