Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Oct 2017 22:47:06 -0700
From:      bob prohaska <fbsd@www.zefox.net>
To:        mmel@freebsd.org
Cc:        Mark Millard <markmi@dsl-only.net>, freebsd-arm@freebsd.org, bob prohaska <bob@www.zefox.net>
Subject:   Re: Difficulty with armv6 to v7 transition.
Message-ID:  <20171014054706.GC75288@www.zefox.net>
In-Reply-To: <39f6419f-48f3-aaec-dfa4-3048c8a893d8@freebsd.org>
References:  <CANCZdfrKYabu1-bWxX47=Lt=33e%2BFjBXCNBNiGPE7K-83KOAHA@mail.gmail.com> <CANCZdfqHfAe24q=6n8CxsHQv24j58bQLPG3z_7vi_xpGjdQzDg@mail.gmail.com> <20171011030021.GB57571@www.zefox.net> <20171013020604.GA70845@www.zefox.net> <20171013175943.GA74121@www.zefox.net> <F9F4D731-35CD-44E6-8419-D73CB98655E9@dsl-only.net> <20171014010713.GA75288@www.zefox.net> <254A2C41-59A9-4E4E-8982-ADDBAE2B5F91@dsl-only.net> <20171014021133.GB75288@www.zefox.net> <39f6419f-48f3-aaec-dfa4-3048c8a893d8@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Michal,

On Sat, Oct 14, 2017 at 06:28:13AM +0200, Michal Meloun wrote:
> Bob,
> can you please try this?
> setenv MACHINE_ARCH armv7; make buildworld TARGET=arm TARGET_ARCH=armv7
> 
I _believe_ I did try that, with no success,  but the scrollback buffer 
isn't long enough to let me verify it. 

Right now the machine is running buildworld, using 
BUILD_ARCH!= echo armv7
in /usr/src/Makefile.inc1 to set BUILD_ARCH.  If the
buildworld fails I'll try setenv, just to verify. Should know
late Saturday or early Sunday.

A more immediate puzzle is how to test whether the buildworld command
produced an armv7 userland, or something else, before running installworld.
I'd hate to trash the system _again_. Running clang -v ought to give a 
good hint, if I can find the executable. Is there a better test? 


Thanks!

bob prohaska



> > 
> >> BUILD_ARCH should end up matching what
> >> you start under, not the end target as
> >> I understand things.
> >>
> >> If I tried a cross build on a host
> >> other than armv7 that BUILD_ARCH result
> >> would be wrong. (I use amd64 for cross
> >> building aarch64 and arm6 . I'm not up to
> >> an armv7 capable context yet and may not
> >> be for some time.)
> >>
> >> That change is a local workaround that is
> >> specific to the environment you are using
> >> for a build.
> >>
> >> This is like my 12.0-CURRENT change being
> >> specific to my not building on 11.x or 10.x .
> >> It is just a local workaround that applies
> >> just to a more limited context.
> >>
> >> I've not figured out what is going on (how/why)
> >> for the != uname behavior that I observed. But
> >> echoing the expected result instead did work.
> >>
> >> None of this is appropriate to check-in.
> >>
> >>> I'll stop the buildworld in progress and try it.
> >>
> >> Please report if echo of the host type of context
> >> appears to make your local environment work vs.
> >> not. If it does work then it suggests that
> >> != uname -p did not get the expected text for
> >> some reason.
> >>
> >> Older material:
> >>
> >> On Fri, Oct 13, 2017 at 11:36:46AM -0700, Mark Millard wrote:
> >>> On 2017-Oct-13, at 10:59 AM, bob prohaska <fbsd at www.zefox.net> wrote:
> >>>
> >>>> It turns out that simply commenting out lines 447-452 in 
> >>>> /usr/src/Makefile.inc1 allows buildworld to run, even with
> >>>> no /etc/make.conf in place. 
> >>>
> >>> For reference:
> >>>
> >>> 447	.if make(buildworld)
> >>> 448	BUILD_ARCH!=    uname -p
> >>> 449	.if ${MACHINE_ARCH} != ${BUILD_ARCH}
> >>> 450	.error To cross-build, set TARGET_ARCH.
> >>> 451	.endif
> >>> 452	.endif
> >>>
> >>> (I suggest that the .error message include the
> >>> MACHINE_ARCH text and the BUILD_ARCH text, probably
> >>> with ""s around each so that empty is easy to see.)
> >>>
> >>>
> >>> I've had problems with Makefiles using != and uname
> >>> ending up with the MACRO assigned being an empty string
> >>> despite a command-line uname returning the expected
> >>> text.
> >>>
> >>> For example I've applied the below local work arounds
> >>> to my /usr/ports/Mk/bsd.port.mk copy as part of setting
> >>> up to do amd64 -> aarch64 or amd64 -> armv6 cross
> >>> builds of ports via poudriere (I've not updated to a
> >>> armv7-targeting vintage sources yet):
> >>>
> >>>
> >>> # Get the operating system type
> >>> .if !defined(OPSYS)
> >>> -OPSYS!=	${UNAME} -s
> >>> +OPSYS!=	echo FreeBSD
> >>> .endif
> >>> _EXPORTED_VARS+=	OPSYS
> >>>
> >>> .if !defined(_OSRELEASE)
> >>> -_OSRELEASE!=	${UNAME} -r
> >>> +_OSRELEASE!=	echo 12.0-CURRENT
> >>> .endif
> >>> _EXPORTED_VARS+=	_OSRELEASE
> >>>
> >>>
> >>> I was specifically ending up with _OSRELEASE
> >>> being empty as seen in poudriere prior to the
> >>> workaround and that was messing up poudriere
> >>> such that it stopped with an associated
> >>> message.
> >>
> >>
> >> ===
> >> Mark Millard
> >> markmi at dsl-only.net
> >>
> > _______________________________________________
> > freebsd-arm@freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
> > 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171014054706.GC75288>