Message ID | 20150822224824.GB11514@type.dc15.debconf.org |
---|---|
State | New |
Headers | show |
Samuel Thibault <samuel.thibault@gnu.org> writes: > and this goes on at infinitum. Make -d shows that it is trying to build > /tmp/glibc-2.19/build-tree/hurd-i386-libc/mach/mach-shortcuts.h > and adding a $(warning) shows that the generated mach-shortcuts.h rule > is for /tmp/glibc-2.19/build-tree/hurd-i386-libc/csu/mach-shortcuts.h > (in csu/ instead of mach/). AIUI, the patch below would be needed to > fix the objpfx so that the proper rule is generated, isn't it? The first thing mach/Makefile does is subdir := mach. Why is that not sufficient? Andreas.
Hello, Andreas Schwab, le Sun 23 Aug 2015 08:54:31 +0200, a écrit : > Samuel Thibault <samuel.thibault@gnu.org> writes: > > and this goes on at infinitum. Make -d shows that it is trying to build > > /tmp/glibc-2.19/build-tree/hurd-i386-libc/mach/mach-shortcuts.h > > and adding a $(warning) shows that the generated mach-shortcuts.h rule > > is for /tmp/glibc-2.19/build-tree/hurd-i386-libc/csu/mach-shortcuts.h > > (in csu/ instead of mach/). AIUI, the patch below would be needed to > > fix the objpfx so that the proper rule is generated, isn't it? > > The first thing mach/Makefile does is subdir := mach. Why is that not > sufficient? Because calling /usr/bin/make cross-compiling=yes -C build-tree/hurd-i386-libc csu/subdir_lib results to calling /usr/bin/make subdir=csu -C csu ..=../ subdir_lib and that subdir=csu will override any subdir:= Samuel
Why does install-headers depend on crt*.o? That appears to be the regression to fix. Andreas.
Andreas Schwab, le Tue 25 Aug 2015 09:23:40 +0200, a écrit :
> Why does install-headers depend on crt*.o?
Ah, sorry, I wasn't clear about it. It does not, it's the bootstrapping
process of debian which uses both install-headers and builds the crt*.o
files so that gcc can start linking basic stuff.
Samuel
diff --git a/sysdeps/mach/Makefile b/sysdeps/mach/Makefile index b47cdc6..3323e81 100644 --- a/sysdeps/mach/Makefile +++ b/sysdeps/mach/Makefile @@ -43,7 +43,7 @@ ifneq (mach,$(subdir)) # This patsubst generates patterns like `m%h-shortcuts.h', which are damn # likely to match just the corresponding particular file we want. $(patsubst mach%,m\%h%,$(mach-before-compile)): # Run only if doesn't exist. - $(MAKE) -C $(..)mach mach-before-compile no_deps=t generating=t + $(MAKE) -C $(..)mach subdir=mach mach-before-compile no_deps=t generating=t before-compile += $(mach-before-compile) endif diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index b528815..244ac4b 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -48,13 +48,13 @@ hurd-objpfx = $(common-objpfx)hurd/ before-compile += $(patsubst %,$(hurd-objpfx)hurd/%.h,auth io fs process) $(patsubst %,$(hurd-objpfx)hurd/%.%,auth io fs process): \ $(common-objpfx)mach/mach-shortcuts.h - $(MAKE) -C $(..)hurd before-compile no_deps=t + $(MAKE) -C $(..)hurd subdir=hurd before-compile no_deps=t endif # Hurd profil.c includes this file, so give a rule to make it. ifeq ($(subdir),gmon) $(common-objpfx)hurd/../mach/RPC_task_get_sampled_pcs.c: - $(MAKE) -C $(..)mach before-compile no_deps=t + $(MAKE) -C $(..)mach subdir=mach before-compile no_deps=t endif