Hi! Thomas Schwinge <tho...@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’.