Linux 2.2/2.3 can't build BIND: crazy symlink limit

Matthias Urlichs smurf at noris.de
Fri Sep 3 13:27:31 UTC 1999


Bob Halley <Bob_Halley at iengines.net> writes:
> John Gilmore wrote:
> > Something else may be going on here; the Linux kernel supposedly has
> > had this limit even in 2.0, which was reported to build the distribution.
> > Has the "make links" script changed recently?
> 
> Whether it works or not depends upon the nature of the SRC you use in
> 'make links'.  If the SRC has no symbolic links, 'make links' will
> work, but if you also have a link in the SRC path, you'll exceed the Linux
> kernel limit.
> 
My meta-Makefile, appended in part below, sidesteps two of these links,
which is enough for the compilation to work.

IMHO, a better solution would be to carry the SRC and DST variables to
the submakefiles and just do a nonrecursive link, i.e. we really should 
change the subdirectory-linking loops int eh makefile to something like
this Makefile snippet:

! links: FRC
! 	@set -e; for x in $(SUBDIRS); do \
! 		mkdir $$x; cd $$x; pwd; ln -s $(SRC)/$$x SRC; \
! 		cp SRC/Makefile Makefile; chmod +w Makefile; \
! 		$(MAKE) $(MARGS) SRC=$(SRC)/$$i DST=$(DST)/$$i links; \
! 		cd ..; \
! 	done

instead of the current code. Voila, no more problems with recursive
symlinks.

####################

compile: obj
	$(MAKE) -C obj

obj:
	if test ! -d obj; then  \
	  mkdir -p obj ; \
	  $(MAKE) DST=$(shell pwd)/obj SRC=$(shell pwd) links ; \
	  cd obj/port/linux; \
      rm SRC; ln -s ../../SRC/port/linux SRC; \
	  cd include; \
      rm SRC; ln -s ../../../SRC/port/linux/include SRC; \
	fi
	
install:
	$(MAKE) -C obj install

-- 
Matthias Urlichs  |  noris network GmbH   |   smurf at noris.de  |  ICQ: 20193661
The quote was selected randomly. Really.    |      http://www.noris.de/~smurf/
-- 
Belle's Constant:
The ratio of time involved in work to time available for work is usually
about 0.6.


More information about the bind-workers mailing list