tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fixing MACHINE_ARCH



* On 2016-01-18 at 14:46 GMT, Jonathan Perkin wrote:

> * On 2016-01-17 at 08:20 GMT, Ian D. Leroux wrote:
> 
> > On Sat, 16 Jan 2016 09:08:48 +0000 Jonathan Perkin <jperkin%joyent.com@localhost>
> > wrote:
> > > [...]
> > > I have a patch to fix this and move to a single source of truth,
> > > namely the bootstrap script.  This encodes the correct value of
> > > MACHINE_ARCH directly into bmake during bootstrap based on the host
> > > machine and the requested ABI, and that is then used as the single
> > > source for this variable.
> > 
> > Speaking as an uninformed observer: does this play nicely with the
> > existing support for cross-compilation in pkgsrc?  It sounds as though
> > it would break the mechanisms described in 
> > 
> > https://www.netbsd.org/gallery/presentations/riastradh/asiabsdcon2015/pkgsrc-cross-paper.pdf
> > 
> > unless special care was taken.
> 
> It shouldn't affect the cross compilation support, I'm only
> rationalising the default setting of MACHINE_ARCH, it's still possible
> to override it if necessary.
> 
> I don't have a cross build environment set up, if someone does then
> I'd appreciate testing to ensure I didn't miss anything.

FWIW I set up an evbppc cross-compile environment to test this, and it
still works as expected, i.e.:

  # uname -a
  NetBSD netbsd.local 6.1.5 NetBSD 6.1.5 (GENERIC) amd64

  # pkg_info -Q MACHINE_ARCH /usr/pkgsrc/pkgtools/digest/work.powerpc/.packages/digest-20121220.tgz
  powerpc

  # pkg_info -K /usr/obj/destdir.evbppc/var/db/pkg
  digest-20121220     Message digest wrapper utility

  # file /usr/obj/destdir.evbppc/usr/pkg/bin/digest
  /usr/obj/destdir.evbppc/usr/pkg/bin/digest: ELF 32-bit MSB executable, PowerPC or cisco 4500, (SYSV), dynamically linked (uses shared libs), for NetBSD 6.1.5, with unknown capability 0x41000000 = 0x13676e75, with unknown capability 0x10000 = 0xb0401, stripped

I've pushed a couple of additional fixes to the branch, and tested it
on OpenBSD which was previously a problematic OS due to defining
MACHINE_ARCH in public headers.  The latest patch is available here:

  https://github.com/jsonn/pkgsrc/compare/trunk...joyent:joyent/dev/machine-arch

Please review as soon as possible, a number of platforms are currently
broken and will continue to be so until this goes in.

Thanks,

-- 
Jonathan Perkin  -  Joyent, Inc.  -  www.joyent.com


Home | Main Index | Thread Index | Old Index