Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Mar 2024 11:42:02 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Philip Paeps <philip@freebsd.org>, FreeBSD-pkgbase@freebsd.org
Cc:        Baptiste Daroussin <bapt@FreeBSD.org>
Subject:   Re: FreeBSD:14:armv7 not recently updated
Message-ID:  <DC3E0CAF-B22E-449E-8A09-89CFACCF22F3@yahoo.com>
In-Reply-To: <914C9B0E-7C38-400B-A159-D26BD7E87F54@yahoo.com>
References:  <914C9B0E-7C38-400B-A159-D26BD7E87F54@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 27, 2024, at 08:42, Mark Millard <marklmi@yahoo.com> wrote:

> Philip Paeps <philip_at_freebsd.org> wrote on
> Date: Wed, 27 Mar 2024 05:11:12 UTC :
>=20
> On 2024-03-27 12:57:49 (+0800), Philip Paeps wrote:
>=20
>>> On 2024-03-22 16:36:36 (+0800), Graham Perrin wrote:
>>>=20
>>>> <https://pkg.freebsd.org/FreeBSD:14:armv7/>; neither base_weekly nor=20=

>>>> base_latest has been updated since January.
>>>>=20
>>>> Please, what's the plan?
>>>>=20
>>>> (Not for me, personally, but relevant to a discussion in Discord.)
>>>=20
>>> I'm looking into it. (Wearing my clusteradm hat.)
>>=20
>> It looks like gohan05 is building freebsd:14:armv7:32:el:eabi:softfp =
and=20
>> pkgsync only knows about freebsd:14:armv7:32:el:eabi:hardfp.
>>=20
>> Should we be building hardfp or syncing softfp?
>>=20
>> (same goes for 13 and 15)
>=20
>=20
> For the softfp context, what does the likes of the following
> show?
>=20
> # readelf -h /usr/bin/uname | grep "Flags:"
>  Flags:                             0x5000400, Version5 EABI, VFP
>=20
> The "4" indicates the VFP status EF_ARM_ABI_FLOAT_HARD. Does it show:
>=20
> Flags:                             0x5000200, Version5 EABI, =
soft-float ABI
>=20
> ? (The "2" indicates soft-float ABI. EF_ARM_ABI_FLOAT_SOFT)
>=20
> Does it show some other combination of bits?
>=20
> See:
>=20
> =
https://github.com/ARM-software/abi-aa/blob/main/aaelf32/aaelf32.rst#52elf=
-header
>=20
> See also:
>=20
> =
https://github.com/llvm/llvm-project/blob/main/lld/ELF/InputFiles.cpp#L107=

>=20

The suggestion was rather incomplete. Where to look can involve:

A) the root dir. that package is supposed to be using as a prefix on
   the normal paths.

The normal paths (that might be prefixed):

B) the env. var path: ABI_FILE
C) /usr/bin/uname
D) /bin/sh

But the logic in pkg_get_myarch_elfparse seems bad to me: It tries
in the order, finding the first match, . . .

PREFIXED getenv(ABI_FILE)
getenv(ABI_FILE)
PREFIXED /usr/bin/uname
/usr/bin/uname
PREFIXED /bin/sh
/bin/sh

Thus, for, say, aarch64 with a root dir. PREFIX for pkg to find the =
armv7
materials in, it could stop at and use the first found non-PREFIXED =
(i.e.,
aarch64 file) match if the earlier PREFIXED did not match, never =
checking
the later PREFIXED alternatives.

aarch64 Flag: lines show as . . .

# readelf -h /usr/bin/uname | grep Flags:
  Flags:                             0

Not having the 0x400, such would be classified as softfp by
the code that checks against the:

#ifndef EF_ARM_VFP_FLOAT
#define EF_ARM_VFP_FLOAT	0x00000400
#endif

value.

It looks to me like the order should be:

PREFIXED getenv(ABI_FILE)
PREFIXED /usr/bin/uname
PREFIXED /bin/sh

then, failing finding a match, possibly:

getenv(ABI_FILE)
/usr/bin/uname
/bin/sh

But it is not clear to me that ignoring the
root dir. PREFIX is really appropriate if
it is non-empty.



=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DC3E0CAF-B22E-449E-8A09-89CFACCF22F3>