[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU Mach: MIG stubs not generated
From: |
Ludovic Courtès |
Subject: |
Re: GNU Mach: MIG stubs not generated |
Date: |
Wed, 26 May 2010 23:35:51 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
Hi!
Thomas Schwinge <thomas@schwinge.name> writes:
> On Wed, May 26, 2010 at 02:07:09PM +0200, Ludovic Courtès wrote:
>> GNU Mach currently fails to build for me:
>>
>> --8<---------------cut here---------------start------------->8---
>> i586-pc-gnu-gcc -DHAVE_CONFIG_H -I. -nostdinc -imacros config.h -Ii386 -I.
>> -I./i386 -I./i386/include/mach/sa -I./include -Wall -fno-strict-aliasing
>> -fno-stack-protector -g -O2 -c -o vm/memory_object.o vm/memory_object.c
>> vm/memory_object.c:51:40: fatal error: vm/memory_object_user.user.h: No such
>> file or directory
>> --8<---------------cut here---------------end--------------->8---
>>
>> (From <http://hydra.nixos.org/build/424416>.)
>
> I broke this down to --disable-dependency-tracking (which you are using)
> according to some raw log file I looked at.
Indeed. Enabling dependency tracking fixes the problem:
http://hydra.nixos.org/job/nixpkgs/cross-trunk/crossGNU.mach.hostDrv
> (Where can I see the list of commands you're actually invoking?)
You can’t. :-)
The whole build recipe is in files written in the Nix language like
this:
https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/os-specific/gnu/mach/default.nix
However these few lines translate into long shell scripts as you can
guess.
In times of troubles we can still use ‘set -x’, though.
> Also, I see --build=i586-pc-gnu --build=x86_64-linux on your configure
> command line. The latter one wins, I guess.
Yes.
>
>> >From a quick glance, the reason seems to be that MIG-generated stubs are
>> listed in ‘nodist_libkernel_a_SOURCES’, whereas they should really be
>> ‘BUILT_SOURCES’, so that they get built before the libkernel.a sources
>> are compiled.
>>
>> I noticed that ‘configure.ac’ reads this:
>>
>> --8<---------------cut here---------------start------------->8---
>> # See <http://lists.gnu.org/archive/html/automake/2006-05/msg00038.html>.
>> #
>> # We don't use `BUILT_SOURCES' (as it was suggested in the follow-up
>> message),
>> # as we also want things like `make SPECIFIC_TARGET' to work.
>> --8<---------------cut here---------------end--------------->8---
>>
>> However I don’t see any reason why ‘BUILT_SOURCES’ wouldn’t work here.
>> What am I missing?
>
> As I remember, when designing that build system, the following would not
> work when the auto-generated stuff was listed in BUILT_SOURCES:
> ``configure && make gnumach.gz'' (the BUILT_SOURCES files would not be
> considered (generated) in such a case), whereas it would work with my
> system. Also, it had / has something to do with having dependency
> tracking for the #include lines in .defs files.
>
> If you say that using BUILT_SOURCES together with ``make
> SPECIFIC_TARGET'' works these days (including dependency tracking in
> #included files), then we can (and should) use that instead, of course.
I gave it a try but gave up before reaching the point where I could
conclude about this specific point. It’s good enough I guess. :-)
Thanks,
Ludo’.