file(1) broken on sparc64

David O'Brien obrien at
Tue Feb 15 18:49:22 GMT 2005

On Tue, Feb 15, 2005 at 10:09:24AM -0800, Kris Kennaway wrote:
> On Tue, Feb 15, 2005 at 08:58:53AM -0800, David O'Brien wrote:
> > On Tue, Feb 15, 2005 at 07:28:04AM -0800, Kris Kennaway wrote:
> > > On Tue, Feb 15, 2005 at 03:37:28PM +0100, Koop Mast wrote:
> > > > >I wonder if the problem is with worlds cross-built from i386.
> > > > >Can you try a buildworld on i386 with TARGET_ARCH=sparc64 and see if
> > > > >it still works?
> > > > 
> > > > I did a cross buildworld on a i386 machine, and copied the resulting
> > > > file binary over to my sparc box. It works just like the native file
> > > > binary. I even replaced with the one from the cross build. But
> > > > that also didn't change anything.
> > > 
> > > The problem turns out to be a mis-compiled /usr/share/misc/magic.mgc.
> > > If you remove it (it is only used for runtime optimization), file(1)
> > > works fine.  If you recreate it natively using file -C, it also works.
> > 
> > A-HA!
> > Are all the file(1) problems you've mentioned only occurring for
> > cross-arch builds?
> Yes, as mentioned above.

Sorry I didn't catch that fact.  This makes everything all the more

> > If this is the case, we can disable building magic.mgc if
> Or figure out what changed with the last import to break it.

See below.
Figuring this out will come behind testing Opteron dual-core support and
updating compat.4x libs for 5.4-RELEASE.  I am willing to email the
file(1) author and report that something changed such that a
cross-endian+cross-bitness produced magic.mgc broke, and hope that might
turn on a light-bulb for him.

Of course patches are fully appreciated and will get looked at.
> > > AFAIK, the underlying reason hasn't been tracked down.
> > To date we've never guaranteed that a cross-arch built world is usable.
> > We only officially support cross-arch compiles for compile testing.  There
> > are other things in the tree that aren't size & endian-clean that prevent
> > usable cross-arch release builds.
> Release builds, yes.  Cross-built worlds have previously worked, and I
> use them exclusively for non-i386 package builds.

In the "last word on the issue" from the TRB

        i386# make TARGET_ARCH=sparc64 buildworld
        i386# make TARGET_ARCH=sparc64 DESTDIR=/host/sparc64 installworld

    is in the Provisionally Supported category.  Defined as: These are
    areas that are optionally supported.  Developers aren't necessarily
    required to test these areas, but are required to make their best
    efforts to not unduly disrupt this support.  This support is
    contingent on one or more developers taking an active role in keeping
    it current.  Failure to do so will relegate things to unsupported.

-- David  (obrien at

More information about the freebsd-sparc64 mailing list