On 2018/03/01 18:24, Jiri B wrote:
> I have simple GRUB2 port working but I'm trying to figure out how to change
> the port to get some part of it to be a kind of 'noarch' as Linux distros do.
> My question is, how to get eg. /usr/local/lib/grub/arm64-efi modules which -
> IIUC -
> would need to build on arm64 box "into" amd64 repo, so they are installable
If they really need building on arm64, you'd have to manually generate
a tarball on arm64 and have the port package those generated files.
Though maybe you can cross-compile with clang or one of the arm64 gcc
cross compilers from ports.
> And I did not understand purpose of NO_ARCH in bsd.port.mk.
NO_ARCH is the location to place "PKG_ARCH=*" packages during build,
the default of /usr/ports/packages/no-arch is not useful for most bulk
builds because different arches will conflict.
The main place PKG_ARCH=* was useful is in *release* builds (where the
tree is consistent, rather than snapshots where all package builders are
on independent builds from different trees), but it was so much effort
to do this (and suffered breakage from ports incorrectly marked as
PKG_ARCH=*) that it's not done any more.
The one remaining place it helps is people manually installing "no arch"
packages from one architecture's package directory on another arch.
e.g. (cross-compiled) sysutils/u-boot is a pig to build but the
produced packages are arch independent, so on arm you are able to
set PKG_PATH to http://.../snapshots/packages/amd64/ and install
from an amd64-built package.