Hi :)

there are two build system issues that are driving me mad (well, the
first one at least).

buildbot@pluto:/home/pluto/hurd/build/build-deb$ make -C libdiskfs || echo $?
2

Yes, that's most helpful.  Not.

buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ rm demuxer.d
buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ make demuxer.o
set -e; gcc -std=gnu99 -fgnu89-inline -Wall -g -O3  -g -O2 -fstack-protector 
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -I. 
-I../../libdiskfs -I.. -I../.. -I../include -I../../include -D_GNU_SOURCE 
-D_IO_MTSAFE_IO -D_FILE_OFFSET_BITS=64  -D_FORTIFY_SOURCE=2 
-DPACKAGE_NAME=\"GNU\ Hurd\" -DPACKAGE_TARNAME=\"hurd\" 
-DPACKAGE_VERSION=\"0.5\" -DPACKAGE_STRING=\"GNU\ Hurd\ 0.5\" 
-DPACKAGE_BUGREPORT=\"bug-hurd@gnu.org\" 
-DPACKAGE_URL=\"http://www.gnu.org/software/hurd/\"; -DHAVE_MIG_RETCODE=1 
-DHAVE_GETGROUPLIST=1 -DHAVE_USELOCALE=1 -DHAVE_FILE_EXEC_FILE_NAME=1 
-DHAVE_EXEC_EXEC_FILE_NAME=1 -DHAVE__HURD_EXEC_FILE_NAME=1 -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
-DHAVE_UNISTD_H=1 -DHAVE_PARTED_PARTED_H=1 -DHAVE_LIBPARTED=1 -DHAVE_LIBUUID=1 
-DHAVE_LIBDL=1 -DYYTEXT_POINTER=1 -DX11_PREFIX=\"/usr\" -DHAVE_DAEMON=1 
-DHAVE_BLKID=1 -M -MG ../../libdiskfs/demuxer.c  | sed > demuxer.d.new -e 
's%demuxer\.o:%demuxer.o demuxer_pic.o demuxer_p.o demuxer.d: %' -e 's% [^ 
]*/gcc-lib/[^ ]*\.h%%g'
mv -f demuxer.d.new demuxer.d
buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ echo $?
2

Now I take the gcc line and remove -M -MG:

buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ gcc -std=gnu99 
-fgnu89-inline -Wall -g -O3  -g -O2 -fstack-protector --param=ssp-buffer-size=4 
-Wformat -Werror=format-security -I. -I../../libdiskfs -I.. -I../.. 
-I../include -I../../include -D_GNU_SOURCE -D_IO_MTSAFE_IO 
-D_FILE_OFFSET_BITS=64  -D_FORTIFY_SOURCE=2 -DPACKAGE_NAME=\"GNU\ Hurd\" 
-DPACKAGE_TARNAME=\"hurd\" -DPACKAGE_VERSION=\"0.5\" -DPACKAGE_STRING=\"GNU\ 
Hurd\ 0.5\" -DPACKAGE_BUGREPORT=\"bug-hurd@gnu.org\" 
-DPACKAGE_URL=\"http://www.gnu.org/software/hurd/\"; -DHAVE_MIG_RETCODE=1 
-DHAVE_GETGROUPLIST=1 -DHAVE_USELOCALE=1 -DHAVE_FILE_EXEC_FILE_NAME=1 
-DHAVE_EXEC_EXEC_FILE_NAME=1 -DHAVE__HURD_EXEC_FILE_NAME=1 -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
-DHAVE_UNISTD_H=1 -DHAVE_PARTED_PARTED_H=1 -DHAVE_LIBPARTED=1 -DHAVE_LIBUUID=1 
-DHAVE_LIBDL=1 -DYYTEXT_POINTER=1 -DX11_PREFIX=\"/usr\" -DHAVE_DAEMON=1 
-DHAVE_BLKID=1 ../../libdiskfs/demuxer.c
In file included from ../../libdiskfs/demuxer.c:23:0:
../libports/notify_S.h:12:23: fatal error: mig-decls.h: No such file or 
directory
 #include "mig-decls.h"
                       ^
compilation terminated.

This is the first bug.  I'd love if someone knew how to fix this.  It
is easy enough to trigger, just add a non-existing #include to any .c
file.

The second issue is due to me doing an out-of-tree build.  That it
currently works is more or less by chance I fear.  I just came up with
a (legit in my opinion) patch that breaks oot builds.

So what happens here is that demuxer.c includes
"../libports/notify_S.h", which is a mig-generated file:

buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ ls 
../libports/notify_S.h
../libports/notify_S.h

And this file includes "mig-decls.h" (that's the change I made that
breaks the build), because that file is in the source tree:

buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ ls 
../libports/mig-decls.h
ls: cannot access ../libports/mig-decls.h: No such file or directory
buildbot@pluto:/home/pluto/hurd/build/build-deb/libdiskfs$ ls 
../../libports/mig-decls.h
../../libports/mig-decls.h

:/

Any help?

Justus

Reply via email to