On 2018/03/01 18:24, Jiri B wrote: > Hi, > > 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 > via > pkg_add.
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.