Ports cross-compilation
Warner Losh
imp at bsdimp.com
Thu Dec 1 16:12:00 UTC 2011
On Dec 1, 2011, at 1:00 AM, Oleksandr Tymoshenko wrote:
>>
>>> - Package builder works only on installed port.
>>
>> Have you looked at pkgng yet? The wiki page says it can create a package from a separate directory tree.
> No, not yet. By "Package builder" I meant package-building
> targets of ports Makefiles. pkg_create can work on directory
> tree + setof pre-generated files. It's just that at the moment
> we use "pkg_create -b" to create package archive.
>
>
>>> - Makefile for cross-compilable port should be split into three parts:
>>> common, native, cross. It's not clear who should maintain cross part
>>> though.
>>
>> From many previous discussions, people are reluctant to add files to all ports because of the filesystem and VCS bloat that causes. Also, considering the number of ports there are in the tree, and how well maintained many of the lesser ones are, any solution that requires no or very little changes to each port would stand a much bigger chance of being implemented successfully.
>
> As I told - getting all ports cross-compilable is impossible.
> We're talking about most-used in embedded environment ports. I'd say
> it's a couple of hundreds. So we need modify only these ports and only
> if it's really required. Simple ports like converters/base64 will not
> require modification at all.
When I experimented with this years ago, I found that only a small number of ports needed extra files. Many worked because they were either (a) so trivial that they just needed a different compiler or (b) had complete enough cross support that hacks inside the ports infratructure and/or a couple of tweaks to existing files were all that was needed. Some were hopeless. I tried about 50 ports. Many of the autoconf ports worked great.
I don't think we need to have a separate Makefile, except in exceptional cases.
Warner
More information about the freebsd-embedded
mailing list