[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] building only from .c files (who needs to cross-comp
From: |
Matthew Welland |
Subject: |
Re: [Chicken-users] building only from .c files (who needs to cross-compile) |
Date: |
Mon, 4 Sep 2006 22:15:55 -0700 |
User-agent: |
KMail/1.8.3 |
On Monday 04 September 2006 17:19, Brandon J. Van Every wrote:
[snip]
> Two perceived reasons for building only from .c files:
>
> - someone may need to cross-compile
> - someone may be unable to get a bootstrapped chicken to compile .scm to .c
>
> I have serious reservations about the latter reason. Part of the point
> of getting people to build from sources, is to test the build. If we
> aren't actually exercising the .scm to .c part of the build, then that's
> a way for build problems to develop. We want users to see build
> problems and report them to us, so that we can fix them. Granted, if we
> start distributing binaries for multiple platforms, then we won't get
> the benefit of in-field build testing. It would be down to just Felix's
> build environment and my build environment, either of which could
> develop probelms, flake, or go belly up. I think if we start
> distributing binaries, and aren't getting any in-field build testing,
> then we need to implement a regular nightly build.
Why is it important for your build system to be exercised everywhere? If you
can provide a windows installer based solution won't 99.999% of interested
Windows chicken users be happy?
> As for cross-compilation. First, I'll define it, to avoid heat and
> angst over nothing. "Cross-compilation" means "building an .exe on one
> platform that is meant to run on another platform." Distributing .c
> files is not cross-compilation (at least from a C compiler's
> perspective). Firing up the MinGW-Windows target on Linux, that's
> cross-compilation. Various open source projects do this sort of thing;
> for instance, I believe http://www.freeciv.org is built this way.
> (Warning: Elite Timewaster Alert!)
>
> So, who has the real need to do cross-compilation?
Cell phones, UMPC's, PDA's, embedded systems, heck - maybe even
microcontrollers, are all valid targets to use chicken as a development
mechanism. Choices you make in your build system will impact the ease of
doing cross compilation and the likelyhood of chicken being used in these
applications. I think there have been some successes IIRC but I know I have
failed to get chicken + eggs working via cross-compilation. I have surveyed
the scheme options for doing what I want (end user apps and robot controller
on the Ipaq) and I think that if I could get it to work chicken would be a
really neat solution.
> Felix, I hope it's not you, and that you're saying you just want to
> cross-compile for official Windows distributions. CMake 2.4.3 can't do
> cross-compilation, although it may be implemented in the distant
> future. That means you'd be building official Chickens using Autoconf.
> That's very much against my agenda, which is, having CMake builds
> regularly exercised and tested in-field. It also strikes me as a really
> bad idea, putting so much faith in cross-compilation, as opposed to
> building, testing, and solving problems on proper Windows boxes. It's
> just a whole new can of worms that I personally won't be dealing with.
> The Autoconf support is really weak / broken for MinGW, both in Chicken
> and in MSYS. It doesn't even exist for MSVC; that's why I spent 9
> months implementing a CMake build.
>
> So, let's say cross-compilation isn't for official Windows builds.
> Maybe it's Unix-Unix cross-compilation or something. Who needs to do
> it? What are the requirements?
I would like to use chicken to develop applications on my IPAQ handheld PC
running familiar Linux with Opie (http://handhelds.org). This lowly machine
has limited memory and is excruciatingly slow doing compilation.
Theoretically it is possible for me to get gcc etc. running on it but I
haven't yet succeeded (I get "C compiler can't create executables" errors).
I'm using Openembedded (http://www.openembedded.org/) for cross compilation.
I wouldn't care what build system chicken uses if I could just install the
right .ipk files on my Ipaq :-). As I mentioned in a previous post I was able
to get chicken compiled and make a package file for the Ipaq. I'm stuck now
since I can't figure out how to get eggs to compile under Openembedded.
I think the simplest solution would be a mechanism that dumped all the
required C files etc. so I could cross compile without having to run chicken
on the target system.
Maybe something like this:
stage1: creates bootstrap csc etc, autoconf files and CMake files
stage2, option 1: builds using CMake
stage2, option 2: builds using Autoconf.
> And is this going to require Autoconf forever? I'm not in favor of
> that. CMake may not be able to cross-compile, but it is 1 build and it
> does work everywhere, unlike Autoconf. That outweighs the convenience
> of building everything from only 1 box. I don't want to maintain 2
> builds, especially if cross-compilation drives more and more feature
> requirements that disrupt the CMake build.
I guess you guys will have to decide if supporting us nuts who think we need
to do cross compilation are worth the pain to support :-)
> A final thorn: which build to install? It doesn't matter with Autoconf,
> as it's only a one-stage build. CMake is two-stage; its first stage is
> done in the /boot directory. Let's say I built /boot entirely from .c
> files, and even throw in currently missing bits like /boot/csi,
> /boot/csc, /boot/chicken-profile, and /boot/chicken-setup. Should I let
> the user install this? No, I shouldn't. I want them to do a two-stage
> bootstrap and install the final products. I don't want to take bug
> reports on one-stage Chickens that got installed from /boot. They're
> supposed to get the best code as the final output; that's all I want to
> maintain.
>
> Bottom line: I think CMake should only use .c files to build
> chicken-boot. Further products need to be derived from chicken-boot,
> i.e. csi, csc, chicken-profile, chicken-setup.
>
>
> Cheers,
> Brandon Van Every
>
>
>
> _______________________________________________
> Chicken-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/chicken-users
>
>
>
--
http://www.kiatoa.com, a self-governing site where *you* can be the boss!
You make and choose the stories and the classifieds are always free.
Also, many "best of" polls. Come join in the ballot stuffing!
- [Chicken-users] unified bootstrap, Brandon J. Van Every, 2006/09/03
- Re: [Chicken-users] unified bootstrap, felix winkelmann, 2006/09/04
- Re: [Chicken-users] unified bootstrap, Brandon J. Van Every, 2006/09/04
- Re: [Chicken-users] unified bootstrap, felix winkelmann, 2006/09/04
- Re: [Chicken-users] unified bootstrap, Brandon J. Van Every, 2006/09/04
- Re: [Chicken-users] unified bootstrap, Brandon J. Van Every, 2006/09/04
- Re: [Chicken-users] unified bootstrap, felix winkelmann, 2006/09/04
- Re: [Chicken-users] unified bootstrap, Brandon J. Van Every, 2006/09/05
- Re: [Chicken-users] unified bootstrap, felix winkelmann, 2006/09/05
- [Chicken-users] building only from .c files, Brandon J. Van Every, 2006/09/04
- Re: [Chicken-users] building only from .c files (who needs to cross-compile),
Matthew Welland <=
- Re: [Chicken-users] building only from .c files (who needs to cross-compile), Brandon J. Van Every, 2006/09/05
- Re: [Chicken-users] building only from .c files (who needs to cross-compile), Matthew Welland, 2006/09/05
- Re: [Chicken-users] building only from .c files (who needs to cross-compile), Brandon J. Van Every, 2006/09/06
- Re: [Chicken-users] building only from .c files, felix winkelmann, 2006/09/05
- Re: [Chicken-users] building only from .c files, john, 2006/09/05
- Re: [Chicken-users] building only from .c files, Shawn Rutledge, 2006/09/06
- Re: [Chicken-users] building only from .c files, Kon Lovett, 2006/09/06
- Re: [Chicken-users] building only from .c files, John Cowan, 2006/09/06