cvs commit: src/share/mk bsd.cpu.mk

M. Warner Losh imp at bsdimp.com
Sat Jul 22 15:36:02 UTC 2006


In message: <20060722002533.GA15356 at dragon.NUXI.org>
            "David O'Brien" <obrien at freebsd.org> writes:
: I've mentioned this to you, but I won't get into an argument what you
: [mis]understood.  he-said-she-said...  Getting things upstream has been
: the driving force in my strong interest in getting an ARM board or
: working simulator.

What can I do to help get things upstream?  I can test things on
actual hardware.  The various simulators haven't been robust enough to
run FreeBSD/arm.

: > I'd be happy to help with this process if you'd only tell
: > me what to do.  Who should I send email to with the patches?  What
: > paperwork needs to be filled out?  What can I do to help ensure that
: > the changes are fed upstream.
: 
: The same things one need to get changes into any upstream package.  The
: path that we, The FreeBSD Project, has is that for toolchain things it
: needs to be upstream and then we do an import.  Often this will be thru
: (and require) a toolchain upgrade.  It is reasonable now, that we can get
: the ARM (and other processor support I can get HW/emulator for) into FSF
: GCC 4 and Binutils 2.17.1 and into FreeBSD thru upgrades to those
: versions.

I'm happy to make the contacts at FSF, etc to help get things
upstream.  However, I have concerns about this route.  I'd like a
route that can be merged into RELENG_6.  Since we based our patches
and stuff is with gcc 3 in the tree, this is possible.  If we were to
only bring things in via gcc4, that would be something we couldn't
merge.

There's a lot of interest in using FreeBSD/arm with RELENG_6, based on
conversations that I've had with a number of interested parties.
That's why we really want 6.2 to go out with working toolchains.

: > Finally, you ignored my proposal that we import on the vendor branch
: > the changes we have today, understanding that when gcc 4 comes you are
: > under 0 obligation to do anything with them.  Since they would be on
: > the vendor branch, it wouldn't interfere with your gcc 4 work.  It
: > would allow us to MFC the changes.
: 
: This destroys the notion of a "vendor branch".  Putting changes into a
: vendor branch that will never be part of the vendor code goes against the
: purpose of the vendor branch and what it represents.

It is an abuse of the vendor branch.  Given the weaknesses of CVS, I
think this is the least bad solution.  We do this as a means to an
end, not because CVS is good for this task.  We accept the risks that
we lose changes on an import, and are willing to absolve the importer
of preserving these changes.

The alternatives are:
	(1) provide out of tree patches.
	(2) Provide in-tree patches, applied by hand
	(3) in tree patches applied automatically
	(4) provide the changes in cvs

#1 doesn't work.  There are too many people with too many trees.  I've
witnessed several people wasting entire days trying to get these
patches working.  It is a huge hassle for a growing number of people.
I'd wager that the number of people that this hits has already
exceeded our entire ia64 install base.

#2 is just like #1.  Getting the patch isn't the issue.

#3 or #4 could both be used.  I dislike #3 because it duplicates what
CVS does.  However, as a practical point, if people can do:
	setenv TARGET arm
	make buildworld
it doesn't matter much how it is done.  It seemed to me that the path
I outlined would be the least work.  Patches are unlikely to apply
after the upgrade, which would, I'd think, get in the way of the
upgrade.

: I've been working on a forming a response to your proposal that would be
: able to appease both of us.  I am open to a phone call from you, but only
: after you've calmed down and can discuss things agreeably.  If you recall
: I tried to setup a meeting with you at USENIX ATC.  And I've tried to
: catch you on IRC several times.

When's a good time for us to talk?  I've calmed down from being upset
over the 'arm kernel folks doing nothing' remark, and think we can
work something out.

: > : I'd like to ask when we'll get ARM resources in the FreeBSD.org cluster
: > : so committers can have access to ARM - I don't.  So it is hard to test
: > : anything.  Until a month ago no one would agree on a reference platform
: > : so toolchain work could be tested vs.  spending all my time trying to get
: > : something working that no one else had.  I am still waiting to get the
: > : ARM board I purchased in my hands and working.
: > 
: > We've tested these patches.  They work.  Why must you be so insistant
: > on a proceedure that makes it so hard to get things done.
: 
: As I wrote to you before, I will not commit anything to GCC/Binutils/GDB
: that I have not (and cannot) test myself.  Would you accept a large patch
: from me and commit it to the FreeBSD kernel without you being able to
: build and test it?  I dare say you wouldn't.

I think this is the crux of my frustration with you.  I have and would
commit changes to the kernel that I've not personally tested.  I've
done this when people send me support for hardware I don't have for
drivers that I've maintained.  What I do in those cases is that I
review the code, providing feedback for the submitter.  Once those
issues are sorted out, I commit it to the tree.  I then monitor the
lists for reports of problems (since I can't test all hardware).  I
ask the original submitter to test the patches and make sure that
nothing broke or was botched in the integration.  I make adjustments
as necessary.

In this case, you are able to build a world for arm on i386 or amd64
(and maybe others, I've only done it on those two box).  You can
review the patches and suggest where things are done wrong.  You can
commit them to the tree and then ask the folks that have the hardware
to test.  If you get bugs from users, then you can point those users
at the submitter of the patches.

I'll be the first to admit that this is a little messier than having
all the hardware to do the testing.  But as FreeBSD grows, it isn't
always possible to have all the hardware.

: > There will be times that the cluster doesn't have the resources needed,
: > and you'll have to take it on faith that another architecture works.
: 
: Then The FreeBSD Project should take up a discussion of what it means for
: an architecture or platform to officially be part of what the project
: produces with this constraint.  The "Support for Multiple Architectures"
: document that was a consensus of the committer community.  You can claim
: it is out of date, but then the committer community should have a chance
: to discuss this issue as a whole.

I think that we've already moved on beyond that document, and need to
update it for the new thinking on how platforms are included.

: > : Alan I'm curious, for you what is the rush?
: > 
: > 6.2.  I've told you this before.  We want to make a big splash with the
: > emebedded arm stuff, and I really want to get things in before then.
: > 
: > I'm extremely frustrated on this and this current situation is intolerable.
: 
: I feel the same.  You're going against how we've supported new
: architectures in the past, and being unreasonable.

And I've tried to point out that this new architecture is different
than older ones.

Warner


More information about the cvs-all mailing list